diff --git a/alcor_exchange/alcor-exchange-docs.md b/alcor_exchange/alcor-exchange-docs.md new file mode 100644 index 00000000..578c9dd4 --- /dev/null +++ b/alcor_exchange/alcor-exchange-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Alcor Exchange data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def alcor_exchange_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://alcor.exchange/api/v2/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + pairs,,tokens,,markets + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='alcor_exchange_migration_pipeline', + destination='duckdb', + dataset_name='alcor_exchange_migration_data', + ) + # Load the data + load_info = pipeline.run(alcor_exchange_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from alcor_exchange_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Market Data: Provides information about trading pairs, tokens, and market activity. +- Orders: Contains endpoints for placing buy and sell orders, as well as managing order books. +- Swaps: Offers functionality for interacting with swap pools and retrieving routing information. +- Account Management: Allows users to view account-specific information such as deals and positions. +- Analytics: Provides global analytics related to the exchange's performance. + +You will then debug the Alcor Exchange pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Alcor Exchange support. + ```shell + dlt init dlthub:alcor_exchange_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Alcor Exchange API, as specified in @alcor_exchange_migration-docs.yaml + Start with endpoints pairs and and skip incremental loading for now. + Place the code in alcor_exchange_migration_pipeline.py and name the pipeline alcor_exchange_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python alcor_exchange_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is performed using an API key, which needs to be provided with each request to access the endpoints securely. + + To get the appropriate API keys, please visit the original source at https://alcor.exchange/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python alcor_exchange_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline alcor_exchange_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset alcor_exchange_migration_data + The duckdb destination used duckdb:/alcor_exchange_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline alcor_exchange_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("alcor_exchange_migration_pipeline").dataset() + # get air table as Pandas frame + data.air.df().head() + ``` + +## Running into errors? + +Notably, orders cannot be updated directly; users must cancel an existing order and place a new one instead. Additionally, there are several potential error responses that users should be aware of, including issues with unauthorized access or invalid requests. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/alcor_exchange/alcor-exchange-docs.yaml b/alcor_exchange/alcor-exchange-docs.yaml new file mode 100644 index 00000000..68614876 --- /dev/null +++ b/alcor_exchange/alcor-exchange-docs.yaml @@ -0,0 +1,145 @@ +resources: +- name: tokens + endpoint: + path: /tokens + method: GET + data_selector: '' + params: {} +- name: global_data + endpoint: + path: /analytics/global + method: GET + data_selector: '' + params: {} +- name: trading_pairs + endpoint: + path: /pairs + method: GET + data_selector: '' + params: {} +- name: tickers + endpoint: + path: /tickers + method: GET + data_selector: '' + params: {} +- name: orderbook + endpoint: + path: /orderbook + method: GET + data_selector: '' + params: {} +- name: latest_trades + endpoint: + path: /tickers/pgl-prospectorsw_wax-eosio.token/latest_trades + method: GET + data_selector: '' + params: + limit: '2' +- name: historical_trades + endpoint: + path: /tickers/pgl-prospectorsw_wax-eosio.token/historical_trades + method: GET + data_selector: '' + params: + limit: '2' +- name: pool + endpoint: + path: /swap/pools/{pool_id} + method: GET + data_selector: '' + params: {} +- name: pools + endpoint: + path: /swap/pools + method: GET + data_selector: '' + params: {} +- name: pool_swaps + endpoint: + path: /swap/pools/{pool_id}/swaps + method: GET + data_selector: '' + params: {} +- name: pool_positions + endpoint: + path: /swap/pools/{pool_id}/positions + method: GET + data_selector: '' + params: {} +- name: swap_route + endpoint: + path: /swapRouter/getRoute + method: GET + data_selector: '' + params: + trade_type: EXACT_INPUT + input: wax-eosio.token + output: tlm-alien.worlds + amount: '1.00000000' + slippage: '0.30' + receiver: alcordexfund + maxHops: '2' +- name: swap_history + endpoint: + path: /account//swap-history + method: GET + data_selector: records + params: + account: string +- name: positions + endpoint: + path: /account//positions + method: GET + data_selector: records + params: + account: string +- name: positions_history + endpoint: + path: /account//positions-history + method: GET + data_selector: records + params: + account: string +- name: deals + endpoint: + path: /account//deals + method: GET + data_selector: records + params: + account: string +- name: markets + endpoint: + path: /markets + method: GET + data_selector: rows +- name: buy_orders + endpoint: + path: /buyorder + method: GET + data_selector: rows +- name: sell_orders + endpoint: + path: /sellorder + method: GET + data_selector: rows +notes: +- Orders can not be updated; to update, cancel current and place a new one. +errors: +- '400: Bad Request -- Your request is invalid.' +- '401: Unauthorized -- Your API key is wrong.' +- '403: Forbidden -- The kitten requested is hidden for administrators only.' +- '404: Not Found -- The specified kitten could not be found.' +- '405: Method Not Allowed -- You tried to access a kitten with an invalid method.' +- '406: Not Acceptable -- You requested a format that isn''t json.' +- '410: Gone -- The kitten requested has been removed from our servers.' +- '418: I''m a teapot.' +- '429: Too Many Requests -- You''re requesting too many kittens! Slow down!' +- '500: Internal Server Error -- We had a problem with our server. Try again later.' +- '503: Service Unavailable -- We''re temporarily offline for maintenance. Please + try again later.' +auth_info: + mentioned_objects: [] +client: + base_url: https://alcor.exchange/api/v2/ +source_metadata: null diff --git a/alisqi/alisqi-docs.md b/alisqi/alisqi-docs.md new file mode 100644 index 00000000..04a0fd4c --- /dev/null +++ b/alisqi/alisqi-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete AlisQI data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def alisqi_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://subdomain.alisqi.com/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + sets,,results,,statistics + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='alisqi_migration_pipeline', + destination='duckdb', + dataset_name='alisqi_migration_data', + ) + # Load the data + load_info = pipeline.run(alisqi_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from alisqi_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Sets: Manage sets of data for the API. +- Results: Access and manage results related to sets. +- Statistics: Retrieve statistical data about sets and results. + +You will then debug the AlisQI pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with AlisQI support. + ```shell + dlt init dlthub:alisqi_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for AlisQI API, as specified in @alisqi_migration-docs.yaml + Start with endpoints sets and and skip incremental loading for now. + Place the code in alisqi_migration_pipeline.py and name the pipeline alisqi_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python alisqi_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + AlisQI uses API key for authentication, which should be treated securely. + + To get the appropriate API keys, please visit the original source at https://www.alisqi.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python alisqi_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline alisqi_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset alisqi_migration_data + The duckdb destination used duckdb:/alisqi_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline alisqi_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("alisqi_migration_pipeline").dataset() + # get et table as Pandas frame + data.et.df().head() + ``` + +## Running into errors? + +AlisQI has a rate limit of 30 calls per minute for both read and write operations. Exceeding this limit results in a `429 Too many requests` error. It is recommended to use dedicated tokens for different integration scenarios to manage rate limits effectively. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/alisqi/alisqi-docs.yaml b/alisqi/alisqi-docs.yaml new file mode 100644 index 00000000..6a7bd2d5 --- /dev/null +++ b/alisqi/alisqi-docs.yaml @@ -0,0 +1,562 @@ +resources: +- name: sets + endpoint: + path: /reference/get-all-sets-1 + method: GET +- name: results + endpoint: + path: /reference/get-results-1 + method: GET +- name: statistics + endpoint: + path: /reference/get-statistics-1 + method: GET +- name: specifications + endpoint: + path: /reference/get_getspecificationversion-1 + method: GET +- name: permissions + endpoint: + path: /reference/post_storesetpermissions + method: POST +- name: sets + endpoint: + path: /reference/get-all-sets-1 + method: GET +- name: results + endpoint: + path: /reference/get-results-1 + method: GET +- name: statistics + endpoint: + path: /reference/get-statistics-1 + method: GET +- name: specifications + endpoint: + path: /reference/get_getspecificationversion-1 + method: GET +- name: permissions + endpoint: + path: /reference/post_storesetpermissions + method: POST +- name: sets + endpoint: + path: /reference/get-all-sets-1 + method: GET +- name: results + endpoint: + path: /reference/get-results-1 + method: GET +- name: statistics + endpoint: + path: /reference/get-statistics-1 + method: GET +- name: specifications + endpoint: + path: /reference/get_getspecificationversion-1 + method: GET +- name: permissions + endpoint: + path: /reference/post_storesetpermissions + method: POST +- name: analysis_sets + endpoint: + path: /reference/get-all-sets-1 + method: GET +- name: results + endpoint: + path: /reference/get-results-1 + method: GET +- name: statistics + endpoint: + path: /reference/get-statistics-1 + method: GET +- name: specifications + endpoint: + path: /reference/get_getspecificationversion-1 + method: GET +- name: permissions + endpoint: + path: /reference/post_storesetpermissions + method: POST +- name: sets + endpoint: + path: /reference/get-all-sets-1 + method: GET +- name: results + endpoint: + path: /reference/get-results-1 + method: GET +- name: statistics + endpoint: + path: /reference/get-statistics-1 + method: GET +- name: specifications + endpoint: + path: /reference/get_getspecificationversion-1 + method: GET +- name: permissions + endpoint: + path: /reference/post_storesetpermissions + method: POST +- name: sets + endpoint: + path: /sets + method: GET +- name: results + endpoint: + path: /results + method: GET +- name: statistics + endpoint: + path: /statistics + method: GET +- name: specifications + endpoint: + path: /specifications + method: GET +- name: permissions + endpoint: + path: /permissions + method: POST +- name: sets + endpoint: + path: /sets + method: GET +- name: results + endpoint: + path: /results + method: GET +- name: statistics + endpoint: + path: /statistics + method: GET +- name: specifications + endpoint: + path: /specifications + method: GET +- name: permissions + endpoint: + path: /permissions + method: POST +- name: sets + endpoint: + path: /reference/get-all-sets-1 + method: GET +- name: results + endpoint: + path: /reference/get-results-1 + method: GET +- name: statistics + endpoint: + path: /reference/get-statistics-1 + method: GET +- name: specifications + endpoint: + path: /reference/get_getspecificationversion-1 + method: GET +- name: permissions + endpoint: + path: /reference/post_storesetpermissions + method: POST +- name: analysis_sets + endpoint: + path: /api/getAllSets + method: GET + data_selector: array of objects +- name: get_set_definition + endpoint: + path: /api/getSetDefinition + method: GET + params: + setId: required + onlyActiveFields: 'true' +- name: analysis_sets + endpoint: + path: /getAllSets + method: GET + data_selector: array of objects + params: {} +- name: create_set + endpoint: + path: /api/createSet + method: POST +- name: get_set_definition + endpoint: + path: /api/getSetDefinition + method: GET + params: + setId: integer + onlyActiveFields: boolean +- name: results + endpoint: + path: /getResults + method: GET + data_selector: results + params: + setId: maskid + limit: 10000 + offset: 0 + sort: date:desc + filter: {} +- name: create_set + endpoint: + path: /createSet + method: POST +- name: results + endpoint: + path: /api/storeResults + method: POST + data_selector: null + params: {} +- name: results + endpoint: + path: /getResults + method: GET + data_selector: array of objects + params: + setId: integer + limit: integer + offset: integer + sort: string + filter: string + fields: string + includeAttachments: boolean + includeId: boolean + includeLastModificationDate: boolean +- name: get_statistics + endpoint: + path: /getStatistics + method: GET + data_selector: array + params: + setId: required + fields: required + limit: '50000' + filter: none +- name: results + endpoint: + path: /api/storeResults + method: POST + data_selector: results + params: {} +- name: capability_statistics + endpoint: + path: /getSpecificationEvaluation + method: GET + data_selector: array + params: + setId: required + fields: required + limit: '50000' + filter: none +- name: statistics + endpoint: + path: /getStatistics + method: GET + data_selector: array of objects + params: + setId: integer + fields: string + limit: integer + filter: string +- name: specification_versions + endpoint: + path: /getSpecificationVersion + method: GET + data_selector: object +- name: capability_statistics + endpoint: + path: /getSpecificationEvaluation + method: GET + data_selector: array + params: + setId: '' + fields: '' + limit: 50000 + filter: '' +- name: create_specification_version + endpoint: + path: /api/storeSpecificationVersion + method: POST +- name: specification_versions + endpoint: + path: /getSpecificationVersion + method: GET + data_selector: specs + params: + setId: integer +- name: store_permissions + endpoint: + path: /api/storeSetPermissions + method: POST +- name: create_specification_version + endpoint: + path: /api/storeSpecificationVersion + method: POST +- name: get_specification_versions + endpoint: + path: /get_getspecificationversion-1 + method: GET +- name: analysis_sets + endpoint: + path: /getAllSets + method: GET + data_selector: array of objects +- name: store_permissions + endpoint: + path: /storeSetPermissions + method: POST +- name: analysis_sets + endpoint: + path: /api/getAllSets + method: GET + data_selector: array of objects + params: {} +- name: results + endpoint: + path: /getResults + method: GET + data_selector: array of objects + params: + setId: integer + limit: integer + offset: integer + sort: string + filter: string + fields: string + includeAttachments: boolean + includeId: boolean + includeLastModificationDate: boolean +- name: results + endpoint: + path: /getResults + method: GET + data_selector: results + params: {} +- name: descriptive_statistics + endpoint: + path: /api/getStatistics + method: GET + data_selector: array + params: + setId: integer + fields: string + limit: integer + filter: string +- name: get_statistics + endpoint: + path: /getStatistics + method: GET + data_selector: array of objects + params: + setId: required + fields: required + limit: Defaults to 50000 + filter: Defaults to none +- name: get_specification_versions + endpoint: + path: /getSpecificationVersion + method: GET + data_selector: specs + params: + setId: required +- name: get_specification_versions + endpoint: + path: /getSpecificationVersion + method: GET + data_selector: object + params: + setId: integer +- name: store_set_permissions + endpoint: + path: /api/storeSetPermissions + method: POST +- name: store_set_permissions + endpoint: + path: /storeSetPermissions + method: POST + data_selector: boolean +- name: getResults + endpoint: + path: /getResults + method: GET + data_selector: results + params: + setId: + description: The unique id of the analysis set. + required: true + schema: + type: integer + limit: + description: The maximum number of results to output. + required: false + schema: + type: integer + maximum: 10000 + offset: + description: The zero-based offset used for paging. + required: false + schema: + type: integer + default: 0 + sort: + description: Sort field and direction. + required: false + schema: + type: string + default: date:desc +- name: getAllSets + endpoint: + path: /getAllSets + method: GET + data_selector: analysisSets + params: {} +- name: permissions + endpoint: + path: /storeSetPermissions + method: POST + data_selector: permissions + params: + setId: integer + userGroupId: integer + permissions: array of strings +- name: getResults + endpoint: + path: /getResults + method: GET + data_selector: results + params: + setId: + description: The unique id of the analysis set. + required: true + schema: + type: integer + limit: + description: The maximum number of results to output. + required: false + schema: + type: integer + maximum: 10000 + offset: + description: The zero-based offset used for paging. + required: false + schema: + type: integer + default: 0 + sort: + description: Sort field and direction. + required: false + schema: + type: string + default: date:desc + filter: + description: JSON object as a string for filtering results. + required: false + schema: + type: string + fields: + description: Comma separated list of field names. + required: false + schema: + type: string + includeAttachments: + description: Include attachments. Defaults to `false`. + required: false + schema: + type: boolean + default: false + includeId: + description: Include result id. Defaults to `false`. + required: false + schema: + type: boolean + default: false + includeLastModificationDate: + description: Include result last modification date. Defaults to `false`. + required: false + schema: + type: boolean + default: false +- name: getAllSets + endpoint: + path: /getAllSets + method: GET + data_selector: sets + params: + groups: + description: The id(s) or name(s) of the group(s) to retrieve. + required: false + schema: + type: string + names: + description: The name(s) of the analysis set(s) or selection list(s) to retrieve. + required: false + schema: + type: string +- name: storeSetPermissions + endpoint: + path: /storeSetPermissions + method: POST + data_selector: content + params: + required: + - setId + - userGroupId + - permissions +notes: +- AlisQI supports single sign-on based on SAML 2. +- Rate limit defaults 30 calls per minute. This applies to both read and write operations. +- Requests that hit the rate limit will have a status code of `429 Too many requests`. +- We recommend using dedicated tokens per integration scenario. +errors: +- '429 Too many requests: Requests that hit the rate limit.' +- '400 Bad Request: Check request parameters' +- '403 Forbidden: Check permissions' +- '429 Too many requests: Throttle API calls' +- 429 Too many requests +- '400 Bad Request: Check required parameters' +- '429 Too many requests: Throttle your requests' +- 400 Invalid request. +- 401 Unauthorized. The caller does not have permission to create sets. +- '400 Bad Request: Check if required parameters are provided' +- '403 Forbidden: Check permissions for the API' +- '429 Too many requests: Throttle API calls to avoid rate limit' +- '400 Bad Request: Check your query parameters for correctness' +- '403 Forbidden: Ensure you have the right permissions' +- '429 Too many requests: Throttle your requests to avoid limits' +- '429 Too many requests: Rate limit exceeded' +- '403 Forbidden: Verify permissions' +- '403 Forbidden: Ensure proper permissions' +- '429 Too many requests: Reduce request frequency' +- '400 Bad Request: Response body contains error string' +- '403 Forbidden: Response body contains error string' +- '429 Too many requests: Headers contain rate limit information' +- '400 Bad Request: Check your request parameters.' +- '403 Forbidden: Ensure you have the right permissions.' +- '429 Too many requests: Throttle your API calls.' +- '400 Bad Request: Check the request parameters' +- '429 Too many requests: Throttle requests' +- 400 Bad Request +- 403 Forbidden +- '400 Bad Request: Check query parameters' +- '400 Bad Request: Check your request parameters' +- '403 Forbidden: Ensure you have proper permissions' +- '403 Forbidden: Access denied' +- '400 Bad Request: Check request parameters for correctness' +- '403 Forbidden: Verify API permissions' +- '403 Forbidden: Verify access permissions' +- '429 Too many requests: Reduce frequency of requests' +- '400 Bad Request: Invalid request parameters' +- '400: Invalid request.' +- '401: Unauthorized. The caller does not have permission to create sets.' +- '400: BadRequest' +- '403: Forbidden' +- '429: TooManyRequests' +auth_info: + mentioned_objects: [] +client: + base_url: https://subdomain.alisqi.com + headers: + Accept: application/json +source_metadata: null diff --git a/amplemarket/amplemarket-docs.md b/amplemarket/amplemarket-docs.md new file mode 100644 index 00000000..f3c63993 --- /dev/null +++ b/amplemarket/amplemarket-docs.md @@ -0,0 +1,155 @@ +In this guide, we'll set up a complete Amplemarket data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def amplemarket_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.amplemarket.com/v", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + calls,,users,,tasks + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='amplemarket_migrations_pipeline', + destination='duckdb', + dataset_name='amplemarket_migrations_data', + ) + # Load the data + load_info = pipeline.run(amplemarket_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from amplemarket_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Calls: Manage and log calls. +- Users: Retrieve and manage user information. +- Tasks: Handle task management. +- Contacts: Access and manage contact information. +- Mailboxes: Manage email mailboxes. +- Sequences: Create and manage email sequences. +- Lead Lists: Manage lists of leads. + +You will then debug the Amplemarket pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Amplemarket support. + ```shell + dlt init dlthub:amplemarket_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Amplemarket API, as specified in @amplemarket_migrations-docs.yaml + Start with endpoints calls and and skip incremental loading for now. + Place the code in amplemarket_migrations_pipeline.py and name the pipeline amplemarket_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python amplemarket_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Bearer authentication header of the form 'Bearer ', where '' is your auth token is required for accessing the API endpoints. + + To get the appropriate API keys, please visit the original source at https://www.amplemarket.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python amplemarket_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline amplemarket_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset amplemarket_migrations_data + The duckdb destination used duckdb:/amplemarket_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline amplemarket_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("amplemarket_migrations_pipeline").dataset() + # get all table as Pandas frame + data.all.df().head() + ``` + +## Running into errors? + +API requests must be made over HTTPS for security. Certain endpoints may require pagination for large result sets, and care should be taken to manage rate limits. There are also specific requirements for various metadata when logging calls. Additionally, some fields may return null values, and exceeding the maximum lead limit can result in conflicts. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/amplemarket/amplemarket-docs.yaml b/amplemarket/amplemarket-docs.yaml new file mode 100644 index 00000000..f16b5f50 --- /dev/null +++ b/amplemarket/amplemarket-docs.yaml @@ -0,0 +1,1144 @@ +resources: +- name: account_details + endpoint: + path: /api-reference/account-info + method: GET +- name: users + endpoint: + path: /api-reference/users/get-users + method: GET +- name: lead_lists + endpoint: + path: /api-reference/lead-list/get-lead-lists + method: GET +- name: people_enrichment + endpoint: + path: /api-reference/people-enrichment/single-person-enrichment + method: GET +- name: companies_enrichment + endpoint: + path: /api-reference/companies-enrichment/single-company-enrichment + method: GET +- name: mailboxes + endpoint: + path: /api-reference/mailboxes/get-mailboxes + method: GET +- name: email_validation + endpoint: + path: /api-reference/email-validation/start-batch-of-email-validations + method: POST +- name: excluded_domains + endpoint: + path: /api-reference/exclusion-lists/get-excluded-domains + method: GET +- name: sequences + endpoint: + path: /api-reference/sequences/get-sequences + method: GET +- name: calls + endpoint: + path: /api-reference/calls/get-calls + method: GET +- name: contacts + endpoint: + path: /api-reference/contacts/get-contacts + method: GET +- name: tasks + endpoint: + path: /api-reference/tasks/get-tasks + method: GET +- name: find_person + endpoint: + path: /people/find + method: GET + data_selector: '' + params: {} +- name: search_people + endpoint: + path: /people/search + method: POST + data_selector: results + params: {} +- name: company + endpoint: + path: /companies/find + method: GET + data_selector: records + params: {} +- name: email_validation + endpoint: + path: /email-validations + method: POST + data_selector: results +- name: email_validation_polling + endpoint: + path: /email-validations/{{id}} + method: GET + data_selector: results +- name: cancel_email_validation + endpoint: + path: /email-validations/{{id}} + method: PATCH + data_selector: results +- name: find_person + endpoint: + path: /people/find + method: GET + data_selector: results + params: {} +- name: search_people + endpoint: + path: /people/search + method: POST + data_selector: results + params: {} +- name: company + endpoint: + path: /companies/find + method: GET + data_selector: records + params: {} +- name: lead_list + endpoint: + path: /lead-lists + method: GET + data_selector: lead_lists +- name: create_lead_list + endpoint: + path: /lead-lists + method: POST + data_selector: id +- name: poll_lead_list + endpoint: + path: /lead-lists/{{id}} + method: GET + data_selector: id +- name: add_leads + endpoint: + path: /lead-lists/{id}/leads + method: POST + data_selector: total +- name: email_validation + endpoint: + path: /email-validations + method: POST + data_selector: results +- name: email_validation_result + endpoint: + path: /email-validations/{{id}} + method: GET + data_selector: results +- name: cancel_email_validation + endpoint: + path: /email-validations/{{id}} + method: PATCH + data_selector: results +- name: sequences + endpoint: + path: /sequences + method: GET + data_selector: sequences +- name: lead_list + endpoint: + path: /lead-lists/ + method: POST + data_selector: results +- name: poll_lead_list + endpoint: + path: /lead-lists/{{id}} + method: GET + data_selector: results +- name: list_lead_lists + endpoint: + path: /lead-lists + method: GET + data_selector: lead_lists +- name: add_leads + endpoint: + path: /lead-lists/{id}/leads + method: POST + data_selector: total_added_to_lead_list +- name: calls + endpoint: + path: /calls + method: POST + data_selector: '' + params: {} +- name: call_dispositions + endpoint: + path: /calls/dispositions + method: GET + data_selector: '' + params: {} +- name: call_recordings + endpoint: + path: /calls/{id}/recording + method: GET + data_selector: '' + params: {} +- name: sequences + endpoint: + path: /sequences + method: GET + data_selector: sequences + params: {} +- name: call_recording + endpoint: + path: /api-reference/calls/get-call-recording + method: GET +- name: calls + endpoint: + path: /calls + method: POST + data_selector: records + params: {} +- name: call_dispositions + endpoint: + path: /calls/dispositions + method: GET + data_selector: records + params: {} +- name: tasks + endpoint: + path: /tasks/ + method: GET + data_selector: tasks +- name: call_recording + endpoint: + path: /api-reference/calls/get-call-recording + method: GET +- name: event_notifications + endpoint: + path: /webhooks/events + method: POST +- name: workflow_event_notifications + endpoint: + path: /webhooks/events/workflow + method: POST +- name: events + endpoint: + path: /webhooks/events + method: POST +- name: workflow_events + endpoint: + path: /webhooks/events/workflow + method: POST +- name: excluded_domains + endpoint: + path: /excluded-domains + method: GET + data_selector: excluded_domains +- name: excluded_emails + endpoint: + path: /excluded-emails + method: GET + data_selector: excluded_emails +- name: excluded_domains + endpoint: + path: /excluded-domains + method: GET + data_selector: excluded_domains +- name: excluded_emails + endpoint: + path: /excluded-emails + method: GET + data_selector: excluded_emails +- name: account_details + endpoint: + path: /api-reference/account-info + method: GET +- name: users + endpoint: + path: /api-reference/users/get-users + method: GET +- name: lead_list + endpoint: + path: /api-reference/lead-list/get-lead-lists + method: GET +- name: people_enrichment + endpoint: + path: /api-reference/people-enrichment/single-person-enrichment + method: GET +- name: companies_enrichment + endpoint: + path: /api-reference/companies-enrichment/single-company-enrichment + method: GET +- name: search_people + endpoint: + path: /api-reference/searcher/search-people + method: POST +- name: mailboxes + endpoint: + path: /api-reference/mailboxes/get-mailboxes + method: GET +- name: email_validation + endpoint: + path: /api-reference/email-validation/start-batch-of-email-validations + method: POST +- name: exclusion_lists + endpoint: + path: /api-reference/exclusion-lists/create-excluded-emails + method: POST +- name: sequences + endpoint: + path: /api-reference/sequences/get-sequences + method: GET +- name: calls + endpoint: + path: /api-reference/calls/get-calls + method: GET +- name: contacts + endpoint: + path: /api-reference/contacts/get-contacts + method: GET +- name: tasks + endpoint: + path: /api-reference/tasks/get-tasks + method: GET +- name: phone_numbers + endpoint: + path: /api-reference/phone-numbers/review-phone-number + method: POST +- name: account_details + endpoint: + path: /api-reference/account-info + method: GET +- name: users + endpoint: + path: /api-reference/users/get-users + method: GET +- name: lead_list + endpoint: + path: /api-reference/lead-list/get-lead-lists + method: GET +- name: people_enrichment + endpoint: + path: /api-reference/people-enrichment/single-person-enrichment + method: GET +- name: companies_enrichment + endpoint: + path: /api-reference/companies-enrichment/single-company-enrichment + method: GET +- name: search_people + endpoint: + path: /api-reference/searcher/search-people + method: POST +- name: mailboxes + endpoint: + path: /api-reference/mailboxes/get-mailboxes + method: GET +- name: email_validation + endpoint: + path: /api-reference/email-validation/start-batch-of-email-validations + method: POST +- name: exclusion_lists + endpoint: + path: /api-reference/exclusion-lists/create-excluded-emails + method: POST +- name: sequences + endpoint: + path: /api-reference/sequences/get-sequences + method: GET +- name: calls + endpoint: + path: /api-reference/calls/get-calls + method: GET +- name: contacts + endpoint: + path: /api-reference/contacts/get-contacts + method: GET +- name: tasks + endpoint: + path: /api-reference/tasks/get-tasks + method: GET +- name: phone_numbers + endpoint: + path: /api-reference/phone-numbers/review-phone-number + method: POST +- name: account_details + endpoint: + path: /api-reference/account-info + method: GET +- name: users + endpoint: + path: /api-reference/users/get-users + method: GET +- name: lead_lists + endpoint: + path: /api-reference/lead-list/get-lead-lists + method: GET +- name: people_enrichment + endpoint: + path: /api-reference/people-enrichment/single-person-enrichment + method: GET +- name: companies_enrichment + endpoint: + path: /api-reference/companies-enrichment/single-company-enrichment + method: GET +- name: search_people + endpoint: + path: /api-reference/searcher/search-people + method: POST +- name: mailboxes + endpoint: + path: /api-reference/mailboxes/get-mailboxes + method: GET +- name: email_validation + endpoint: + path: /api-reference/email-validation/start-batch-of-email-validations + method: POST +- name: exclusion_lists + endpoint: + path: /api-reference/exclusion-lists/get-excluded-emails + method: GET +- name: sequences + endpoint: + path: /api-reference/sequences/get-sequences + method: GET +- name: calls + endpoint: + path: /api-reference/calls/get-calls + method: GET +- name: contacts + endpoint: + path: /api-reference/contacts/get-contacts + method: GET +- name: tasks + endpoint: + path: /api-reference/tasks/get-tasks + method: GET +- name: phone_numbers + endpoint: + path: /api-reference/phone-numbers/review-phone-number + method: POST +- name: account_details + endpoint: + path: /api-reference/account-info + method: GET +- name: users + endpoint: + path: /api-reference/users/get-users + method: GET +- name: lead_list + endpoint: + path: /api-reference/lead-list/get-lead-lists + method: GET +- name: people_enrichment + endpoint: + path: /api-reference/people-enrichment/single-person-enrichment + method: GET +- name: companies_enrichment + endpoint: + path: /api-reference/companies-enrichment/single-company-enrichment + method: GET +- name: search_people + endpoint: + path: /api-reference/searcher/search-people + method: POST +- name: mailboxes + endpoint: + path: /api-reference/mailboxes/get-mailboxes + method: GET +- name: email_validation + endpoint: + path: /api-reference/email-validation/start-batch-of-email-validations + method: POST +- name: exclusion_lists + endpoint: + path: /api-reference/exclusion-lists/get-excluded-emails + method: GET +- name: sequences + endpoint: + path: /api-reference/sequences/get-sequences + method: GET +- name: calls + endpoint: + path: /api-reference/calls/get-calls + method: GET +- name: contacts + endpoint: + path: /api-reference/contacts/get-contacts + method: GET +- name: tasks + endpoint: + path: /api-reference/tasks/get-tasks + method: GET +- name: phone_numbers + endpoint: + path: /api-reference/phone-numbers/review-phone-number + method: POST +- name: account_details + endpoint: + path: /api-reference/account-info + method: GET +- name: users + endpoint: + path: /api-reference/users/get-users + method: GET +- name: lead_lists + endpoint: + path: /api-reference/lead-list/get-lead-lists + method: GET +- name: single_person_enrichment + endpoint: + path: /api-reference/people-enrichment/single-person-enrichment + method: GET +- name: single_company_enrichment + endpoint: + path: /api-reference/companies-enrichment/single-company-enrichment + method: GET +- name: search_people + endpoint: + path: /api-reference/searcher/search-people + method: POST +- name: mailboxes + endpoint: + path: /api-reference/mailboxes/get-mailboxes + method: GET +- name: email_validations + endpoint: + path: /api-reference/email-validation/start-batch-of-email-validations + method: POST +- name: excluded_domains + endpoint: + path: /api-reference/exclusion-lists/get-excluded-domains + method: GET +- name: sequences + endpoint: + path: /api-reference/sequences/get-sequences + method: GET +- name: calls + endpoint: + path: /api-reference/calls/get-calls + method: GET +- name: contacts + endpoint: + path: /api-reference/contacts/get-contacts + method: GET +- name: tasks + endpoint: + path: /api-reference/tasks/get-tasks + method: GET +- name: account_details + endpoint: + path: /api-reference/account-info + method: GET +- name: users + endpoint: + path: /api-reference/users/get-users + method: GET +- name: lead_lists + endpoint: + path: /api-reference/lead-list/get-lead-lists + method: GET +- name: people_enrichment + endpoint: + path: /api-reference/people-enrichment/single-person-enrichment + method: GET +- name: companies_enrichment + endpoint: + path: /api-reference/companies-enrichment/single-company-enrichment + method: GET +- name: search_people + endpoint: + path: /api-reference/searcher/search-people + method: POST +- name: mailboxes + endpoint: + path: /api-reference/mailboxes/get-mailboxes + method: GET +- name: email_validation + endpoint: + path: /api-reference/email-validation/start-batch-of-email-validations + method: POST +- name: exclusion_lists + endpoint: + path: /api-reference/exclusion-lists/create-excluded-emails + method: POST +- name: sequences + endpoint: + path: /api-reference/sequences/get-sequences + method: GET +- name: calls + endpoint: + path: /api-reference/calls/get-calls + method: GET +- name: contacts + endpoint: + path: /api-reference/contacts/get-contacts + method: GET +- name: tasks + endpoint: + path: /api-reference/tasks/get-tasks + method: GET +- name: phone_numbers + endpoint: + path: /api-reference/phone-numbers/review-phone-number + method: POST +- name: account_details + endpoint: + path: /account-info + method: GET + data_selector: id + params: {} +- name: account_details + endpoint: + path: /account-info + method: GET + data_selector: id +- name: users + endpoint: + path: /users + method: GET + data_selector: users + params: + page[size]: '20' +- name: users + endpoint: + path: /users + method: GET + data_selector: users + params: {} +- name: lead_lists + endpoint: + path: /lead-lists + method: GET + data_selector: lead_lists + params: {} +- name: lead_lists + endpoint: + path: /lead-lists + method: GET + data_selector: lead_lists +- name: lead_list + endpoint: + path: /lead-lists + method: POST + data_selector: lead_list + params: {} +- name: lead_list + endpoint: + path: /lead-lists + method: POST + data_selector: '' + params: {} +- name: get_lead_lists + endpoint: + path: /lead-lists + method: GET + data_selector: '' + params: {} +- name: retrieve_lead_list + endpoint: + path: /lead-lists/{id} + method: GET + data_selector: '' + params: {} +- name: add_leads_to_list + endpoint: + path: /lead-lists/add-leads + method: POST + data_selector: '' + params: {} +- name: lead_list + endpoint: + path: /lead-lists/{id} + method: GET + data_selector: leads + params: {} +- name: lead_list + endpoint: + path: /lead-lists/{id} + method: GET + data_selector: records +- name: add_leads_to_list + endpoint: + path: /lead-lists/{id}/leads + method: POST +- name: add_leads_to_list + endpoint: + path: /lead-lists/{id}/leads + method: POST + data_selector: total_added_to_lead_list + params: {} +- name: single_person_enrichment + endpoint: + path: /people/find + method: GET + data_selector: records +- name: single_person_enrichment + endpoint: + path: /people/find + method: GET + data_selector: person +- name: person + endpoint: + path: /people/find + method: GET + data_selector: records + params: {} +- name: person + endpoint: + path: /people/find + method: GET + data_selector: records + params: {} +- name: single_company_enrichment + endpoint: + path: /companies/find + method: GET +- name: companies_find + endpoint: + path: /companies/find + method: GET + data_selector: null + params: {} +- name: single_company_enrichment + endpoint: + path: /companies/find + method: GET +- name: search_people + endpoint: + path: /people/search + method: POST + data_selector: data +- name: companies + endpoint: + path: /companies/find + method: GET + data_selector: records + params: {} +- name: person + endpoint: + path: /person_search_result + method: GET + data_selector: results + params: {} +- name: search_people + endpoint: + path: /people/search + method: POST + data_selector: records +- name: person + endpoint: + path: /person_search_result + method: GET + data_selector: results +- name: person_search + endpoint: + path: /people/search + method: POST + data_selector: results + params: + page: 1 + page_size: 5 +- name: mailboxes + endpoint: + path: /mailboxes + method: GET + data_selector: mailboxes + params: {} +- name: people_search + endpoint: + path: /people/search + method: POST + data_selector: results + params: + page: 1 + page_size: 5 +- name: mailbox + endpoint: + path: /mailboxes/{id} + method: PATCH + data_selector: '' + params: + daily_email_limit: 123 +- name: mailboxes + endpoint: + path: /mailboxes + method: GET + data_selector: mailboxes +- name: email_validation + endpoint: + path: /email-validations + method: POST + data_selector: results +- name: retrieve_email_validation_results + endpoint: + path: /email-validations/{id} + method: GET +- name: mailbox + endpoint: + path: /mailboxes/{id} + method: PATCH + data_selector: '' + params: + daily_email_limit: 123 +- name: email_validation_results + endpoint: + path: /email-validations/{id} + method: GET + data_selector: results +- name: email_validation + endpoint: + path: /email-validations + method: POST + data_selector: '' + params: {} +- name: cancel_email_validation + endpoint: + path: /email-validations/{id} + method: PATCH + data_selector: results +- name: email_validation_results + endpoint: + path: /email-validations/{id} + method: GET + data_selector: results +- name: excluded_emails + endpoint: + path: /excluded-emails + method: POST + data_selector: existing@domain.com, new@domain.com +- name: cancel_email_validations + endpoint: + path: /email-validations/{id} + method: PATCH + data_selector: id +- name: excluded_domains + endpoint: + path: /excluded-domains + method: POST + data_selector: null + params: {} +- name: excluded_emails + endpoint: + path: /excluded-emails + method: POST + data_selector: null + params: {} +- name: delete_email_exclusions + endpoint: + path: /excluded-emails + method: DELETE + data_selector: response + params: {} +- name: excluded_domains + endpoint: + path: /excluded-domains + method: POST + data_selector: existing_domain.com, new_domain.com + params: {} +- name: delete_domain_exclusions + endpoint: + path: /excluded-domains + method: DELETE + data_selector: null + params: {} +- name: delete_email_exclusions + endpoint: + path: /excluded-emails + method: DELETE + data_selector: '' + params: {} +- name: excluded_domains + endpoint: + path: /excluded-domains + method: GET + data_selector: excluded_domains + params: + page[size]: '2000' +- name: delete_domain_exclusions + endpoint: + path: /excluded-domains + method: DELETE + data_selector: success + params: {} +- name: excluded_emails + endpoint: + path: /excluded-emails + method: GET + data_selector: excluded_emails +- name: excluded_domains + endpoint: + path: /excluded-domains + method: GET + data_selector: excluded_domains +- name: sequences + endpoint: + path: /sequences + method: GET + data_selector: sequences +- name: excluded_emails + endpoint: + path: /excluded-emails + method: GET + data_selector: excluded_emails + params: + page[size]: '2000' +- name: add_leads + endpoint: + path: /sequences/{id}/leads + method: POST +- name: sequences + endpoint: + path: /sequences + method: GET + data_selector: sequences + params: {} +- name: calls + endpoint: + path: /calls + method: GET + data_selector: calls + params: {} +- name: add_leads + endpoint: + path: /sequences/{id}/leads + method: POST + data_selector: leads +- name: calls + endpoint: + path: /calls + method: POST + data_selector: id + params: {} +- name: calls + endpoint: + path: /calls + method: GET + data_selector: calls + params: {} +- name: list_dispositions + endpoint: + path: /calls/dispositions + method: GET + data_selector: dispositions +- name: calls + endpoint: + path: /calls + method: POST + data_selector: null + params: {} +- name: get_call_recording + endpoint: + path: /calls/{id}/recording + method: GET +- name: dispositions + endpoint: + path: /calls/dispositions + method: GET + data_selector: dispositions +- name: contact + endpoint: + path: /contacts/email/{email} + method: GET + data_selector: records +- name: get_call_recording + endpoint: + path: /calls/{id}/recording + method: GET +- name: contact + endpoint: + path: /contacts/{id} + method: GET + data_selector: records +- name: contact + endpoint: + path: /contacts/email/{email} + method: GET + data_selector: records +- name: contacts + endpoint: + path: /contacts + method: GET + data_selector: contacts + params: + ids[]: string[] +- name: contact + endpoint: + path: /contacts/{id} + method: GET + data_selector: records +- name: complete_task + endpoint: + path: /tasks/{id}/complete + method: POST + data_selector: null + params: {} +- name: contacts + endpoint: + path: /contacts + method: GET + data_selector: contacts + params: + ids[]: string[] +- name: task_statuses + endpoint: + path: /tasks/statuses + method: GET + data_selector: statuses +- name: complete_task + endpoint: + path: /tasks/{id}/complete + method: POST + data_selector: null + params: {} +- name: task_types + endpoint: + path: /tasks/types + method: GET + data_selector: types +- name: task_statuses + endpoint: + path: /tasks/statuses + method: GET + data_selector: statuses +- name: tasks + endpoint: + path: /tasks + method: GET + data_selector: tasks + params: + user_id: required +- name: task_types + endpoint: + path: /tasks/types + method: GET + data_selector: types +- name: skip_task + endpoint: + path: /tasks/{id}/skip + method: POST +- name: review_phone_number + endpoint: + path: /phone_numbers/{id}/review + method: POST + data_selector: response +- name: tasks + endpoint: + path: /tasks + method: GET + data_selector: tasks + params: {} +- name: skip_task + endpoint: + path: /tasks/{id}/skip + method: POST +- name: review_phone_number + endpoint: + path: /phone_numbers/{id}/review + method: POST + data_selector: '200' +notes: +- Certain endpoints that return large number of results will require pagination. +- The next and previous links will only appear when there are items available. +- All API requests must be made over HTTPS to keep your data secure. +- API requests must be made over HTTPS to keep your data secure. +- API requests without authentication will fail. +- A batch of emails can be sent for validation, up to 100,000 entries. +- If results contain more than 100 entries, pagination is required. +- It is possible for the request to time out when revealing email addresses or phone + numbers. +- You can add up to 10,000 leads at a time, but each Lead List can have a maximum + of 20,000 leads. +- Sequences must be created by users via web app, while leads can be programmatically + added into existing sequences. +- If the result set contains more entries than the page size, pagination is required. +- Each Lead List can have a maximum of 20,000 leads. +- You can add up to 10,000 leads at a time. +- Logging a call requires various metadata including duration, transcription, recording + URLs, and dispositions. +- Phone call recordings typically contain sensitive data. Make sure you store the + recording securely to prevent access from unauthorized parties. +- Amplemarket will notify you of events when configured. +- Bearer authentication header of the form `Bearer `, where `` is your + auth token. +- Bearer authentication header of the form 'Bearer ', where '' is your + auth token. +- Bearer authentication header of the form `Bearer ` +- You can add up to 10,000 leads at a time. However, each Lead List can have a maximum + of 60,000 leads. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- 'Credit consumption: 0.5 email credits when a person is found, charged at most once + per 24 hours; 1 email credit when an email is revealed, only charged once; 1 phone + credit when a phone number is revealed, only charged once.' +- Uses OAuth2 with Bearer token +- Some fields may return null values. +- Some fields may return null values +- Authorization header of the form `Bearer `, where `` is your auth + token. +- Authorization header of the form `Bearer ` +- Authorization is required in the header as Bearer token. +- Authorization header required in the form 'Bearer ' +- Authorization is required in the header as Bearer token +- Authorization header of the form `Bearer ` is required. +- Authorization required in the header as Bearer token +- Requires Bearer authentication header of the form `Bearer ` +- Authorization header of the form 'Bearer ', where '' is your auth + token. +- Authorization header of the form 'Bearer ' is required. +- This endpoint is rate-limited to 50 requests per hour +- 'Only recordings that have external: false can be retrieved via this endpoint' +- Bearer authentication header of the form `Bearer ` is required. +errors: +- '429 Too Many Requests: Users who send many requests in quick succession might see + error responses.' +- '408 Request Timeout: We are processing your request, try again later.' +- '409 Conflict: When the maximum limit of leads is reached.' +- 'invalid_sequence_status: The sequence is in a status that does not allow adding + new leads.' +- 'missing_lead_field: The sequence requires a lead data field that was not provided + in the request.' +- '409 Conflict: When the lead limit is reached.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'invalid_sequence_status: The sequence is in a status that does not allow adding + new leads with this method.' +- 'max_leads_threshold_reached: Adding all the leads would make the sequence go over + the account-wide per-sequence lead limit.' +- '422: Unsupported Value: Task is in a state prevents it from being executed manually' +- 'internal_server_error: An unexpected error occurred' +- 'insufficient_credits: The account doesn’t have enough credits to continue the operation' +- 'person_not_found: A matching person was not found in our database' +- 'unavailable_for_legal_reasons: A matching person was found in our database, but + has been removed due to privacy reasons' +- 'unsupported_value: Request has a field containing a value unsupported by the operation; + more details within the corresponding error object' +- 'missing_field: Request is missing a mandatory field; more details within the corresponding + error object' +- 'unauthorized: The API credentials used are either invalid, or the user is not authorized + to perform the operation' +- '401 Unauthorized: Bearer authentication header of the form `Bearer ` required' +- '401 Unauthorized: Bearer authentication header of the form `Bearer `' +- 400 Bad Request +- 200 OK +- '202: Lead List accepted' +- '409 HTTP status code: Returned when approaching or hitting the maximum lead limit.' +- '401 Unauthorized: Check token validity' +- 200 Ok +- '400: Bad Request' +- '404: Not Found' +- '200: Successful' +- 200 Successful +- 'not_found: not_found' +- 'unsupported: unsupported' +- 'not_found: Excluded email not found' +- 'unsupported: Email is unsupported' +- '400' +- '422' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- 404 Not Found +auth_info: + mentioned_objects: + - Bearer authentication + - Bearer +client: + base_url: https://api.amplemarket.com + auth: + type: apikey + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/argo/argo-docs.md b/argo/argo-docs.md new file mode 100644 index 00000000..864572fb --- /dev/null +++ b/argo/argo-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete ARGO Web API data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def argo_web_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "http://rpm.hellasgrid.gr/mash/centos6-arstats/v2/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + poem,,weights,,downtimes + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='argo_web_migration_pipeline', + destination='duckdb', + dataset_name='argo_web_migration_data', + ) + # Load the data + load_info = pipeline.run(argo_web_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from argo_web_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Poem: Provides access to poetry resources. +- Weights: Accesses weight-related data. +- Downtimes: Information about service downtimes. +- Guides: Documentation and guides for various functionalities. +- API: General API endpoints for interaction. + +You will then debug the ARGO Web API pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with ARGO Web API support. + ```shell + dlt init dlthub:argo_web_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for ARGO Web API API, as specified in @argo_web_migration-docs.yaml + Start with endpoints poem and and skip incremental loading for now. + Place the code in argo_web_migration_pipeline.py and name the pipeline argo_web_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python argo_web_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The ARGO Web API requires a valid X.509v3 certificate and private key for authentication, with plans to support bearer tokens in future versions. + + To get the appropriate API keys, please visit the original source at http://rpm.hellasgrid.gr/mash/centos6-arstats/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python argo_web_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline argo_web_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset argo_web_migration_data + The duckdb destination used duckdb:/argo_web_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline argo_web_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("argo_web_migration_pipeline").dataset() + # get oe table as Pandas frame + data.oe.df().head() + ``` + +## Running into errors? + +Ensure that a valid TLS connection is established and that the necessary certificates are installed. The system can only be accessed using specific credentials, and configurations for components may require additional packages like avro. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/argo/argo-docs.yaml b/argo/argo-docs.yaml new file mode 100644 index 00000000..df413a60 --- /dev/null +++ b/argo/argo-docs.yaml @@ -0,0 +1,409 @@ +resources: +- name: downtimes + endpoint: + path: /gocdbpi/downtimes + method: GET + data_selector: records + params: {} +- name: poem + endpoint: + path: /poem + method: GET + data_selector: records + params: {} +- name: weights + endpoint: + path: /weights + method: GET + data_selector: records + params: {} +- name: EGI_Critical + endpoint: + path: /var/lib/argo-connectors/EGI/EGI_Critical/group_groups_2015_04_07.avro + method: GET + data_selector: records + params: {} +- name: EGI_Cloudmon + endpoint: + path: /var/lib/argo-connectors/EGI/EGI_Cloudmon/group_endpoints_2015_04_07.avro + method: GET + data_selector: records + params: {} +- name: BioMed_Critical + endpoint: + path: /var/lib/argo-connectors/EGI/BioMed_Critical/group_groups_2015_04_07.avro + method: GET + data_selector: records + params: {} +- name: BioMed_Cloudmon + endpoint: + path: /var/lib/argo-connectors/EGI/BioMed_Cloudmon/group_endpoints_2015_04_07.avro + method: GET + data_selector: records + params: {} +- name: downtimes_EGI_Cloudmon + endpoint: + path: /var/lib/argo-connectors/EGI/EGI_Cloudmon/downtimes_2015_04_07.avro + method: GET + data_selector: records + params: {} +- name: downtimes_EGI_Critical + endpoint: + path: /var/lib/argo-connectors/EGI/EGI_Critical/downtimes_2015_04_07.avro + method: GET + data_selector: records + params: {} +- name: downtimes_BioMed_Cloudmon + endpoint: + path: /var/lib/argo-connectors/EGI/BioMed_Cloudmon/downtimes_2015_04_07.avro + method: GET + data_selector: records + params: {} +- name: downtimes_BioMed_Critical + endpoint: + path: /var/lib/argo-connectors/EGI/BioMed_Critical/downtimes_2015_04_07.avro + method: GET + data_selector: records + params: {} +- name: gocdb + endpoint: + path: /gocdb/api + method: GET + data_selector: records + params: {} +- name: poem + endpoint: + path: /poem/api + method: GET + data_selector: records + params: {} +- name: weights + endpoint: + path: /weights/api + method: GET + data_selector: records + params: {} +- name: downtimes + endpoint: + path: /downtimes/api + method: GET + data_selector: records + params: {} +- name: profiles + endpoint: + path: /api/0.2/json/profiles/ + method: GET + data_selector: profiles +- name: metrics_in_profiles + endpoint: + path: /api/0.2/json/metrics_in_profiles/ + method: GET + data_selector: metrics +- name: metric_results + endpoint: + path: /api/v2/metric_results + method: GET + data_selector: results +- name: EGI_Critical + endpoint: + path: /var/lib/argo-connectors/EGI/EGI_Critical/group_groups_2015_04_07.avro + method: GET + data_selector: records + params: + incremental: updated_at +- name: EGI_Cloudmon + endpoint: + path: /var/lib/argo-connectors/EGI/EGI_Cloudmon/group_endpoints_2015_04_07.avro + method: GET + data_selector: records + params: + incremental: updated_at +- name: BioMed_Critical + endpoint: + path: /var/lib/argo-connectors/EGI/BioMed_Critical/group_groups_2015_04_07.avro + method: GET + data_selector: records + params: + incremental: updated_at +- name: BioMed_Cloudmon + endpoint: + path: /var/lib/argo-connectors/EGI/BioMed_Cloudmon/poem_sync_2015_04_07.avro + method: GET + data_selector: records + params: + incremental: updated_at +- name: profiles + endpoint: + path: /api/0.2/json/profiles/ + method: GET + data_selector: profiles +- name: metrics_in_profiles + endpoint: + path: /api/0.2/json/metrics_in_profiles/ + method: GET + data_selector: metrics + params: + mandatory: + vo_name: VO + optional: + profile_name: PROFILE +- name: EGI-trustanchors + endpoint: + path: /etc/yum.repos.d/EGI-trustanchors.repo + method: GET + data_selector: records + params: {} +- name: epel-release + endpoint: + path: /etc/yum.repos.d/epel-release.repo + method: GET + data_selector: records + params: {} +- name: cloudera-cdh5 + endpoint: + path: /etc/yum.repos.d/cloudera-cdh5.repo + method: GET + data_selector: records + params: {} +- name: mongodb-org-3.0 + endpoint: + path: /etc/yum.repos.d/mongodb_3.repo + method: GET + data_selector: records + params: {} +- name: Consumer Service + endpoint: + path: /guides/consumer/ + method: GET +- name: Connectors + endpoint: + path: /guides/egi-connectors/ + method: GET +- name: Compute Engine + endpoint: + path: /guides/argo-compute-engine/ + method: GET +- name: Web API + endpoint: + path: /guides/api/ + method: GET +- name: Web UI + endpoint: + path: /guides/webui/ + method: GET +- name: EGI-trustanchors + endpoint: + path: /etc/yum.repos.d/EGI-trustanchors.repo + method: GET + data_selector: '' + params: {} +- name: EPEL + endpoint: + path: /etc/yum.repos.d/epel-release + method: GET + data_selector: '' + params: {} +- name: Cloudera-cdh5 + endpoint: + path: /etc/yum.repos.d/cloudera-cdh5.repo + method: GET + data_selector: '' + params: {} +- name: mongodb-org-3.0 + endpoint: + path: /etc/yum.repos.d/mongodb_3.repo + method: GET + data_selector: '' + params: {} +- name: Consumer service + endpoint: + path: /guides/consumer/ + method: GET + data_selector: services + params: {} +- name: Compute Engine + endpoint: + path: /guides/compute/ + method: GET + data_selector: components + params: {} +- name: Web API service + endpoint: + path: /guides/api/ + method: GET + data_selector: services + params: {} +- name: Web UI service + endpoint: + path: /guides/webui/ + method: GET + data_selector: services + params: {} +- name: consumer_service + endpoint: + path: /guides/consumer/ + method: GET +- name: connectors + endpoint: + path: /guides/egi-connectors/ + method: GET +- name: Datastore + endpoint: + path: /etc/mongod.conf + method: GET + data_selector: records + params: {} +- name: Web API service + endpoint: + path: /etc/argo-web-api.conf + method: GET + data_selector: records + params: {} +- name: web_api_service + endpoint: + path: /argo-web-api + method: GET +- name: Consumer service + endpoint: + path: /guides/consumer/ + method: GET + data_selector: services + params: {} +- name: Compute Engine + endpoint: + path: /guides/compute/ + method: GET + data_selector: engine + params: {} +- name: EGI Connectors + endpoint: + path: /guides/egi-connectors/ + method: GET + data_selector: connectors + params: {} +- name: downtimes + endpoint: + path: /downtimes + method: GET + data_selector: records +- name: weights + endpoint: + path: /weights + method: GET + data_selector: records +- name: poem + endpoint: + path: /poem + method: GET + data_selector: records +- name: downtimes + endpoint: + path: /downtimes + method: GET + data_selector: results +- name: weights + endpoint: + path: /weights + method: GET + data_selector: results +- name: poem_profiles + endpoint: + path: /poem_profiles + method: GET + data_selector: results +- name: JOB_EGICritical + endpoint: + path: /var/lib/argo-connectors/EGI/EGI_Critical/group_groups_2015_04_07.avro + method: GET + data_selector: records + params: + incremental: Certification:Uncertified, Infrastructure:Test, Scope:EGI +- name: JOB_EGICloudmon + endpoint: + path: /var/lib/argo-connectors/EGI/EGI_Cloudmon/group_endpoints_2015_04_07.avro + method: GET + data_selector: records + params: + incremental: Monitored:Y, Scope:EGI, Production:N +- name: JOB_BioMedCritical + endpoint: + path: /var/lib/argo-connectors/EGI/BioMed_Critical/group_groups_2015_04_07.avro + method: GET + data_selector: records + params: + incremental: Type:OPS_Site +- name: JOB_BioMedCloudmon + endpoint: + path: /var/lib/argo-connectors/EGI/BioMed_Cloudmon/poem_sync_2015_04_07.avro + method: GET + data_selector: records + params: + incremental: CLOUD-MON +- name: JOB_EGICritical + endpoint: + path: /var/lib/argo-connectors/EGI/EGI_Critical/group_groups_2015_04_07.avro + method: GET + data_selector: records + params: + TopoSelectGroupOfGroups: Certification:Uncertified, Infrastructure:Test, Scope:EGI +- name: JOB_EGICloudmon + endpoint: + path: /var/lib/argo-connectors/EGI/EGI_Cloudmon/group_endpoints_2015_04_07.avro + method: GET + data_selector: records + params: + TopoSelectGroupOfEndpoints: Monitored:Y, Scope:EGI, Production:N +- name: JOB_BioMedCritical + endpoint: + path: /var/lib/argo-connectors/EGI/BioMed_Critical/group_groups_2015_04_07.avro + method: GET + data_selector: records + params: + TopoSelectGroupOfGroups: Type:OPS_Site +- name: JOB_BioMedCloudmon + endpoint: + path: /var/lib/argo-connectors/EGI/BioMed_Cloudmon/poem_sync_2015_04_07.avro + method: GET + data_selector: records + params: + Profiles: CLOUD-MON +notes: +- The ARGO Web API uses TLS connections. +- Valid X.509v3 certificate and private key are required. +- The connectors are configured to fetch information on a daily basis. +- Components require avro package to be installed/available. +- Each component generates output file in an avro binary format. +- Data is synced from Operations Portal and GOCDB. +- This is an initial implementation of the user authentication and authorization. +- In the next versions of the ARGO Messaging service we are going to provide support + for both bear and OpenID Connect tokens for the API access. +- The ARGO Compute Engine can support multiple tenants. +- Service Availability is the fraction of time a service was in the UP Period during + the known interval. +- based on Lavoisier Framework - http://software.in2p3.fr/lavoisier +- 'prerequisites : a server certificate and java' +- Data is synced from Operations Portal and GOCDB every hour as part of a cron job. +- For a production scale environment we propose three VMs and a Hadoop cluster (distributed + version). +- One is strongly encouraged to use the Ansible based deployment roles available on + github. +- For production scale environment, three VMs and a Hadoop cluster are proposed. +- The argo-egi-connectors package is configured to fetch information on a daily basis. +- For all nodes you will need an x509 key/certificate pair in order to proceed. +- For configuration details of the connectors visit the EGI Connectors page. +- The argo-egi-consumer can connect to multiple message brokers. +- The argo-egi-connectors package installs components needed for fetching complimentary + to the Compute Engine data from sources of truth. +- 'The proposed setup in this case is the following: Node 1 (Consumer service, Connectors + and Compute Engine/Hadoop client), Node 2 (Datastore and Web API services), Node + 3 (Web UI service).' +- Jobs are configured to select specific groups and endpoints based on defined criteria. +errors: +- '401 Unauthorized: Certificate is needed for access to GOCDB feed.' +auth_info: + mentioned_objects: [] +client: + base_url: http://rpm.hellasgrid.gr/mash/centos6-arstats/$basearch + headers: + Accept: application/json +source_metadata: null diff --git a/atdata/atdata-docs.md b/atdata/atdata-docs.md new file mode 100644 index 00000000..0572fe03 --- /dev/null +++ b/atdata/atdata-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete AtData data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def atdata_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.atdata.com/v5/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + ae,,ev,,ip + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='atdata_migrations_pipeline', + destination='duckdb', + dataset_name='atdata_migrations_data', + ) + # Load the data + load_info = pipeline.run(atdata_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from atdata_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- List API: Manage and retrieve email list data. +- Email Validation: Validate and verify email addresses in real-time. +- List Guard: Manage lists and check list status. + +You will then debug the AtData pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with AtData support. + ```shell + dlt init dlthub:atdata_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for AtData API, as specified in @atdata_migrations-docs.yaml + Start with endpoints ae and and skip incremental loading for now. + Place the code in atdata_migrations_pipeline.py and name the pipeline atdata_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python atdata_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is done using an API key that must be included in the header of requests. The API key must be treated like a password and should not be exposed in public areas. + + To get the appropriate API keys, please visit the original source at https://www.atdata.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python atdata_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline atdata_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset atdata_migrations_data + The duckdb destination used duckdb:/atdata_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline atdata_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("atdata_migrations_pipeline").dataset() + # get table as Pandas frame + data..df().head() + ``` + +## Running into errors? + +Ensure filenames are unique and in CSV format with a single column of email addresses. Updates may take up to 24 hours to post, and requests must be made over HTTPS. Treat API keys with care to avoid unauthorized access. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/atdata/atdata-docs.yaml b/atdata/atdata-docs.yaml new file mode 100644 index 00000000..91f70036 --- /dev/null +++ b/atdata/atdata-docs.yaml @@ -0,0 +1,663 @@ +resources: +- name: most_recent_results + endpoint: + path: /listguard/results + method: GET + data_selector: Email,StatusCode + params: {} +- name: recent_runs + endpoint: + path: /listguard + method: GET + data_selector: list_id,records,created_at + params: {} +- name: results_for_specific_list + endpoint: + path: /list//results + method: GET + data_selector: Email,StatusCode + params: {} +- name: recent_results + endpoint: + path: /listguard/results + method: GET + data_selector: results +- name: recent_runs + endpoint: + path: /listguard + method: GET + data_selector: runs +- name: results_for_specific_list + endpoint: + path: /list//results + method: GET + data_selector: results +- name: list + endpoint: + path: /v5/list + method: POST + data_selector: null + params: + type: monitoring + action: add + email: '1' +- name: update_monitoring_file + endpoint: + path: /v5/list + method: POST + data_selector: list_id + params: + type: monitoring + action: add + email: '1' +- name: check_status + endpoint: + path: /v5/list/{list_id} + method: GET + data_selector: list_id + params: {} +- name: update_suppression_file + endpoint: + path: /v5/list + method: POST + data_selector: '' + params: + type: suppression + action: add + email: '1' + name: LOAD_FILE.csv +- name: retrieve_list_status + endpoint: + path: /v5/list/ + method: GET + data_selector: '' + params: {} +- name: suppression_file + endpoint: + path: /v5/list + method: POST + data_selector: list_id + params: + type: suppression + action: add + email: '1' +- name: list_status + endpoint: + path: /v5/list/ + method: GET + data_selector: list_id + params: {} +- name: wvi_output + endpoint: + path: /wvi_output/ + method: GET +- name: WVI JavaScript + endpoint: + path: /docs/atdata-wvi-pixel + method: GET + data_selector: records +- name: wvi_output + endpoint: + path: /wvi_output/ + method: GET +- name: xtarget + endpoint: + path: /adpixel.gif + method: GET + data_selector: query_string + params: + eqs: encrypted_query_string + md5_email: email_hash +- name: list + endpoint: + path: /list + method: POST + data_selector: '' + params: + type: targeting + action: add + md5_email: '1' + name: LOAD_FILE.csv +- name: list_status + endpoint: + path: /list/{list_id} + method: GET + data_selector: '' + params: {} +- name: list + endpoint: + path: /v5/list + method: POST + data_selector: '' + params: + type: targeting + action: add + md5_email: '1' +- name: list_status + endpoint: + path: /v5/list/{list_id} + method: GET + data_selector: '' + params: {} +- name: file_formatting + endpoint: + path: /reference/file-format + method: GET +- name: SafeToSend + endpoint: + path: /reference/safe-to-send + method: GET + data_selector: '' +- name: Demographics Append + endpoint: + path: /reference/demographics-append + method: GET +- name: Bulk Demographics Append + endpoint: + path: /reference/bulk-demographics-append + method: POST +- name: SafeToSend + endpoint: + path: /reference/safe-to-send + method: GET +- name: email_append + endpoint: + path: /reference/email-append + method: GET +- name: postal_append + endpoint: + path: /reference/postal-append + method: GET +- name: alternate_email + endpoint: + path: /reference/alternate-email + method: GET +- name: Demographics Append + endpoint: + path: /reference/demographics-append + method: GET +- name: Bulk Demographics Append + endpoint: + path: /reference/bulk-demographics-append + method: POST +- name: most_recent_results + endpoint: + path: /v5/listguard/results + method: GET + data_selector: results +- name: list_of_recent_runs + endpoint: + path: /v5/listguard + method: GET + data_selector: runs +- name: results_for_specific_list + endpoint: + path: /v5/list//results + method: GET + data_selector: results +- name: Email Append + endpoint: + path: /reference/email-append + method: GET +- name: Postal Append + endpoint: + path: /reference/postal-append + method: GET +- name: Alternate Email + endpoint: + path: /reference/alternate-email + method: GET +- name: recent_results + endpoint: + path: /listguard/results + method: GET + data_selector: records +- name: recent_runs + endpoint: + path: /listguard + method: GET + data_selector: '[]' +- name: specific_list_results + endpoint: + path: /list//results + method: GET + data_selector: records +- name: SafeToSend + endpoint: + path: /v5/ev + method: GET + data_selector: response + params: {} +- name: email_verification + endpoint: + path: /ev + method: GET + data_selector: safe_to_send + params: {} +- name: SafeToSend + endpoint: + path: /v5/ev + method: GET +- name: email_verification + endpoint: + path: /ev + method: GET + data_selector: safe_to_send + params: {} +- name: ip + endpoint: + path: /ip + method: GET + data_selector: ip + params: {} +- name: alternate_email + endpoint: + path: /ae + method: GET +- name: postal_append + endpoint: + path: /v5/eppend + method: GET + data_selector: postal_address + params: + email: string + sha1_email: string + md5_email: string + api_key: string +- name: email_append + endpoint: + path: /v5/eppend + method: GET +- name: demographics + endpoint: + path: /v5/td + method: GET +- name: domain_types + endpoint: + path: /reference/domain-types + method: GET + data_selector: domain_types + params: {} +- name: ip + endpoint: + path: /ip-address + method: GET + data_selector: ip +- name: bulk_demographics_append + endpoint: + path: /v5/ei/bulk + method: POST +- name: demographics_append + endpoint: + path: /reference/demographics-append + method: GET + data_selector: response +- name: postal_append + endpoint: + path: /v5/eppend + method: GET + data_selector: postal_address + params: {} +- name: phone_verification + endpoint: + path: /reference/phone-verification + method: GET + data_selector: phone_verification_response +- name: phone_verification + endpoint: + path: /pv + method: GET + data_selector: '' +- name: email_append + endpoint: + path: /eppend + method: GET +- name: phone_verification + endpoint: + path: /phone-verification + method: GET + data_selector: phone_verification + params: {} +- name: demographics + endpoint: + path: /v5/td + method: GET +- name: bulk_demographics_append + endpoint: + path: /v5/ei/bulk + method: POST +- name: submit_list + endpoint: + path: /reference/submit-lists + method: POST +- name: check_list_status + endpoint: + path: /reference/check-list-status + method: GET +- name: purchase_list_results + endpoint: + path: /reference/purchase-list-results + method: POST +- name: retrieve_list_results + endpoint: + path: /reference/retrieve-list-results + method: GET +- name: phone_verification + endpoint: + path: /reference/phone-verification + method: GET +- name: submit_lists + endpoint: + path: /list + method: POST +- name: check_list_status + endpoint: + path: /list/{list_id} + method: GET + data_selector: status +- name: phone_verification + endpoint: + path: /pv + method: GET +- name: check_list_status + endpoint: + path: /check-list-status + method: GET + data_selector: list + params: {} +- name: submit_list + endpoint: + path: /reference/submit-lists + method: POST +- name: check_list_status + endpoint: + path: /reference/check-list-status + method: GET +- name: purchase_list_results + endpoint: + path: /reference/purchase-list-results + method: POST +- name: retrieve_list_results + endpoint: + path: /reference/retrieve-list-results + method: GET +- name: check_list_status + endpoint: + path: /check-list-status + method: GET + data_selector: records + params: {} +- name: submit_lists + endpoint: + path: /list + method: POST + data_selector: null + params: {} +- name: purchase_list_results + endpoint: + path: /v5/list/{list_id}/purchase + method: POST +- name: check_list_status + endpoint: + path: /v5/list/{list_id} + method: GET +- name: retrieve_list_results + endpoint: + path: /v5/list/{list_id}/results + method: GET + data_selector: results +- name: list_status + endpoint: + path: /reference/check-list-status + method: GET + data_selector: records + params: {} +- name: check_list_status + endpoint: + path: /check-list-status + method: GET +- name: submit_list + endpoint: + path: /list + method: POST + data_selector: list_id + params: + action: report +- name: check_list_status + endpoint: + path: /list/{list_id} + method: GET + data_selector: status + params: {} +- name: retrieve_list_results + endpoint: + path: /list/{list_id}/results + method: GET + data_selector: results + params: {} +- name: purchase_list_results + endpoint: + path: /list/{list_id}/purchase + method: POST + data_selector: status + params: {} +- name: purchase_list_results + endpoint: + path: /v5/list/{list_id}/purchase + method: POST +- name: retrieve_list_results + endpoint: + path: /list/{list_id}/results + method: GET +- name: submit_list + endpoint: + path: /list + method: POST + data_selector: list_id + params: + action: report +- name: check_list_status + endpoint: + path: /list/{list_id} + method: GET + data_selector: status + params: {} +- name: retrieve_list_results + endpoint: + path: /list/{list_id}/results + method: GET + data_selector: results + params: {} +- name: purchase_list_results + endpoint: + path: /list/{list_id}/purchase + method: POST + data_selector: status + params: {} +- name: SafeToSend + endpoint: + path: /v5/ev + method: GET +- name: email_status + endpoint: + path: /reference/email-status + method: GET +notes: +- The email addresses that fall under the purview of these flags are edge cases, and + the impact is typically under 1% of your total traffic. +- Ensure that filenames are unique. The system ignores files with duplicate names. +- Requests to endpoints should include your List Guard API key in the api_key header. +- Updates may take up to 24 hours to post to your account. +- Files must be in CSV format with a single column containing email addresses. +- and are not unique to your account; you'll receive these + with your pixel. +- 'LABELTEXT: Replace this with any data you want to track, such as a session ID or + page ID. This data will be passed back to you with your WVI data.' +- ': This is a placeholder for the API key. Your script will include + a unique API key tied to your account.' +- Your unique SFTP credentials will be provided to you by AtData's Client Services + team. +- Your results file frequency is customizable, with a range of 1 file per hour to + 1 file per day. +- Your company's URL must be configured to process and decrypt the `eqs` query string + parameter, and process the `md5_email` parameter within the decrypted data. +- Provide AtData with your encryption key. The key must be 32 characters in the [0-9, + a-f] range. +- The encryption key must be 32 characters in the [0-9, a-f] range. +- Your company's URL must be configured to process and decrypt the eqs query string + parameter, and process the md5_email parameter within the decrypted data. +- The encryption key must be 32 characters in the [0-9, a-f] range, e.g. "d6c60c8e688e0afa7f49416897aadc1f". +- AES-128-ECB does not use an initialization vector. +- Files must be in CSV format with a single column containing either plaintext or + MD5 email addresses. +- This method is only for updating the database and cannot be used to retrieve data. +- A similarly named package, `stompy`, is not compatible and should not be used. +- 'Consistency: These IDs should remain consistent across process restarts.' +- Uploaded lists should use either UTF-8 or ISO 8859-1 character sets. +- There will be no change to the domain name or request URL. +- There will be no change to the response format. +- There will be no change to the SSL certificate, minimum TLS level (TLS 1.2), or + TLS cipher list. +- Properly formatted files are essential for accurate data processing and verification. +- All requests to our APIs must be made using HTTPS and require an API key. +- All of AtData's Data Services API's have free trials you can use to test. +- Responses do not include metadata such as the run date. +- Treat your API key like a password. Do not expose it in publicly accessible areas + such as GitHub, client-side code, etc. +- Some domains are known as 'accept all' or 'catchall' domains. +- Trap addresses are deliverable but confirmed spamtraps or otherwise high risk. +- The system doesn't provide addresses that are valid but missing an apartment number + or secondary address by default. +- AtData’s Phone Verification API enables you to validate and verify phone numbers + in real time, ensuring your data is accurate and up-to-date. +- All request parameters are required to be URL encoded. +- To use List API, you must use an API Key that has been enabled for the service. +- To use List API for a particular service, you must use an API Key that has been + enabled for that service. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'INVALID_API_KEY: Ensure the API key is correct' +- 'List ID not found: Ensure the correct ID is used.' +- 'Invalid API Key: Check your List Guard Key.' +- '400 Bad Request: Check the format of your request and parameters.' +- '401 Unauthorized: Ensure the API key is valid and included.' +- '400 Bad Request: Invalid API key or parameters.' +- '400: Bad request. Some part of the request was invalid. The response body will + give further explanation as to what the problem is. Usually, this means the email + address was invalid, some of the parameters were not URL encoded, or no parameters + were passed.' +- '401: Unauthorized. Either the api_key was missing or invalid.' +- '403: Access denied. Your query limit has been exceeded, or the API key is not associated + with any available response section.' +- '429: Too many requests. Rate limits have been exceeded. If you call the API more + than 500 times per second, you will receive this error.' +- '500: Internal server error. Please contact support.' +- '502: Bad gateway. The API is not available. Please try again later or contact support.' +- '400: Bad request. Some part of the request was invalid.' +- '429: Too many requests. Rate limits have been exceeded.' +- '502: Bad gateway. The API is not available.' +- '400: Invalid email format or mailbox doesn''t exist' +- '525: Email is a trap or disposable' +- 'unknown: 5' +- 'valid: 10' +- 'valid: 20' +- 'valid: 45' +- 'safetosend: 50' +- 'valid: 55' +- 'invalid: 100' +- 'invalid: 110' +- 'invalid: 115' +- 'invalid: 120' +- 'invalid: 125' +- 'invalid: 130' +- 'invalid: 140' +- 'invalid: 145' +- 'invalid: 150' +- 'invalid: 155' +- 'invalid: 200' +- 'invalid: 210' +- 'invalid: 215' +- 'invalid: 255' +- 'invalid: 310' +- 'invalid: 325' +- 'invalid: 400' +- 'invalid: 410' +- 'invalid: 420' +- 'invalid: 500' +- 'invalid: 505' +- 'invalid: 510' +- 'invalid: 520' +- 'trap: 525' +- 'trap: 530' +- 'trap: 535' +- 'trap: 540' +- 'unknown: 999' +- '400: Invalid email address' +- '525: Email is a trap' +- 400 Bad Request +- 'unknown: 5: Timeout. The system did not receive a response in time.' +- 'valid: 10: The syntax is correct.' +- 'valid: 20: The syntax is correct, and the domain is valid.' +- 'valid: 45: The domain is a catch-all and does not support individual address validation.' +- 'safetosend: 50: The email address is valid and guaranteed SafeToSend.' +- 'valid: 55: The address is allowed by a client-configured exception.' +- 'invalid: 100: General syntax error in the email address.' +- 'invalid: 110: The email address contains an invalid character.' +- 'invalid: 115: The domain syntax in the email address is invalid.' +- 'invalid: 120: The username syntax in the email address is invalid.' +- 'invalid: 125: The username syntax is invalid for the specified domain.' +- 'invalid: 130: The email address is too long.' +- 'invalid: 140: The email address does not have a username.' +- 'invalid: 145: The email address does not have a domain.' +- 'invalid: 150: The email address does not contain an "@" sign.' +- 'invalid: 155: The email address contains more than one "@" sign.' +- 'invalid: 200: The top-level domain (TLD) in the email address is invalid.' +- 'invalid: 210: The email address contains an extra space or character.' +- 'invalid: 215: Unquoted spaces are not allowed in email addresses.' +- 'invalid: 255: The email address is not allowed due to client-configured suppression.' +- 'invalid: 310: The domain does not exist.' +- 'invalid: 325: The domain cannot receive email.' +- 'invalid: 400: The mailbox does not exist.' +- 'invalid: 410: The mailbox is full and cannot receive emails.' +- 'invalid: 420: Mail is not accepted for this domain.' +- 'invalid: 500: Emails with that username are not accepted.' +- 'invalid: 505: Emails with that domain are not accepted.' +- 'invalid: 510: The email address is not accepted.' +- 'invalid: 520*: The email address matches known bouncers.' +- 'trap: 525: The email address is a spam trap or is suppressed.' +- 'trap: 530: The email address has opted out of commercial emails.' +- 'trap: 535*: The email address is on ANA''s "Do Not Email List".' +- 'trap: 540*: The email address belongs to a known or frequent complainer.' +- 'unknown: 999: A system error occurred.' +- '200: Request OK.' +- '202: Request accepted.' +- '400: Bad request. Either an invalid parameter exists, or the data expected is not + present.' +- '401: Unauthorized. Check you''re using the right api_key.' +- '403: Access denied. Your query limit has been exceeded, or the API key provided + does not have the required permissions.' +- '404: The list or results file isn''t found. Verify you have the correct list_id + and the list is in the right status.' +- '415: Invalid Content-Type submitted.' +- '422: Invalid file. Verify that the file has the proper name and format.' +- 'HTTP 401: If the result file is not ready' +- '401: Unauthorized. Check you''re using the right `api_key`.' +- '404: The list or results file isn''t found. Verify you have the correct `list_id` + and the list is in the right status.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck API key validity' +- '401 Unauthorized: If the result file is not ready' +- '401 Unauthorized: Check your API key or permissions' +- '400 Bad Request: Check your request parameters' +auth_info: + mentioned_objects: [] +client: + base_url: https://api.atdata.com + auth: + type: apikey + location: header + header_name: api_key + headers: + Content-Type: multipart/form-data + Accept: application/json +source_metadata: null diff --git a/aviation_weather/aviation-weather-docs.md b/aviation_weather/aviation-weather-docs.md new file mode 100644 index 00000000..ce8d8a1b --- /dev/null +++ b/aviation_weather/aviation-weather-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Weather API data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def weather_api_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://weather.gov/data/api/v", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + taf,,cwas,,metar + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='weather_api_migrations_pipeline', + destination='duckdb', + dataset_name='weather_api_migrations_data', + ) + # Load the data + load_info = pipeline.run(weather_api_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from weather_api_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Forecasts: Endpoints related to weather forecasts, including TAF and METAR data. +- Observations: Endpoints providing real-time weather observations such as PIREP and METAR. +- Data Retrieval: Endpoints for accessing historical and formatted weather data. + +You will then debug the Weather API pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Weather API support. + ```shell + dlt init dlthub:weather_api_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Weather API API, as specified in @weather_api_migrations-docs.yaml + Start with endpoints taf and and skip incremental loading for now. + Place the code in weather_api_migrations_pipeline.py and name the pipeline weather_api_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python weather_api_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Access to the Weather API requires an API key for authentication, which must be supplied in requests to access the data. + + To get the appropriate API keys, please visit the original source at https://www.weather.gov/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python weather_api_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline weather_api_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset weather_api_migrations_data + The duckdb destination used duckdb:/weather_api_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline weather_api_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("weather_api_migrations_pipeline").dataset() + # get a table as Pandas frame + data.a.df().head() + ``` + +## Running into errors? + +Requests are rate-limited to 100 requests per minute, and exceeding this limit may result in temporary access being blocked. Users must meet eligibility requirements and register for WIFS API access. Additionally, responses may contain no data for valid requests and intermittent delays may occur during data flow issues. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/aviation_weather/aviation-weather-docs.yaml b/aviation_weather/aviation-weather-docs.yaml new file mode 100644 index 00000000..c57adaec --- /dev/null +++ b/aviation_weather/aviation-weather-docs.yaml @@ -0,0 +1,1329 @@ +resources: +- name: METAR + endpoint: + path: /data/metar + method: GET +- name: TAF + endpoint: + path: /data/taf + method: GET +- name: PIREPs/AIREPs + endpoint: + path: /data/pirep + method: GET +- name: SIGMETs + endpoint: + path: /data/airsigmet + method: GET +- name: G-AIRMETs + endpoint: + path: /data/gairmet + method: GET +- name: Station info + endpoint: + path: /data/stationinfo + method: GET +- name: Airport info + endpoint: + path: /data/airport + method: GET +- name: METAR + endpoint: + path: /data/metar/ + method: GET +- name: TAF + endpoint: + path: /data/taf/ + method: GET +- name: PIREP + endpoint: + path: /data/pirep/ + method: GET +- name: METAR + endpoint: + path: /data/metar/ + method: GET +- name: TAF + endpoint: + path: /data/taf/ + method: GET +- name: WAFS Data + endpoint: + path: /wafs/ + method: GET + data_selector: data +- name: GetMap + endpoint: + path: /cgi-bin/mapserver/basic + method: GET +- name: SIGMET + endpoint: + path: /gfa/#sigmet + method: GET + data_selector: records +- name: G-AIRMET + endpoint: + path: /gfa/#gairmet + method: GET + data_selector: records +- name: PIREPs + endpoint: + path: /data/pirep/ + method: GET +- name: METARs + endpoint: + path: /data/metar/ + method: GET +- name: TAFs + endpoint: + path: /data/taf/ + method: GET +- name: Data API + endpoint: + path: /data/api/ + method: GET +- name: METAR + endpoint: + path: /data/metar/ + method: GET + data_selector: data + params: {} +- name: TAF + endpoint: + path: /data/taf/ + method: GET + data_selector: data + params: {} +- name: PIREP + endpoint: + path: /data/pirep/ + method: GET + data_selector: data + params: {} +- name: METAR + endpoint: + path: /data/metar/ + method: GET + data_selector: raw, tabular, decoded + params: {} +- name: TAF + endpoint: + path: /data/taf/ + method: GET + data_selector: raw, tabular, decoded + params: {} +- name: PIREP + endpoint: + path: /data/pirep/ + method: GET + data_selector: records + params: {} +- name: WindTemp + endpoint: + path: /data/windtemp/ + method: GET + data_selector: records + params: {} +- name: ITWS + endpoint: + path: /data/itws/ + method: GET + data_selector: records + params: {} +- name: METAR + endpoint: + path: /data/metar/ + method: GET + data_selector: parameters +- name: PIREP + endpoint: + path: /data/pirep/ + method: GET + data_selector: parameters +- name: Wind/Temp + endpoint: + path: /data/windtemp/ + method: GET + data_selector: parameters +- name: ITWS + endpoint: + path: /data/itws/ + method: GET + data_selector: parameters +- name: Flight Category + endpoint: + path: /gfa/help/#symbols + method: GET + data_selector: Flight Category +- name: Weather Symbols + endpoint: + path: /gfa/help/#symbols + method: GET + data_selector: Weather Symbols +- name: SPC Convective Outlook + endpoint: + path: /gfa/help/#symbols + method: GET + data_selector: SPC Convective Outlook +- name: WAFS Gridded Data + endpoint: + path: /data/wafs/ + method: GET +- name: Significant Weather (SigWx) + endpoint: + path: /data/sigwx/ + method: GET +- name: Volcanic Ash and Tropical Cyclone Advisories + endpoint: + path: /data/advisories/ + method: GET +- name: Operational Meteorology (OPMET) Messages + endpoint: + path: /data/opmet/ + method: GET +- name: METAR + endpoint: + path: /data/metar/ + method: GET + data_selector: parameters + params: {} +- name: PIREP + endpoint: + path: /data/pirep/ + method: GET + data_selector: parameters + params: {} +- name: Wind/temp data + endpoint: + path: /data/windtemp/ + method: GET + data_selector: parameters + params: {} +- name: ITWS data + endpoint: + path: /data/itws/ + method: GET + data_selector: parameters + params: {} +- name: data_record + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: EGRR + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: WAFS Gridded Data + endpoint: + path: /data/wafs/ + method: GET + data_selector: data +- name: Significant Weather + endpoint: + path: /data/sigwx/ + method: GET + data_selector: data +- name: Volcanic Ash and Tropical Cyclone Advisories + endpoint: + path: /data/advisories/ + method: GET + data_selector: data +- name: SWH-H/North_Atlantic/UK + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: file +- name: PGAE05_EGRR_1200 + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: file +- name: PGAE05_EGRR_0600 + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: file +- name: PGAE05_EGRR_0000 + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: file +- name: PGAE05_EGRR_1800 + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: file +- name: WAFC_Backup_Test + endpoint: + path: /wafc_backup_test + method: GET + data_selector: test_records +- name: EGRR + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: advisory_data + endpoint: + path: /PNG/SIGWX/ + method: GET + data_selector: records + params: {} +- name: EGRR_Data + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: backup_test + endpoint: + path: /backup_test + method: GET + data_selector: tests + params: {} +- name: backup_test + endpoint: + path: /backup/test + method: GET + data_selector: charts + params: {} +- name: advisory + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: EGRR + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: backup_test + endpoint: + path: /backup/test + method: GET + data_selector: tests + params: {} +- name: kkci_iwxxm_forecasts + endpoint: + path: /collections/kkci_iwxxm_forecasts/locations/GLOBAL + method: GET + data_selector: features + params: + f: iwxxm + datetime: 2025-05-12:18:00Z +- name: kkci_charts_global + endpoint: + path: /collections/kkci_charts_global + method: GET + data_selector: features + params: {} +- name: kkci_charts_northpole + endpoint: + path: /collections/kkci_charts_northpole + method: GET + data_selector: features + params: {} +- name: kkci_charts_southpole + endpoint: + path: /collections/kkci_charts_southpole + method: GET + data_selector: features + params: {} +- name: kkci_iwxxm_forecasts + endpoint: + path: /collections/kkci_iwxxm_forecasts/locations/GLOBAL + method: GET + data_selector: data + params: + f: iwxxm + datetime: 2025-05-12:18:00Z +- name: kkci_charts_global + endpoint: + path: /collections/kkci_charts_global + method: GET + data_selector: data + params: {} +- name: kkci_charts_northpole + endpoint: + path: /collections/kkci_charts_northpole + method: GET + data_selector: data + params: {} +- name: kkci_charts_southpole + endpoint: + path: /collections/kkci_charts_southpole + method: GET + data_selector: data + params: {} +- name: GRIB2 + endpoint: + path: /GRIB2/KWBC + method: GET + data_selector: records + params: {} +- name: GRIB2_CB + endpoint: + path: /GRIB2/KWBC/cb_0.25 + method: GET + data_selector: records + params: {} +- name: GRIB2_ICE + endpoint: + path: /GRIB2/KWBC/ice_0.25 + method: GET + data_selector: records + params: {} +- name: GRIB2_TURB + endpoint: + path: /GRIB2/KWBC/turb_0.25 + method: GET + data_selector: records + params: {} +- name: ICE + endpoint: + path: /GRIB2/EGRR/ICE_0.25 + method: GET + data_selector: records +- name: CB + endpoint: + path: /GRIB2/EGRR/CB_0.25 + method: GET + data_selector: records +- name: TURB + endpoint: + path: /GRIB2/EGRR/TURB_0.25 + method: GET + data_selector: records +- name: SWH BUFR + endpoint: + path: /swh_bufr + method: GET + data_selector: products + params: + valid_time: 270600 UTC + issue_time: 261340 to 261355 UTC +- name: SWM BUFR + endpoint: + path: /swm_bufr + method: GET + data_selector: products + params: + valid_time: 270600 UTC + issue_time: 261340 to 261355 UTC +- name: PNG Charts + endpoint: + path: /png_charts + method: GET + data_selector: products + params: + valid_time: 270600 UTC + issue_time: 261340 to 261355 UTC +- name: GRIB2 + endpoint: + path: /GRIB2/KWBC + method: GET + data_selector: datim + params: {} +- name: UK-GRIB2 + endpoint: + path: /GRIB2/EGRR + method: GET + data_selector: datim + params: {} +- name: ICE_0.25 + endpoint: + path: /GRIB2/EGRR/ICE_0.25 + method: GET + data_selector: records +- name: CB_0.25 + endpoint: + path: /GRIB2/EGRR/CB_0.25 + method: GET + data_selector: records +- name: TURB_0.25 + endpoint: + path: /GRIB2/EGRR/TURB_0.25 + method: GET + data_selector: records +- name: SWH Embedded CB/UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: SWH Embedded CB/US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records + params: {} +- name: SWH Clear Air Turb/UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: SWH Clear Air Turb/US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records + params: {} +- name: SWS Fronts/UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: SWS Fronts/US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records + params: {} +- name: SWS Fronts-Limited/UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: SWS Fronts-Limited/US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records + params: {} +- name: SWM Clear Air Turb/UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: SWM Clear Air Turb/US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records + params: {} +- name: SWM Cloud Turb-Icing/UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: SWM Cloud Turb-Icing/US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records + params: {} +- name: SWM Tropopause/UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: SWM Tropopause/US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records + params: {} +- name: BUFR_SIGWX_EGRR + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: BUFR_SIGWX_KWBC + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records + params: {} +- name: SWH_Embedded_CB_UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records +- name: SWH_Embedded_CB_US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records +- name: SWH_Clear_Air_Turb_UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records +- name: SWH_Clear_Air_Turb_US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records +- name: SWS_Fronts_UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records +- name: SWS_Fronts_US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records +- name: SWM_Clear_Air_Turb_UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records +- name: SWM_Clear_Air_Turb_US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records +- name: SWM_Cloud_Turb_Icing_UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records +- name: SWM_Cloud_Turb_Icing_US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records +- name: SWM_Tropopause_UK + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records +- name: SWM_Tropopause_US + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records +- name: BUFR_SIGWX_EGRR + endpoint: + path: /BUFR/SIGWX/EGRR + method: GET + data_selector: records +- name: BUFR_SIGWX_KWBC + endpoint: + path: /BUFR/SIGWX/KWBC + method: GET + data_selector: records +- name: status + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: records +- name: status + endpoint: + path: /PNG/SIGWX + method: GET + data_selector: data + params: {} +- name: EGRR + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: records + params: {} +- name: EGRR_Status + endpoint: + path: /PNG/SIGWX/EGRR + method: GET + data_selector: data + params: {} +- name: Traffic Flow Management Convective Forecast + endpoint: + path: /data/api/ + method: GET + data_selector: convective_forecasts + params: {} +- name: Extended Convective Forecast Product + endpoint: + path: /data/api/ + method: GET + data_selector: extended_convective_forecasts + params: {} +- name: observations + endpoint: + path: /data/observations + method: GET + data_selector: data + params: {} +- name: metar + endpoint: + path: /data/metar/ + method: GET + data_selector: data + params: {} +- name: pirep + endpoint: + path: /data/pirep/ + method: GET + data_selector: data + params: {} +- name: METAR + endpoint: + path: /data/metar/ + method: GET +- name: PIREP + endpoint: + path: /data/pirep/ + method: GET +- name: Wind/temp data + endpoint: + path: /data/windtemp/ + method: GET +- name: ITWS data + endpoint: + path: /data/itws/ + method: GET +- name: Flight Categories + endpoint: + path: /gfa/help/#symbols + method: GET + data_selector: Flight Cat + params: {} +- name: Weather Symbols + endpoint: + path: /gfa/help/#symbols + method: GET + data_selector: Weather Symbols + params: {} +- name: observations + endpoint: + path: /data/observations/ + method: GET + data_selector: records +- name: gfa_forecast + endpoint: + path: /data/gfa/ + method: GET + data_selector: records +- name: sigmet + endpoint: + path: /data/sigmet/ + method: GET + data_selector: records +- name: gairmet + endpoint: + path: /data/gairmet/ + method: GET + data_selector: records +- name: taf + endpoint: + path: /data/taf/ + method: GET + data_selector: records +- name: PIREPs + endpoint: + path: /data/pirep/ + method: GET +- name: METAR + endpoint: + path: /data/metar/ + method: GET +- name: TAF + endpoint: + path: /data/taf/ + method: GET +- name: PIREPs + endpoint: + path: /data/pirep/ + method: GET + data_selector: records +- name: METAR + endpoint: + path: /data/metar/ + method: GET + data_selector: records +- name: TAF + endpoint: + path: /data/taf/ + method: GET + data_selector: records +- name: SIGMET + endpoint: + path: /gfa/#sigmet + method: GET + data_selector: records +- name: G-AIRMET + endpoint: + path: /gfa/#gairmet + method: GET + data_selector: records +- name: metar + endpoint: + path: /api/data/metar + method: GET +- name: taf + endpoint: + path: /api/data/taf + method: GET +- name: pirep + endpoint: + path: /api/data/pirep + method: GET +- name: airsigmet + endpoint: + path: /api/data/airsigmet + method: GET +- name: gairmet + endpoint: + path: /api/data/gairmet + method: GET +- name: airmet + endpoint: + path: /api/data/airmet + method: GET +- name: tcf + endpoint: + path: /api/data/tcf + method: GET +- name: cwa + endpoint: + path: /api/data/cwa + method: GET +- name: stationinfo + endpoint: + path: /api/data/stationinfo + method: GET +- name: airport + endpoint: + path: /api/data/airport + method: GET +- name: METARs + endpoint: + path: /data/metar/ + method: GET + data_selector: records + params: {} +- name: TAFs + endpoint: + path: /data/taf/ + method: GET + data_selector: records + params: {} +- name: PIREP + endpoint: + path: /data/pirep/ + method: GET + data_selector: records + params: {} +- name: SIGMETs + endpoint: + path: /data/sigmet/ + method: GET + data_selector: records + params: {} +- name: G-AIRMETs + endpoint: + path: /data/gairmet/ + method: GET + data_selector: records + params: {} +- name: metar + endpoint: + path: /api/data/metar + method: GET +- name: taf + endpoint: + path: /api/data/taf + method: GET +- name: pirep + endpoint: + path: /api/data/pirep + method: GET +- name: airsigmet + endpoint: + path: /api/data/airsigmet + method: GET +- name: gairmet + endpoint: + path: /api/data/gairmet + method: GET +- name: airmet + endpoint: + path: /api/data/airmet + method: GET +- name: tcf + endpoint: + path: /api/data/tcf + method: GET +- name: cwa + endpoint: + path: /api/data/cwa + method: GET +- name: stationinfo + endpoint: + path: /api/data/stationinfo + method: GET +- name: airport + endpoint: + path: /api/data/airport + method: GET +- name: G-AIRMETs + endpoint: + path: /gairmets + method: GET + data_selector: gairmet_records +- name: Center Weather Advisories + endpoint: + path: /cwas + method: GET + data_selector: cwa_records +- name: Wind/Temp + endpoint: + path: /winds_temps + method: GET + data_selector: winds_temps_records +- name: METAR + endpoint: + path: /data/metar/ + method: GET + data_selector: observations +- name: TAF + endpoint: + path: /data/taf/ + method: GET + data_selector: forecasts +- name: METAR + endpoint: + path: /data/metar/ + method: GET + data_selector: reports +- name: TAF + endpoint: + path: /data/taf/ + method: GET + data_selector: reports +- name: PIREPs + endpoint: + path: /data/pirep/ + method: GET + data_selector: reports +- name: SIGMET + endpoint: + path: /data/sigmet/ + method: GET + data_selector: reports +- name: G-AIRMET + endpoint: + path: /data/gairmet/ + method: GET + data_selector: reports +- name: METAR + endpoint: + path: /data/metar/ + method: GET + data_selector: observations +- name: TAF + endpoint: + path: /data/taf/ + method: GET + data_selector: forecasts +- name: METAR + endpoint: + path: /data/metar/ + method: GET + data_selector: observations + params: {} +- name: TAF + endpoint: + path: /data/taf/ + method: GET + data_selector: forecasts + params: {} +- name: decision_support_imagery + endpoint: + path: /data/api/ + method: GET + data_selector: graphics + params: {} +- name: WAFS + endpoint: + path: /wafs/ + method: GET + data_selector: grids + params: {} +- name: G-AIRMET + endpoint: + path: /data/api/ + method: GET +- name: SIGMET + endpoint: + path: /data/api/ + method: GET +- name: WPC Prog Chart + endpoint: + path: /data/api/ + method: GET +- name: SigWx + endpoint: + path: /data/api/ + method: GET +- name: Turbulence + endpoint: + path: /data/api/ + method: GET +- name: Icing + endpoint: + path: /data/api/ + method: GET +- name: GFA + endpoint: + path: /data/api/ + method: GET +- name: TFM gate forecast + endpoint: + path: /data/api/ + method: GET +- name: TCF + endpoint: + path: /data/api/ + method: GET +- name: ETCF + endpoint: + path: /data/api/ + method: GET +- name: metar + endpoint: + path: /api/data/metar + method: GET + data_selector: application/json + params: {} +- name: taf + endpoint: + path: /api/data/taf + method: GET + data_selector: application/json + params: {} +- name: pirep + endpoint: + path: /api/data/pirep + method: GET + data_selector: application/json + params: {} +- name: airsigmet + endpoint: + path: /api/data/airsigmet + method: GET + data_selector: application/json + params: {} +- name: isigmet + endpoint: + path: /api/data/isigmet + method: GET + data_selector: application/json + params: {} +- name: gairmet + endpoint: + path: /api/data/gairmet + method: GET + data_selector: application/json + params: {} +- name: airmet + endpoint: + path: /api/data/airmet + method: GET + data_selector: application/json + params: {} +- name: tcf + endpoint: + path: /api/data/tcf + method: GET + data_selector: application/json + params: {} +- name: cwa + endpoint: + path: /api/data/cwa + method: GET + data_selector: application/json + params: {} +- name: windtemp + endpoint: + path: /api/data/windtemp + method: GET + data_selector: text/plain + params: {} +- name: areafcst + endpoint: + path: /api/data/areafcst + method: GET + data_selector: text/plain + params: {} +- name: fcstdisc + endpoint: + path: /api/data/fcstdisc + method: GET + data_selector: text/plain + params: {} +- name: mis + endpoint: + path: /api/data/mis + method: GET + data_selector: text/plain + params: {} +- name: stationinfo + endpoint: + path: /api/data/stationinfo + method: GET + data_selector: application/json + params: {} +- name: airport + endpoint: + path: /api/data/airport + method: GET + data_selector: application/json + params: {} +- name: navaid + endpoint: + path: /api/data/navaid + method: GET + data_selector: application/json + params: {} +- name: fix + endpoint: + path: /api/data/fix + method: GET + data_selector: application/json + params: {} +- name: feature + endpoint: + path: /api/data/feature + method: GET + data_selector: application/json + params: {} +- name: obstacle + endpoint: + path: /api/data/obstacle + method: GET + data_selector: '' + params: {} +- name: dataserver + endpoint: + path: /api/data/dataserver + method: GET + data_selector: '' + params: + requestType: retrieve + dataSource: metars +- name: METAR + endpoint: + path: /metar + method: GET + data_selector: data + params: {} +- name: TAF + endpoint: + path: /taf + method: GET + data_selector: data + params: {} +- name: metar + endpoint: + path: /api/data/metar + method: GET + data_selector: application/json + params: {} +- name: taf + endpoint: + path: /api/data/taf + method: GET + data_selector: application/json + params: {} +- name: pirep + endpoint: + path: /api/data/pirep + method: GET + data_selector: application/json + params: {} +- name: airsigmet + endpoint: + path: /api/data/airsigmet + method: GET + data_selector: application/json + params: {} +- name: isigmet + endpoint: + path: /api/data/isigmet + method: GET + data_selector: application/json + params: {} +- name: gairmet + endpoint: + path: /api/data/gairmet + method: GET + data_selector: application/json + params: {} +- name: airmet + endpoint: + path: /api/data/airmet + method: GET + data_selector: application/json + params: {} +- name: tcf + endpoint: + path: /api/data/tcf + method: GET + data_selector: application/json + params: {} +- name: cwa + endpoint: + path: /api/data/cwa + method: GET + data_selector: application/json + params: {} +- name: windtemp + endpoint: + path: /api/data/windtemp + method: GET + data_selector: text/plain + params: {} +- name: areafcst + endpoint: + path: /api/data/areafcst + method: GET + data_selector: text/plain + params: {} +- name: fcstdisc + endpoint: + path: /api/data/fcstdisc + method: GET + data_selector: text/plain + params: {} +- name: mis + endpoint: + path: /api/data/mis + method: GET + data_selector: text/plain + params: {} +- name: stationinfo + endpoint: + path: /api/data/stationinfo + method: GET + data_selector: application/json + params: {} +- name: airport + endpoint: + path: /api/data/airport + method: GET + data_selector: application/json + params: {} +- name: navaid + endpoint: + path: /api/data/navaid + method: GET + data_selector: application/json + params: {} +- name: fix + endpoint: + path: /api/data/fix + method: GET + data_selector: application/json + params: {} +- name: feature + endpoint: + path: /api/data/feature + method: GET + data_selector: text/plain + params: {} +- name: obstacle + endpoint: + path: /api/data/obstacle + method: GET + data_selector: records + params: {} +- name: dataserver + endpoint: + path: /api/data/dataserver + method: GET + data_selector: records + params: + requestType: retrieve + dataSource: metars +notes: +- Requests may be made using most web browsers, command line utilities, and programming + language libraries using modern HTTPS connections. +- Exceeding request limits will result in access being temporarily blocked. +- An account is required to access WIFS data. +- This information system may contain Controlled Unclassified Information (CUI) that + is subject to safeguarding or dissemination controls in accordance with law, regulation, + or Government-wide policy. +- The entire site was overhauled in October 2023 and the API was overhauled in September + 2025. +- Accessing and using this system indicate your understanding of the warning. +- No significant changes planned at this time. +- 'You are accessing a U.S. Government information system, which includes: 1) this + computer, 2) this computer network, 3) all Government-furnished computers connected + to this network, and 4) all Government-furnished devices and storage media attached + to this network or to a computer on this network.' +- Access to WIFS data requires a user name and password or an API key. +- Access to WIFS requires a user name and password or an API key. +- WAFC Washington and WAFC London produce and transmit routine BUFR data and PNG charts + on behalf of each other. +- Access to WIFS is granted on a case-by-case basis. +- Administrative messages will be issued in advance to remind users of the later than + normal issue time. +- To comply with ICAO WG-MOG/3 (WAFS) Decision 3/1, during this backup event WAFC + Washington will purposefully issue data one hour later than the normal issuance + time. +- Access to WIFS is granted on a case-by-case basis +- Users must meet certain eligibility requirements +- Data includes timestamps and identifiers. +- To comply with ICAO WG-MOG/3 (WAFS) Decision 3/1, during backup events WAFC Washington + and WAFC London will purposefully issue data one hour later than the normal issuance + time. +- New WIFS API available for users with valid WIFS accounts. +- WIFS API will eventually replace legacy WIFS. +- Intermittent 30-40 minute delays are possible until the data flow issues are resolved. +- Forecasted global IWXXM format data for in 3 hour increments from F06 to F48. +- Check PNG charts for each forecast time for three regions. +- Beginning on 8 February, 2024, as mandated by ICAO Annex 3, all users with valid + WIFS accounts will be able to begin using the new WIFS API. +- Users should register for WIFS API access on AviationWeather.gov. +- During backup events, data may be issued one hour later than the normal issuance + time. +- The ECFP will be available 24/7. It will be updated around 01:00, 07:00, 13:00, + and 19:00 UTC each day. +- The TFM forecasts provide a high-resolution model blend denoting a high confidence + graphical representation of forecasted convection. +- PIREP Submission requires authorization +- Accounts are validated via the FAA Airmen Inquiry +- PIREP Submission requires authorization. +- Maximum results per query apply as well as rate limiting against frequent requests. +- Use cache files for larger queries. +- All requests are rate limited to 100 requests per minute and all API endpoints should + not be consumed more frequently than 1 request/min per thread. +- Most endpoints return a maximum of 400 entries. +- The API was overhauled in September 2025. +- 'Updated four times a day: 00Z, 06Z, 12Z, and 18Z' +- WAFS data is available for various levels from forecast hours 6 to 36, in three + hourly time steps, in GRIB2 format. +errors: +- '204 No Content: Request is valid however there is no data to be returned.' +- '400 Invalid Request: The request is invalid in some way.' +- '404 Not Found: The endpoint or specific item requested does not exist.' +- '429 Too Many Requests: Too many requests have been sent.' +- '500 Internal Server: The request may be valid but the system was unable to serve + the request due to an error.' +- '502 Bad Gateway: Temporary service disruption.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '400: Input validation errors' +- '401: Not Authorized' +- '403: Forbidden' +- '404: Not Found' +auth_info: + mentioned_objects: [] +client: + base_url: https://weather.gov/data/api/ +source_metadata: null diff --git a/ax_tts/ax-tts-docs.md b/ax_tts/ax-tts-docs.md new file mode 100644 index 00000000..1befa2da --- /dev/null +++ b/ax_tts/ax-tts-docs.md @@ -0,0 +1,162 @@ +In this guide, we'll set up a complete A.X TTS data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def ax_tts_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://apis.openapi.sk.com/api/ovs/v20/company/info", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "me", "devices" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='ax_tts_pipeline', + destination='duckdb', + dataset_name='ax_tts_data', + ) + # Load the data + load_info = pipeline.run(ax_tts_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from ax_tts’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **POI Endpoints**: Endpoints related to Points of Interest (POIs) allowing search, retrieval, and area data management. + - `/tmap/pois`: Retrieve a list of POIs. + - `/tmap/pois/{poiInfo}`: Get detailed information about a specific POI. + - `/tmap/pois/search/around`: Search for POIs in a specified radius around given coordinates. + - `/tmap/poi/findPoiAreaDataByName`: Find area data related to a specific POI name. + - `/tmap/poi/areascode`: Retrieve area codes related to POIs. + +- **Geocoding Endpoints**: Endpoints for converting addresses to geographic coordinates and vice versa. + - `/tmap/geo/geocoding`: Convert a given address to geographic coordinates. + - `/tmap/geo/reversegeocoding`: Convert geographic coordinates back to an address. + - `/tmap/geo/fullAddrGeo`: Get full address details based on geographic coordinates. + - `/tmap/geo/coordconvert`: Convert between different coordinate systems. + +- **Road Endpoints**: Endpoints for road-related information and services. + - `/tmap/road/nearToRoad`: Find the nearest road to a specified location. + +- **Postcode Endpoints**: Endpoints for postcode related queries. + - `/tmap/geo/postcode`: Access postcode information based on geographic locations. + +You will then debug the A.X TTS pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with A.X TTS support. + ```shell + dlt init dlthub:ax_tts duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for A.X TTS API, as specified in @ax_tts-docs.yaml + Start with endpoints me and devices and skip incremental loading for now. + Place the code in ax_tts_pipeline.py and name the pipeline ax_tts_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python ax_tts_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + An app key (appKey) is required, which can be obtained upon app creation and can be verified or reissued, and it should be applied in the header as 'appKey: your_app_key' and also included in the URL as a query parameter. Additionally, the header 'Accept: application/json' is required for all requests. + + To get the appropriate API keys, please visit the original source at https://skopenapi.readme.io/reference/getting-started-with-ax-tts-api-1. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python ax_tts_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline ax_tts load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset ax_tts_data + The duckdb destination used duckdb:/ax_tts.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline ax_tts_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("ax_tts_pipeline").dataset() + # get "me" table as Pandas frame + data."me".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/ax_tts/ax-tts-docs.yaml b/ax_tts/ax-tts-docs.yaml new file mode 100644 index 00000000..ed5b7978 --- /dev/null +++ b/ax_tts/ax-tts-docs.yaml @@ -0,0 +1,428 @@ +client: + auth: 'An app key (appKey) is required, which can be obtained upon app creation + and can be verified or reissued, and it should be applied in the header as ''appKey: + your_app_key'' and also included in the URL as a query parameter. Additionally, + the header ''Accept: application/json'' is required for all requests.' + most_recurring_base_url: https://apis.openapi.sk.com + paginator: Pagination is required and can be applied by using the `page` and `count` + parameters in the URL, where `count` specifies the number of items per page. +endpoints: +- 'endpoints source: https://skopenapi.readme.io/reference/getting-started-with-ax-tts-api-1': + - https://tvoice-api.sktnugu.com/tvoice/openapi/v3/voices?model=tvoice-2-1-m58 +- "endpoints source: https://skopenapi.readme.io/reference/\uC7A5\uC18C\uD1B5\uD569\uAC80\uC0C9": + - /tmap/pois +- "endpoints source: https://skopenapi.readme.io/reference/\uBA85\uCE6Dpoi-\uC0C1\uC138-\uAC80\uC0C9": + - /tmap/pois/{poiInfo +- "endpoints source: https://skopenapi.readme.io/reference/\uBA85\uCE6Dpoi-\uC8FC\uBCC0-\uCE74\uD14C\uACE0\uB9AC-\uAC80\uC0C9": + - /tmap/pois/search/around +- "endpoints source: https://skopenapi.readme.io/reference/\uC74D\uBA74\uB3D9\uB3C4\uB85C\uBA85\uC870\uD68C": + - /tmap/poi/findPoiAreaDataByName +- "endpoints source: https://skopenapi.readme.io/reference/\uC9C0\uC5ED\uBD84\uB958\uCF54\uB4DC\uAC80\uC0C9": + - /tmap/poi/areascode +- "endpoints source: https://skopenapi.readme.io/reference/\uBA85\uCE6Dpoi-\uACBD\uB85C-\uBC18\uACBD\uAC80\uC0C9": + - /tmap/poi/findPoiRoute?version=1.0&callback={callback +- "endpoints source: https://skopenapi.readme.io/reference/poi-\uAC80\uC0C9-\uC0D8\uD50C\uC608\uC81C": + - /tmap/pois/poiInfo?version=1&resCoordType=WGS84GEO&appKey=ja58s-z15a78-la714-5s67a + - /tmap/pois?version=1&searchKeyword=telno&searchType=all&page=1&count=20&resCoordType=WGS84GEO&multiPoint=N&searchtypCd=A&reqCoordType=WGS84GEO&poiGroupYn=N + - /tmap/poi/areascode?version=1&count=12&page=14&areaTypCd=01&largeCdFlag=Y&middleCdFlag=N&smallCdFlag=N&appKey=a4s8e-hjs8w-ks912-hdji2 + - /tmap/pois/search/around?version=1&page=1&count=20¢erLon=15.21648¢erLat=22.1856448&radius=0&reqCoordType=WGS84GEO&resCoordType=WGS84GEO&multiPoint=N&appKey=s5a9q-hndjs-jks78-k8si1 + - /tmap/poi/findPoiAreaDataByName?version=1&count=15&page=12&area_dong=area_dong&addressType=all&appKey=a1824-189d5-ws48a-s527g +- 'endpoints source: https://skopenapi.readme.io/reference/reversegeocoding': + - /tmap/geo/reversegeocoding +- 'endpoints source: https://skopenapi.readme.io/reference/geocoding': + - /tmap/geo/geocoding +- 'endpoints source: https://skopenapi.readme.io/reference/full-text-geocoding': + - /tmap/geo/fullAddrGeo +- "endpoints source: https://skopenapi.readme.io/reference/\uC88C\uD45C\uBCC0\uD658": + - /tmap/geo/coordconvert +- "endpoints source: https://skopenapi.readme.io/reference/\uC8FC\uC18C\uBCC0\uD658": + - /tmap/geo/convertAddress +- "endpoints source: https://skopenapi.readme.io/reference/\uAC00\uAE4C\uC6B4\uB3C4\uB85C\uCC3E\uAE30": + - /tmap/road/nearToRoad +- "endpoints source: https://skopenapi.readme.io/reference/\uC6B0\uD3B8\uBC88\uD638\uAC80\uC0C9": + - /tmap/geo/postcode +- "endpoints source: https://skopenapi.readme.io/reference/\uC9C0\uC624\uCF54\uB529-\uC0D8\uD50C\uC608\uC81C": + - /tmap/geo/reverseLabel?version=1&format=json¢erLat=centerLat¢erLon=centerLon&reqLevel=7&appKey=shkf9-k92u1-h2pq0-sj0a9 + - /tmap/geo/coordconvert?version=1&lat=EPSG3857%20&lon=EPSG3857%20&fromCoord=WGS84GEO&toCoord=WGS84GEO&appKey=jska0-92js8-kla172-28j17 + - /tmap/geo/postcode?version=1&appKey=dhs8w-sk291-ka82o-lsu91&callback=function&addr=%EC%84%9C%EC%9A%B8%EC%8B%9C+%EA%B0%95%EB%82%A8%EA%B5%AC+%EC%8B%A0%EC%82%AC%EB%8F%99&addressFlag=F01&coordType=WGS84GEO&page=1&count=20 + - /tmap/road/nearToRoad?version=1&appKey=ksf82-aksyq-28hj2-kl1ys&lat=lat&lon=lon&opt=0&vehicleType=0&radius=100 + - /tmap/geo/reversegeocoding?version=1&lat=EPSG3857%20&lon=EPSG3857%20&coordType=WGS84GEO&addressType=A02&appKey=a15s-iksdu12-sksui2-skq981&newAddressExtend=Y + - /tmap/geo/fullAddrGeo?addressFlag=F01&coordType=WGS84GEO&version=1&fullAddr=%EC%84%9C%EC%9A%B8%EC%8B%9C+%EA%B0%95%EB%82%A8%EA%B5%AC+%EC%8B%A0%EC%82%AC%EB%8F%99&page=1&count=20&appKey=ja09q-skpz8-2j1ks-920kas + - /tmap/geo/geocoding?version=1&city_do=%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C&gu_gun=%EA%B0%95%EC%84%9C%EA%B5%AC&dong=%ED%99%94%EA%B3%A1%EB%8F%99&addressFlag=F01&coordType=WGS84GEO&appKey=159sq-s9e7h-kauwq-jks9y + - /tmap/geo/convertAddress?version=1&searchTypCd=NtoO%20&reqAdd=reqAdd&reqMulti=S&appKey=js012-sks8i-101jss-ska982 +- "endpoints source: https://skopenapi.readme.io/reference/\uACF5\uAC04\uAC80\uC0C9-api": + - /tmap/geofencing/regions +- "endpoints source: https://skopenapi.readme.io/reference/\uC601\uC5ED\uC870\uD68C-api": + - /tmap/geofencing/regions/{regionId +- "endpoints source: https://skopenapi.readme.io/reference/\uC9C0\uC624\uD39C\uC2F1-\uC0D8\uD50C\uC608\uC81C": + - /tmap/geofencing/regions/regionId?version=1&resCoordType=WGS84GEO&appKey=js01s-3h28k-ks719-zhn8z + - /tmap/geofencing/regions?version=1&page=1&count=5&categories=city_do&searchType=KEYWORD&resCoordType=WGS84GEO&reqCoordType=WGS84GEO&appKey=jhs01-ks981-862sa-91klu +- "endpoints source: https://skopenapi.readme.io/reference/\uAD50\uD1B5\uC815\uBCF4-1": + - /tmap/traffic +- "endpoints source: https://skopenapi.readme.io/reference/\uAD50\uD1B5\uC815\uBCF4-\uC0D8\uD50C\uC608\uC81C": + - /tmap/traffic?version=1&reqCoordType=WGS84GEO&resCoordType=WGS84GEO&trafficType=null&radius=1&zoomLevel=1000&sort=index&appKey=hd921-ksu29-hzq8i-91jai +- "endpoints source: https://skopenapi.readme.io/reference/\uD0C0\uC784\uBA38\uC2E0-\uC790\uB3D9\uCC28-\uAE38-\uC548\uB0B4": + - /tmap/routes/prediction +- "endpoints source: https://skopenapi.readme.io/reference/\uBCF4\uD589\uC790-\uACBD\uB85C\uC548\uB0B4": + - /tmap/routes/pedestrian +- "endpoints source: https://skopenapi.readme.io/reference/\uC790\uB3D9\uCC28-\uACBD\uB85C\uC548\uB0B4": + - /tmap/routes +- "endpoints source: https://skopenapi.readme.io/reference/\uACBD\uB85C\uC548\uB0B4-\uC0D8\uD50C\uC608\uC81C": + - /tmap/routes/distance?version=1&startX=126.926139&startY=37.557495&endX=126.82613&endY=37.657495&reqCoordType=WGS84GEO&callback=function + - /tmap/tmap/routes?version=1 + - /tmap/routes/pedestrian?version=1 + - /tmap/routes/prediction?version=1&resCoordType=WGS84GEO&reqCoordType=WGS84GEO&sort=index +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E4\uC911-\uACBD\uC720\uC9C0-\uC548\uB0B4-10": + - /tmap/routes/routeSequential30 +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E4\uC911-\uACBD\uC720\uC9C0-\uC548\uB0B4-100-1": + - /tmap/routes/routeSequential100 +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E4\uC911-\uACBD\uC720\uC9C0-\uC548\uB0B4-200-1": + - /tmap/routes/routeSequential200 +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E4\uC911-\uACBD\uC720\uC9C0-\uC548\uB0B4-\uC0D8\uD50C\uC608\uC81C": + - /tmap/routes/routeSequential100 + - /tmap/routes/routeSequential200 + - /tmap/routes/routeSequential30 +- "endpoints source: https://skopenapi.readme.io/reference/\uACBD\uC720\uC9C0-\uCD5C\uC801\uD654-10-1": + - /tmap/routes/routeOptimization10 +- "endpoints source: https://skopenapi.readme.io/reference/\uACBD\uC720\uC9C0-\uCD5C\uC801\uD654-20-1": + - /tmap/routes/routeOptimization20 +- "endpoints source: https://skopenapi.readme.io/reference/\uACBD\uC720\uC9C0-\uCD5C\uC801\uD654-30-1": + - /tmap/routes/routeOptimization30 +- "endpoints source: https://skopenapi.readme.io/reference/\uACBD\uC720\uC9C0-\uCD5C\uC801\uD654-100-1": + - /tmap/routes/routeOptimization100 +- "endpoints source: https://skopenapi.readme.io/reference/\uACBD\uC720\uC9C0-\uCD5C\uC801\uD654-\uC0D8\uD50C\uC608\uC81C": + - /tmap/routes/routeOptimization20 + - /tmap/routes/routeOptimization30 + - /tmap/routes/routeOptimization10 + - /tmap/routes/routeOptimization100 +- 'endpoints source: https://skopenapi.readme.io/reference/roadapi-1': + - /tmap/road/matchToRoads +- 'endpoints source: https://skopenapi.readme.io/reference/roadapi-500-1': + - /tmap/road/matchToRoads500 +- 'endpoints source: https://skopenapi.readme.io/reference/roadapi-1000': + - /tmap/road/matchToRoads1000 +- "endpoints source: https://skopenapi.readme.io/reference/roadapi-\uC0D8\uD50C\uC608\uC81C": + - /tmap/road/matchToRoads?version=1 + - /tmap/road/matchToRoads1000?version=1 + - /tmap/road/matchToRoads500?version=1 +- 'endpoints source: https://skopenapi.readme.io/reference/staticmap': + - /tmap/staticMap +- "endpoints source: https://skopenapi.readme.io/reference/\uC8FC\uBCC0-\uBA85\uCE6Dpoi\uC0C1\uC138-\uAC80\uC0C9": + - /tmap/oilinfo/aroundOil +- "endpoints source: https://skopenapi.readme.io/reference/\uBA85\uCE6Dpoi\uC0C1\uC138-\uAC80\uC0C9": + - /tmap/oilinfo/poiDetailOil +- "endpoints source: https://skopenapi.readme.io/reference/\uC720\uAC00\uC815\uBCF4-\uC0D8\uD50C-\uC608\uC81C": + - /tmap/oilinfo/poiDetailOil?resCoordType=WGS84GEO + - /tmap/oilinfo/aroundOil?page=1&count=20&radius=0&reqCoordType=WGS84GEO&resCoordType=WGS84GEO&multiPoint=N +- "endpoints source: https://skopenapi.readme.io/reference/\uACBD\uB85C-\uB9E4\uD2B8\uB9AD\uC2A4": + - /tmap/matrix +- "endpoints source: https://skopenapi.readme.io/reference/\uC13C\uD130-\uBAA9\uB85D\uC870\uD68C": + - /tms/centerList +- "endpoints source: https://skopenapi.readme.io/reference/\uC13C\uD130-\uCD94\uAC00": + - /tms/centerInsert +- "endpoints source: https://skopenapi.readme.io/reference/\uC13C\uD130-\uC218\uC815": + - /tms/centerUpdate +- "endpoints source: https://skopenapi.readme.io/reference/\uC13C\uD130-\uC0AD\uC81C": + - /tms/centerDelete +- "endpoints source: https://skopenapi.readme.io/reference/\uC13C\uD130\uC815\uBCF4-\uC0D8\uD50C\uC608\uC81C": + - /tms/centerUpdate + - /tms/centerInsert + - /tms/centerDelete + - /tms/centerList +- "endpoints source: https://skopenapi.readme.io/reference/\uAD8C\uC5ED-\uBAA9\uB85D\uC870\uD68C": + - /tms/zoneList +- "endpoints source: https://skopenapi.readme.io/reference/\uAD8C\uC5ED-\uCD94\uAC00": + - /tms/zoneInsert +- "endpoints source: https://skopenapi.readme.io/reference/\uAD8C\uC5ED-\uC5EC\uB7EC\uAC74-\uCD94\uAC00": + - /tms/zoneListInsert +- "endpoints source: https://skopenapi.readme.io/reference/\uAD8C\uC5ED\uC218\uC815": + - /tms/zoneUpdate +- "endpoints source: https://skopenapi.readme.io/reference/\uAD8C\uC5ED-\uC0AD\uC81C": + - /tms/zoneDelete +- "endpoints source: https://skopenapi.readme.io/reference/\uAD8C\uC5ED\uC815\uBCF4-\uC0D8\uD50C\uC5D0\uC81C": + - /tms/zoneUpdate + - /tms/zoneInsert + - /tms/zoneDelete + - /tms/zoneList + - /tms/zoneListInsert +- "endpoints source: https://skopenapi.readme.io/reference/\uCC28\uB7C9-\uBAA9\uB85D\uC870\uD68C": + - /tms/vehicleList +- "endpoints source: https://skopenapi.readme.io/reference/\uCC28\uB7C9-\uCD94\uAC00": + - /tms/vehicleInsert +- "endpoints source: https://skopenapi.readme.io/reference/\uCC28\uB7C9-\uC5EC\uB7EC\uAC74-\uCD94\uAC00": + - /tms/vehicleListInsert +- "endpoints source: https://skopenapi.readme.io/reference/\uCC28\uB7C9-\uC218\uC815": + - /tms/vehicleUpdate +- "endpoints source: https://skopenapi.readme.io/reference/\uCC28\uB7C9-\uC0AD\uC81C": + - /tms/vehicleDelete +- "endpoints source: https://skopenapi.readme.io/reference/\uCC28\uB7C9\uC815\uBCF4-\uC0D8\uD50C\uC608\uC81C": + - /tms/vehicleInsert?vehicleType=01&inputYn=1&skillPer=100 + - /tms/vehicleUpdate?vehicleType=01&inputYn=1&skillPer=100 + - /tms/vehicleListInsert + - /tms/vehicleDelete + - /tms/vehicleList +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uC1A1\uC9C0-\uBAA9\uB85D-\uC870\uD68C": + - /tms/orderList +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uC1A1\uC9C0-\uCD94\uAC00": + - /tms/orderInsert +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uC1A1\uC9C0-\uC5EC\uB7EC\uAC74-\uCD94\uAC00": + - /tms/orderListInsert +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uC1A1\uC9C0-\uC218\uC815": + - /tms/orderUpdate +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uC1A1\uC9C0-\uC0AD\uC81C": + - /tms/orderDelete +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uC1A1\uC9C0\uC815\uBCF4-\uC0D8\uD50C\uC608\uC81C": + - /tms/orderInsert?vehicleType=01 + - /tms/orderDelete + - /tms/orderList + - /tms/orderUpdate?vehicleType=01&serviceTime=10 + - /tms/orderListInsert +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uCC28-\uC694\uCCAD": + - /tms/allocation +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uCC28-\uC694\uCCAD-\uC0D8\uD50C\uC608\uC81C": + - /tms/allocation?optionType=1 +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uCC28\uACB0\uACFC\uC694\uCCAD": + - /tms/allocationData?routeYn=N +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uCC28-\uACB0\uACFC-\uC694\uCCAD": + - /tms/allocationData +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uCC28\uACB0\uACFC\uC694\uCCAD-\uC0D8\uD50C\uC608\uC81C": + - /tms/allocationData?routeYn=N +- "endpoints source: https://skopenapi.readme.io/reference/\uAD50\uCC28\uAE08\uC9C0\uC120-\uBAA9\uB85D-\uC870\uD68C": + - /tms/banLineList +- "endpoints source: https://skopenapi.readme.io/reference/\uAD50\uCC28\uAE08\uC9C0\uC120-\uCD94\uAC00": + - /tms/banLineInsert +- "endpoints source: https://skopenapi.readme.io/reference/\uAD50\uCC28\uAE08\uC9C0\uC120-\uC0AD\uC81C": + - /tms/banLineDelete +- "endpoints source: https://skopenapi.readme.io/reference/\uAD50\uCC28\uAE08\uC9C0\uC120\uC815\uBCF4-1": + - /tms/banLineInsert + - /tms/banLineList + - /tms/banLineDelete +- "endpoints source: https://skopenapi.readme.io/reference/\uB300\uC911\uAD50\uD1B5-api": + - /transit/routes +- "endpoints source: https://skopenapi.readme.io/reference/\uB300\uC911\uAD50\uD1B5-\uC694\uC57D\uC815\uBCF4-api": + - /transit/routes/sub +- 'endpoints source: https://skopenapi.readme.io/reference/group-list': + - /nugufacecan/v1/group +- 'endpoints source: https://skopenapi.readme.io/reference/group-create': + - /nugufacecan/v1/group +- 'endpoints source: https://skopenapi.readme.io/reference/group-delete': + - /nugufacecan/v1/group/{group\_id +- "endpoints source: https://skopenapi.readme.io/reference/group-\uC0D8\uD50C-\uC608\uC81C": + - /nugufacecan/v1/group + - /nugufacecan/v1/group/ABCDE01234 +- 'endpoints source: https://skopenapi.readme.io/reference/subject-list': + - /nugufacecan/v1/subject +- 'endpoints source: https://skopenapi.readme.io/reference/subject-create': + - /nugufacecan/v1/subject +- 'endpoints source: https://skopenapi.readme.io/reference/subject-delete': + - /nugufacecan/v1/subject/{subject\_id +- "endpoints source: https://skopenapi.readme.io/reference/subject-\uC0D8\uD50C-\uC608\uC81C": + - /nugufacecan/v1/subject/sk-brand + - /nugufacecan/v1/subject +- 'endpoints source: https://skopenapi.readme.io/reference/subject-list-1': + - /nugufacecan/v1/face +- 'endpoints source: https://skopenapi.readme.io/reference/face-create': + - /nugufacecan/v1/face +- 'endpoints source: https://skopenapi.readme.io/reference/face-delete': + - /nugufacecan/v1/face/{face\_id +- "endpoints source: https://skopenapi.readme.io/reference/face-\uC0D8\uD50C-\uC608\uC81C": + - /nugufacecan/v1/face + - /nugufacecan/v1/face/sheare-id +- 'endpoints source: https://skopenapi.readme.io/reference/face-recognize-1': + - /nugufacecan/v1/recognize +- "endpoints source: https://skopenapi.readme.io/reference/face-recongnize-\uC0D8\uD50C-\uC608\uC81C": + - /nugufacecan/v1/recognize +- 'endpoints source: https://skopenapi.readme.io/reference/face-detect-1': + - /nugufacecan/v1/detect +- "endpoints source: https://skopenapi.readme.io/reference/face-detect-\uC0D8\uD50C-\uC608\uC81C": + - /tmap/v1/detect +- 'endpoints source: https://skopenapi.readme.io/reference/face-landmark-1': + - /nugufacecan/v1/landmark +- "endpoints source: https://skopenapi.readme.io/reference/face-landmark-\uC0D8\uD50C-\uC608\uC81C": + - /nugufacecan/v1/landmark +- "endpoints source: https://skopenapi.readme.io/reference/api-\uAC1C\uC694-1": + - /api/ovs/v20/device/{serialNo + - /api/ovs/v20/company/info/me + - /api/ovs/v20/statistics/event/raw + - /api/ovs/v20/message/device/{serialNo + - /api/ovs/v20/company/info/{companyId + - /api/ovs/v20/company/info/devices/{companyId + - /api/ovs/v20/company/info/devices/cnt/{companyId + - /api/ovs/v20/message/company/{companyId + - /api/ovs/v20/statistics/device/event/{serialNo + - /api/ovs/v20/device + - /api/ovs/v20/statistics/company/event/{companyId +- "endpoints source: https://skopenapi.readme.io/reference/\uB0B4-\uD68C\uC0AC-\uC815\uBCF4-\uC870\uD68C": + - /api/ovs/v20/company/info/me +- "endpoints source: https://skopenapi.readme.io/reference/\uD68C\uC0AC-\uC815\uBCF4-\uC870\uD68C": + - /api/ovs/v20/company/info/{companyId +- "endpoints source: https://skopenapi.readme.io/reference/\uD68C\uC0AC-\uC804\uCCB4-\uB2E8\uB9D0-\uB9AC\uC2A4\uD2B8-\uC870\uD68C": + - /api/ovs/v20/company/info/devices/{companyId +- "endpoints source: https://skopenapi.readme.io/reference/\uD68C\uC0AC-\uC804\uCCB4-\uB2E8\uB9D0-\uC218-\uC870\uD68C": + - /api/ovs/v20/company/info/devices/cnt/{companyId +- "endpoints source: https://skopenapi.readme.io/reference/\uD68C\uC0AC-\uC815\uBCF4-api-\uC0D8\uD50C\uC608\uC81C": + - /api/ovs/v20/company/info/devices/cnt + - /api/ovs/v20/company/info/me + - /api/ovs/v20/company/info/devices + - /api/ovs/v20/company/info/52631da0-b5ef-11ea-8f00-6730e8ef1a9e +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E8\uB9D0-\uB4F1\uB85D": + - /api/ovs/v20/device +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E8\uB9D0-\uC815\uBCF4-\uC870\uD68C": + - /api/ovs/v20/device/{serialNo +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E8\uB9D0-\uC0AD\uC81C": + - /api/ovs/v20/device/{serialNo +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E8\uB9D0-\uC815\uBCF4-api-\uC0D8\uD50C\uC608\uC81C": + - /api/ovs/v20/device/uio3512345678911234 + - /api/ovs/v20/device +- "endpoints source: https://skopenapi.readme.io/reference/\uC804\uCCB4-\uB2E8\uB9D0-\uBA54\uC2DC\uC9C0-\uC804\uB2EC": + - /api/ovs/v20/message/company/{companyId +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E8\uB9D0\uBCC4-\uBA54\uC2DC\uC9C0-\uC804\uB2EC": + - /api/ovs/v20/statistics/device/event/{serialNo +- "endpoints source: https://skopenapi.readme.io/reference/message-notification-api-\uC0D8\uD50C\uC608\uC81C": + - /api/ovs/v20/messasge/company/f58ccd10-a0bd-11ea-a9b8-ff6a8104c32f + - /api/ovs/v20/message/device/uio35fine1236 +- "endpoints source: https://skopenapi.readme.io/reference/\uD68C\uC0AC\uBCC4-\uC774\uBCA4\uD2B8-\uD1B5\uACC4": + - /api/ovs/v20/statistics/company/event/{companyId +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E8\uB9D0\uBCC4-\uC774\uBCA4\uD2B8-\uD1B5\uACC4": + - /api/ovs/v20/statistics/device/event/{serialNo +- "endpoints source: https://skopenapi.readme.io/reference/\uC774\uBCA4\uD2B8-\uD1B5\uACC4-api-\uC0D8\uD50C\uC608\uC81C": + - /api/ovs/v20/statistics/device/event + - /api/ovs/v20/statistics/company/event +- "endpoints source: https://skopenapi.readme.io/reference/\uC774\uBCA4\uD2B8-raw-data-\uC815\uBCF4-\uC870\uD68C": + - /api/ovs/v20/statistics/event/raw +- "endpoints source: https://skopenapi.readme.io/reference/\uC774\uBCA4\uD2B8-raw-data-api-\uC0D8\uD50C\uC608\uC81C": + - /api/ovs/v20/statistics/event/raw?year=2021&month=3 +- "endpoints source: https://skopenapi.readme.io/reference/\uACF5\uAC04-\uBD84\uB958-\uCD94\uAC00-1": + - /urbanbase/v1/space/classifier +- "endpoints source: https://skopenapi.readme.io/reference/\uACF5\uAC04-\uBD84\uB958-\uC870\uD68C": + - /urbanbase/v1/space/classifier/{space\_image\_uuid +- "endpoints source: https://skopenapi.readme.io/reference/\uACF5\uAC04-\uBD84\uB958-\uC0D8\uD50C\uC608\uC81C": + - /urbanbase/v1/space/classifier/space_image_uuid + - /urbanbase/v1/space/classifier +- "endpoints source: https://skopenapi.readme.io/reference/\uC0AC\uBB3C-\uAC80\uCD9C-\uCD94\uAC00-1": + - /urbanbase/v1/space/detector +- "endpoints source: https://skopenapi.readme.io/reference/\uC0AC\uBB3C-\uAC80\uCD9C-\uC870\uD68C": + - /urbanbase/v1/space/detector/{space\_image\_uuid +- "endpoints source: https://skopenapi.readme.io/reference/\uC0AC\uBB3C-\uAC80\uCD9C-\uC0D8\uD50C\uC608\uC81C": + - /urbanbase/v1/space/detector/space_image_uuid + - /urbanbase/v1/space/detector +- "endpoints source: https://skopenapi.readme.io/reference/\uC2A4\uD0C0\uC77C-\uBD84\uC11D-\uCD94\uAC00-1": + - /urbanbase/v1/space/analyzer +- "endpoints source: https://skopenapi.readme.io/reference/\uC2A4\uD0C0\uC77C-\uBD84\uC11D-\uC870\uD68C": + - /urbanbase/v1/space/analyzer/{space\_image\_uuid +- "endpoints source: https://skopenapi.readme.io/reference/\uC2A4\uD0C0\uC77C-\uCD94\uCD9C-\uC0D8\uD50C\uC608\uC81C": + - /urbanbase/v1/space/analyzer + - /urbanbase/v1/space/analyzer/space_image_uuid +- "endpoints source: https://skopenapi.readme.io/reference/\uC0C9\uC0C1-\uCD94\uCD9C-\uCD94\uAC00-1": + - /urbanbase/v1/space/extractor +- "endpoints source: https://skopenapi.readme.io/reference/\uC0C9\uC0C1-\uCD94\uCD9C-\uC870\uD68C": + - /urbanbase/v1/space/extractor/{space\_image\_uuid +- "endpoints source: https://skopenapi.readme.io/reference/\uC0C9\uC0C1-\uCD94\uCD9C-\uC0D8\uD50C\uC608\uC81C": + - /urbanbase/v1/space/extractor/%7Bspace_image_uuid%20%7D + - /urbanbase/v1/space/extractor +- 'endpoints source: https://skopenapi.readme.io/reference/create_analyzer-1': + - /sigmeta/golf/v1/create\_analyzer +- 'endpoints source: https://skopenapi.readme.io/reference/get_result-1': + - /sigmeta/golf/v1/get\_result/{JobID +- 'endpoints source: https://skopenapi.readme.io/reference/e2e-2': + - /sigmeta/golf/v1/e2e +- 'endpoints source: https://skopenapi.readme.io/reference/lpr-1': + - /sigmeta/lpr/v1 +- 'endpoints source: https://skopenapi.readme.io/reference/create-analyzer-1': + - /sigmeta/pose/v1/create\_analyzer +- 'endpoints source: https://skopenapi.readme.io/reference/start_analyzer-1': + - /sigmeta/pose/v1/get\_result/{JobID + - /sigmeta/pose/v1/get_result/metering +- 'endpoints source: https://skopenapi.readme.io/reference/e2e-1-1': + - /sigmeta/pose/v1/e2e/metering + - /sigmeta/pose/v1/e2e +- "endpoints source: https://skopenapi.readme.io/reference/\uC804\uCCB4\uCE74\uD14C\uACE0\uB9AC\uC870\uD68C": + - /11st/category +- "endpoints source: https://skopenapi.readme.io/reference/\uCE74\uD14C\uACE0\uB9AC-\uC870\uD68C-\uC0D8\uD50C\uC608\uC81C": + - /11st/category +- "endpoints source: https://skopenapi.readme.io/reference/\uC8FC\uCC28-\uC218\uC694-\uC9C0\uC218-\uC870\uD68C": + - /litmus/catalog/mobility/parking +- 'endpoints source: https://skopenapi.readme.io/reference/tts-model-list-1': + - https://dash.readme.com/project/ax-tts-skopenapi/v1.0/refs/tts-model-list +- ? 'endpoints source: https://skopenapi.readme.io/reference/%EC%A3%BC%EC%B0%A8-%EC%88%98%EC%9A%94-%EC%A7%80%EC%88%98-%EC%A1%B0%ED%9A%8C' + : - /litmus/catalog/mobility/parking +- 'endpoints source: https://skopenapi.readme.io/reference/tts-model-list': + - https://dash.readme.com/project/ax-tts-skopenapi/v1.0/refs/tts-model-list +- "endpoints source: https://skopenapi.readme.io/reference/\uD29C\uD1A0\uB9AC\uC5BC": + - /tmap/geo/reversegeocoding +- "endpoints source: https://skopenapi.readme.io/reference/\uC9C0\uC624\uCF54\uB529": + - /tmap/geofencing/regions +- "endpoints source: https://skopenapi.readme.io/reference/\uAD50\uD1B5\uC815\uBCF4": + - /tmap/traffic +- "endpoints source: https://skopenapi.readme.io/reference/\uACBD\uB85C\uC548\uB0B4": + - /tmap/routes/prediction +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E4\uC911-\uACBD\uC720\uC9C0-\uC548\uB0B4-30": + - /tmap/routes/routeSequential30 +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E4\uC911-\uACBD\uC720\uC9C0-\uC548\uB0B4-100": + - /tmap/routes/routeOptimization10 +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E4\uC911-\uACBD\uC720\uC9C0-\uC548\uB0B4-200": + - /tmap/road/matchToRoads +- "endpoints source: https://skopenapi.readme.io/reference/\uACBD\uC720\uC9C0-\uCD5C\uC801\uD654-10": + - /tmap/staticMap +- "endpoints source: https://skopenapi.readme.io/reference/\uACBD\uC720\uC9C0-\uCD5C\uC801\uD654-20": + - /tmap/oilinfo/aroundOil +- "endpoints source: https://skopenapi.readme.io/reference/\uACBD\uC720\uC9C0-\uCD5C\uC801\uD654-30": + - /tmap/matrix +- "endpoints source: https://skopenapi.readme.io/reference/\uC13C\uD130\uC815\uBCF4": + - /tms/centerList +- "endpoints source: https://skopenapi.readme.io/reference/\uAD8C\uC5ED\uC815\uBCF4": + - /tms/zoneList +- "endpoints source: https://skopenapi.readme.io/reference/\uCC28\uB7C9\uC815\uBCF4": + - /tms/vehicleList +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uC1A1\uC9C0\uC815\uBCF4": + - /tms/orderList +- "endpoints source: https://skopenapi.readme.io/reference/\uBC30\uCC28\uC694\uCCAD": + - /tms/allocation +- "endpoints source: https://skopenapi.readme.io/reference/\uAD50\uCC28\uAE08\uC9C0\uC120\uC815\uBCF4": + - /tms/banLineList +- "endpoints source: https://skopenapi.readme.io/reference/\uB300\uC911\uAD50\uD1B5-\uACBD\uB85C\uC548\uB0B4": + - /transit/routes +- 'endpoints source: https://skopenapi.readme.io/reference/group-1': + - /nugufacecan/v1/group +- 'endpoints source: https://skopenapi.readme.io/reference/subject': + - /nugufacecan/v1/subject +- 'endpoints source: https://skopenapi.readme.io/reference/face': + - /nugufacecan/v1/face +- 'endpoints source: https://skopenapi.readme.io/reference/face-recognize': + - /nugufacecan/v1/recognize +- 'endpoints source: https://skopenapi.readme.io/reference/face-detect': + - /nugufacecan/v1/detect +- 'endpoints source: https://skopenapi.readme.io/reference/face-landmark': + - /nugufacecan/v1/landmark +- "endpoints source: https://skopenapi.readme.io/reference/api-\uAC1C\uC694": + - /api/ovs/v20/device/{serialNo + - /api/ovs/v20/company/info/me + - /api/ovs/v20/statistics/event/raw + - /api/ovs/v20/message/device/{serialNo + - /api/ovs/v20/company/info/{companyId + - /api/ovs/v20/company/info/devices/{companyId + - /api/ovs/v20/company/info/devices/cnt/{companyId + - /api/ovs/v20/message/company/{companyId + - /api/ovs/v20/statistics/device/event/{serialNo + - /api/ovs/v20/device + - /api/ovs/v20/statistics/company/event/{companyId +- "endpoints source: https://skopenapi.readme.io/reference/\uD68C\uC0AC-\uC815\uBCF4-api": + - /api/ovs/v20/company/info/me +- "endpoints source: https://skopenapi.readme.io/reference/\uB2E8\uB9D0-\uC815\uBCF4-api": + - /api/ovs/v20/device +- 'endpoints source: https://skopenapi.readme.io/reference/message-notification-api': + - /api/ovs/v20/message/company/{companyId +- "endpoints source: https://skopenapi.readme.io/reference/\uC774\uBCA4\uD2B8-\uD1B5\uACC4-api": + - /api/ovs/v20/statistics/company/event/{companyId +- "endpoints source: https://skopenapi.readme.io/reference/\uC774\uBCA4\uD2B8-raw-data-api": + - /api/ovs/v20/statistics/event/raw +- "endpoints source: https://skopenapi.readme.io/reference/\uACF5\uAC04-\uBD84\uB958": + - /urbanbase/v1/space/classifier +- "endpoints source: https://skopenapi.readme.io/reference/\uC0AC\uBB3C-\uAC80\uCD9C": + - /urbanbase/v1/space/detector +- "endpoints source: https://skopenapi.readme.io/reference/\uC2A4\uD0C0\uC77C-\uBD84\uC11D": + - /urbanbase/v1/space/analyzer +- "endpoints source: https://skopenapi.readme.io/reference/\uC0C9\uC0C1-\uCD94\uCD9C": + - /urbanbase/v1/space/extractor +- 'endpoints source: https://skopenapi.readme.io/reference/getting-started-with-ax-tts-api': + - https://tvoice-api.sktnugu.com/tvoice/openapi/v3/voices?model=tvoice-2-1-m58 diff --git a/azuga_equipment_tracking/azuga-equipment-tracking-docs.md b/azuga_equipment_tracking/azuga-equipment-tracking-docs.md new file mode 100644 index 00000000..3d9e8d7f --- /dev/null +++ b/azuga_equipment_tracking/azuga-equipment-tracking-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Azuga data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def azuga_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://services.azuga.com/azuga-ws-oauth/v3/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + users,,alerts,,vehicles + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='azuga_migrations_pipeline', + destination='duckdb', + dataset_name='azuga_migrations_data', + ) + # Load the data + load_info = pipeline.run(azuga_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from azuga_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Users: Manage users within the Azuga system. +- Alerts: Handle various alert configurations and events. +- Vehicles: Manage vehicle records, including creation, updates, and deletions. +- Assets: Manage asset tracking and related operations. +- Geofences: Handle geofence creation and management. + +You will then debug the Azuga pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Azuga support. + ```shell + dlt init dlthub:azuga_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Azuga API, as specified in @azuga_migrations-docs.yaml + Start with endpoints users and and skip incremental loading for now. + Place the code in azuga_migrations_pipeline.py and name the pipeline azuga_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python azuga_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is performed using OAuth2. The token must be included in the header with the prefix 'Bearer'. + + To get the appropriate API keys, please visit the original source at https://www.azuga.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python azuga_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline azuga_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset azuga_migrations_data + The duckdb destination used duckdb:/azuga_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline azuga_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("azuga_migrations_pipeline").dataset() + # get ser table as Pandas frame + data.ser.df().head() + ``` + +## Running into errors? + +Ensure to set up a connected app in Azuga for OAuth2. The token has to be refreshed as needed, and certain subscriptions to events are mandatory for real-time notifications. Be cautious with permissions, as you can only modify resources you have access to. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/azuga_equipment_tracking/azuga-equipment-tracking-docs.yaml b/azuga_equipment_tracking/azuga-equipment-tracking-docs.yaml new file mode 100644 index 00000000..5d8e6548 --- /dev/null +++ b/azuga_equipment_tracking/azuga-equipment-tracking-docs.yaml @@ -0,0 +1,6768 @@ +resources: +- name: accident_detection + endpoint: + path: /webhook/events/accident_detection + method: POST +- name: accelerometer_impact_event + endpoint: + path: /webhook/events/accelerometer_impact_event + method: POST +- name: accelerometer_y_axis + endpoint: + path: /webhook/events/accelerometer_y_axis + method: POST +- name: battery_voltage_restored + endpoint: + path: /battery_voltage_restored + method: POST + data_selector: input + params: {} +- name: cam_button_pressed + endpoint: + path: /cam_button_pressed + method: POST + data_selector: input + params: {} +- name: cam_distracted_driving + endpoint: + path: /cam_distracted_driving + method: POST + data_selector: input + params: {} +- name: CAM_EATING_DRINKING + endpoint: + path: /CAM_EATING_DRINKING + method: GET + data_selector: records + params: {} +- name: CAM_IMPACT + endpoint: + path: /CAM_IMPACT + method: GET + data_selector: records + params: {} +- name: CAM_PHONE_USE + endpoint: + path: /CAM_PHONE_USE + method: GET + data_selector: records + params: {} +- name: CAM_SMOKING + endpoint: + path: /CAM_SMOKING + method: GET + data_selector: records + params: {} +- name: accident_detection + endpoint: + path: /webhooks/accident_detection + method: POST + data_selector: inputBit7 + params: {} +- name: accelerometer_impact_event + endpoint: + path: /webhooks/accelerometer_impact_event + method: POST + data_selector: inputBit7 + params: {} +- name: accelerometer_y_axis + endpoint: + path: /webhooks/accelerometer_y_axis + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Tampered + endpoint: + path: /CAM_Tampered + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Unbelted + endpoint: + path: /CAM_Unbelted + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Violent_Left_Turn + endpoint: + path: /CAM_Violent_Left_Turn + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Violent_Right_Turn + endpoint: + path: /CAM_Violent_Right_Turn + method: POST + data_selector: inputBit7 + params: {} +- name: Battery_Voltage_Restored + endpoint: + path: /Battery_Voltage_Restored + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Button_Pressed + endpoint: + path: /CAM_Button_Pressed + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Distracted_Driving + endpoint: + path: /CAM_Distracted_Driving + method: POST + data_selector: inputBit7 + params: {} +- name: charging_concern_dtc + endpoint: + path: /charging_concern_dtc + method: POST + data_selector: inputBit7 + params: {} +- name: connect + endpoint: + path: /connect + method: POST + data_selector: inputBit7 + params: {} +- name: critical_battery_voltage + endpoint: + path: /critical_battery_voltage + method: POST + data_selector: inputBit7 + params: {} +- name: disconnect + endpoint: + path: /disconnect + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_EATING_DRINKING + endpoint: + path: /CAM_EATING_DRINKING + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_IMPACT + endpoint: + path: /CAM_IMPACT + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_PHONE_USE + endpoint: + path: /CAM_PHONE_USE + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_SMOKING + endpoint: + path: /CAM_SMOKING + method: POST + data_selector: inputBit7 + params: {} +- name: DTC_Message + endpoint: + path: /DTC_Message + method: POST + data_selector: dtcMessageRecords + params: {} +- name: Engine_Hours_Start + endpoint: + path: /Engine_Hours_Start + method: POST + data_selector: records + params: {} +- name: Engine_Hours_End + endpoint: + path: /Engine_Hours_End + method: POST + data_selector: records + params: {} +- name: Entered_Geofence + endpoint: + path: /Entered_Geofence + method: POST + data_selector: records + params: {} +- name: CAM_Tampered + endpoint: + path: /webhook/events/CAM_Tampered + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Unbelted + endpoint: + path: /webhook/events/CAM_Unbelted + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Violent_Left_Turn + endpoint: + path: /webhook/events/CAM_Violent_Left_Turn + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Violent_Right_Turn + endpoint: + path: /webhook/events/CAM_Violent_Right_Turn + method: POST + data_selector: inputBit7 + params: {} +- name: Event_Report_Message + endpoint: + path: /event_report_message + method: POST + data_selector: inputBit7 + params: {} +- name: Excessive_Drain_Alert + endpoint: + path: /excessive_drain_alert + method: POST + data_selector: inputBit7 + params: {} +- name: Excessive_Drain_Reset + endpoint: + path: /excessive_drain_reset + method: POST + data_selector: inputBit7 + params: {} +- name: Charging_Concern_DTC + endpoint: + path: /charging_concern_dtc + method: POST + data_selector: inputBit7 + params: {} +- name: Connect + endpoint: + path: /connect + method: POST + data_selector: inputBit7 + params: {} +- name: Critical_Battery_Voltage + endpoint: + path: /critical_battery_voltage + method: POST + data_selector: inputBit7 + params: {} +- name: Disconnect + endpoint: + path: /disconnect + method: POST + data_selector: inputBit7 + params: {} +- name: Exit_Geofence + endpoint: + path: /webhook/exit_geofence + method: POST + data_selector: inputBit7 + params: {} +- name: Extension_1_End + endpoint: + path: /webhook/extension_1_end + method: POST + data_selector: inputBit7 + params: {} +- name: Extension_1_Start + endpoint: + path: /webhook/extension_1_start + method: POST + data_selector: inputBit7 + params: {} +- name: Extension_2_End + endpoint: + path: /webhook/extension_2_end + method: POST + data_selector: inputBit7 + params: {} +- name: Extension_2_Start + endpoint: + path: /webhook/extension_2_start + method: POST + data_selector: inputBit7 + params: {} +- name: DTC_Message + endpoint: + path: /DTC_Message + method: GET + data_selector: dtcMessageRecords +- name: Engine_Hours_Start + endpoint: + path: /Engine_Hours_Start + method: GET + data_selector: records +- name: Engine_Hours_End + endpoint: + path: /Engine_Hours_End + method: GET + data_selector: records +- name: Entered_Geofence + endpoint: + path: /Entered_Geofence + method: GET + data_selector: records +- name: firmware_update + endpoint: + path: /firmware_update + method: POST + data_selector: inputBit7 + params: {} +- name: fuel_decrease + endpoint: + path: /fuel_decrease + method: POST + data_selector: inputBit7 + params: {} +- name: fuel_increase + endpoint: + path: /fuel_increase + method: POST + data_selector: inputBit7 + params: {} +- name: geofence_entry + endpoint: + path: /geofence_entry + method: POST + data_selector: inputBit7 + params: {} +- name: Event_Report_Message + endpoint: + path: /Event_Report_Message + method: POST + data_selector: payload + params: {} +- name: Excessive_Drain_Alert + endpoint: + path: /Excessive_Drain_Alert + method: POST + data_selector: payload + params: {} +- name: Excessive_Drain_Reset + endpoint: + path: /Excessive_Drain_Reset + method: POST + data_selector: payload + params: {} +- name: geofence_exit + endpoint: + path: /geofence/exit + method: POST + data_selector: message + params: {} +- name: geofence_timer_not_in + endpoint: + path: /geofence/timer/notin + method: POST + data_selector: message + params: {} +- name: geofence_timer_not_out + endpoint: + path: /geofence/timer/notout + method: POST + data_selector: message + params: {} +- name: gps_message + endpoint: + path: /gps/message + method: POST + data_selector: message + params: {} +- name: Exit_Geofence + endpoint: + path: /webhook/events/Exit_Geofence + method: POST + data_selector: inputBit7 + params: {} +- name: Extension_1_End + endpoint: + path: /webhook/events/Extension_1_End + method: POST + data_selector: inputBit7 + params: {} +- name: Extension_1_Start + endpoint: + path: /webhook/events/Extension_1_Start + method: POST + data_selector: inputBit7 + params: {} +- name: Extension_2_End + endpoint: + path: /webhook/events/Extension_2_End + method: POST + data_selector: inputBit7 + params: {} +- name: Extension_2_Start + endpoint: + path: /webhook/events/Extension_2_Start + method: POST + data_selector: inputBit7 + params: {} +- name: hard_acceleration_message + endpoint: + path: /hard_acceleration_message + method: POST + data_selector: inputBit7 + params: {} +- name: hard_breaking_message + endpoint: + path: /hard_breaking_message + method: POST + data_selector: inputBit7 + params: {} +- name: hard_core_braking_message + endpoint: + path: /hard_core_braking_message + method: POST + data_selector: inputBit7 + params: {} +- name: high_tire_pressure + endpoint: + path: /high_tire_pressure + method: POST + data_selector: inputBit7 + params: {} +- name: idling_ended + endpoint: + path: /idling_ended + method: POST + data_selector: inputBit7 + params: {} +- name: Firmware_Update + endpoint: + path: /firmware_update + method: POST + data_selector: payload + params: {} +- name: Fuel_Decrease + endpoint: + path: /fuel_decrease + method: POST + data_selector: payload + params: {} +- name: Fuel_Increase + endpoint: + path: /fuel_increase + method: POST + data_selector: payload + params: {} +- name: Geofence_Entry + endpoint: + path: /geofence_entry + method: POST + data_selector: payload + params: {} +- name: idling_when_steamer_on + endpoint: + path: /webhook/idling_when_steamer_on + method: POST + data_selector: inputBit7 + params: {} +- name: low_battery_voltage + endpoint: + path: /webhook/low_battery_voltage + method: POST + data_selector: inputBit7 + params: {} +- name: low_tire_pressure + endpoint: + path: /webhook/low_tire_pressure + method: POST + data_selector: inputBit7 + params: {} +- name: low_fuel + endpoint: + path: /webhook/low_fuel + method: POST + data_selector: inputBit7 + params: {} +- name: Geofence_Exit + endpoint: + path: /geofence/exit + method: POST + data_selector: inputBit7 + params: {} +- name: Geofence_Timer_NotIn + endpoint: + path: /geofence/timer/notin + method: POST + data_selector: inputBit7 + params: {} +- name: Geofence_Timer_NotOut + endpoint: + path: /geofence/timer/notout + method: POST + data_selector: inputBit7 + params: {} +- name: GPS_Message + endpoint: + path: /gps/message + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_call_blocked + endpoint: + path: /mobile/event/call/blocked + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_call_ended + endpoint: + path: /mobile/event/call/ended + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_call_made + endpoint: + path: /mobile/event/call/made + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_call_made_headset + endpoint: + path: /mobile/event/call/made/headset + method: POST + data_selector: inputBit7 + params: {} +- name: hard_acceleration_message + endpoint: + path: /hard_acceleration_message + method: POST + data_selector: inputBit7 + params: {} +- name: hard_breaking_message + endpoint: + path: /hard_breaking_message + method: POST + data_selector: inputBit7 + params: {} +- name: hard_core_braking_message + endpoint: + path: /hard_core_braking_message + method: POST + data_selector: inputBit7 + params: {} +- name: high_tire_pressure + endpoint: + path: /high_tire_pressure + method: POST + data_selector: inputBit7 + params: {} +- name: idling_ended + endpoint: + path: /idling_ended + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_call_received + endpoint: + path: /mobile/events/call/received + method: POST + data_selector: records + params: {} +- name: mobile_event_call_received_headset + endpoint: + path: /mobile/events/call/received/headset + method: POST + data_selector: records + params: {} +- name: mobile_event_drive_safe_call_end + endpoint: + path: /mobile/events/drive_safe/call/end + method: POST + data_selector: records + params: {} +- name: mobile_event_drivesafe_activated + endpoint: + path: /mobile/events/drivesafe/activated + method: POST + data_selector: records + params: {} +- name: Idling_When_Steamer_On + endpoint: + path: /webhook/idling_when_steamer_on + method: POST + data_selector: inputBit7 + params: {} +- name: Low_Battery_Voltage + endpoint: + path: /webhook/low_battery_voltage + method: POST + data_selector: inputBit7 + params: {} +- name: Low_Tire_Pressure + endpoint: + path: /webhook/low_tire_pressure + method: POST + data_selector: inputBit7 + params: {} +- name: Low_Fuel + endpoint: + path: /webhook/low_fuel + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_drivesafe_deactivated + endpoint: + path: /mobile_events/drivesafe_deactivated + method: POST + data_selector: payload + params: {} +- name: mobile_event_emergency_number_dialed + endpoint: + path: /mobile_events/emergency_number_dialed + method: POST + data_selector: payload + params: {} +- name: mobile_event_missed_call + endpoint: + path: /mobile_events/missed_call + method: POST + data_selector: payload + params: {} +- name: mobile_event_navigation_launched + endpoint: + path: /mobile_events/navigation_launched + method: POST + data_selector: payload + params: {} +- name: Mobile_Event_Call_Blocked + endpoint: + path: /mobile_event/call_blocked + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_Call_Ended + endpoint: + path: /mobile_event/call_ended + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_Call_Made + endpoint: + path: /mobile_event/call_made + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_Call_Made_Headset + endpoint: + path: /mobile_event/call_made_headset + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_SMS_Received + endpoint: + path: /mobile/event/sms/received + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_SMS_Sent + endpoint: + path: /mobile/event/sms/sent + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_Whitelisted_App_Launched + endpoint: + path: /mobile/event/whitelisted/app/launched + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_Whitelisted_Call_Made + endpoint: + path: /mobile/event/whitelisted/call/made + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_call_received + endpoint: + path: /mobile/event/call/received + method: POST + data_selector: input + params: {} +- name: mobile_event_call_received_headset + endpoint: + path: /mobile/event/call/received/headset + method: POST + data_selector: input + params: {} +- name: mobile_event_drive_safe_call_end + endpoint: + path: /mobile/event/drive/safe/call/end + method: POST + data_selector: input + params: {} +- name: mobile_event_drivesafe_activated + endpoint: + path: /mobile/event/drivesafe/activated + method: POST + data_selector: input + params: {} +- name: Mobile_Event_Whitelisted_App_Received + endpoint: + path: /mobile_event/whitelisted_app_received + method: POST + data_selector: records +- name: Over_Speeding_Ended + endpoint: + path: /over_speeding/ended + method: POST + data_selector: records +- name: Over_Speeding_Message + endpoint: + path: /over_speeding/message + method: POST + data_selector: records +- name: mobile_event_drivesafe_deactivated + endpoint: + path: /mobile_event/drivesafe_deactivated + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_emergency_number_dialed + endpoint: + path: /mobile_event/emergency_number_dialed + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_missed_call + endpoint: + path: /mobile_event/missed_call + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_navigation_launched + endpoint: + path: /mobile_event/navigation_launched + method: POST + data_selector: inputBit7 + params: {} +- name: pair_message + endpoint: + path: /pair_message + method: POST + data_selector: inputBit7 + params: {} +- name: panic_message + endpoint: + path: /panic_message + method: POST + data_selector: inputBit7 + params: {} +- name: pending_dtc_info + endpoint: + path: /pending_dtc_info + method: POST + data_selector: inputBit7 + params: {} +- name: peripheral_connect + endpoint: + path: /peripheral_connect + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_SMS_Received + endpoint: + path: /mobile/event/sms/received + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_SMS_Sent + endpoint: + path: /mobile/event/sms/sent + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_Whitelisted_App_Launched + endpoint: + path: /mobile/event/whitelisted/app/launched + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_Whitelisted_Call_Made + endpoint: + path: /mobile/event/whitelisted/call/made + method: POST + data_selector: inputBit7 + params: {} +- name: peripheral_disconnect + endpoint: + path: /peripheral/disconnect + method: POST + data_selector: event + params: {} +- name: posted_speed_limit + endpoint: + path: /posted/speed_limit + method: POST + data_selector: event + params: {} +- name: power_take_off + endpoint: + path: /power/take_off + method: POST + data_selector: event + params: {} +- name: pulse_width_duration + endpoint: + path: /pulse/width_duration + method: POST + data_selector: event + params: {} +- name: Mobile_Event_Whitelisted_App_Received + endpoint: + path: /mobile/event/whitelisted/call/received + method: POST + data_selector: message + params: {} +- name: Over_Speeding_Ended + endpoint: + path: /over/speeding/ended + method: POST + data_selector: message + params: {} +- name: Over_Speeding_Message + endpoint: + path: /over/speeding/message + method: POST + data_selector: message + params: {} +- name: real_time_disconnect_event + endpoint: + path: /real_time_disconnect_event + method: GET + data_selector: payload +- name: stop_time_message + endpoint: + path: /stop_time_message + method: GET + data_selector: payload +- name: temperature_1 + endpoint: + path: /temperature_1 + method: GET + data_selector: payload +- name: temperature_2 + endpoint: + path: /temperature_2 + method: GET + data_selector: payload +- name: temperature_3 + endpoint: + path: /temperature_3 + method: GET + data_selector: payload +- name: pair_message + endpoint: + path: /pair_message + method: POST + data_selector: inputBit7 + params: {} +- name: panic_message + endpoint: + path: /panic_message + method: POST + data_selector: inputBit7 + params: {} +- name: pending_dtc_info + endpoint: + path: /pending_dtc_info + method: POST + data_selector: inputBit7 + params: {} +- name: peripheral_connect + endpoint: + path: /peripheral_connect + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_4 + endpoint: + path: /events/temperature/4 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_5 + endpoint: + path: /events/temperature/5 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_6 + endpoint: + path: /events/temperature/6 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_7 + endpoint: + path: /events/temperature/7 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_8 + endpoint: + path: /events/temperature/8 + method: POST + data_selector: inputBit7 + params: {} +- name: tpms_resolved_event + endpoint: + path: /events/tpms/resolved + method: POST + data_selector: fixQuality + params: {} +- name: Peripheral_Disconnect + endpoint: + path: /WebhookEvents/Peripheral_Disconnect + method: POST + data_selector: records + params: {} +- name: Posted_Speed_Limit + endpoint: + path: /WebhookEvents/Posted_Speed_Limit + method: POST + data_selector: records + params: {} +- name: Power_Take_Off + endpoint: + path: /WebhookEvents/Power_Take_Off + method: POST + data_selector: records + params: {} +- name: Pulse_Width_Duration + endpoint: + path: /WebhookEvents/Pulse_Width_Duration + method: POST + data_selector: records + params: {} +- name: real_time_disconnect_event + endpoint: + path: /real_time_disconnect_event + method: POST + data_selector: inputBit7 + params: {} +- name: stop_time_message + endpoint: + path: /stop_time_message + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_1 + endpoint: + path: /temperature_1 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_2 + endpoint: + path: /temperature_2 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_3 + endpoint: + path: /temperature_3 + method: POST + data_selector: inputBit7 + params: {} +- name: Trip_End_Message + endpoint: + path: /trip_end_message + method: POST + data_selector: inputBit7 + params: {} +- name: Trip_Start_Message + endpoint: + path: /trip_start_message + method: POST + data_selector: inputBit7 + params: {} +- name: Unauthorized_Vehicle_Usage + endpoint: + path: /unauthorized_vehicle_usage + method: POST + data_selector: inputBit7 + params: {} +- name: Unknown_Driver + endpoint: + path: /unknown_driver + method: POST + data_selector: inputBit7 + params: {} +- name: unpair_message + endpoint: + path: /unpair_message + method: POST + data_selector: inputBit7 + params: {} +- name: vehicle_backup_event + endpoint: + path: /vehicle_backup_event + method: POST + data_selector: zipCode + params: {} +- name: vehicle_mil_info + endpoint: + path: /vehicle_mil_info + method: POST + data_selector: inputBit7 + params: {} +- name: vehicle_not_tracking + endpoint: + path: /vehicle_not_tracking + method: POST + data_selector: inputBit7 + params: {} +- name: VIN_Change_Event + endpoint: + path: /webhook/vin_change_event + method: POST + data_selector: messageType + params: {} +- name: temperature_4 + endpoint: + path: /webhook/events/temperature_4 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_5 + endpoint: + path: /webhook/events/temperature_5 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_6 + endpoint: + path: /webhook/events/temperature_6 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_7 + endpoint: + path: /webhook/events/temperature_7 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_8 + endpoint: + path: /webhook/events/temperature_8 + method: POST + data_selector: inputBit7 + params: {} +- name: tpms_resolved_event + endpoint: + path: /webhook/events/tpms_resolved_event + method: POST + data_selector: fixQuality + params: {} +- name: trip_end_message + endpoint: + path: /trip_end_message + method: POST + data_selector: inputBit7 + params: {} +- name: trip_start_message + endpoint: + path: /trip_start_message + method: POST + data_selector: inputBit7 + params: {} +- name: unauthorized_vehicle_usage + endpoint: + path: /unauthorized_vehicle_usage + method: POST + data_selector: inputBit7 + params: {} +- name: unknown_driver + endpoint: + path: /unknown_driver + method: POST + data_selector: inputBit7 + params: {} +- name: accident_detection + endpoint: + path: /webhook-events/accident_detection + method: GET + data_selector: payload + params: {} +- name: accelerometer_impact_event + endpoint: + path: /webhook-events/accelerometer_impact_event + method: GET + data_selector: payload + params: {} +- name: accelerometer_y_axis + endpoint: + path: /webhook-events/accelerometer_y_axis + method: GET + data_selector: payload + params: {} +- name: battery_voltage_restored + endpoint: + path: /battery_voltage_restored + method: POST + data_selector: payload + params: {} +- name: cam_button_pressed + endpoint: + path: /cam_button_pressed + method: POST + data_selector: payload + params: {} +- name: cam_distracted_driving + endpoint: + path: /cam_distracted_driving + method: POST + data_selector: payload + params: {} +- name: unpair_message + endpoint: + path: /unpair_message + method: POST + data_selector: inputBit7 + params: {} +- name: vehicle_backup_event + endpoint: + path: /vehicle_backup_event + method: POST + data_selector: zipCode + params: {} +- name: vehicle_mil_info + endpoint: + path: /vehicle_mil_info + method: POST + data_selector: inputBit7 + params: {} +- name: vehicle_not_tracking + endpoint: + path: /vehicle_not_tracking + method: POST + data_selector: inputBit7 + params: {} +- name: VIN_Change_Event + endpoint: + path: /webhook_events/vin_change_event + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_EATING_DRINKING + endpoint: + path: /path/to/CAM_EATING_DRINKING + method: POST + data_selector: records +- name: CAM_IMPACT + endpoint: + path: /path/to/CAM_IMPACT + method: POST + data_selector: records +- name: CAM_PHONE_USE + endpoint: + path: /path/to/CAM_PHONE_USE + method: POST + data_selector: records +- name: CAM_SMOKING + endpoint: + path: /path/to/CAM_SMOKING + method: POST + data_selector: records +- name: CAM_Tampered + endpoint: + path: /webhook/cam_tampered + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Unbelted + endpoint: + path: /webhook/cam_unbelted + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Violent_Left_Turn + endpoint: + path: /webhook/cam_violent_left_turn + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Violent_Right_Turn + endpoint: + path: /webhook/cam_violent_right_turn + method: POST + data_selector: inputBit7 + params: {} +- name: Charging_Concern_DTC + endpoint: + path: /charging_concern_dtc + method: POST + data_selector: records +- name: Connect + endpoint: + path: /connect + method: POST + data_selector: records +- name: Critical_Battery_Voltage + endpoint: + path: /critical_battery_voltage + method: POST + data_selector: records +- name: Disconnect + endpoint: + path: /disconnect + method: POST + data_selector: records +- name: accident_detection + endpoint: + path: /webhook/accident_detection + method: POST + data_selector: inputBit7 + params: {} +- name: accelerometer_impact_event + endpoint: + path: /webhook/accelerometer_impact_event + method: POST + data_selector: inputBit7 + params: {} +- name: accelerometer_y_axis + endpoint: + path: /webhook/accelerometer_y_axis + method: POST + data_selector: inputBit7 + params: {} +- name: DTC_Message + endpoint: + path: /DTC_Message + method: POST + data_selector: dtcMessageRecords + params: {} +- name: Engine_Hours_Start + endpoint: + path: /Engine_Hours_Start + method: POST + data_selector: records + params: {} +- name: Engine_Hours_End + endpoint: + path: /Engine_Hours_End + method: POST + data_selector: records + params: {} +- name: Entered_Geofence + endpoint: + path: /Entered_Geofence + method: POST + data_selector: records + params: {} +- name: Battery_Voltage_Restored + endpoint: + path: /battery/voltage/restored + method: POST + data_selector: event + params: {} +- name: CAM_Button_Pressed + endpoint: + path: /camera/button/pressed + method: POST + data_selector: event + params: {} +- name: CAM_Distracted_Driving + endpoint: + path: /camera/distracted/driving + method: POST + data_selector: event + params: {} +- name: CAM_EATING_DRINKING + endpoint: + path: /webhook/cam_eating_drinking + method: POST + data_selector: records +- name: CAM_IMPACT + endpoint: + path: /webhook/cam_impact + method: POST + data_selector: records +- name: CAM_PHONE_USE + endpoint: + path: /webhook/cam_phone_use + method: POST + data_selector: records +- name: CAM_SMOKING + endpoint: + path: /webhook/cam_smoking + method: POST + data_selector: records +- name: Event_Report_Message + endpoint: + path: /events/report/message + method: POST + data_selector: inputBit7 + params: {} +- name: Excessive_Drain_Alert + endpoint: + path: /events/excessive/drain/alert + method: POST + data_selector: inputBit7 + params: {} +- name: Excessive_Drain_Reset + endpoint: + path: /events/excessive/drain/reset + method: POST + data_selector: inputBit7 + params: {} +- name: CAM_Tampered + endpoint: + path: /CAM_Tampered + method: GET + data_selector: inputBit7 + params: {} +- name: CAM_Unbelted + endpoint: + path: /CAM_Unbelted + method: GET + data_selector: inputBit7 + params: {} +- name: CAM_Violent_Left_Turn + endpoint: + path: /CAM_Violent_Left_Turn + method: GET + data_selector: inputBit7 + params: {} +- name: CAM_Violent_Right_Turn + endpoint: + path: /CAM_Violent_Right_Turn + method: GET + data_selector: inputBit7 + params: {} +- name: Exit_Geofence + endpoint: + path: /exit_geofence + method: GET + data_selector: inputBit7 + params: {} +- name: Extension_1_End + endpoint: + path: /extension_1_end + method: GET + data_selector: inputBit7 + params: {} +- name: Extension_1_Start + endpoint: + path: /extension_1_start + method: GET + data_selector: inputBit7 + params: {} +- name: Extension_2_End + endpoint: + path: /extension_2_end + method: GET + data_selector: inputBit7 + params: {} +- name: Extension_2_Start + endpoint: + path: /extension_2_start + method: GET + data_selector: inputBit7 + params: {} +- name: Firmware_Update + endpoint: + path: /firmware_update + method: POST + data_selector: inputBit7 + params: {} +- name: Fuel_Decrease + endpoint: + path: /fuel_decrease + method: POST + data_selector: inputBit7 + params: {} +- name: Fuel_Increase + endpoint: + path: /fuel_increase + method: POST + data_selector: inputBit7 + params: {} +- name: Geofence_Entry + endpoint: + path: /geofence_entry + method: POST + data_selector: inputBit7 + params: {} +- name: charging_concern_dtc + endpoint: + path: /charging_concern_dtc + method: POST + data_selector: inputBit7 + params: {} +- name: connect + endpoint: + path: /connect + method: POST + data_selector: inputBit7 + params: {} +- name: critical_battery_voltage + endpoint: + path: /critical_battery_voltage + method: POST + data_selector: inputBit7 + params: {} +- name: disconnect + endpoint: + path: /disconnect + method: POST + data_selector: inputBit7 + params: {} +- name: geofence_exit + endpoint: + path: /geofence/exit + method: POST + data_selector: payload +- name: geofence_timer_notin + endpoint: + path: /geofence/timer/notin + method: POST + data_selector: payload +- name: geofence_timer_notout + endpoint: + path: /geofence/timer/notout + method: POST + data_selector: payload +- name: gps_message + endpoint: + path: /gps/message + method: POST + data_selector: payload +- name: DTC_Message + endpoint: + path: /DTC_Message + method: POST + data_selector: dtcMessageRecords + params: {} +- name: Engine_Hours_Start + endpoint: + path: /Engine_Hours_Start + method: POST + data_selector: records + params: {} +- name: Engine_Hours_End + endpoint: + path: /Engine_Hours_End + method: POST + data_selector: records + params: {} +- name: Entered_Geofence + endpoint: + path: /Entered_Geofence + method: POST + data_selector: records + params: {} +- name: Event_Report_Message + endpoint: + path: /Event_Report_Message + method: POST + data_selector: records +- name: Excessive_Drain_Alert + endpoint: + path: /Excessive_Drain_Alert + method: POST + data_selector: records +- name: Excessive_Drain_Reset + endpoint: + path: /Excessive_Drain_Reset + method: POST + data_selector: records +- name: hard_acceleration_message + endpoint: + path: /hard_acceleration_message + method: POST + data_selector: inputBit7 + params: {} +- name: hard_breaking_message + endpoint: + path: /hard_breaking_message + method: POST + data_selector: inputBit7 + params: {} +- name: hard_core_braking_message + endpoint: + path: /hard_core_braking_message + method: POST + data_selector: inputBit7 + params: {} +- name: high_tire_pressure + endpoint: + path: /high_tire_pressure + method: POST + data_selector: inputBit7 + params: {} +- name: idling_ended + endpoint: + path: /idling_ended + method: POST + data_selector: inputBit7 + params: {} +- name: Exit_Geofence + endpoint: + path: /Exit_Geofence + method: POST + data_selector: records + params: {} +- name: Extension_1_End + endpoint: + path: /Extension_1_End + method: POST + data_selector: records + params: {} +- name: Extension_1_Start + endpoint: + path: /Extension_1_Start + method: POST + data_selector: records + params: {} +- name: Extension_2_End + endpoint: + path: /Extension_2_End + method: POST + data_selector: records + params: {} +- name: Extension_2_Start + endpoint: + path: /Extension_2_Start + method: POST + data_selector: records + params: {} +- name: idling_when_steamer_on + endpoint: + path: /webhook/idling_when_steamer_on + method: POST + data_selector: inputBit7 + params: {} +- name: low_battery_voltage + endpoint: + path: /webhook/low_battery_voltage + method: POST + data_selector: inputBit7 + params: {} +- name: low_tire_pressure + endpoint: + path: /webhook/low_tire_pressure + method: POST + data_selector: inputBit7 + params: {} +- name: low_fuel + endpoint: + path: /webhook/low_fuel + method: POST + data_selector: inputBit7 + params: {} +- name: Firmware_Update + endpoint: + path: /firmware_update + method: POST + data_selector: payload +- name: Fuel_Decrease + endpoint: + path: /fuel_decrease + method: POST + data_selector: payload +- name: Fuel_Increase + endpoint: + path: /fuel_increase + method: POST + data_selector: payload +- name: Geofence_Entry + endpoint: + path: /geofence_entry + method: POST + data_selector: payload +- name: mobile_event_call_blocked + endpoint: + path: /Mobile_Event_Call_Blocked + method: POST + data_selector: records +- name: mobile_event_call_ended + endpoint: + path: /Mobile_Event_Call_Ended + method: POST + data_selector: records +- name: mobile_event_call_made + endpoint: + path: /Mobile_Event_Call_Made + method: POST + data_selector: records +- name: mobile_event_call_made_headset + endpoint: + path: /Mobile_Event_Call_Made_Headset + method: POST + data_selector: records +- name: geofence_exit + endpoint: + path: /geofence/exit + method: POST + data_selector: inputBit7 + params: {} +- name: geofence_timer_notin + endpoint: + path: /geofence/timer/notin + method: POST + data_selector: inputBit7 + params: {} +- name: geofence_timer_notout + endpoint: + path: /geofence/timer/notout + method: POST + data_selector: inputBit7 + params: {} +- name: gps_message + endpoint: + path: /gps/message + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_call_received + endpoint: + path: /mobile_event_call_received + method: POST + data_selector: input + params: {} +- name: mobile_event_call_received_headset + endpoint: + path: /mobile_event_call_received_headset + method: POST + data_selector: input + params: {} +- name: mobile_event_drive_safe_call_end + endpoint: + path: /mobile_event_drive_safe_call_end + method: POST + data_selector: input + params: {} +- name: mobile_event_drivesafe_activated + endpoint: + path: /mobile_event_drivesafe_activated + method: POST + data_selector: input + params: {} +- name: hard_acceleration_message + endpoint: + path: /hard_acceleration_message + method: POST + data_selector: records +- name: hard_breaking_message + endpoint: + path: /hard_breaking_message + method: POST + data_selector: records +- name: hard_core_braking_message + endpoint: + path: /hard_core_braking_message + method: POST + data_selector: records +- name: high_tire_pressure + endpoint: + path: /high_tire_pressure + method: POST + data_selector: records +- name: idling_ended + endpoint: + path: /idling_ended + method: POST + data_selector: records +- name: mobile_event_drivesafe_deactivated + endpoint: + path: /Mobile_Event_Drivesafe_Deactivated + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_emergency_number_dialed + endpoint: + path: /Mobile_Event_Emergency_Number_Dialed + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_missed_call + endpoint: + path: /Mobile_Event_Missed_Call + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_navigation_launched + endpoint: + path: /Mobile_Event_Navigation_Launched + method: POST + data_selector: inputBit7 + params: {} +- name: idling_when_steamer_on + endpoint: + path: /idling_when_steamer_on + method: POST + data_selector: inputBit7 +- name: low_battery_voltage + endpoint: + path: /low_battery_voltage + method: POST + data_selector: inputBit7 +- name: low_tire_pressure + endpoint: + path: /low_tire_pressure + method: POST + data_selector: inputBit7 +- name: low_fuel + endpoint: + path: /low_fuel + method: POST + data_selector: inputBit7 +- name: mobile_event_sms_received + endpoint: + path: /mobile_event/sms_received + method: POST + data_selector: input + params: {} +- name: mobile_event_sms_sent + endpoint: + path: /mobile_event/sms_sent + method: POST + data_selector: input + params: {} +- name: mobile_event_whitelisted_app_launched + endpoint: + path: /mobile_event/whitelisted_app_launched + method: POST + data_selector: input + params: {} +- name: mobile_event_whitelisted_call_made + endpoint: + path: /mobile_event/whitelisted_call_made + method: POST + data_selector: input + params: {} +- name: mobile_event_call_blocked + endpoint: + path: /mobile_event_call_blocked + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_call_ended + endpoint: + path: /mobile_event_call_ended + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_call_made + endpoint: + path: /mobile_event_call_made + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_call_made_headset + endpoint: + path: /mobile_event_call_made_headset + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_whitelisted_call_received + endpoint: + path: /mobile_event_whitelisted_call_received + method: GET + data_selector: records +- name: over_speeding_ended + endpoint: + path: /over_speeding_ended + method: GET + data_selector: records +- name: over_speeding_message + endpoint: + path: /over_speeding_message + method: GET + data_selector: records +- name: mobile_event_call_received + endpoint: + path: /Mobile_Event_Call_Received + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_call_received_headset + endpoint: + path: /Mobile_Event_Call_Received_Headset + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_drive_safe_call_end + endpoint: + path: /Mobile_Event_Drive_Safe_Call_End + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_drivesafe_activated + endpoint: + path: /Mobile_Event_Drivesafe_Activated + method: POST + data_selector: inputBit7 + params: {} +- name: pair_message + endpoint: + path: /pair_message + method: POST + data_selector: inputBit7 + params: {} +- name: panic_message + endpoint: + path: /panic_message + method: POST + data_selector: inputBit7 + params: {} +- name: pending_dtc_info + endpoint: + path: /pending_dtc_info + method: POST + data_selector: inputBit7 + params: {} +- name: peripheral_connect + endpoint: + path: /peripheral_connect + method: POST + data_selector: inputBit7 + params: {} +- name: Mobile_Event_Drivesafe_Deactivated + endpoint: + path: /Mobile_Event_Drivesafe_Deactivated + method: POST + data_selector: payload +- name: Mobile_Event_Emergency_Number_Dialed + endpoint: + path: /Mobile_Event_Emergency_Number_Dialed + method: POST + data_selector: payload +- name: Mobile_Event_Missed_Call + endpoint: + path: /Mobile_Event_Missed_Call + method: POST + data_selector: payload +- name: Mobile_Event_Navigation_Launched + endpoint: + path: /Mobile_Event_Navigation_Launched + method: POST + data_selector: payload +- name: Peripheral_Disconnect + endpoint: + path: /webhook/events/peripheral_disconnect + method: POST + data_selector: inputBit7 + params: {} +- name: Posted_Speed_Limit + endpoint: + path: /webhook/events/posted_speed_limit + method: POST + data_selector: inputBit7 + params: {} +- name: Power_Take_Off + endpoint: + path: /webhook/events/power_take_off + method: POST + data_selector: inputBit7 + params: {} +- name: Pulse_Width_Duration + endpoint: + path: /webhook/events/pulse_width_duration + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_sms_received + endpoint: + path: /mobile_event/sms_received + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_sms_sent + endpoint: + path: /mobile_event/sms_sent + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_whitelisted_app_launched + endpoint: + path: /mobile_event/whitelisted_app_launched + method: POST + data_selector: inputBit7 + params: {} +- name: mobile_event_whitelisted_call_made + endpoint: + path: /mobile_event/whitelisted_call_made + method: POST + data_selector: inputBit7 + params: {} +- name: real_time_disconnect_event + endpoint: + path: /real_time_disconnect_event + method: GET + data_selector: inputBit7 + params: {} +- name: stop_time_message + endpoint: + path: /stop_time_message + method: GET + data_selector: inputBit7 + params: {} +- name: temperature_1 + endpoint: + path: /temperature_1 + method: GET + data_selector: inputBit7 + params: {} +- name: temperature_2 + endpoint: + path: /temperature_2 + method: GET + data_selector: inputBit7 + params: {} +- name: temperature_3 + endpoint: + path: /temperature_3 + method: GET + data_selector: inputBit7 + params: {} +- name: Mobile_Event_Whitelisted_App_Received + endpoint: + path: /mobile_event_whitelisted_app_received + method: POST + data_selector: records +- name: Over_Speeding_Ended + endpoint: + path: /over_speeding_ended + method: POST + data_selector: records +- name: Over_Speeding_Message + endpoint: + path: /over_speeding_message + method: POST + data_selector: records +- name: temperature_4 + endpoint: + path: /temperature/4 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_5 + endpoint: + path: /temperature/5 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_6 + endpoint: + path: /temperature/6 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_7 + endpoint: + path: /temperature/7 + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_8 + endpoint: + path: /temperature/8 + method: POST + data_selector: inputBit7 + params: {} +- name: tpms_resolved_event + endpoint: + path: /tpms/resolved + method: POST + data_selector: fixQuality + params: {} +- name: pair_message + endpoint: + path: /pair_message + method: POST + data_selector: inputBit7 + params: {} +- name: panic_message + endpoint: + path: /panic_message + method: POST + data_selector: inputBit7 + params: {} +- name: pending_dtc_info + endpoint: + path: /pending_dtc_info + method: POST + data_selector: inputBit7 + params: {} +- name: peripheral_connect + endpoint: + path: /peripheral_connect + method: POST + data_selector: inputBit7 + params: {} +- name: Trip_End_Message + endpoint: + path: /trip_end_message + method: POST + data_selector: records + params: {} +- name: Trip_Start_Message + endpoint: + path: /trip_start_message + method: POST + data_selector: records + params: {} +- name: Unauthorized_Vehicle_Usage + endpoint: + path: /unauthorized_vehicle_usage + method: POST + data_selector: records + params: {} +- name: Unknown_Driver + endpoint: + path: /unknown_driver + method: POST + data_selector: records + params: {} +- name: peripheral_disconnect + endpoint: + path: /peripheral_disconnect + method: POST + data_selector: records + params: {} +- name: posted_speed_limit + endpoint: + path: /posted_speed_limit + method: POST + data_selector: records + params: {} +- name: power_take_off + endpoint: + path: /power_take_off + method: POST + data_selector: records + params: {} +- name: pulse_width_duration + endpoint: + path: /pulse_width_duration + method: POST + data_selector: records + params: {} +- name: unpair_message + endpoint: + path: /unpair_message + method: POST + data_selector: inputBit7 + params: {} +- name: vehicle_backup_event + endpoint: + path: /vehicle_backup_event + method: POST + data_selector: zipCode + params: {} +- name: vehicle_mil_info + endpoint: + path: /vehicle_mil_info + method: POST + data_selector: inputBit7 + params: {} +- name: vehicle_not_tracking + endpoint: + path: /vehicle_not_tracking + method: POST + data_selector: inputBit7 + params: {} +- name: Real_Time_Disconnect_Event + endpoint: + path: /real_time_disconnect_event + method: POST + data_selector: inputBit7 + params: {} +- name: Stop_Time_Message + endpoint: + path: /stop_time_message + method: POST + data_selector: inputBit7 + params: {} +- name: Temperature_1 + endpoint: + path: /temperature_1 + method: POST + data_selector: inputBit7 + params: {} +- name: Temperature_2 + endpoint: + path: /temperature_2 + method: POST + data_selector: inputBit7 + params: {} +- name: Temperature_3 + endpoint: + path: /temperature_3 + method: POST + data_selector: inputBit7 + params: {} +- name: vin_change_event + endpoint: + path: /webhook/vin_change_event + method: POST + data_selector: inputBit7 + params: {} +- name: temperature_4 + endpoint: + path: /temperature/4 + method: GET + data_selector: inputBit7 + params: {} +- name: temperature_5 + endpoint: + path: /temperature/5 + method: GET + data_selector: inputBit7 + params: {} +- name: temperature_6 + endpoint: + path: /temperature/6 + method: GET + data_selector: inputBit7 + params: {} +- name: temperature_7 + endpoint: + path: /temperature/7 + method: GET + data_selector: inputBit7 + params: {} +- name: temperature_8 + endpoint: + path: /temperature/8 + method: GET + data_selector: inputBit7 + params: {} +- name: tpms_resolved_event + endpoint: + path: /tpms/resolved_event + method: GET + data_selector: fixQuality + params: {} +- name: Webhook Events + endpoint: + path: /webhook-events + method: GET +- name: Alert Events + endpoint: + path: /alert-events + method: GET +- name: Asset Events + endpoint: + path: /asset-events + method: GET +- name: Device Events + endpoint: + path: /device-events + method: GET +- name: Driver Events + endpoint: + path: /driver-events + method: GET +- name: Equipment Tracking Events + endpoint: + path: /equipment-tracking-events + method: GET +- name: Fuel Events + endpoint: + path: /fuel-events + method: GET +- name: Geofence Events + endpoint: + path: /geofence-events + method: GET +- name: GPS Message + endpoint: + path: /gps-message + method: GET +- name: Trip Events + endpoint: + path: /trip-events + method: GET +- name: User Events + endpoint: + path: /user-events + method: GET +- name: Vehicle Events + endpoint: + path: /vehicle-events + method: GET +- name: trip_end_message + endpoint: + path: /trips/end + method: POST + data_selector: inputBit7 + params: {} +- name: trip_start_message + endpoint: + path: /trips/start + method: POST + data_selector: inputBit7 + params: {} +- name: unauthorized_vehicle_usage + endpoint: + path: /vehicles/unauthorized + method: POST + data_selector: inputBit7 + params: {} +- name: unknown_driver + endpoint: + path: /drivers/unknown + method: POST + data_selector: inputBit7 + params: {} +- name: alert_create + endpoint: + path: /alert/create + method: POST + data_selector: eventInfo + params: {} +- name: unpair_message + endpoint: + path: /unpair_message + method: POST + data_selector: inputBit7 +- name: vehicle_backup_event + endpoint: + path: /vehicle_backup_event + method: POST + data_selector: zipCode +- name: vehicle_mil_info + endpoint: + path: /vehicle_mil_info + method: POST + data_selector: milDistance +- name: vehicle_not_tracking + endpoint: + path: /vehicle_not_tracking + method: POST + data_selector: messageType +- name: alert_delete + endpoint: + path: /webhooks/alert-delete + method: POST + data_selector: eventInfo + params: {} +- name: VIN_Change_Event + endpoint: + path: /webhook/vin_change_event + method: POST + data_selector: inputBit7 + params: {} +- name: alert_update + endpoint: + path: /alert/update + method: POST + data_selector: eventInfo + params: {} +- name: asset_creation + endpoint: + path: /docs/asset-create + method: POST + data_selector: eventInfo + params: {} +- name: alert_create + endpoint: + path: /docs/alert-create + method: POST + data_selector: eventInfo + params: {} +- name: asset_deletion + endpoint: + path: /asset/delete + method: POST + data_selector: eventInfo + params: {} +- name: alert_deletion + endpoint: + path: /alert/delete + method: POST + data_selector: eventInfo + params: {} +- name: asset_update + endpoint: + path: /asset-update + method: POST + data_selector: eventInfo +- name: alert_update + endpoint: + path: /alert/update + method: POST + data_selector: eventInfo + params: {} +- name: device_creation + endpoint: + path: /device/create + method: POST + data_selector: eventInfo + params: {} +- name: asset_creation + endpoint: + path: /docs/asset-create + method: POST + data_selector: eventInfo + params: {} +- name: device_deletion + endpoint: + path: /device-delete + method: POST + data_selector: eventInfo + params: {} +- name: device_updation + endpoint: + path: /device/update + method: POST + data_selector: eventInfo + params: {} +- name: asset_delete + endpoint: + path: /webhooks/asset_delete + method: POST + data_selector: eventInfo + params: {} +- name: driver_create + endpoint: + path: /driver-create + method: POST + data_selector: eventInfo + params: {} +- name: asset_update + endpoint: + path: /asset/update + method: POST + data_selector: eventInfo + params: {} +- name: driver_deletion + endpoint: + path: /driver/delete + method: POST + data_selector: eventInfo + params: {} +- name: device_creation + endpoint: + path: /device-create + method: POST + data_selector: eventInfo + params: {} +- name: driver_update + endpoint: + path: /driver-update + method: POST + data_selector: eventInfo + params: {} +- name: DTC_MESSAGE + endpoint: + path: /docs/dtc-message + method: GET + data_selector: event + params: {} +- name: device_deletion + endpoint: + path: /device/delete + method: POST + data_selector: eventInfo + params: {} +- name: BLE Beacon Create + endpoint: + path: /docs/ble-beacon-create + method: POST + data_selector: data + params: {} +- name: DEVICE_UPDATE + endpoint: + path: /device/update + method: POST + data_selector: eventInfo + params: {} +- name: BLE Beacon Create + endpoint: + path: /docs/ble-beacon-create + method: POST + data_selector: data + params: {} +- name: driver_creation + endpoint: + path: /driver-create + method: POST + data_selector: eventInfo +- name: BLE Beacon Update + endpoint: + path: /docs/ble-beacon-update + method: POST + data_selector: data + params: {} +- name: driver_deletion + endpoint: + path: /driver/deletion + method: POST + data_selector: eventInfo + params: {} +- name: ble_beacon_delete + endpoint: + path: /ble-beacon-delete + method: POST + data_selector: data + params: {} +- name: driver_update + endpoint: + path: /driver/update + method: POST + data_selector: eventInfo + params: {} +- name: BLE Equipment Pair + endpoint: + path: /ble-equipment-pair + method: POST + data_selector: payload + params: {} +- name: DTC_MESSAGE + endpoint: + path: /dtc-message + method: POST + data_selector: inputBit7 +- name: ble_equipment_unpair + endpoint: + path: /ble/equipment/unpair + method: POST + data_selector: payload + params: {} +- name: ble_beacon_create + endpoint: + path: /ble-beacon-create + method: POST + data_selector: data +- name: category_create + endpoint: + path: /docs/category-create + method: POST + data_selector: data + params: {} +- name: ble_beacon_create + endpoint: + path: /docs/ble-beacon-create + method: POST + data_selector: data + params: {} +- name: category_update + endpoint: + path: /docs/category-update + method: POST + data_selector: data + params: {} +- name: category_delete + endpoint: + path: /docs/category-delete + method: POST + data_selector: data +- name: BLE Beacon Update + endpoint: + path: /docs/ble-beacon-update + method: POST + data_selector: data + params: {} +- name: equipment_create + endpoint: + path: /equipment/create + method: POST + data_selector: data + params: {} +- name: BLE Beacon Delete Event + endpoint: + path: /ble-beacon-delete + method: POST + data_selector: data + params: {} +- name: equipment_update + endpoint: + path: /webhooks/equipment_update + method: POST + data_selector: data + params: {} +- name: ble_equipment_pair + endpoint: + path: /docs/ble-equipement-pair + method: POST + data_selector: payload + params: {} +- name: equipment_delete + endpoint: + path: /equipment/delete + method: POST + data_selector: data + params: {} +- name: BLE Equipment UnPair + endpoint: + path: /ble/equipment/unpair + method: POST + data_selector: payload + params: {} +- name: Extension_1_End + endpoint: + path: /docs/extension-1-end + method: POST + data_selector: message + params: {} +- name: Extension 1 Start + endpoint: + path: /webhooks/extension_1_start + method: POST + data_selector: message + params: {} +- name: category_create + endpoint: + path: /category-create + method: POST + data_selector: data + params: {} +- name: Extension 2 End + endpoint: + path: /webhooks/Extension_2_End + method: POST + data_selector: inputBit7 +- name: category_update + endpoint: + path: /webhooks/category-update + method: POST + data_selector: data + params: {} +- name: Extension_2_Start + endpoint: + path: /Extension_2_Start + method: GET + data_selector: records + params: {} +- name: category_delete + endpoint: + path: /docs/category-delete + method: POST + data_selector: data +- name: fuel_decrease_event + endpoint: + path: /docs/fuel-decrease-event + method: GET + data_selector: payload + params: {} +- name: equipment_create + endpoint: + path: /equipment/create + method: POST + data_selector: data + params: {} +- name: fuel_increase_event + endpoint: + path: /fuel-increase-event + method: POST + data_selector: event + params: {} +- name: equipment_update + endpoint: + path: /equipment/update + method: POST + data_selector: data + params: {} +- name: fuel_level_event + endpoint: + path: /fuel-level-remaining + method: POST + data_selector: messageEventType +- name: equipment_delete + endpoint: + path: /equipment/delete + method: POST + data_selector: data +- name: LOW_FUEL + endpoint: + path: /low-fuel + method: POST + data_selector: inputBit7 + params: {} +- name: Extension 1 End + endpoint: + path: /extension_1_end + method: POST + data_selector: event + params: {} +- name: GEOFENCE + endpoint: + path: /geofence + method: POST + data_selector: input + params: {} +- name: extension_1_start + endpoint: + path: /extension_1_start + method: POST + data_selector: inputBit7 + params: {} +- name: entered_geofence + endpoint: + path: /entered-geofence + method: POST + data_selector: inputBit7 + params: {} +- name: EXIT_GEOFENCE + endpoint: + path: /geofence/exit + method: POST + data_selector: messageType + params: {} +- name: Extension 2 End + endpoint: + path: /extension_2_end + method: POST + data_selector: inputBit7 + params: {} +- name: GEOFENCE_TIMER_NOTIN + endpoint: + path: /geofence/timer/notin + method: POST + data_selector: inputBit7 +- name: Extension 2 Start + endpoint: + path: /webhook/Extension_2_Start + method: POST + data_selector: inputBit7 + params: {} +- name: GEOFENCE_TIMER_NOTOUT + endpoint: + path: /geofence/timer/notout + method: POST + data_selector: inputBit7 + params: {} +- name: GPS_MESSAGE + endpoint: + path: /gps-message + method: POST + data_selector: payload + params: {} +- name: fuel_decrease_event + endpoint: + path: /fuel-decrease-event + method: POST + data_selector: inputBit7 + params: {} +- name: hard_acceleration_event + endpoint: + path: /hard-acceleration + method: POST + data_selector: HARD_ACCELERATION_MESSAGE + params: {} +- name: fuel_increase_event + endpoint: + path: /docs/fuel-increase-event + method: POST + data_selector: inputBit7 + params: {} +- name: hard_break + endpoint: + path: /hard_break + method: GET + data_selector: HARD_BREAKING_MESSAGE + params: {} +- name: fuel_level_event + endpoint: + path: /fuel-level-remaining + method: GET + data_selector: messageEventType + params: {} +- name: hard_core_braking + endpoint: + path: /hard-core-breaking + method: GET + data_selector: event + params: {} +- name: low_fuel_event + endpoint: + path: /low-fuel + method: POST + data_selector: event + params: {} +- name: geofence + endpoint: + path: /geofence + method: GET + data_selector: GEOFENCE + params: {} +- name: over_speeding + endpoint: + path: /over-speeding + method: GET + data_selector: records + params: {} +- name: entered_geofence + endpoint: + path: /entered-geofence + method: POST + data_selector: messageType + params: {} +- name: over_speeding_ended + endpoint: + path: /over-speeding + method: POST + data_selector: input + params: {} +- name: EXIT_GEOFENCE + endpoint: + path: /exit_geofence + method: POST + data_selector: event +- name: oil_life_event + endpoint: + path: /docs/oil-life-remaining + method: GET + data_selector: messageEventType + params: {} +- name: GEOFENCE_TIMER_NOTIN + endpoint: + path: /geofence/timer/notin + method: POST + data_selector: inputBit7 + params: {} +- name: role_creation + endpoint: + path: /role-create + method: POST + data_selector: eventInfo + params: {} +- name: GEOFENCE_TIMER_NOTOUT + endpoint: + path: /events/geofence/timer/out + method: POST + data_selector: inputBit7 + params: {} +- name: role_deletion + endpoint: + path: /docs/role-delete + method: POST + data_selector: eventInfo + params: {} +- name: gps_message + endpoint: + path: /gps-message + method: POST + data_selector: payload + params: {} +- name: role_update + endpoint: + path: /role-update + method: POST + data_selector: eventInfo + params: {} +- name: hard_acceleration + endpoint: + path: /hard-acceleration + method: POST + data_selector: HARD_ACCELERATION_MESSAGE + params: {} +- name: seat_belt + endpoint: + path: /docs/seat-belt + method: GET + data_selector: SEAT_BELT + params: {} +- name: temperature_1 + endpoint: + path: /docs/temperature-1 + method: GET + data_selector: event_info + params: {} +- name: hard_break + endpoint: + path: /webhooks/hard_break + method: POST + data_selector: message + params: {} +- name: TEMPERATURE_2 + endpoint: + path: /temperature-2 + method: GET + data_selector: eventInfo +- name: hard_core_braking + endpoint: + path: /hard-core-breaking + method: GET + data_selector: HARD_CORE_BRAKING_MESSAGE + params: {} +- name: TEMPERATURE_3 + endpoint: + path: /temperature_3 + method: POST + data_selector: event + params: {} +- name: over_speeding + endpoint: + path: /docs/over-speeding + method: GET + data_selector: OVER_SPEEDING_MESSAGE + params: {} +- name: TEMPERATURE_4 + endpoint: + path: /temperature_4 + method: POST + data_selector: inputBit7 + params: {} +- name: over_speeding_ended + endpoint: + path: /over-speeding + method: GET + data_selector: event + params: {} +- name: temperature_5 + endpoint: + path: /temperature/5 + method: POST + data_selector: data + params: {} +- name: oil_life_event + endpoint: + path: /docs/oil-life-remaining + method: GET + data_selector: messageEventType + params: {} +- name: TEMPERATURE_6 + endpoint: + path: /api/temperature_6 + method: GET + data_selector: event + params: {} +- name: TEMPERATURE_7 + endpoint: + path: /temperature/7 + method: GET + data_selector: data + params: {} +- name: role_create + endpoint: + path: /role-create + method: POST + data_selector: eventInfo + params: {} +- name: temperature_8 + endpoint: + path: /temperature/events + method: POST + data_selector: data + params: {} +- name: role_deletion + endpoint: + path: /docs/role-delete + method: POST + data_selector: eventInfo + params: {} +- name: ROLE_UPDATE + endpoint: + path: /webhook/role-update + method: POST + data_selector: eventInfo +- name: trip_start_message + endpoint: + path: /trip-start-message + method: POST + data_selector: inputBit7 + params: {} +- name: trip_end_message + endpoint: + path: /trip-end-message + method: POST + data_selector: inputBit7 + params: {} +- name: seat_belt + endpoint: + path: /docs/seat-belt + method: POST + data_selector: event + params: {} +- name: user_creation + endpoint: + path: /user-create + method: POST + data_selector: eventInfo +- name: temperature_event + endpoint: + path: /docs/temperature-1 + method: GET + data_selector: TEMPERATURE_1 +- name: user_deletion + endpoint: + path: /user/delete + method: POST + data_selector: eventInfo + params: {} +- name: TEMPERATURE_2 + endpoint: + path: /event/TEMPERATURE_2 + method: POST + data_selector: inputBit7 + params: {} +- name: user_update + endpoint: + path: /user/update + method: POST + data_selector: eventInfo + params: {} +- name: temperature_3_event + endpoint: + path: /temperature/3 + method: POST + data_selector: inputBit7 + params: {} +- name: vehicle_creation + endpoint: + path: /vehicle-creation + method: POST + data_selector: eventInfo + params: {} +- name: temperature_4 + endpoint: + path: /temperature-4 + method: POST + data_selector: inputBit7 + params: {} +- name: vehicle_update + endpoint: + path: /vehicle-updation + method: POST + data_selector: eventInfo +- name: temperature_5 + endpoint: + path: /temperature_5 + method: POST + data_selector: inputBit7 + params: {} +- name: vehicle_deletion + endpoint: + path: /vehicle-deletion + method: POST + data_selector: eventInfo + params: {} +- name: TEMPERATURE_6 + endpoint: + path: /temperature/6 + method: POST + data_selector: input + params: {} +- name: vehicle_backup_event + endpoint: + path: /vehicle-backup-event + method: POST + data_selector: payload + params: {} +- name: temperature_7 + endpoint: + path: /temperature/7 + method: GET + data_selector: records +- name: vehicle_mil_info + endpoint: + path: /vehicle-mil-info + method: GET + data_selector: inputBit7 + params: {} +- name: temperature_8 + endpoint: + path: /temperature-8 + method: GET + data_selector: inputBit7 + params: {} +- name: vehicle_not_tracking + endpoint: + path: /event/VEHICLE_NOT_TRACKING + method: POST + data_selector: inputBit7 + params: {} +- name: trip_start_message + endpoint: + path: /trip-start-message + method: POST + data_selector: inputBit7 + params: {} +- name: vehicle_pairing + endpoint: + path: /vehicle-pairing + method: POST + data_selector: eventInfo + params: {} +- name: trip_end_message + endpoint: + path: /docs/trip-end-message + method: POST + data_selector: inputBit7 + params: {} +- name: vin_change_event + endpoint: + path: /vin-change + method: POST + data_selector: inputBit7 + params: {} +- name: user_creation + endpoint: + path: /user-create + method: POST + data_selector: eventInfo +- name: user_deletion + endpoint: + path: /user/delete + method: POST + data_selector: eventInfo + params: {} +- name: user_update + endpoint: + path: /user/update + method: POST + data_selector: eventInfo + params: {} +- name: Assets + endpoint: + path: /reference/view-all-assets + method: POST +- name: Vehicles + endpoint: + path: /reference/view-all-vehicles-1 + method: POST +- name: Users + endpoint: + path: /reference/view-users + method: POST +- name: Drivers + endpoint: + path: /reference/view-all-drivers + method: POST +- name: Devices + endpoint: + path: /reference/view-all-devices-1 + method: POST +- name: Groups + endpoint: + path: /reference/view-all-groups + method: POST +- name: Geofences + endpoint: + path: /reference/view-geofences + method: POST +- name: Webhooks + endpoint: + path: /reference/view-2 + method: GET +- name: Alerts + endpoint: + path: /reference/get-all-alerts + method: POST +- name: vehicle_creation + endpoint: + path: /vehicle-creation + method: POST + data_selector: eventInfo + params: {} +- name: vehicle_updation + endpoint: + path: /vehicle-updation + method: POST + data_selector: eventInfo + params: {} +- name: vehicle_deletion + endpoint: + path: /vehicle-deletion + method: POST + data_selector: eventInfo + params: {} +- name: trackees + endpoint: + path: /trackees + method: POST + data_selector: records + params: + lastSyncTime: '0' +- name: vehicle_backup_event + endpoint: + path: /vehicle-backup-event + method: POST + data_selector: event + params: {} +- name: vehicle_mil_info + endpoint: + path: /vehicle/mil/info + method: GET + data_selector: records +- name: vehicle_not_tracking + endpoint: + path: /vehicle-not-tracking + method: POST + data_selector: event + params: {} +- name: Refresh Token + endpoint: + path: /oauth2/oauthtoken/refresh + method: GET + data_selector: data + params: + userName: string + clientId: string + refresh_token: string + access_token: string +- name: vehicle_pairing + endpoint: + path: /vehicle/pairing + method: POST + data_selector: eventInfo +- name: vin_change_event + endpoint: + path: /vin-change + method: POST + data_selector: records + params: {} +- name: score_report + endpoint: + path: /reports/v3/reports/score + method: POST + data_selector: data.result + params: + appId: FLEET + startDate: '2023-03-02T15:46:48.285Z' + endDate: '2023-03-02T15:46:48.285Z' + browserTimezone: US/Eastern + reportFilter: default + index: 0 + size: 50 + desc: false +- name: score_report + endpoint: + path: /reports/v3/reports/score + method: POST + data_selector: object + params: + appId: FLEET +- name: alerts_report + endpoint: + path: /reports/v3/reports/allalertreport + method: POST + data_selector: results + params: + startDate: '2022-10-12T04:00:00.000Z' + endDate: '2022-10-19T03:59:59.676Z' + alertTypeId: -1 + browserTimezone: US/Eastern +- name: Assets + endpoint: + path: /reference/view-all-assets + method: POST +- name: Vehicles + endpoint: + path: /reference/view-all-vehicles-1 + method: POST +- name: Users + endpoint: + path: /reference/view-users + method: POST +- name: Drivers + endpoint: + path: /reference/view-all-drivers + method: POST +- name: Devices + endpoint: + path: /reference/view-all-devices-1 + method: POST +- name: Groups + endpoint: + path: /reference/view-all-groups + method: POST +- name: Geofences + endpoint: + path: /reference/view-geofences + method: POST +- name: Alerts + endpoint: + path: /reference/get-all-alerts + method: POST +- name: Webhooks + endpoint: + path: /reference/view-2 + method: GET +- name: Configurations + endpoint: + path: /reference/read-configs + method: GET +- name: Maintenance + endpoint: + path: /reference/view-maintenance-history + method: POST +- name: alert_report + endpoint: + path: /reports/v3/reports/allalertreport + method: POST + data_selector: result + params: + alertTypeId: -1 + browserTimezone: US/Eastern + index: 0 + size: 100 +- name: users + endpoint: + path: /reference/view-users + method: post +- name: vehicles + endpoint: + path: /reference/view-all-vehicles-1 + method: post +- name: drivers + endpoint: + path: /reference/view-all-drivers + method: post +- name: assets + endpoint: + path: /reference/view-all-assets + method: post +- name: trip_report + endpoint: + path: /reports/v3/reports/trip + method: POST + data_selector: response + params: {} +- name: breadcrumb_report + endpoint: + path: /reports/v3/reports/breadcrumb + method: POST + data_selector: result + params: {} +- name: diagnostics_report + endpoint: + path: /reports/v3/reports/classic/diagnostics + method: POST + data_selector: result +- name: geofence_report + endpoint: + path: /reports/v3/reports/classic/geofence + method: POST +- name: assets + endpoint: + path: /assets.json + method: POST + data_selector: records + params: + limit: 50 + offset: 0 +- name: refresh_token + endpoint: + path: /oauth2/oauthtoken/refresh + method: GET + params: + userName: string + clientId: 5decccae0a214939a77411a77eeff8fc + refresh_token: string + access_token: string +- name: asset + endpoint: + path: /assets/{assetId} + method: GET + data_selector: data +- name: score_report + endpoint: + path: /reports/v3/reports/score + method: POST + data_selector: data.result + params: + appId: FLEET + startDate: '2023-03-02T15:46:48.285Z' + endDate: '2023-03-02T15:46:48.285Z' + browserTimezone: US/Eastern + reportFilter: default + index: 0 + size: 50 + desc: false +- name: create_asset + endpoint: + path: /v3/assets/create.json + method: POST +- name: score_report + endpoint: + path: /reports/v3/reports/score + method: POST + data_selector: results + params: + appId: FLEET + startDate: '2023-03-02T15:46:48.285Z' + endDate: '2023-03-02T15:46:48.285Z' + browserTimezone: US/Eastern + reportFilter: default + index: 0 + size: 50 +- name: asset + endpoint: + path: /api/v1/assets + method: POST + data_selector: data + params: {} +- name: alerts_report + endpoint: + path: /reports/v3/reports/allalertreport + method: POST + data_selector: alerts + params: + startDate: '2022-10-12T04:00:00.000Z' + endDate: '2022-10-19T03:59:59.676Z' + alertTypeId: -1 + browserTimezone: US/Eastern +- name: asset + endpoint: + path: /assets/create.json + method: POST + data_selector: object +- name: alert_report + endpoint: + path: /reports/v3/reports/allalertreport + method: POST + data_selector: result + params: + alertTypeId: -1 + browserTimezone: US/Eastern + index: 0 + size: 100 +- name: update_asset + endpoint: + path: /assets/{assetId}.json + method: PUT +- name: trips_report + endpoint: + path: /reports/v3/reports/trip + method: POST + data_selector: report + params: {} +- name: breadcrumb_report + endpoint: + path: /reports/v3/reports/breadcrumb + method: POST + data_selector: result + params: {} +- name: delete_asset + endpoint: + path: /v3/assets.json + method: DELETE + params: + ids: '' +- name: diagnostics_report + endpoint: + path: /reports/v3/reports/classic/diagnostics + method: POST +- name: view_all_extensions + endpoint: + path: /asset/extension/list.json + method: POST + data_selector: data + params: + limit: '999999' +- name: geofence_report + endpoint: + path: /reports/v3/reports/classic/geofence + method: POST + data_selector: data + params: + index: 0 + size: 100 + filter: + orFilter: {} + matchFilter: + vehicleIds: + - 48d5b931-f050-11ee-aedc-fb780c4eac6c + geoFenceIds: + - d6683484-189d-11ef-96df-e96b2e0ce90f + startDate: '2024-07-25T08:00:00.000Z' + endDate: '2024-08-02T07:59:59.999Z' + reportFilter: entryexit + browserTimezone: US/Alaska +- name: view_single_extension + endpoint: + path: /asset/extension/{extensionId} + method: GET + data_selector: response.data +- name: assets + endpoint: + path: /assets.json + method: POST + data_selector: records +- name: create_extension + endpoint: + path: /asset/extension.json + method: POST +- name: view_single_asset + endpoint: + path: /assets/{assetId} + method: GET +- name: update_extension + endpoint: + path: /v3/asset/extension/{extensionId}.json + method: PUT +- name: create_asset + endpoint: + path: /assets/create.json + method: POST +- name: delete_extension + endpoint: + path: /asset/extension/{extensionId}.json + method: DELETE + data_selector: response +- name: view_all_vehicles + endpoint: + path: /trackees + method: POST +- name: asset + endpoint: + path: /assets + method: POST + data_selector: data + params: {} +- name: trackees + endpoint: + path: /trackees + method: POST + data_selector: data +- name: create_asset + endpoint: + path: /assets/create.json + method: POST +- name: update_asset + endpoint: + path: /v3/assets/{assetId}.json + method: PUT +- name: view_vehicle_summary + endpoint: + path: /v3/trackee/summary + method: POST + data_selector: vehicleData + params: + fromDate: 2023-08-01 00:00:00 AM + toDate: 2023-08-10 00:00:00 PM +- name: view_single_vehicle + endpoint: + path: /v3/trackees/{trackeeId} + method: GET +- name: vehicle + endpoint: + path: /api/vehicles + method: GET + data_selector: records + params: + trackeeId: string + trackeeTypeId: string +- name: delete_asset + endpoint: + path: /v3/assets.json + method: DELETE + params: + ids: comma-separated assetIds +- name: trackee + endpoint: + path: /trackees/trackeeId + method: GET +- name: view_all_extensions + endpoint: + path: /asset/extension/list.json + method: POST + data_selector: data + params: + limit: 999999 +- name: create_vehicle + endpoint: + path: /v3/trackees/create + method: POST + data_selector: data + params: {} +- name: extension + endpoint: + path: /asset/extension/{extensionId} + method: GET +- name: trackees + endpoint: + path: /trackees/create + method: POST +- name: update_vehicle + endpoint: + path: /v3/trackees/{trackeeId} + method: PUT +- name: create_extension + endpoint: + path: /asset/extension.json + method: POST + data_selector: data +- name: vehicle_types + endpoint: + path: /trackees/types + method: GET + data_selector: data +- name: update_extension + endpoint: + path: /asset/extension/{extensionId}.json + method: PUT +- name: vehicle_fuel_types + endpoint: + path: /v3/trackees/fuelTypes + method: GET +- name: vehicle_owner_types + endpoint: + path: /v3/trackees/ownerTypes + method: GET + data_selector: records +- name: delete_extension + endpoint: + path: /v3/asset/extension/{extensionId}.json + method: DELETE +- name: delete_vehicle + endpoint: + path: /trackees/{trackeeId} + method: DELETE +- name: vehicles + endpoint: + path: /trackees + method: POST + data_selector: trackees + params: {} +- name: trackees + endpoint: + path: /trackees + method: POST + data_selector: data +- name: users + endpoint: + path: /users.json + method: POST + data_selector: users + params: {} +- name: vehicle_summary + endpoint: + path: /trackee/summary + method: POST + params: + fromDate: 2023-08-01 00:00:00 AM + toDate: 2023-08-10 00:00:00 PM + vehicleIds: f165905c-d228-11e8-s417-fde07081wqr15 +- name: vehicle + endpoint: + path: /trackees/{trackeeId} + method: GET +- name: user + endpoint: + path: /v3/users/{userId} + method: GET + data_selector: user + params: {} +- name: vehicle + endpoint: + path: /api/vehicle + method: GET + data_selector: vehicle + params: + trackeeId: string + trackeeTypeId: string +- name: contact_details + endpoint: + path: /v3/users/contactDetails + method: POST + data_selector: '' +- name: trackee + endpoint: + path: /trackees/trackeeId + method: GET +- name: create_user + endpoint: + path: /user/create.json + method: POST + data_selector: data +- name: create_vehicle + endpoint: + path: /trackees/create + method: POST + data_selector: data +- name: update_user + endpoint: + path: /v3/users/{userId} + method: PATCH +- name: delete_user + endpoint: + path: /v3/users/{userId} + method: DELETE +- name: update_vehicle + endpoint: + path: /v3/trackees/{trackeeId} + method: PUT +- name: vehicle_types + endpoint: + path: /trackees/types + method: GET + data_selector: data +- name: drivers + endpoint: + path: /users + method: POST + data_selector: data + params: + limit: 2 + offset: 1 + userType: driver +- name: users + endpoint: + path: /users.json + method: POST + data_selector: result + params: + limit: '2' + offset: '1' + userType: driver +- name: fuel_types + endpoint: + path: /v3/trackees/fuelTypes + method: GET + data_selector: fuelTypes +- name: vehicle_owner_types + endpoint: + path: /v3/trackees/ownerTypes + method: GET +- name: driver + endpoint: + path: /users/{driverId} + method: GET + data_selector: data + params: {} +- name: drivers + endpoint: + path: /users/driverId + method: GET +- name: Delete Vehicle + endpoint: + path: /trackees/{trackeeId} + method: DELETE + data_selector: error + params: {} +- name: create_driver + endpoint: + path: /v3/drivers/create.json + method: POST +- name: update_driver + endpoint: + path: /v3/user/update.json + method: PATCH +- name: delete_driver + endpoint: + path: /users/{driverId} + method: DELETE +- name: latest_location_of_vehicles + endpoint: + path: /vehicles/latestlocation + method: POST + data_selector: data + params: {} +- name: devices + endpoint: + path: /devices/get + method: POST + data_selector: data + params: + limit: '500' +- name: users + endpoint: + path: /users.json + method: POST +- name: single_device + endpoint: + path: /v3/devices/{deviceId}.json + method: GET +- name: single_user + endpoint: + path: /users/{userId} + method: GET +- name: contact_details + endpoint: + path: /v3/users/contactDetails + method: POST +- name: beacons + endpoint: + path: /beacons + method: POST + data_selector: data + params: + limit: 50 +- name: single_beacon + endpoint: + path: /v3/beacons/{beaconId}.json + method: GET +- name: create_user + endpoint: + path: /v3/user/create.json + method: POST + data_selector: data +- name: sensors + endpoint: + path: /sensors/temperature.json + method: GET + data_selector: data + params: + limit: '50' +- name: user + endpoint: + path: /users/{userId} + method: PATCH +- name: sensor + endpoint: + path: /v3/sensors/temperature/{assetSensorId}.json + method: GET + data_selector: data +- name: delete_user + endpoint: + path: /v3/users/{userId} + method: DELETE +- name: tablets + endpoint: + path: /tablets/get.json + method: POST + data_selector: data + params: + limit: '50' +- name: users + endpoint: + path: /users.json + method: POST + data_selector: data + params: + userType: driver +- name: tablet + endpoint: + path: /v3/tablets/{tabletId}.json + method: GET +- name: users + endpoint: + path: /users.json + method: POST + data_selector: result + params: + limit: '2' + offset: '1' + userType: driver +- name: create_group + endpoint: + path: /groups/create.json + method: POST + data_selector: data + params: {} +- name: driver + endpoint: + path: /users/{driverId} + method: GET +- name: drivers + endpoint: + path: /users/driverId + method: GET +- name: group + endpoint: + path: /v3/groups/{groupId}.json + method: GET +- name: create_driver + endpoint: + path: /v3/drivers/create.json + method: POST +- name: groups + endpoint: + path: /groups.json + method: POST + data_selector: data +- name: update_driver + endpoint: + path: /v3/user/update.json + method: PATCH +- name: update_group + endpoint: + path: /v3/groups/{groupId}.json + method: PUT +- name: delete_driver + endpoint: + path: /users/{driverId} + method: DELETE +- name: delete_group + endpoint: + path: /v3/groups/{groupId}.json + method: DELETE +- name: create_trackme_link + endpoint: + path: /trackme/create + method: POST +- name: devices + endpoint: + path: /devices/get + method: POST + data_selector: data + params: + limit: '500' +- name: trackme_link_status + endpoint: + path: /v3/trackme/alive + method: GET + params: {} +- name: trackme_links + endpoint: + path: /trackme/links + method: GET + data_selector: data +- name: single_device + endpoint: + path: /v3/devices/{deviceId}.json + method: GET + data_selector: data +- name: keep_alive + endpoint: + path: /v3/trackme/keepalive + method: POST + data_selector: code + params: {} +- name: beacons + endpoint: + path: /v3/beacons + method: POST + data_selector: data + params: + limit: 50 +- name: TrackMe - Delete Link + endpoint: + path: /trackme/expire/ + method: DELETE +- name: beacon + endpoint: + path: /v3/beacons/{beaconId}.json + method: GET + data_selector: data + params: {} +- name: geofence + endpoint: + path: /v3/geomarks/create.json + method: POST +- name: geofence + endpoint: + path: /v3/geomarks/{fenceId}.json + method: GET + data_selector: data +- name: sensors + endpoint: + path: /v3/sensors/temperature.json + method: GET + data_selector: data +- name: geofences + endpoint: + path: /geomarks.json + method: POST + data_selector: data +- name: sensor + endpoint: + path: /v3/sensors/temperature/{assetSensorId}.json + method: GET + data_selector: data +- name: geofence + endpoint: + path: /v3/geomarks/update/{fenceId}.json + method: PATCH +- name: tablets + endpoint: + path: /tablets/get.json + method: POST + data_selector: data + params: + limit: '50' +- name: geofence + endpoint: + path: /geomarks/{fenceId} + method: DELETE +- name: tablet + endpoint: + path: /tablets/{tabletId}.json + method: GET +- name: categories + endpoint: + path: /landmark/categories.json + method: GET + data_selector: data + params: {} +- name: create_group + endpoint: + path: /groups/create.json + method: POST +- name: create_group + endpoint: + path: /groups/create.json + method: POST + data_selector: object +- name: bulk_upload_geofences + endpoint: + path: /bulkUpload.json + method: POST +- name: group + endpoint: + path: /groups/{groupId}.json + method: GET + data_selector: data + params: {} +- name: geofence + endpoint: + path: /geomarks/bulkUpload.json + method: POST + data_selector: data +- name: live_streaming + endpoint: + path: /reference/live-streaming + method: GET + data_selector: videoUrls + params: {} +- name: camera_wakeup + endpoint: + path: /reference/camera-wake-up + method: POST + data_selector: status + params: {} +- name: groups + endpoint: + path: /groups.json + method: POST + data_selector: data + params: + limit: '50' +- name: update_group + endpoint: + path: /v3/groups/{groupId}.json + method: PUT +- name: live_stream + endpoint: + path: /v3/liveStream + method: GET + data_selector: data + params: + cameraSerialNum: int32 +- name: delete_group + endpoint: + path: /v3/groups/{groupId}.json + method: DELETE +- name: camera_wakeup + endpoint: + path: /v3/livestreamrequest/wakeup + method: POST + data_selector: data + params: {} +- name: trackme_create + endpoint: + path: /trackme/create + method: POST +- name: safety_cam + endpoint: + path: /v3/dashcam/{dashcamId}.json + method: GET + data_selector: data +- name: trackme_link_status + endpoint: + path: /v3/trackme/alive + method: GET + data_selector: code +- name: safety_cams + endpoint: + path: /dashcam/get.json + method: POST + data_selector: data + params: + limit: 50 +- name: trackme_links + endpoint: + path: /trackme/links + method: GET + data_selector: data +- name: event_videos + endpoint: + path: /v3/eventVideos.json + method: POST + data_selector: data +- name: keep_alive + endpoint: + path: /v3/trackme/keepalive + method: POST + data_selector: code + params: {} +- name: create_request_video + endpoint: + path: /v3/createRequestVideo.json + method: POST + data_selector: data +- name: trackme_delete_link + endpoint: + path: /trackme/expire + method: DELETE + data_selector: response + params: {} +- name: create_geofence + endpoint: + path: /v3/geomarks/create.json + method: POST +- name: alert_types + endpoint: + path: /v3/alerts/types.json + method: GET + data_selector: alertTypes +- name: geofence + endpoint: + path: /v3/geomarks/{fenceId}.json + method: GET + data_selector: data + params: {} +- name: create_alert + endpoint: + path: /alerts/create.json + method: POST +- name: alerts + endpoint: + path: /alerts.json + method: POST + data_selector: data +- name: geofences + endpoint: + path: /geomarks + method: POST + data_selector: data + params: + limit: 50 + offset: 0 + geoMarkType: 0 +- name: geofence + endpoint: + path: /geomarks/update/{fenceId}.json + method: PATCH +- name: delete_geofence + endpoint: + path: /v3/geomarks/{fenceId}.json + method: DELETE +- name: alert + endpoint: + path: /alerts/{alertId}.json + method: GET + data_selector: data + params: {} +- name: categories + endpoint: + path: /landmark/categories.json + method: GET + data_selector: data +- name: alerts + endpoint: + path: /alerts/alertId.json + method: GET + data_selector: object +- name: edit_alert + endpoint: + path: /alerts/{alertId}.json + method: PUT +- name: bulk_upload_geofences + endpoint: + path: /bulkUpload.json + method: POST +- name: geofence + endpoint: + path: /azuga-ws-oauth/v3/geomarks/bulkUpload.json + method: POST +- name: delete_alert + endpoint: + path: /v3/alerts/{alertId}.json + method: DELETE +- name: Live Streaming + endpoint: + path: /reference/live-streaming + method: GET + data_selector: parameters + params: {} +- name: Camera Wakeup + endpoint: + path: /reference/camera-wake-up + method: GET + data_selector: parameters + params: {} +- name: events + endpoint: + path: /reference/events-types + method: GET +- name: live_stream + endpoint: + path: /v3/liveStream + method: GET + data_selector: data + params: + cameraSerialNum: int32 +- name: webhook + endpoint: + path: /webhooks.json + method: POST + data_selector: data +- name: webhooks + endpoint: + path: /v3/webhooks.json + method: GET +- name: camera_wakeup + endpoint: + path: /v3/livestreamrequest/wakeup + method: POST + data_selector: data + params: {} +- name: webhook + endpoint: + path: /webhooks/{token}.json + method: GET + data_selector: data + params: {} +- name: safety_cam + endpoint: + path: /v3/dashcam/{dashcamId}.json + method: GET + data_selector: data +- name: event_types + endpoint: + path: /v3/eventtypes.json + method: GET + data_selector: data +- name: webhook + endpoint: + path: /webhooks/{token}.json + method: PUT +- name: safety_cams + endpoint: + path: /v3/dashcam/get.json + method: POST + data_selector: data + params: + limit: 50 +- name: webhook + endpoint: + path: /webhooks/{token}.json + method: DELETE +- name: event_videos + endpoint: + path: /eventVideos.json + method: POST + data_selector: data + params: {} +- name: create_config + endpoint: + path: /configs/create.json + method: POST +- name: create_request_video + endpoint: + path: /v3/createRequestVideo.json + method: POST +- name: configs + endpoint: + path: /configs/create.json + method: POST +- name: all_configs + endpoint: + path: /configs/read-configs + method: GET +- name: requested_video + endpoint: + path: /v3/requestedVideos/{eventVideoId} + method: DELETE +- name: configs + endpoint: + path: /configs.json + method: GET +- name: alert_types + endpoint: + path: /v3/alerts/types.json + method: GET +- name: configs + endpoint: + path: /configs/ + method: GET +- name: create_alert + endpoint: + path: /alerts/create.json + method: POST +- name: configs + endpoint: + path: /configs/{configId} + method: PUT +- name: alerts + endpoint: + path: /alerts.json + method: POST + data_selector: data + params: {} +- name: delete_config + endpoint: + path: /v3/configs/{configurationId} + method: DELETE +- name: alerts + endpoint: + path: /alerts.json + method: POST +- name: create_reminder + endpoint: + path: /maintanance/add + method: POST +- name: alert + endpoint: + path: /alerts/{alertId}.json + method: GET + data_selector: data +- name: view_reminder + endpoint: + path: /alerts/{alertId} + method: GET + data_selector: data + params: {} +- name: alerts + endpoint: + path: /alerts/alertId.json + method: GET +- name: alerts + endpoint: + path: /alerts/{alertId} + method: GET + data_selector: data +- name: update_reminder + endpoint: + path: /maintanance/update.json + method: POST +- name: edit_alert + endpoint: + path: /alerts/{alertId}.json + method: PUT +- name: maintenance_update + endpoint: + path: /maintanance/update.json + method: POST + data_selector: data +- name: delete_reminder + endpoint: + path: /v3/maintanance/{alertId} + method: DELETE + data_selector: data + params: {} +- name: service_types + endpoint: + path: /maintanance/servicetypes.json + method: GET + data_selector: data +- name: webhook + endpoint: + path: /v3/webhooks.json + method: POST + data_selector: data +- name: reminders_by_count + endpoint: + path: /maintanance/remainder/v2.json + method: GET +- name: webhooks + endpoint: + path: /v3/webhooks.json + method: GET + data_selector: webhooks +- name: maintenance_reminder + endpoint: + path: /maintanance/remainder/v2.json + method: GET + params: + filter: days +- name: webhook + endpoint: + path: /webhooks/{token}.json + method: GET + data_selector: data + params: {} +- name: maintenance_history + endpoint: + path: /maintanance/reports/scheduledreport.json + method: POST + data_selector: data + params: + startTime: YYYY-MM-DD hh:mm:ss A + endTime: YYYY-MM-DD hh:mm:ss A + isCount: boolean +- name: event_types + endpoint: + path: /v3/eventtypes.json + method: GET + data_selector: data +- name: scheduled_report + endpoint: + path: /maintanance/reports/scheduledreport.json + method: POST + params: + startTime: 2023-02-01 12:00:00 AM + endTime: 2023-02-06 11:59:59 PM + isCount: 'false' +- name: DTC Descriptions + endpoint: + path: /dtc/ + method: GET + data_selector: data +- name: valid_preferences + endpoint: + path: /reference/valid-preferences + method: GET +- name: webhook + endpoint: + path: /webhooks/{token}.json + method: PUT + data_selector: data + params: {} +- name: preferences + endpoint: + path: /preferences + method: GET + data_selector: preferences + params: {} +- name: webhook + endpoint: + path: /webhooks/{token}.json + method: DELETE + data_selector: data + params: {} +- name: create_config + endpoint: + path: /configs/create.json + method: POST +- name: configs + endpoint: + path: /configs/create.json + method: POST +- name: configs + endpoint: + path: /configs.json + method: GET +- name: configs + endpoint: + path: /configs/ + method: GET +- name: configs + endpoint: + path: /configs/{configId} + method: PUT +- name: delete_config + endpoint: + path: /v3/configs/{configurationId} + method: DELETE +- name: create_reminder + endpoint: + path: /maintanance/add + method: POST +- name: View a Reminder + endpoint: + path: /alerts/{alertId} + method: GET + data_selector: data +- name: alerts + endpoint: + path: /alerts/{alertId} + method: GET +- name: Update a Reminder + endpoint: + path: /v3/maintanance/update.json + method: POST +- name: reminder + endpoint: + path: /maintanance/update.json + method: POST +- name: service_types + endpoint: + path: /maintanance/servicetypes.json + method: GET + data_selector: data +- name: view_reminders_by_count + endpoint: + path: /maintanance/remainder/v2.json + method: GET +- name: maintenance_remainder + endpoint: + path: /maintanance/remainder/v2.json + method: GET + params: + filter: days +- name: maintenance_history + endpoint: + path: /maintanance/reports/scheduledreport.json + method: POST + data_selector: data + params: + startTime: YYYY-MM-DD hh:mm:ss A + endTime: YYYY-MM-DD hh:mm:ss A + isCount: boolean +- name: Preferences + endpoint: + path: /reference/view-the-preferences + method: GET +- name: scheduled_report + endpoint: + path: /maintanance/reports/scheduledreport.json + method: POST + params: + startTime: 2023-02-01 12:00:00 AM + endTime: 2023-02-06 11:59:59 PM + isCount: 'false' +- name: preferences + endpoint: + path: /v3/preferences.json + method: GET + params: + isWebV2: 'true' +- name: DTC Descriptions + endpoint: + path: /v3/dtc/ + method: GET + data_selector: data +- name: update_preferences + endpoint: + path: /preferences/add.json + method: POST +- name: valid_preferences + endpoint: + path: /reference/valid-preferences + method: GET +- name: reseller_customers + endpoint: + path: /v3/reseller/customers.json + method: GET + data_selector: dataList + params: + limit: '50' + offset: '0' +- name: preferences + endpoint: + path: /api/preferences + method: GET + data_selector: preferences + params: {} +- name: Equipment + endpoint: + path: /v4/reference/getallequipments + method: GET +- name: Vehicles + endpoint: + path: /v4/reference/getallvehicles + method: GET +- name: Users + endpoint: + path: /v4/reference/getallusers + method: GET +- name: Drivers + endpoint: + path: /v4/reference/getalldrivers + method: GET +- name: Alerts + endpoint: + path: /v4/reference/getallalerts + method: GET +- name: Health Report + endpoint: + path: /v4/reference/gethealthreport + method: GET +- name: Equipment + endpoint: + path: /v4/reference/getallequipments + method: GET +- name: Users + endpoint: + path: /v4/reference/getallusers + method: GET +- name: Vehicles + endpoint: + path: /v4/reference/getallvehicles + method: GET +- name: Drivers + endpoint: + path: /v4/reference/getalldrivers + method: GET +- name: users + endpoint: + path: /v4/reference/users + method: GET + data_selector: records +- name: vehicles + endpoint: + path: /v4/reference/getallvehicles + method: GET + data_selector: records +- name: drivers + endpoint: + path: /v4/reference/getalldrivers + method: GET + data_selector: records +- name: alerts + endpoint: + path: /v4/reference/getallalerts + method: GET + data_selector: records +- name: beacons + endpoint: + path: /v4/reference/getallblebeacons + method: GET +- name: vehicles + endpoint: + path: /v4/reference/getallvehicles + method: GET +- name: users + endpoint: + path: /v4/reference/getallusers + method: GET +- name: drivers + endpoint: + path: /v4/reference/getalldrivers + method: GET +- name: alerts + endpoint: + path: /v4/reference/getallalerts + method: GET +- name: Equipment + endpoint: + path: /v4/reference/getallequipments + method: GET +- name: Vehicles + endpoint: + path: /v4/reference/getallvehicles + method: GET +- name: Users + endpoint: + path: /v4/reference/getallusers + method: GET +- name: Drivers + endpoint: + path: /v4/reference/getalldrivers + method: GET +- name: Alerts + endpoint: + path: /v4/reference/getallalerts + method: GET +- name: ble_beacons + endpoint: + path: /ble-beacons + method: GET + data_selector: data.bles + params: + limit: 50 + offset: 0 +- name: ble_beacons + endpoint: + path: /api/v4/ble-beacons + method: GET +- name: ble_beacon + endpoint: + path: /ble-beacons/{bleId} + method: GET + data_selector: data + params: {} +- name: ble_beacons + endpoint: + path: / + method: GET +- name: ble_beacon + endpoint: + path: /ble-beacons/{bleId} + method: PUT + data_selector: data + params: {} +- name: ble_beacon + endpoint: + path: /ble-beacons/{bleId} + method: DELETE + data_selector: object + params: {} +- name: categories + endpoint: + path: /categories + method: GET + data_selector: data.categories + params: + limit: 50 + offset: 0 + sort: name + order: DESC +- name: categories + endpoint: + path: /api/v4/categories + method: GET + data_selector: records + params: + sort: name + order: DESC + offset: 0 + limit: 50 +- name: Add a New Category with Subcategories + endpoint: + path: /categories + method: POST +- name: valid_preferences + endpoint: + path: /reference/valid-preferences + method: GET +- name: preferences + endpoint: + path: /reference/view-the-preferences + method: GET +- name: categories + endpoint: + path: /api/v4/categories + method: POST +- name: categories + endpoint: + path: /categories/{categoryId} + method: PUT +- name: preferences + endpoint: + path: /preferences.json + method: GET + data_selector: data + params: + isWebV2: 'true' +- name: preferences + endpoint: + path: /preferences/add.json + method: POST +- name: Delete Category + endpoint: + path: /api/v4/categories/{categoryId} + method: DELETE +- name: reseller_customers + endpoint: + path: /reseller/customers.json + method: GET + data_selector: dataList + params: + limit: 50 + offset: 0 +- name: categories + endpoint: + path: /categories/{categoryId} + method: GET + data_selector: data + params: + categoryId: string +- name: categories + endpoint: + path: /api/v4/categories/ + method: GET + data_selector: object +- name: Equipment + endpoint: + path: /v4/reference/getallequipments + method: GET +- name: Vehicles + endpoint: + path: /v4/reference/getallvehicles + method: GET +- name: Users + endpoint: + path: /v4/reference/getallusers + method: GET +- name: Drivers + endpoint: + path: /v4/reference/getalldrivers + method: GET +- name: Alerts + endpoint: + path: /v4/reference/getallalerts + method: GET +- name: category_equipment + endpoint: + path: /categories/{categoryId}/equipment + method: GET + data_selector: data.equipment + params: + limit: '50' + offset: '0' + sort: lastContactedTime + order: DESC +- name: category_equipment + endpoint: + path: /api/v4/categories/{categoryId}/equipment + method: GET + data_selector: object + params: {} +- name: BLE Beacons + endpoint: + path: /v4/reference/getallblebeacons + method: GET +- name: Categories + endpoint: + path: /v4/reference/getallcategories-1 + method: GET +- name: Equipment + endpoint: + path: /v4/reference/getallequipments + method: GET +- name: Vehicles + endpoint: + path: /v4/reference/getallvehicles + method: GET +- name: Users + endpoint: + path: /v4/reference/getallusers + method: GET +- name: Drivers + endpoint: + path: /v4/reference/getalldrivers + method: GET +- name: Service Entry + endpoint: + path: /v4/reference/getallserviceentries + method: GET +- name: Health Report + endpoint: + path: /v4/reference/gethealthreport + method: GET +- name: Dataloggers + endpoint: + path: /v4/reference/getalldataloggers + method: GET +- name: Alerts + endpoint: + path: /v4/reference/getallalerts + method: GET +- name: uncategorized_equipment + endpoint: + path: /categories/uncategorized/equipment + method: GET + data_selector: data.equipment + params: + offset: 0 + limit: 50 + sort: lastContactedTime + order: DESC +- name: category_equipment + endpoint: + path: /api/v4/categories/uncategorized/equipment + method: GET + data_selector: object +- name: equipment + endpoint: + path: /api/v4/equipment + method: GET +- name: equipment + endpoint: + path: /api/v4/equipment + method: POST +- name: ble_beacons + endpoint: + path: /getallblebeacons + method: GET +- name: categories + endpoint: + path: /getallcategories-1 + method: GET +- name: equipment + endpoint: + path: /getallequipments + method: GET +- name: vehicles + endpoint: + path: /getallvehicles + method: GET +- name: users + endpoint: + path: /getallusers + method: GET +- name: drivers + endpoint: + path: /getalldrivers + method: GET +- name: service_entries + endpoint: + path: /getallserviceentries + method: GET +- name: alert_types + endpoint: + path: /getallalerttypes + method: GET +- name: equipment + endpoint: + path: /v4/equipment + method: GET +- name: equipment + endpoint: + path: /equipment/{equipmentId} + method: PUT + data_selector: data +- name: Equipment + endpoint: + path: /v4/reference/getallequipments + method: GET +- name: Vehicles + endpoint: + path: /v4/reference/getallvehicles + method: GET +- name: Users + endpoint: + path: /v4/reference/getallusers + method: GET +- name: Drivers + endpoint: + path: /v4/reference/getalldrivers + method: GET +- name: Alerts + endpoint: + path: /v4/reference/getallalerts + method: GET +- name: equipment + endpoint: + path: /equipment/{equipmentId} + method: PUT +- name: get_equipment + endpoint: + path: /equipment/{equipmentId} + method: GET +- name: Equipment + endpoint: + path: /v4/reference/getallequipments + method: GET +- name: Vehicles + endpoint: + path: /v4/reference/getallvehicles + method: GET +- name: Users + endpoint: + path: /v4/reference/getallusers + method: GET +- name: Drivers + endpoint: + path: /v4/reference/getalldrivers + method: GET +- name: Alerts + endpoint: + path: /v4/reference/getallalerts + method: GET +- name: equipment + endpoint: + path: /equipment/{equipmentId} + method: GET + data_selector: data +- name: ble_beacons + endpoint: + path: /ble-beacons + method: GET + data_selector: data.bles + params: + macAddress: string + equipmentId: uuid + pairingStatus: string + isCategorized: boolean + search: string + sort: string + order: string + offset: integer + limit: integer +- name: update_equipment_categories + endpoint: + path: /equipment/update-category + method: PATCH + data_selector: data + params: + categoryId: required +- name: equipment + endpoint: + path: /v4/equipment/update-category + method: PATCH +- name: ble_beacons + endpoint: + path: /api/v4/ble-beacons + method: GET + data_selector: records + params: + sort: macAddress + order: ASC + offset: 0 + limit: 50 +- name: equipment_live_map + endpoint: + path: /equipment/map/trackers + method: GET + data_selector: data.trackers +- name: ble_beacon + endpoint: + path: /ble-beacons/{bleId} + method: GET + data_selector: data + params: {} +- name: trackers + endpoint: + path: /api/v4/equipment/map/trackers + method: GET +- name: ble_beacons + endpoint: + path: /api/v4/ble-beacons/ + method: GET +- name: dropped_equipment_location + endpoint: + path: /equipment/map/dropped-locations + method: GET + data_selector: data.droppedOffLocation + params: + limit: 50 + offset: 0 +- name: ble_beacon + endpoint: + path: /ble-beacons/{bleId} + method: PUT + data_selector: data + params: {} +- name: dropped_locations + endpoint: + path: /api/v4/equipment/map/dropped-locations + method: GET + data_selector: object +- name: equipment_locations + endpoint: + path: /api/v4/equipment/locations + method: GET +- name: ble_beacon + endpoint: + path: /ble-beacons/{bleId} + method: DELETE +- name: equipment_location + endpoint: + path: /equipment/{equipmentId}/locations + method: GET + data_selector: data + params: + limit: 50 + offset: 0 + days: 14 +- name: categories + endpoint: + path: /categories + method: GET + data_selector: data.categories + params: + offset: 0 + limit: 50 +- name: equipment_locations + endpoint: + path: /locations + method: GET + data_selector: object + params: + sort: locationTime + order: DESC + offset: 0 + limit: 50 + days: 14 +- name: categories + endpoint: + path: /api/v4/categories + method: GET + data_selector: object +- name: pair_ble_beacon + endpoint: + path: /pairings + method: POST + data_selector: data + params: {} +- name: add_category + endpoint: + path: /categories + method: POST +- name: categories + endpoint: + path: /api/v4/categories + method: GET +- name: pairing + endpoint: + path: /pairings + method: PUT + data_selector: object + params: {} +- name: categories + endpoint: + path: /categories/{categoryId} + method: PUT +- name: pairing_status + endpoint: + path: /pairings/{macAddress} + method: GET + data_selector: object + params: {} +- name: Delete Category + endpoint: + path: /api/v4/categories/{categoryId} + method: DELETE +- name: vehicle + endpoint: + path: /api/v4/vehicles + method: POST +- name: categories + endpoint: + path: /categories/{categoryId} + method: GET + data_selector: data + params: {} +- name: categories + endpoint: + path: /api/v4/categories/ + method: GET +- name: category_equipment + endpoint: + path: /categories/{categoryId}/equipment + method: GET + data_selector: data.equipment + params: + limit: 50 + offset: 0 + sort: lastContactedTime + order: DESC +- name: category_equipment + endpoint: + path: /categories/{categoryId}/equipment + method: GET + data_selector: object + params: + sort: lastContactedTime + order: DESC + offset: '0' + limit: '50' +- name: uncategorized_equipment + endpoint: + path: /categories/uncategorized/equipment + method: GET + data_selector: data.equipment + params: + offset: 0 + limit: 50 + sort: lastContactedTime + order: DESC +- name: vehicles + endpoint: + path: /vehicles + method: GET + data_selector: vehicles +- name: category_equipment + endpoint: + path: /v4/categories/uncategorized/equipment + method: GET +- name: vehicle + endpoint: + path: /v4/vehicles + method: GET + data_selector: vehicles +- name: equipment + endpoint: + path: /api/v4/equipment + method: GET + data_selector: equipment + params: {} +- name: vehicles + endpoint: + path: /vehicles/{vehicleId} + method: PUT + data_selector: response + params: {} +- name: equipment + endpoint: + path: /api/v4/equipment + method: POST +- name: vehicle + endpoint: + path: /vehicles/{vehicleId} + method: PUT + data_selector: object + params: {} +- name: all_vehicles + endpoint: + path: /vehicles + method: GET + data_selector: object + params: {} +- name: delete_equipment + endpoint: + path: /equipment/{equipmentId} + method: DELETE +- name: vehicle + endpoint: + path: /vehicles/{vehicleId} + method: DELETE +- name: equipment + endpoint: + path: /api/v4/equipment/ + method: DELETE + data_selector: object + params: {} +- name: vehicle + endpoint: + path: /vehicles/{vehicleId} + method: GET +- name: equipment + endpoint: + path: /equipment/{equipmentId} + method: PUT + data_selector: data +- name: users + endpoint: + path: /users + method: POST +- name: equipment + endpoint: + path: /api/v4/equipment/{equipmentId} + method: PUT +- name: equipment + endpoint: + path: /equipment/{equipmentId} + method: GET + data_selector: data + params: {} +- name: user + endpoint: + path: /users/{userId} + method: GET + data_selector: response + params: {} +- name: users + endpoint: + path: /users/{userId} + method: PUT +- name: update_equipment_categories + endpoint: + path: /equipment/update-category + method: PATCH + params: + categoryId: string +- name: PatchUpdateUser + endpoint: + path: /users/{userId} + method: PATCH +- name: update_category + endpoint: + path: /update-category + method: PATCH +- name: users + endpoint: + path: /users/{userId} + method: DELETE +- name: driver + endpoint: + path: /drivers + method: POST + data_selector: data + params: {} +- name: fetch_all_drivers + endpoint: + path: /drivers + method: GET + data_selector: data + params: {} +- name: equipment_live_map_trackers + endpoint: + path: /equipment/map/trackers + method: GET + data_selector: data.trackers + params: + offset: 0 + limit: 50 +- name: drivers + endpoint: + path: /v4/drivers + method: POST + data_selector: drivers + params: {} +- name: equipment_trackers + endpoint: + path: /api/v4/equipment/map/trackers + method: GET +- name: drivers + endpoint: + path: /drivers + method: GET + data_selector: drivers + params: + limit: 50 + offset: 0 +- name: dropped_equipment_location + endpoint: + path: /equipment/map/dropped-locations + method: GET + data_selector: data.droppedOffLocation + params: + offset: 0 + limit: 50 +- name: dropped_locations + endpoint: + path: /api/v4/equipment/map/dropped-locations + method: GET + data_selector: object + params: + offset: 0 + limit: 50 + sort: lastContactedTime + order: DESC +- name: drivers + endpoint: + path: /api/v4/drivers + method: GET + data_selector: object + params: {} +- name: equipment_locations + endpoint: + path: /api/v4/equipment/locations + method: GET +- name: driver + endpoint: + path: /drivers/{driverId} + method: PUT + data_selector: data + params: {} +- name: equipment_location + endpoint: + path: /equipment/{equipmentId}/locations + method: GET + data_selector: data.locationHistory + params: + limit: 50 + offset: 0 + days: 14 +- name: drivers + endpoint: + path: /drivers + method: GET + data_selector: records +- name: equipment_locations + endpoint: + path: /equipment/{equipmentId}/locations + method: GET +- name: pairing + endpoint: + path: /pairings + method: POST + data_selector: data + params: {} +- name: driver + endpoint: + path: /v4/drivers/{driverId} + method: GET + data_selector: object +- name: pairing + endpoint: + path: /pairings + method: PUT + data_selector: message + params: {} +- name: driver + endpoint: + path: /drivers/{driverId} + method: GET + data_selector: data + params: {} +- name: driver + endpoint: + path: /drivers/{driverId} + method: GET + data_selector: object +- name: service_entry + endpoint: + path: /service-entry-1 + method: GET + data_selector: object +- name: validate_ble_beacon_pairing_status + endpoint: + path: /pairings/{macAddress} + method: GET + data_selector: data + params: {} +- name: pairings + endpoint: + path: /api/v4/pairings/ + method: GET +- name: service_entries + endpoint: + path: /maintenance/service-entries + method: GET + data_selector: serviceEntries +- name: vehicle + endpoint: + path: /vehicles + method: POST +- name: vehicles + endpoint: + path: /vehicles + method: GET + params: + offset: 0 + limit: 50 +- name: service_entry + endpoint: + path: /maintenance/service-entries + method: POST + data_selector: data +- name: service_entries + endpoint: + path: /v4/maintenance/service-entries + method: GET + data_selector: object +- name: vehicles + endpoint: + path: /api/v4/vehicles + method: GET + data_selector: vehicles +- name: service_entry + endpoint: + path: /maintenance/service-entries/{serviceEntryId} + method: GET + data_selector: response + params: {} +- name: vehicles + endpoint: + path: /vehicles/{vehicleId} + method: PUT + data_selector: data +- name: service_entry + endpoint: + path: /maintenance/service-entries/{serviceEntryId} + method: PUT +- name: service_entry + endpoint: + path: /maintenance/service-entries/{serviceEntryId} + method: PATCH +- name: vehicle + endpoint: + path: /v4/vehicles + method: PUT + data_selector: data + params: {} +- name: service_entry + endpoint: + path: /maintenance/service-entries/{serviceEntryId} + method: DELETE +- name: vehicle + endpoint: + path: /vehicles/{vehicleId} + method: DELETE +- name: service_type + endpoint: + path: /maintenance/service-types + method: POST +- name: vehicle + endpoint: + path: /vehicles/{vehicleId} + method: GET +- name: service_types + endpoint: + path: /maintenance/service-types + method: GET + data_selector: data.serviceTypes +- name: users + endpoint: + path: /users + method: GET + data_selector: records +- name: service_types + endpoint: + path: /api/v4/maintenance/service-types + method: GET + params: + limit: '50' + offset: '0' +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: GET + data_selector: data + params: + serviceTypeId: uuid +- name: user + endpoint: + path: /users/{userId} + method: PUT +- name: service_type + endpoint: + path: /service-types/{serviceTypeId} + method: GET +- name: user + endpoint: + path: /users/{userId} + method: PATCH +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: PUT + data_selector: data + params: {} +- name: service_type + endpoint: + path: /{serviceTypeId} + method: PUT +- name: driver + endpoint: + path: /drivers + method: POST + data_selector: data +- name: fetch_all_drivers + endpoint: + path: /drivers + method: GET + data_selector: data +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: PATCH +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: PATCH +- name: drivers + endpoint: + path: /drivers + method: GET + data_selector: drivers + params: + limit: 50 + offset: 0 +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: DELETE + data_selector: response + params: {} +- name: drivers + endpoint: + path: /api/v4/drivers + method: GET +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: DELETE +- name: health_report + endpoint: + path: /safetycam/health/report + method: GET +- name: driver + endpoint: + path: /drivers/{driverId} + method: PUT + data_selector: data +- name: scheduled_health_reports + endpoint: + path: /safetycam/health/report/schedule + method: GET +- name: drivers + endpoint: + path: /v4/drivers + method: GET + data_selector: records +- name: health_report + endpoint: + path: /safetycam/health/report/schedule + method: POST +- name: Health Report + endpoint: + path: /safetycam/health/report/schedule/{scheduledReportId} + method: PATCH +- name: delete_scheduled_health_report + endpoint: + path: /safetycam/health/report/schedule/{scheduledReportId} + method: DELETE +- name: drivers + endpoint: + path: /drivers/{driverId} + method: DELETE +- name: driver + endpoint: + path: /driver + method: GET +- name: validate_report_name + endpoint: + path: /safetycam/health/report/schedule/validate/{reportName} + method: GET +- name: reboot_safety_cam + endpoint: + path: /safetycam/reboot/{safetyCamDeviceId} + method: POST +- name: driver + endpoint: + path: /drivers/{driverId} + method: GET + data_selector: data + params: {} +- name: calibrate_safety_cam + endpoint: + path: /api/v4/safetycam/calibrate/{safetyCamDeviceId} + method: POST +- name: format_sd_card + endpoint: + path: /safetycam/formatSdCard/{safetyCamDeviceId} + method: POST +- name: service_entry + endpoint: + path: /maintenance/service-entries + method: GET + data_selector: serviceEntries + params: + limit: '50' + offset: '0' +- name: dataloggers + endpoint: + path: /dataloggers + method: GET + data_selector: records +- name: datalogger + endpoint: + path: /dataloggers/{dataloggerId} + method: GET +- name: service_entry + endpoint: + path: /api/v4/maintenance/service-entries + method: GET + data_selector: records + params: + offset: 0 +- name: driver_beacon + endpoint: + path: /driver-beacons + method: GET + data_selector: driverBeacons + params: + offset: 0 + limit: 50 +- name: service_entry + endpoint: + path: /maintenance/service-entries + method: POST + data_selector: data +- name: service_entry + endpoint: + path: /v4/maintenance/service-entries + method: POST + data_selector: object + params: {} +- name: driver_beacon + endpoint: + path: /driver-beacons/{driverBeaconId} + method: GET + data_selector: data + params: {} +- name: driver_beacons + endpoint: + path: /driver-beacons/{driverBeaconId} + method: GET +- name: service_entry + endpoint: + path: /maintenance/service-entries/{serviceEntryId} + method: GET + data_selector: null + params: {} +- name: asset_tracker + endpoint: + path: /asset-trackers + method: GET + data_selector: records +- name: service_entry + endpoint: + path: /maintenance/service-entries/{serviceEntryId} + method: PUT +- name: asset_tracker + endpoint: + path: /asset-trackers/{assetTrackerId} + method: GET + data_selector: '' +- name: service_entry + endpoint: + path: /maintenance/service-entries/{serviceEntryId} + method: PATCH +- name: sensors + endpoint: + path: /sensors + method: GET + data_selector: records +- name: service_entry + endpoint: + path: /maintenance/service-entries/{serviceEntryId} + method: DELETE +- name: sensor + endpoint: + path: /sensors/{assetSensorId} + method: GET +- name: service_type + endpoint: + path: /maintenance/service-types + method: POST +- name: alerts + endpoint: + path: /v4/alerts + method: GET + data_selector: alerts +- name: alerts + endpoint: + path: /v4/alerts + method: POST +- name: service_types + endpoint: + path: /maintenance/service-types + method: GET + data_selector: serviceTypes +- name: alert + endpoint: + path: /v4/alerts/{alertId} + method: PATCH +- name: service_types + endpoint: + path: /maintenance/service-types + method: GET + data_selector: object + params: + limit: 50 + offset: 0 +- name: alert + endpoint: + path: /v4/alerts/{alertId} + method: GET +- name: alerts + endpoint: + path: /alerts/{alertId} + method: PUT + data_selector: object + params: {} +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: GET + data_selector: data + params: + serviceTypeId: uuid +- name: alerts + endpoint: + path: /alerts + method: GET +- name: service_types + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: GET +- name: alerts + endpoint: + path: /v4/alerts/{alertId} + method: DELETE + data_selector: 'null' + params: {} +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: PUT +- name: alert_types + endpoint: + path: /v4/alert-types + method: GET + data_selector: data +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: PATCH +- name: roles + endpoint: + path: /alert-types/roles + method: GET + data_selector: data + params: {} +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: PATCH + data_selector: object +- name: alert_policy + endpoint: + path: /alert-policies + method: GET + data_selector: alertPolicies +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: DELETE +- name: alert_policies + endpoint: + path: /v4/alert-policies + method: GET +- name: service_type + endpoint: + path: /maintenance/service-types/{serviceTypeId} + method: DELETE +- name: alert_policy + endpoint: + path: /alert-policies + method: POST + data_selector: object +- name: health_report + endpoint: + path: /safetycam/health/report + method: GET +- name: alert_policies + endpoint: + path: /v4/alert-policies + method: POST + data_selector: '' +- name: fetch_all_alert_policies + endpoint: + path: /v4/alert-policies + method: GET + data_selector: '' +- name: scheduled_health_reports + endpoint: + path: /safetycam/health/report/schedule + method: GET +- name: alert_policies + endpoint: + path: /alert-policies/{alertPolicyId} + method: PUT + data_selector: object + params: {} +- name: health_report + endpoint: + path: /safetycam/health/report/schedule + method: POST +- name: alert_policy + endpoint: + path: /alert-policies/{alertPolicyId} + method: PUT +- name: health_report + endpoint: + path: /safetycam/health/report/schedule/{scheduledReportId} + method: PATCH +- name: alert_policy + endpoint: + path: /alert-policies/{alertPolicyId} + method: DELETE + data_selector: object +- name: Delete a Scheduled Health Report + endpoint: + path: /safetycam/health/report/schedule/{scheduledReportId} + method: DELETE +- name: alert_policy + endpoint: + path: /alert-policies/{alertPolicyId} + method: GET + data_selector: data + params: + alertPolicyId: string +- name: validate_report_name + endpoint: + path: /safetycam/health/report/schedule/validate/{reportName} + method: GET +- name: reboot_safetycam + endpoint: + path: /safetycam/reboot/{safetyCamDeviceId} + method: POST +- name: alert_policy + endpoint: + path: /alert-policies/{alertPolicyId} + method: GET +- name: alert_policies_count + endpoint: + path: /alert-policies/total/count + method: GET +- name: calibrate_safetycam + endpoint: + path: /safetycam/calibrate/{safetyCamDeviceId} + method: POST +- name: format_sd_card + endpoint: + path: /safetycam/formatSdCard/{safetyCamDeviceId} + method: POST +- name: authentication + endpoint: + path: /azuga-as/oauth2/login/oauthtoken.json + method: POST + data_selector: data + params: + loginType: 1 +- name: dataloggers + endpoint: + path: /dataloggers + method: GET +- name: ble_beacons + endpoint: + path: /ble-beacons + method: GET + data_selector: data.bles + params: + limit: 50 + offset: 0 +- name: datalogger + endpoint: + path: /dataloggers/{dataloggerId} + method: GET +- name: ble_beacons + endpoint: + path: /api/v4/ble-beacons + method: GET + data_selector: object + params: + sort: macAddress + order: ASC + offset: 0 + limit: 50 +- name: categories + endpoint: + path: /categories + method: GET + data_selector: data.categories + params: + limit: 50 + offset: 0 + sort: name + order: DESC +- name: driver_beacon + endpoint: + path: /driver-beacons + method: GET + data_selector: driverBeacons + params: + offset: 0 + limit: 50 +- name: categories + endpoint: + path: /v4/categories + method: GET +- name: DriverBeacon + endpoint: + path: /v4/driver-beacons + method: GET +- name: driver_beacon + endpoint: + path: /driver-beacons/{driverBeaconId} + method: GET +- name: equipment + endpoint: + path: /api/v4/equipment + method: GET +- name: driver_beacon + endpoint: + path: /driver-beacons/{driverBeaconId} + method: GET +- name: live_map_tracker + endpoint: + path: /api/v4/equipment/map/trackers + method: GET +- name: asset_tracker + endpoint: + path: /asset-trackers + method: GET + data_selector: records +- name: equipment_locations + endpoint: + path: /equipment/locations + method: GET + data_selector: data.equipment + params: + offset: 0 + limit: 50 + days: 14 +- name: asset_tracker + endpoint: + path: /asset-trackers/{assetTrackerId} + method: GET + data_selector: '' +- name: dropped_equipment_location + endpoint: + path: /v4/equipment/locations + method: GET +- name: specific_equipment_location + endpoint: + path: /v4/equipment/locationhistory + method: GET +- name: pair_ble_beacon + endpoint: + path: /pairings + method: POST +- name: sensors + endpoint: + path: /api/v4/sensors + method: GET + data_selector: records +- name: sensor + endpoint: + path: /sensors/{assetSensorId} + method: GET + data_selector: '' +- name: vehicle + endpoint: + path: /vehicles + method: POST + data_selector: RequestBody + params: {} +- name: fetch_all_vehicles + endpoint: + path: /getallvehicles + method: GET + data_selector: records + params: {} +- name: alerts + endpoint: + path: /v4/alerts + method: GET + data_selector: alerts +- name: alerts + endpoint: + path: /v4/alerts + method: POST +- name: alert + endpoint: + path: /v4/alerts/{alertId} + method: PATCH +- name: create_vehicle + endpoint: + path: / + method: POST + data_selector: data +- name: fetch_all_vehicles + endpoint: + path: / + method: GET + data_selector: data +- name: retrieve_vehicle + endpoint: + path: /{vehicleId} + method: GET + data_selector: data +- name: modify_vehicle + endpoint: + path: /{vehicleId} + method: PUT + data_selector: data +- name: delete_vehicle + endpoint: + path: /{vehicleId} + method: DELETE + data_selector: data +- name: alerts + endpoint: + path: /v4/alerts/{alertId} + method: GET + data_selector: alert details +- name: alert + endpoint: + path: /alerts/{alertId} + method: PUT +- name: alert + endpoint: + path: /v4/alerts/{alertId} + method: GET +- name: driver + endpoint: + path: /api/v4/drivers + method: POST + data_selector: null + params: {} +- name: alerts + endpoint: + path: /v4/alerts/{alertId} + method: DELETE +- name: service_entries + endpoint: + path: /maintenance/service-entries + method: GET + data_selector: serviceEntries +- name: alert_types + endpoint: + path: /alert-types + method: GET + data_selector: data +- name: service_type + endpoint: + path: /maintenance/service-types + method: POST + data_selector: data +- name: roles + endpoint: + path: /alert-types/roles + method: GET + data_selector: data +- name: health_report + endpoint: + path: /safetycam/health/report + method: GET + data_selector: data + params: {} +- name: alert_policy + endpoint: + path: /alert-policies + method: GET + data_selector: alertPolicies + params: + resellerProfileId: '' + resellerName: '' + alertPolicyId: '' + alertPolicyName: '' + alertTypeId: '' + alertTypeName: '' + alertMode: '' + allowOverride: '' + isApplicableToAll: '' + isMuted: '' + recordStatus: '' + createdBy: '' + createdByName: '' + updatedBy: '' + updatedByName: '' + searchValue: '' + searchColumn: '' + sortValue: '' + sortColumn: '' + limit: '' + offset: '' +- name: safetycam_reboot + endpoint: + path: /safetycam/reboot/{safetyCamDeviceId} + method: POST +- name: alert_policy + endpoint: + path: /v4/alert-policies + method: GET +- name: dataloggers + endpoint: + path: /dataloggers + method: GET + data_selector: dataloggers + params: + offset: 0 + limit: 50 +- name: alert_policy + endpoint: + path: /alert-policies + method: POST +- name: dataloggers + endpoint: + path: /dataloggers + method: GET + params: + offset: '0' + limit: '50' +- name: alert_policy + endpoint: + path: /v4/alert-policies + method: GET + data_selector: object +- name: driver_beacons + endpoint: + path: /driver-beacons + method: GET + data_selector: driverBeacons + params: + offset: 0 + limit: 50 +- name: alert_policy + endpoint: + path: /alert-policies/{alertPolicyId} + method: PUT + data_selector: object + params: {} +- name: driver_beacon + endpoint: + path: /api/v4/driver-beacons + method: GET + data_selector: object +- name: alert_policy + endpoint: + path: /alert-policies/{alertPolicyId} + method: PUT +- name: asset_tracker + endpoint: + path: /asset-trackers + method: GET + data_selector: records +- name: sensors + endpoint: + path: /api/v4/sensors + method: GET + data_selector: records +- name: alertPolicy + endpoint: + path: /alert-policies/{alertPolicyId} + method: DELETE +- name: alerts + endpoint: + path: /v4/alerts + method: GET + data_selector: alerts +- name: alert-policy + endpoint: + path: /alert-policies/{alertPolicyId} + method: GET + data_selector: data + params: + alertPolicyId: string +- name: alert_types + endpoint: + path: /alert-types + method: GET + data_selector: alertTypes +- name: alert_policy + endpoint: + path: /alert-policies/{alertPolicyId} + method: GET +- name: alert_policies + endpoint: + path: /alert-policies + method: GET + data_selector: alertPolicies + params: + resellerProfileId: '' + resellerName: '' + alertPolicyId: '' + alertPolicyName: '' + alertTypeId: '' + alertTypeName: '' + alertMode: '' + allowOverride: '' + isApplicableToAll: '' + isMuted: '' + recordStatus: '' + createdBy: '' + createdByName: '' + updatedBy: '' + updatedByName: '' + searchValue: '' + searchColumn: '' + sortValue: '' + sortColumn: '' + limit: '' + offset: '' +- name: alert_policies_count + endpoint: + path: /alert-policies/total/count + method: GET + data_selector: data + params: + resellerProfileId: '' + searchValue: '' + searchColumn: '' +- name: alert_policies + endpoint: + path: /v4/alert-policies + method: GET + data_selector: object + params: {} +- name: authentication + endpoint: + path: /azuga-as/oauth2/login/oauthtoken.json + method: POST + params: + loginType: 1 +- name: ble_beacons + endpoint: + path: /ble-beacons + method: GET + data_selector: data.bles + params: + limit: 50 + offset: 0 +- name: ble_beacons + endpoint: + path: /ble-beacons + method: GET + data_selector: records + params: + sort: macAddress + order: ASC + offset: 0 + limit: 50 +- name: categories + endpoint: + path: /categories + method: GET + data_selector: data.categories + params: + limit: 50 + offset: 0 + sort: name + order: DESC +- name: categories + endpoint: + path: /categories + method: GET +- name: equipment + endpoint: + path: /api/v4/equipment + method: GET + data_selector: existing equipment + params: {} +- name: live_map_tracker + endpoint: + path: /api/v4/equipment/map/trackers + method: GET +- name: equipment_locations + endpoint: + path: /equipment/locations + method: GET + data_selector: data.equipment + params: + limit: 50 + offset: 0 + days: 14 +- name: equipment_locations + endpoint: + path: /v4/equipment/locations + method: GET + data_selector: object +- name: pair_bluetooth_equipment + endpoint: + path: /pairings + method: POST + data_selector: data + params: {} +- name: vehicle + endpoint: + path: /vehicles + method: POST +- name: vehicle + endpoint: + path: /v4/vehicles + method: POST + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: POST +- name: driver + endpoint: + path: /drivers + method: POST +- name: service_entry + endpoint: + path: /maintenance/service-entries + method: GET +- name: service_type + endpoint: + path: /maintenance/service-types + method: POST + data_selector: data +- name: health_report + endpoint: + path: /health/report + method: GET +- name: reboot_safetycam + endpoint: + path: /safetycam/reboot/{safetyCamDeviceId} + method: POST +- name: datalogger + endpoint: + path: /dataloggers + method: GET + data_selector: dataloggers + params: + offset: 0 + limit: 50 +- name: datalogger + endpoint: + path: /dataloggers + method: GET + data_selector: object +- name: driver_beacon + endpoint: + path: /driver-beacons + method: GET + data_selector: driverBeacons + params: + offset: 0 + limit: 50 +- name: driver_beacon + endpoint: + path: /v4/driver-beacons + method: GET + data_selector: object + params: + offset: '0' + limit: '50' +- name: asset_tracker + endpoint: + path: /asset-trackers + method: GET +- name: sensors + endpoint: + path: /sensors + method: GET + data_selector: records +- name: alerts + endpoint: + path: /alerts + method: GET +- name: alert_types + endpoint: + path: /v4/alert-types + method: GET + data_selector: null + params: {} +- name: alert_policies + endpoint: + path: /alert-policies + method: GET + data_selector: alertPolicies + params: + resellerProfileId: '' + resellerName: '' + alertPolicyId: '' + alertPolicyName: '' + alertTypeId: '' + alertTypeName: '' + alertMode: '' + allowOverride: '' + isApplicableToAll: '' + isMuted: '' + recordStatus: '' + createdBy: '' + createdByName: '' + updatedBy: '' + updatedByName: '' + searchValue: '' + searchColumn: '' + sortValue: '' + sortColumn: '' + limit: '' + offset: '' +- name: alert_policy + endpoint: + path: /v4/alert-policies + method: GET +notes: +- Events are triggered in real-time as mobile events occur. +- Supports single and multiple updates in the same request +- Ability to sort, filter, limit, and search while making a request +- Uses OAuth2 with refresh token — requires setup of connected app in api +- The v3 APIs are an evolution from the v1 and v2 versions that allow for a wide range + of access to data and building seamless workflows for integrations. +- Supports single and multiple updates in the same request. +- Payload structure may vary based on event type +- To receive immediate notifications, a subscription to the ALERT_CREATE webhook event + is mandatory. +- To receive immediate, real-time notifications whenever an alert is deleted within + the system, a subscription to the ALERT_DELETE webhook event is mandatory. +- The Alert Update Event is used to notify whenever an existing alert configuration + is modified. +- A webhook (also called a web callback or HTTP push API) is a real-time data delivery + mechanism that allows applications to receive updates automatically. +- Subscription to the ASSET_CREATE event is mandatory. This event is triggered in + real-time upon asset creation. +- To receive immediate, real-time notifications whenever a new alert is generated + within the system, a subscription to the ALERT_CREATE webhook event is mandatory. +- Subscription to the ASSET_DELETE event is mandatory. This event is triggered in + real-time upon asset deletion. +- Subscription to the ALERT_UPDATE event is mandatory. This event is triggered in + real-time upon asset modification. +- Subscription to the DEVICE_CREATION event is mandatory. +- Subscription to the DEVICE_UPDATE event is mandatory. +- This event is triggered in real-time when a device is updated. +- Subscription to the ASSET_DELETE event is mandatory. +- This event is triggered in real-time upon asset deletion. +- Subscription to the DRIVER_DELETE event is mandatory. This event is triggered in + real-time when a driver is deleted. +- Subscription to the DTC_MESSAGE event is mandatory. +- This event is triggered instantly when a Diagnostic Trouble Code is reported from + the vehicle. +- Subscription to the DEVICE_DELETE event is mandatory. +- This event is triggered in real-time when a device is deleted. +- Subscription to the Equipment Tracking Package is mandatory. +- Subscription to the DEVICE_UPDATE event is mandatory. This event is triggered in + real-time when a device is updated. +- Subscription to the DRIVER_CREATE event is mandatory. This event is triggered in + real-time when a driver is added. +- Subscription to the DRIVER_DELETE event is mandatory +- This event is triggered in real-time when a driver is deleted +- Subscription to the DRIVER_UPDATE event is mandatory. +- This event is triggered in real-time when a driver detail is updated. +- Subscription to the BLE_EQUIPMENT_PAIR event is mandatory. +- Subscription to the BLE_EQUIPMENT_UNPAIR event is mandatory. +- This event is triggered when power through Extension Wire 2 is turned off or disconnected. +- Subscription to the Extension_2_Start event is mandatory. +- Subscribing to the FUEL_INCREASE webhook event is required. +- This event is triggered if the fuel tank capacity has increased by 30% or more. +- This event is triggered in real-time when an Equipment detail is updated/modified + in the system. +- Subscription to FUEL_LEVEL_EVENT webhook is a must. +- A webhook providing the current fuel level as a percentage of the tank capacity + is triggered every 5mins while the vehicle is on an active trip. +- Triggered when fuel level falls below 50% of tank capacity. +- Subscription to the `Extension_1_End` event is mandatory. +- This event is triggered when the power supply to Extension Wire 1 stops and is used + with Asset Trackers. +- Subscription to the Extension_1_Start event is mandatory. +- Subscription to the ENTERED_GEOFENCE event is mandatory. +- The event is triggered instantly when a vehicle crosses into the boundary of a created + geofence region. +- The EXIT_GEOFENCE event is used to notify when a vehicle exits a predefined geofence + region. +- Subscription to the `Extension_2_End` event is mandatory. +- Subscription to the GEOFENCE_TIMER_NOTIN event is mandatory. +- Subscription to the Extension_2_Start event is mandatory. The event is triggered + immediately when the Asset Tracker device begins receiving power through Extension + Wire 2. +- Notifies when a fuel drop is detected +- Triggers when a trip begins or if fuel tank drops by 30% or more +- Subscription to the HARD_ACCELERATION_MESSAGE event is mandatory. The event is triggered + immediately when a vehicle, already traveling above 3 MPH, accelerates by more than + 8 MPH within one second. +- Event is triggered if the fuel tank capacity has increased by 30% or more. +- The event is triggered instantly when a vehicle moving at more than 30 MPH decelerates + at a rate between 13–18 MPH per second. +- Event is triggered when a vehicle shows a decrease in speed at a rate exceeding + 18 MPH per second. +- Event is triggered whenever the fuel level falls below 50% of the tank capacity. +- The Over Speeding event is triggered when the vehicle exceeds the configured speed + threshold (default 65 kilometers per hour). +- Subscription to the OVER_SPEEDING_ENDED webhook is mandatory. +- Triggered in real-time when the vehicle's speed decreases below the configured overspeed + threshold, set to 65 km/h by default. +- Subscription to the EXIT_GEOFENCE event is mandatory. +- Subscription to the OIL_LIFE_EVENT event is mandatory. This event is triggered in + real-time at the end of each trip. +- The ROLE_DELETE event is used to notify when a role is deleted in the system. +- Subscription to the ROLE_DELETE event is mandatory. +- Webhook subscription to the GPS_MESSAGE event is mandatory. +- The tracking frequency must be configured at the customer level. If not explicitly + set, the system defaults to a 2 minute tracking frequency. +- Subscription to the ROLE_UPDATE event is mandatory. This event is triggered in real-time + when a role is updated in the system. +- Subscription to the HARD_ACCELERATION_MESSAGE event is mandatory. +- Triggered when a vehicle accelerates by more than 8 MPH within one second. +- Subscription to the TEMPERATURE_1 event is mandatory. +- This event is triggered in real time whenever the asset tracker device receives + updated input from the connected temperature sensor. +- The HARD_BREAKING_MESSAGE event is used to notify when a vehicle experiences a sudden + and significant reduction in speed. +- Subscription to the TEMPERATURE_2 event is mandatory. +- Subscription to the HARD_CORE_BRAKING_MESSAGE event is mandatory. +- The event is triggered when a vehicle moving at a speed of more than 30 MPH shows + a decrease in speed at a rate exceeding 18 MPH per second. +- Subscription to the TEMPERATURE_3 event is mandatory. This event is triggered in + real time whenever the asset tracker device receives updated input from the connected + temperature sensor. +- The event occurs instantly when the vehicle's speed exceeds the configured threshold + value. +- Subscription to the TEMPERATURE_4 event is mandatory. +- The event is triggered in real-time when the vehicle's speed decreases below the + configured overspeed threshold, signaling the end of an overspeeding condition. +- Subscription to the TEMPERATURE_5 event is mandatory. +- Subscription to the TEMPERATURE_6 event is mandatory. +- Subscription to the TEMPERATURE_7 event is mandatory. +- Subscription to the ROLE_CREATE event is mandatory. This event is triggered in real-time + when a role is created in the system. +- Subscription to the TEMPERATURE_8 event is mandatory. +- Subscription to the ROLE_UPDATE event is mandatory. +- Subscription to the TRIP_START_MESSAGE event is mandatory. +- This event is triggered immediately when the vehicle's ignition is turned on. +- Subscription to the TRIP_END_MESSAGE event is mandatory. +- This event is triggered immediately when the vehicle's ignition is turned off. +- Subscription to the SEAT_BELT event is mandatory. +- Event is triggered during a trip only if the vehicle is compatible with seat belt + detection and the Seat Belt package is enabled. +- Subscription to the USER_CREATE event is mandatory. This event is triggered in real-time + when a user is created in the system. +- Subscription to the USER_DELETE event is mandatory. This event is triggered in real-time + when a user is deleted in the system. +- Subscription to the TEMPERATURE_2 event is mandatory. This event is triggered in + real time whenever the asset tracker device receives updated input from the connected + temperature sensor. +- Subscription to the USER_UPDATE event is mandatory. This event is triggered in real-time + when a user is updated in the system. +- Subscription to the TEMPERATURE_3 event is mandatory. +- Subscription to the VEHICLE_CREATE event is mandatory. This event is triggered in + real-time upon vehicle creation. +- Triggered in real time whenever updated input from the connected temperature sensor + is received. +- Subscription to the VEHICLE_UPDATE event is mandatory. This event is triggered in + real-time when the vehicle details are updated. +- Subscription to the TEMPERATURE_5 event is mandatory. This event is triggered in + real time whenever the asset tracker device receives updated input from the connected + temperature sensor. +- Subscription to the VEHICLE_DELETE event is mandatory. This event is triggered in + real-time upon vehicle deletion. +- Subscription to the TEMPERATURE_6 event is mandatory. This event is triggered in + real time whenever the asset tracker device receives updated input from the connected + temperature sensor. +- Subscription to the VEHICLE_BACKUP_EVENT is mandatory. +- Subscription to the TEMPERATURE_7 event is mandatory. This event is triggered in + real time whenever the asset tracker device receives updated input from the connected + temperature sensor. +- Subscription to the VEHICLE_MIL_INFO event is mandatory. The event is triggered + at the start of each trip. +- Subscription to the TEMPERATURE_8 event is mandatory. This event is triggered in + real time whenever the asset tracker device receives updated input from the connected + temperature sensor. +- Subscription to the VEHICLE_NOT_TRACKING event is mandatory. +- Subscription to the VEHICLE_PAIRING event is mandatory. +- Subscription to the VIN_CHANGE_EVENT is mandatory. +- The event is triggered at the start of a trip if a change in the vehicle’s VIN is + detected. +- Subscription to the USER_UPDATE event is mandatory. +- Subscription to the VEHICLE_UPDATE event is mandatory. +- This event is triggered in real-time when the vehicle details are updated. +- Don't make changes to the pre-defined variables +- This API key needs to be Base 64 encoded +- Token needs to be added to the header of every request by prefixing the word 'Bearer' + before the token. +- The Back Up Detection package must be enabled for this event to be generated. +- Subscription to the VEHICLE_MIL_INFO event is mandatory. +- Defaults for various fields include integer values defaulting to 0 and boolean values + defaulting to true. +- This API allows the user to generate a detailed report on the trips taken by your + fleet within the time period that is requested for. +- Token must be prefixed with 'Bearer' in the Authorization header. +- Make sure that you are setting the method to GET. The same endpoint is used for + deleting an asset using DELETE method. +- Defaults to 0 for certain fields in response +- Background color and text color default to red +- The URL for this request expired after 30 days. +- Updated about 1 month ago +- You are allowed to update only the assets you have access to. +- This API allows the user to generate a detailed report on the trips taken by your + fleet within the time period that is requested. +- This API allows the user to view the breadcrumb report. +- This API allows you to create an extension in your account. +- Defaults to {"extension1Id":"","extension2Id":""} when no extensions are associated. +- Defaults to 0 for many integer fields +- Defaults to true for many boolean fields +- Allows you to view all active extensions and all their associated information in + your account. +- This API allows you to add a vehicle and enter all its information to your account + which helps you to track and manage the vehicle. +- This API allows you to delete an extension in your account. You need to pass the + unique identifier of the extension to the endpoint. +- This is an irreversible action. Please be careful while making the request. +- URL for this request expired after 30 days. +- Using POST method to create trackees +- Users are people in your organization that use Azuga for tracking vehicles and reporting + on performance and productivity. +- Make sure that you are setting the method to GET. The same endpoint is used for + deleting a user using DELETE method. +- Requires setup of connected app in azuga +- Pass an empty body parameter if you are looking for data of all vehicles. +- You are allowed to fetch only the device you have access to. +- This API allows you to update one or all parameters of a specific user. +- This API provides you with information about all groups present in your account. +- This is an irreversible action. Be careful! +- Geofence can have radius configured up to 10 Miles. +- The same endpoint is used for deleting a geofence using DELETE method. +- Geofence is a virtual boundary around a geographical area. +- A geofence can have radius configured up to 10 Miles. +- Make sure that you are setting the method to GET. The same endpoint is used for + deleting a group using DELETE method. +- Streaming is feasible only when the camera is in online mode. +- If the video only streams black, it may be because the lens is covered by the lens + cover accessory. +- If camera is in standby / offline - recommend to Wakeup the camera and initiate + request again. +- This API helps you to request for live streaming from the camera. This feature is + available only for Azuga AI cameras with vendorId=15. +- Pass Azuga customerID & unique identifier(token) of the TrackMe link as path parameters. +- This API enables you to delete an active TrackeMe link. Please note that this is + an irreversible action. +- Make sure that you are setting the method to GET. +- Making a request to the endpoint without any body parameters would give you details + of all the configured alerts. +- This API provides you with information about all active geofences present in your + account. +- Only one geofence can be updated by a single API call. +- You are allowed to update geofences for those you have access to modify. +- The same endpoint is used for deleting an alert using DELETE method. +- Webhook name is required of length more than or equal to 3 characters +- Azuga will send an email to the specified address if the URL becomes unreachable + or fails to respond. +- This API helps you turn on the AI camera if the camera is on sleep mode. +- Only one webhook can be modified per API call. +- You are allowed to view only the Dashcams you have access to. +- Only one webhook can be deleted per API call. +- To get the ID of a webhook, you must call the View API. +- Each page will have 50 records each by default. +- You are allowed to delete one request video in a single API call. +- This API allows the user to view details of a device configuration configured in + your account +- This API allows the user to delete a device configuration configured in your account +- This API allows the user to create a maintenance reminder in your account +- This API allows you to delete multiple alerts from your account. +- You are allowed to delete only alerts you have access to. +- A webhook allows applications to receive updates automatically. +- A single webhook can subscribe to multiple events. +- This API allows the user to view the details of the service types that is available + for your account +- Webhook name is required of length more than or equal to 3 characters. +- Azuga will send an email if the specified URL becomes unreachable. +- The same endpoint is used for deleting a Webhook using DELETE method. +- The API allows filtering records between a time range by passing the 'startTime' + and 'endTime' as query parameters. +- This API gives you the list of all the events that are supported by our application + and that can be used to trigger a webhook. +- To obtain the ID of the webhook, you need to call the View API. +- You can only delete the webhooks for which you have access to. +- This API allows the user to view all the device configurations configured in your + account +- API allows the user to view the details of the service types that is available for + your account +- Allows filtering of records between a time range by passing startTime and endTime + as query parameters. +- Uses OAuth2 with Bearer token in header +- DTC code needs to be passed as a path parameter +- API allows the user to update the preferences that are available in your account. +- Preferences have various types and constraints. +- V4 authentication has been designed to maintain compatibility with V3. +- Include the generated token in the 'Authorization' header for authentication. +- The Units and Metrics provides essential information about the various measurements + and metrics used throughout the API. +- Uses Bearer token for authentication +- Bearer authentication is required. +- JWT Bearer token required for authentication +- Live map Equipment trackers +- Requires Bearer JWT for authentication +- Ensure to provide valid vehicleTypeId and fuelTypeId when adding a vehicle. +- High level error message may be returned with 500 Internal Server Error +errors: +- '400: Bad Request: Your request could not be understood by the server.' +- '401: Unauthorized: We couldn''t authorize you, or you have used the wrong API key' +- '403: Forbidden: The resource requested is restricted for your API Key.' +- '404: Not Found: The specified resource could not be found.' +- '405: Method Not Allowed: You tried to access a resource with an invalid method.' +- '429: Too many requests: You’re requesting too much! Slow down!' +- '500: Internal Server Error: Hell''s fire let loose' +- '503: Service Unavailable: We’re temporarily offline for maintenance. Please try + again later.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '400: Bad Request' +- '401: Unauthorized' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 401 401 +- '400 Bad Request: Check required fields are present' +- '401 Unauthorized: Recheck OAuth credentials' +- '404 Not Found: Verify endpoint path' +- '400: Error description - if any' +- '200: Successful Response' +- '200: Successful operation' +- '400 Bad Request: Check your request parameters' +- '401 Unauthorized: Invalid credentials' +- '400 Bad Request: Missing required fields or invalid data' +- '200: Success' +- '404: Not Found' +- '400: Error description - if any.' +- '400: Error message during API compilation' +- '200: Successful request' +- '400: Bad request' +- '404: Not found' +- 'error: Displays the corresponding error message which occurs during API compilation.' +- '400: Error occurred during API compilation.' +- Error description - if any +- '200: Result' +- '400: Result' +- 'URL Expired: The URL for this request expired after 30 days.' +- '400: Bad Request - Check if the cameraSerialNum is valid.' +- 400 Bad Request +- '400 Bad Request: Check request parameters' +- '401 Unauthorized: Invalid token or expired session' +- '404 Not Found: The requested resource could not be found' +- 'code: HTTP Status Code' +- 'message: Status Message' +- 'generatedAtInMillis: Time at which the API returns the result' +- 'alive: True/False values define if the URL is active or expired' +- 'error: Error description - if any' +- 'AZSC001: invalid request video request name' +- 'AZSC002: invalid time range' +- 'AZSC003: requested video not found' +- 'AZSC004: device is not correct' +- 'AZSC005: disconnected camera' +- '200: Successful response' +- '404: Alert not found' +- 200 - Result +- 'AZSC001: requestedVideo time range code' +- 'AZSC002: invalid request video request name code' +- 'AZSC003: requestedVideo invalid time code' +- 'AZSC004: requestedVideo not found code' +- 'AZSC005: device is not correct code' +- 'AZSC006: requestedVideo disconnected camera code' +- Defaults to 0 +- Description of the error - if any. +- '400: Invalid request.' +- '401: Unauthorized access.' +- Error message +- '401: Unauthorized access' +- '402: Request Failed' +- '403: Forbidden' +- '429: Too many requests' +- '500: Server Errors' +- '502: Server Errors' +- '503: Server Errors' +- '504: Server Errors' +- '403 Unauthorized: High level error message' +- 400 Failed Operation (bad request) +- 403 Unauthorized Request +- '400: Failed Operation (bad request)' +- '403: Unauthorized Request' +- 400 Invalid Request Body +- '400 Invalid Request Body: High level error message' +- '403 Unauthorized Request: High level error message' +- 500 Failed Operation (Internal Server Error) +- '400 Invalid Request Body: required' +- 403 Forbidden +- 500 Internal Server Error +- '400: Invalid Request Body' +- '500 Failed Operation: High level error message' +- '400 Invalid Parameters: High level error message' +- '401: Unauthorized: No valid API key provided, or you have used the wrong API key.' +- '403: Forbidden: The API key doesn''t have the permissions to perform the request.' +- '404: Not Found: The specified or requested resource could not be found.' +- '429: Too many requests: Too many requests hit the API too quickly.' +- '500: Server Errors: Something went wrong on Azuga''s end.' +- '500 Internal Server Error: High level error message' +- '400 Bad Request: Error description' +- '403 Forbidden: Access denied' +- '403 Unauthorized: High level error message, Error description, Azuga error codes' +- '200' +- '400' +- '403' +- '500' +- '400 Failed Operation: required' +- '403 Unauthorized Request: required' +- '500: Internal Server Error' +- '200 Successful Operation: General message for the response' +- '400: High level error message' +- 200 Successful Operation +- 400 Invalid Query Params +- 401 Unauthorized Request +- 403 Forbidden Request +- '401 Unauthorized Request: High level error message' +- '403 Forbidden Request: High level error message' +- '404 Resource Not found: High level error message' +- '500 Internal Server Error: Check server logs for details' +- '400 Invalid Request Body: High level error message and detailed error description' +- '403 Unauthorized Request: High level error message and detailed error description' +- 400 Invalid Query Param +- '401 Unauthorized: Access Denied' +- 404 Resource Not Found +- 400 Invalid Request +- '400: default' +- '401: default' +- '403: default' +- '404: default' +- '400 Invalid Request: High level error message' +- '403 Forbidden Request: High-level error message summarizing the forbidden error' +- '404 Resource Not Found: High-level error message summarizing the not found error' +- '401' +- '400 Invalid Query Params: High level error message' +- '404 Not Found Request: High level error message' +- 404 Not Found Request +- '400 Invalid Query Param: High level error message' +- '400 - default: Error description' +- '401 - default: Error description' +- '403 - default: Error description' +- '500 Internal Server Error: High level error message, Error description' +- '401 Unauthorized: Recheck your credentials' +- '400 Bad Request: Validation failed' +- '500 Internal Server Error: Check server logs for more information' +- '401 Unauthorized: Error details' +- 404 Resource Not found +- '404' +- '401 Unauthorized: Details of the field' +- '400 Bad Request: Validation failed for field' +- '401 Unauthorized: Bearer token is invalid' +- '403 Forbidden: Access denied to the resource' +- '404 Not Found: Resource not found' +- '400 Bad Request: Invalid request format' +- '403 Unauthorized Request: High level error message and error description required' +- '401: Unauthorized Request' +- '403: Forbidden Request' +- '500 Internal Server Error: High level error message and error description' +- 200 Role List fetched Successfully +- 401 Unauthorized +- 404 Not Found +- '400 Bad Request: Validation failed for the request' +- '400 Invalid Query Params: Check your query parameters.' +- '401 Unauthorized Request: Check authentication credentials.' +- '403 Forbidden Request: Ensure you have the correct permissions.' +auth_info: + mentioned_objects: [] +client: + base_url: https://services.azuga.com/azuga-ws-oauth/v3 + auth: + type: oauth2 + location: header + header_name: Authorization +source_metadata: null diff --git a/bank_of_apis_sending_payments/bank-of-apis-sending-payments-docs.md b/bank_of_apis_sending_payments/bank-of-apis-sending-payments-docs.md new file mode 100644 index 00000000..40f7128c --- /dev/null +++ b/bank_of_apis_sending_payments/bank-of-apis-sending-payments-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Ulster Bank Open Banking data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def ulster_bank_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://openapi.ulsterbank.co.uk/bankofapis/v1.0/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + api/v1/fx-rates,,indicative-bonds-prices,,products/api/accounts-discretionary + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='ulster_bank_migration_pipeline', + destination='duckdb', + dataset_name='ulster_bank_migration_data', + ) + # Load the data + load_info = pipeline.run(ulster_bank_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from ulster_bank_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- FX Rates: Access foreign exchange rates available for transactions. +- Bonds Prices: Retrieve indicative prices for bonds. +- Accounts: Manage and access account information for discretionary accounts. +- Variable Recurring Payments: Initiate and manage variable recurring payments. +- Payment Initiation: Handle payments through the Payment Initiation Service. + +You will then debug the Ulster Bank Open Banking pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Ulster Bank Open Banking support. + ```shell + dlt init dlthub:ulster_bank_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Ulster Bank Open Banking API, as specified in @ulster_bank_migration-docs.yaml + Start with endpoints api/v1/fx-rates and and skip incremental loading for now. + Place the code in ulster_bank_migration_pipeline.py and name the pipeline ulster_bank_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python ulster_bank_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication process utilizes OAuth2 with a refresh token mechanism, which necessitates the setup of a connected app in the specified environment. + + To get the appropriate API keys, please visit the original source at https://www.ulsterbank.co.uk/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python ulster_bank_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline ulster_bank_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset ulster_bank_migration_data + The duckdb destination used duckdb:/ulster_bank_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline ulster_bank_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("ulster_bank_migration_pipeline").dataset() + # get pi/v1/fx-rate table as Pandas frame + data.pi/v1/fx-rate.df().head() + ``` + +## Running into errors? + +There are several important considerations when using this source. Customers must reauthenticate their consent with their Account Information Service Provider (AISP) every 90 days unless special circumstances apply. Additionally, service outages may occur due to scheduled maintenance or issues with core banking systems, and during these times, certain services may be unavailable. Users should also be aware of potential throttling limits on API calls and ensure compliance with OAuth scopes. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/bank_of_apis_sending_payments/bank-of-apis-sending-payments-docs.yaml b/bank_of_apis_sending_payments/bank-of-apis-sending-payments-docs.yaml new file mode 100644 index 00000000..d52724dc --- /dev/null +++ b/bank_of_apis_sending_payments/bank-of-apis-sending-payments-docs.yaml @@ -0,0 +1,146 @@ +resources: +- name: variable_recurring_payments + endpoint: + path: /products/variable-recurring-payments/vrp + method: GET +- name: Variable Recurring Payments + endpoint: + path: /products/variable-recurring-payments/vrp + method: GET +- name: Account Information Services + endpoint: + path: /services/data/vXX.X/sobjects/AccountInformation + method: GET + data_selector: records + params: {} +- name: Payment Initiation Services + endpoint: + path: /services/data/vXX.X/sobjects/PaymentInitiation + method: GET + data_selector: records + params: {} +- name: live_fx_rates + endpoint: + path: /api/v1/fx-rates + method: GET + data_selector: rates +- name: indicative_bonds_prices + endpoint: + path: /indicative-bonds-prices + method: GET + data_selector: prices +- name: Enriched Transactions + endpoint: + path: /products/api/accounts-discretionary + method: GET +notes: +- Payments are received in near-real time +- Cheaper to process than card payments +- Digital setup with multi-factor authentication helps prevent fraud +- VRPs are set up through online or mobile banking +- Consumers can see all their recurring payments in one place +- Customers will need to reconfirm their consent with their AISP directly every 90 + days, except in permitted circumstances when a bank has a proportional and objective + reason to request reauthentication. +- We’re expecting to stop requiring customers to reauthorise every 90 days by July + 2022. +- The token validity for refreshed tokens will not change. +- The existing logic around consent expiry remains as at present. +- Customers will need to reconfirm their consent with their AISP directly every 90 + days, except in permitted circumstances. +- ASPSPs will stop asking customers to reauthorise access to their accounts every + 90 days. +- You must keep all security details, provided in order to access the Portal, safe + and prevent them from becoming known to or accessible by any unauthorised person. +- Access to the Portal will be made available via individual user accounts that are + password protected. +- Access to the Sandbox may be terminated without notice. +- Daily maintenance outage between 02:00 and 02:40 GMT. +- This Privacy Notice may be updated from time to time, and you’ll always be able + to find the most recent version on this site. +- Please contact us via our API Service Desk if you have any concerns regarding this + outage. +- Uses OAuth2 with refresh token — requires setup of connected app in NatWest +- Some objects may return nulls in deeply nested fields +- Please contact us via our API Service Desk if you have any concerns. +- We experienced issues with the token endpoint between 02:11 AM BST and 04:31 AM + BST today. +- This incident impacted AIS and PIS calls between 08:09 a.m and 10:25 a.m BST today. +- 'This outage will impact the Coutts Open Banking platform for the following period: + Start: 14th September, 22:00 (BST), End: 15th September, 12:00 (BST).' +- We’d like to make you aware that there will be an outage to Open Banking services + for customers of NatWest, Royal Bank of Scotland, Ulster Bank Northern Ireland, + and NatWest International on 12th September from 02:00 until 03:00 BST. +- Planned maintenance on 27 April from 08:00 until 17:00 GMT. +- Ongoing authentication issue impacting customer consent journeys. +- API unavailability is due to downtime required for digital platforms. +- Customers will be unable to use Account Information Services or Payment Initiation + Services during outages. +- Planned outage for NWI and RBSI Open Banking services on 27 April from 08:00 until + 17:00 GMT. +- Authentication issue impacting customer consent journeys for Online Banking. +- Outage for NWI and RBSI Open Banking services on 20 April from 07:00 until 19:00 + GMT. +- 'Resolved: AISP & PISP failures impacting our APIs for NatWest, Royal Bank of Scotland + & Ulster Bank (Northern Ireland).' +- 'Resolved: AISP/PISP failures impacting our APIs for NatWest, Royal Bank of Scotland, + Ulster Bank (Northern Ireland) & Ulster Bank (Republic of Ireland).' +- Planned outage for Open Banking services on 31st March from 03:45 until 05:30 GMT. +- Planned outage for RBSI Open Banking services on 23 March from 07:00 until 17:00 + GMT. +- PISP failures impacting our Open Banking APIs for Coutts. +- 'Resolved: PISP failures impacting our APIs for NatWest.' +- 'Resolved: AISP & PISP failures impacting our APIs for NatWest, Royal Bank of Scotland, + Ulster Bank (Northern Ireland) and Ulster Bank (Republic of Ireland).' +- Planned outage for Bankline on 15-16 March from 20:00 GMT, Friday 15th March 2024 + until 16:00 GMT, Saturday 16th March 2024. +- We apologize for any inconvenience caused by outages. +- The API unavailability is due to downtime required for Coutts’ Digital platforms. +- We’ll be using the time to make enhancements to our systems that will ensure we + continue to provide you and our customers with a reliable service. +- API unavailability is due to downtime required for Coutts’ Core Banking and Digital + platforms. +- Token endpoints are operating as normal across brands. +- API unavailability is due to downtime required for Core Banking and Digital platforms. +- We apologise for any inconvenience this will cause you. +- The API unavailability is due to downtime required for Coutts’ Core Banking and + Digital platforms. +- API unavailability is due to scheduled downtime for NatWest's Core Banking and Digital + platforms. +- During outages, customers may be unable to use certain services. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- We apologise for any inconvenience this issue caused you. +- All users of our APIs should now be using this registration endpoint URL. +- 'This applies to the following brands: NatWest, Royal Bank of Scotland, Ulster Bank + (Northern Ireland), Ulster Bank (Republic of Ireland), NatWest International and + RBS International.' +- Old registration endpoint will be removed on 25 November. +- Each transaction will have a ‘guarantee period’, after which, the rate offered will + be withdrawn. +- The prices returned by this API are an indication of the market and should be used + for information purposes only. These are not guaranteed executable prices. +- Prices returned by this API are an indication of the market and should be used for + information purposes only. These are not guaranteed executable prices. +- Capital is at risk. +- Fees apply for Account Information Service Providers and other third parties using + Enriched Transactions. +- Fees do not apply for customers consenting to their transactions being categorised. +errors: +- '403 Forbidden: Customer needs to Reauthenticate.' +- '401 Unauthorized: Ensure that the API call is made from an authorised client and + is FAPI compliant.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '403 Forbidden: Payment submission was not created by this Service Provider' +- '404: Not Found - Check your endpoint and parameters.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- '404: Not Found - Check API endpoint' +- '500: Internal Server Error - Retry request later' +- 'SERVICE_UNAVAILABLE: Service is temporarily unavailable due to maintenance.' +- Transaction failures during outages. +auth_info: + mentioned_objects: [] +client: + base_url: https://openapi.ulsterbank.co.uk/bankofapis/v1.0 +source_metadata: null diff --git a/bokun/bokun-docs.md b/bokun/bokun-docs.md new file mode 100644 index 00000000..a645f4f4 --- /dev/null +++ b/bokun/bokun-docs.md @@ -0,0 +1,155 @@ +In this guide, we'll set up a complete Bokun data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def bokun_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.bokun.io/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + answers,,vendors,,checkout + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='bokun_migration_pipeline', + destination='duckdb', + dataset_name='bokun_migration_data', + ) + # Load the data + load_info = pipeline.run(bokun_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from bokun_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Answers: Provides responses to specific queries. +- Vendors: Contains information about various vendors. +- Checkout: Manages checkout processes for bookings. +- Activity: Details about activities available for booking. +- Customers: Information related to customers. +- Cart: Manages cart items for users. +- Bookings: Handles booking operations and management. + +You will then debug the Bokun pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Bokun support. + ```shell + dlt init dlthub:bokun_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Bokun API, as specified in @bokun_migration-docs.yaml + Start with endpoints answers and and skip incremental loading for now. + Place the code in bokun_migration_pipeline.py and name the pipeline bokun_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python bokun_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is done using OAuth2 with a refresh token, which requires the setup of a connected app in the API. It is important to ensure that the correct OAuth scopes are configured to avoid unauthorized access. + + To get the appropriate API keys, please visit the original source at https://www.bokun.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python bokun_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline bokun_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset bokun_migration_data + The duckdb destination used duckdb:/bokun_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline bokun_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("bokun_migration_pipeline").dataset() + # get nswer table as Pandas frame + data.nswer.df().head() + ``` + +## Running into errors? + +Parameters require specific formats, such as dates in the yyyy-MM-dd format. The API defaults to the ISK currency code and EN language. Some objects, especially in deeply nested fields, may return nulls. Additionally, users should be aware of potential rate limits and should manage their API call frequency to avoid hitting quotas. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/bokun/bokun-docs.yaml b/bokun/bokun-docs.yaml new file mode 100644 index 00000000..c311f06f --- /dev/null +++ b/bokun/bokun-docs.yaml @@ -0,0 +1,1544 @@ +resources: +- name: activity + endpoint: + path: /activity.json + method: GET + data_selector: records +- name: booking + endpoint: + path: /booking.json + method: POST + data_selector: records +- name: cart + endpoint: + path: /cart.json + method: GET + data_selector: records +- name: checkout + endpoint: + path: /checkout.json + method: POST + data_selector: records +- name: countries + endpoint: + path: /restapi/v2.0/countries + method: GET +- name: timezones + endpoint: + path: /restapi/v2.0/timezones + method: GET +- name: plugin + endpoint: + path: /plugin/definition + method: GET +- name: product_search + endpoint: + path: /product/search + method: POST +- name: product_getById + endpoint: + path: /product/getById + method: POST +- name: product_getAvailability + endpoint: + path: /product/getAvailability + method: POST +- name: booking_reserve + endpoint: + path: /booking/reserve + method: POST +- name: booking_cancelReserve + endpoint: + path: /booking/cancelReserve + method: POST +- name: booking_confirm + endpoint: + path: /booking/confirm + method: POST +- name: booking_createAndConfirm + endpoint: + path: /booking/createAndConfirm + method: POST +- name: booking_cancel + endpoint: + path: /booking/cancel + method: POST +- name: booking_amend + endpoint: + path: /booking/amend + method: POST +- name: plugin_definition + endpoint: + path: /plugin/definition + method: GET + data_selector: schema +- name: product_search + endpoint: + path: /product/search + method: POST + data_selector: schema +- name: product_getById + endpoint: + path: /product/getById + method: POST + data_selector: schema +- name: product_getAvailability + endpoint: + path: /product/getAvailability + method: POST + data_selector: schema +- name: booking_reserve + endpoint: + path: /booking/reserve + method: POST + data_selector: schema +- name: booking_cancelReserve + endpoint: + path: /booking/cancelReserve + method: POST + data_selector: schema +- name: booking_confirm + endpoint: + path: /booking/confirm + method: POST + data_selector: schema +- name: booking_createAndConfirm + endpoint: + path: /booking/createAndConfirm + method: POST + data_selector: schema +- name: booking_cancel + endpoint: + path: /booking/cancel + method: POST + data_selector: schema +- name: booking_amend + endpoint: + path: /booking/amend + method: POST + data_selector: schema +- name: ProductAvailabilityRequest + endpoint: + path: /products/availability + method: POST +- name: ReservationRequest + endpoint: + path: /reservations + method: POST +- name: ConfirmBookingRequest + endpoint: + path: /bookings/confirm + method: POST +- name: CancelReservationRequest + endpoint: + path: /reservations/cancel + method: POST +- name: CancelBookingRequest + endpoint: + path: /bookings/cancel + method: POST +- name: countries + endpoint: + path: /restapi/v2.0/countries + method: GET + data_selector: items +- name: timezones + endpoint: + path: /restapi/v2.0/timezones + method: GET + data_selector: items +- name: contract + endpoint: + path: /restapi/v2.0/marketplace/contract/{contractId} + method: GET + data_selector: response +- name: seller_contracts + endpoint: + path: /restapi/v2.0/marketplace/contracts/seller + method: GET + data_selector: items +- name: supplier_contracts + endpoint: + path: /restapi/v2.0/marketplace/contracts/supplier + method: GET + data_selector: items +- name: vendor + endpoint: + path: /restapi/v2.0/marketplace/vendor/{vendorId} + method: GET + data_selector: response +- name: vendor_self + endpoint: + path: /restapi/v2.0/marketplace/vendor/self/ + method: GET + data_selector: response +- name: booking_invoices + endpoint: + path: /restapi/v2.0/booking/{bookingId}/invoices + method: GET + data_selector: response +- name: customer + endpoint: + path: /restapi/v2.0/customer/{customerId} + method: GET + data_selector: response +- name: tax + endpoint: + path: /restapi/v2.0/tax/{taxId} + method: GET + data_selector: response +- name: taxes + endpoint: + path: /restapi/v2.0/taxes + method: GET + data_selector: response +- name: pricing_category + endpoint: + path: /restapi/v2.0/pricing/category/{pricingCategoryId} + method: GET + data_selector: application/json +- name: pricing_categories + endpoint: + path: /restapi/v2.0/pricing/categories + method: GET + data_selector: application/json + params: + pageNo: '0' + pageSize: '100' +- name: price_catalogs + endpoint: + path: /restapi/v2.0/price/catalogs + method: GET + data_selector: application/json + params: + pageNo: '0' + pageSize: '100' +- name: cancellation_policies + endpoint: + path: /restapi/v2.0/cancellation/policies + method: GET + data_selector: application/json + params: + pageNo: '0' + pageSize: '100' +- name: price_schedules + endpoint: + path: /restapi/v2.0/pricing/schedules + method: GET + data_selector: application/json + params: + pageNo: '0' + pageSize: '100' +- name: experience_booking_notes + endpoint: + path: /restapi/v2.0/experienceBooking/{experienceBookingId}/notes + method: GET + data_selector: items + params: + experienceBookingId: path +- name: create_experience_booking_note + endpoint: + path: /restapi/v2.0/experienceBooking/{experienceBookingId}/notes + method: POST + data_selector: items + params: + experienceBookingId: path +- name: delete_experience_booking_note + endpoint: + path: /restapi/v2.0/experienceBooking/{experienceBookingId}/notes/{noteId} + method: DELETE + data_selector: items + params: + experienceBookingId: path + noteId: path +- name: update_experience_booking_note + endpoint: + path: /restapi/v2.0/experienceBooking/{experienceBookingId}/notes/{noteId} + method: PUT + data_selector: items + params: + experienceBookingId: path + noteId: path +- name: get_booking_payments + endpoint: + path: /restapi/v2.0/booking/{bookingId}/payments + method: GET + data_selector: items + params: + bookingId: path +- name: get_resource_pools + endpoint: + path: /restapi/v2.0/resource/pools + method: GET + data_selector: items + params: + pageNo: query + pageSize: query +- name: create_resource_pool + endpoint: + path: /restapi/v2.0/resource/pool + method: POST + data_selector: items + params: {} +- name: get_resource_pool + endpoint: + path: /restapi/v2.0/resource/pool/{resourcePoolId} + method: GET + data_selector: items + params: + resourcePoolId: path +- name: update_resource_pool + endpoint: + path: /restapi/v2.0/resource/pool/{resourcePoolId} + method: PUT + data_selector: items + params: + resourcePoolId: path +- name: delete_resource_pool + endpoint: + path: /restapi/v2.0/resource/pool/{resourcePoolId} + method: DELETE + data_selector: items + params: + resourcePoolId: path +- name: get_resources + endpoint: + path: /restapi/v2.0/resources + method: GET + data_selector: items + params: + pageNo: query + pageSize: query + poolId: query +- name: create_resource + endpoint: + path: /restapi/v2.0/resource + method: POST + data_selector: items + params: {} +- name: get_resource + endpoint: + path: /restapi/v2.0/resource/{resourceId} + method: GET + data_selector: items + params: + resourceId: path +- name: update_resource + endpoint: + path: /restapi/v2.0/resource/{resourceId} + method: PUT + data_selector: items + params: + resourceId: path +- name: delete_resource + endpoint: + path: /restapi/v2.0/resource/{resourceId} + method: DELETE + data_selector: items + params: + resourceId: path +- name: get_experience_allocations + endpoint: + path: /restapi/v2.0/allocations + method: GET + data_selector: items + params: + startTimeId: query + pageNo: query + pageSize: query +- name: create_experience_allocation + endpoint: + path: /restapi/v2.0/allocation + method: POST + data_selector: items + params: {} +- name: countries + endpoint: + path: /restapi/v2.0/countries + method: GET + data_selector: items +- name: timezones + endpoint: + path: /restapi/v2.0/timezones + method: GET + data_selector: items +- name: contract + endpoint: + path: /restapi/v2.0/marketplace/contract/{contractId} + method: GET + data_selector: items +- name: seller_contracts + endpoint: + path: /restapi/v2.0/marketplace/contracts/seller + method: GET + data_selector: items +- name: supplier_contracts + endpoint: + path: /restapi/v2.0/marketplace/contracts/supplier + method: GET + data_selector: items +- name: vendor + endpoint: + path: /restapi/v2.0/marketplace/vendor/{vendorId} + method: GET + data_selector: items +- name: vendor_self + endpoint: + path: /restapi/v2.0/marketplace/vendor/self/ + method: GET + data_selector: items +- name: contract_experience_commission + endpoint: + path: /restapi/v2.0/marketplace/contract/{contractId}/experience/{experienceId}/commission + method: GET + data_selector: items +- name: booking_invoices + endpoint: + path: /restapi/v2.0/booking/{bookingId}/invoices + method: GET + data_selector: items +- name: customer + endpoint: + path: /restapi/v2.0/customer/{customerId} + method: GET + data_selector: items +- name: tax + endpoint: + path: /restapi/v2.0/tax/{taxId} + method: GET + data_selector: items +- name: taxes + endpoint: + path: /restapi/v2.0/taxes + method: GET + data_selector: items +- name: allocation + endpoint: + path: /restapi/v2.0/allocation/{allocationId} + method: GET + data_selector: ExperienceAllocationDto +- name: startTimeAllocations + endpoint: + path: /restapi/v2.0/startTime/{startTimeId}/allocations + method: GET + data_selector: array of allocation IDs +- name: experienceAllocations + endpoint: + path: /restapi/v2.0/experience/{experienceId}/allocations + method: PUT + data_selector: array of allocation IDs +- name: resourceCloseoutsByDate + endpoint: + path: /restapi/v2.0/resource/closeouts/{date} + method: GET + data_selector: array of resource IDs +- name: createResourceCloseout + endpoint: + path: /restapi/v2.0/resource/closeout/{date} + method: POST + data_selector: successful operation +- name: resourceAssignments + endpoint: + path: /restapi/v2.0/resource/assignments/{date} + method: GET + data_selector: array of resource assignment objects +- name: deleteResourceAssignment + endpoint: + path: /restapi/v2.0/resource/assignment/{id} + method: DELETE + data_selector: successful operation +- name: pricing_category + endpoint: + path: /restapi/v2.0/pricing/category/{pricingCategoryId} + method: GET + data_selector: PricingCategoryDto + params: + pricingCategoryId: + type: integer + format: int64 + required: true +- name: pricing_categories + endpoint: + path: /restapi/v2.0/pricing/categories + method: GET + data_selector: PricingCategoriesPagedListDto + params: + pageNo: + type: integer + format: int32 + required: true + minimum: 0 + pageSize: + type: integer + format: int32 + required: true + minimum: 1 + maximum: 100 +- name: price_catalogs + endpoint: + path: /restapi/v2.0/price/catalogs + method: GET + data_selector: PriceCatalogsPagedListDto + params: + pageNo: + type: integer + format: int32 + required: true + minimum: 0 + pageSize: + type: integer + format: int32 + required: true + minimum: 1 + maximum: 100 +- name: cancellation_policies + endpoint: + path: /restapi/v2.0/cancellation/policies + method: GET + data_selector: CancellationPoliciesPagedListDto + params: + pageNo: + type: integer + format: int32 + required: true + minimum: 0 + pageSize: + type: integer + format: int32 + required: true + minimum: 1 + maximum: 100 +- name: price_schedules + endpoint: + path: /restapi/v2.0/pricing/schedules + method: GET + data_selector: PriceSchedulesPagedListDto + params: + pageNo: + type: integer + format: int32 + required: true + minimum: 0 + pageSize: + type: integer + format: int32 + required: true + minimum: 1 + maximum: 100 +- name: relocate_resource_assignment + endpoint: + path: /restapi/v2.0/resource/assignments/relocate/to/{resourcePoolId}/{resourceId} + method: PUT + data_selector: resourceAssignmentDto + params: {} +- name: get_experience_availability + endpoint: + path: /restapi/v2.0/availability/{experienceId} + method: GET + data_selector: availabilityObjects + params: {} +- name: get_experience_availability_statistics + endpoint: + path: /restapi/v2.0/availability/{experienceId}/statistics + method: GET + data_selector: availabilityStatisticsObjects + params: {} +- name: get_experience_closeouts + endpoint: + path: /restapi/v2.0/availability/{experienceId}/closeouts + method: GET + data_selector: closeoutsObjects + params: {} +- name: create_experience_closeouts + endpoint: + path: /restapi/v2.0/availability/{experienceId}/closeouts + method: POST + data_selector: createCloseoutsResponse + params: {} +- name: delete_experience_closeouts + endpoint: + path: /restapi/v2.0/availability/{experienceId}/closeouts + method: DELETE + data_selector: deleteCloseoutsResponse + params: {} +- name: product_availability_changed + endpoint: + path: /restapi/v2.0/experience/{bokunProductId}/availability/changed + method: POST + data_selector: availabilityChangeResponse + params: {} +- name: BookingInvoices + endpoint: + path: /booking/invoices + method: GET + data_selector: items +- name: ExperienceTypeDto + endpoint: + path: /experiences/types + method: GET + data_selector: types +- name: MarketplaceVendorDto + endpoint: + path: /vendors + method: GET + data_selector: vendors +- name: experience_booking_notes + endpoint: + path: /restapi/v2.0/experienceBooking/{experienceBookingId}/notes + method: GET + data_selector: items + params: + experienceBookingId: required +- name: create_experience_booking_note + endpoint: + path: /restapi/v2.0/experienceBooking/{experienceBookingId}/notes + method: POST + data_selector: items + params: + experienceBookingId: required +- name: delete_experience_booking_note + endpoint: + path: /restapi/v2.0/experienceBooking/{experienceBookingId}/notes/{noteId} + method: DELETE + data_selector: null + params: + experienceBookingId: required + noteId: required +- name: update_experience_booking_note + endpoint: + path: /restapi/v2.0/experienceBooking/{experienceBookingId}/notes/{noteId} + method: PUT + data_selector: null + params: + experienceBookingId: required + noteId: required +- name: get_booking_payments + endpoint: + path: /restapi/v2.0/booking/{bookingId}/payments + method: GET + data_selector: items + params: + bookingId: required +- name: get_resource_pools + endpoint: + path: /restapi/v2.0/resource/pools + method: GET + data_selector: null + params: + pageNo: required + pageSize: required +- name: create_resource_pool + endpoint: + path: /restapi/v2.0/resource/pool + method: POST + data_selector: null + params: {} +- name: get_resource_pool + endpoint: + path: /restapi/v2.0/resource/pool/{resourcePoolId} + method: GET + data_selector: null + params: + resourcePoolId: required +- name: update_resource_pool + endpoint: + path: /restapi/v2.0/resource/pool/{resourcePoolId} + method: PUT + data_selector: null + params: + resourcePoolId: required +- name: delete_resource_pool + endpoint: + path: /restapi/v2.0/resource/pool/{resourcePoolId} + method: DELETE + data_selector: null + params: + resourcePoolId: required +- name: get_resources + endpoint: + path: /restapi/v2.0/resources + method: GET + data_selector: null + params: + pageNo: required + pageSize: required +- name: create_resource + endpoint: + path: /restapi/v2.0/resource + method: POST + data_selector: null + params: {} +- name: get_resource + endpoint: + path: /restapi/v2.0/resource/{resourceId} + method: GET + data_selector: null + params: + resourceId: required +- name: update_resource + endpoint: + path: /restapi/v2.0/resource/{resourceId} + method: PUT + data_selector: null + params: + resourceId: required +- name: delete_resource + endpoint: + path: /restapi/v2.0/resource/{resourceId} + method: DELETE + data_selector: null + params: + resourceId: required +- name: get_experience_allocations + endpoint: + path: /restapi/v2.0/allocations + method: GET + data_selector: null + params: + pageNo: required + pageSize: required +- name: create_experience_allocation + endpoint: + path: /restapi/v2.0/allocation + method: POST + data_selector: null + params: {} +- name: accommodation_search + endpoint: + path: /accommodation.json/search + method: POST +- name: check_room_availability + endpoint: + path: /accommodation.json/check-room-availability + method: POST +- name: check_accommodation_availability + endpoint: + path: /accommodation.json/{id}/check-availability + method: POST +- name: get_accommodation + endpoint: + path: /accommodation.json/{id} + method: GET +- name: get_rooms_by_room_type + endpoint: + path: /accommodation.json/{id}/rooms + method: GET +- name: get_accommodation_availabilities + endpoint: + path: /accommodation.json/availabilities + method: GET +- name: find_accommodation_by_slug + endpoint: + path: /accommodation.json/slug/{slug} + method: GET +- name: get_all_currencies + endpoint: + path: /currency.json/findAll + method: GET +- name: get_tag_groups + endpoint: + path: /tag.json/groups + method: GET +- name: categories_by_product_type + endpoint: + path: /category.json/{productType} + method: GET +- name: get_upcoming_availabilities + endpoint: + path: /activity.json/{id}/upcoming-availabilities/{max} + method: GET +- name: find_activity_by_slug + endpoint: + path: /activity.json/slug/{slug} + method: GET +- name: get_pickup_places + endpoint: + path: /activity.json/{id}/pickup-places + method: GET +- name: activity_search + endpoint: + path: /activity.json/search + method: POST +- name: get_activity_availabilities + endpoint: + path: /activity.json/{id}/availabilities + method: GET +- name: get_activity_ids + endpoint: + path: /activity.json/active-ids + method: GET +- name: get_updated_activities + endpoint: + path: /activity.json/list-updated + method: GET +- name: activity_list_by_ids + endpoint: + path: /activity.json/list-by-id + method: GET +- name: price_list + endpoint: + path: /activity.json/{id}/price-list + method: GET +- name: get_activity + endpoint: + path: /activity.json/{id} + method: GET +- name: get_session_cart + endpoint: + path: /shopping-cart.json/session/{sessionId} + method: GET +- name: add_route_to_session_cart + endpoint: + path: /shopping-cart.json/session/{sessionId}/route + method: POST +- name: remove_room_from_session_cart + endpoint: + path: /shopping-cart.json/session/{sessionId}/remove-room/{roomBookingId} + method: GET +- name: allocation + endpoint: + path: /restapi/v2.0/allocation/{allocationId} + method: GET + data_selector: application/json + params: + allocationId: allocationId +- name: allocation_update + endpoint: + path: /restapi/v2.0/allocation/{allocationId} + method: PUT + data_selector: application/json + params: + allocationId: allocationId +- name: allocation_delete + endpoint: + path: /restapi/v2.0/allocation/{allocationId} + method: DELETE + data_selector: application/json + params: + allocationId: allocationId +- name: experience_allocations + endpoint: + path: /restapi/v2.0/startTime/{startTimeId}/allocations + method: GET + data_selector: application/json + params: + startTimeId: startTimeId +- name: experience_allocations_set + endpoint: + path: /restapi/v2.0/startTime/{startTimeId}/allocations + method: PUT + data_selector: application/json + params: + startTimeId: startTimeId +- name: experience_allocations_for_product + endpoint: + path: /restapi/v2.0/experience/{experienceId}/allocations + method: PUT + data_selector: application/json + params: + experienceId: experienceId +- name: resource_closeouts + endpoint: + path: /restapi/v2.0/resource/closeouts/{date} + method: GET + data_selector: application/json + params: + date: date +- name: resource_closeout_create + endpoint: + path: /restapi/v2.0/resource/closeout/{date} + method: POST + data_selector: application/json + params: + date: date +- name: resource_closeout_delete + endpoint: + path: /restapi/v2.0/resource/closeout/{date} + method: DELETE + data_selector: application/json + params: + date: date +- name: resource_assignments + endpoint: + path: /restapi/v2.0/resource/assignments/{date} + method: GET + data_selector: application/json + params: + date: date +- name: resource_assignments_delete + endpoint: + path: /restapi/v2.0/resource/assignments/{date} + method: DELETE + data_selector: application/json + params: + date: date +- name: resource_assignment_delete + endpoint: + path: /restapi/v2.0/resource/assignment/{id} + method: DELETE + data_selector: application/json + params: + id: id +- name: resource_assignment_for_experience_booking + endpoint: + path: /restapi/v2.0/resource/assignment/for/experienceBooking/{experienceBookingId}/pool/{poolId}/resource/{resourceId} + method: POST + data_selector: application/json + params: + experienceBookingId: experienceBookingId + poolId: poolId + resourceId: resourceId +- name: resource_assignment_for_pricing_category_booking + endpoint: + path: /restapi/v2.0/resource/assignment/for/pricingCategoryBooking/{pricingCategoryBookingId}/pool/{poolId}/resource/{resourceId} + method: POST + data_selector: application/json + params: + pricingCategoryBookingId: pricingCategoryBookingId + poolId: poolId + resourceId: resourceId +- name: relocate_resource_assignment + endpoint: + path: /restapi/v2.0/resource/assignments/relocate/to/{resourcePoolId}/{resourceId} + method: PUT + data_selector: items + params: {} +- name: get_experience_availability + endpoint: + path: /restapi/v2.0/availability/{experienceId} + method: GET + data_selector: items + params: {} +- name: get_experience_availability_statistics + endpoint: + path: /restapi/v2.0/availability/{experienceId}/statistics + method: GET + data_selector: items + params: {} +- name: get_experience_closeouts + endpoint: + path: /restapi/v2.0/availability/{experienceId}/closeouts + method: GET + data_selector: items + params: {} +- name: create_experience_closeouts + endpoint: + path: /restapi/v2.0/availability/{experienceId}/closeouts + method: POST + data_selector: items + params: {} +- name: delete_experience_closeouts + endpoint: + path: /restapi/v2.0/availability/{experienceId}/closeouts + method: DELETE + data_selector: items + params: {} +- name: product_availability_changed + endpoint: + path: /restapi/v2.0/experience/{bokunProductId}/availability/changed + method: POST + data_selector: items + params: {} +- name: BookingInvoices + endpoint: + path: /booking/invoices + method: GET + data_selector: invoices +- name: remove_extra_booking + endpoint: + path: /shopping-cart.json/session/{sessionId}/remove-extra/{bType}/{bId}/{eId} + method: GET + data_selector: ShoppingCart +- name: add_accommodation + endpoint: + path: /shopping-cart.json/session/{sessionId}/accommodation + method: POST + data_selector: ShoppingCart +- name: add_activity + endpoint: + path: /shopping-cart.json/session/{sessionId}/activity + method: POST + data_selector: ShoppingCart +- name: remove_accommodation + endpoint: + path: /shopping-cart.json/session/{sessionId}/remove-accommodation/{accommodationBookingId} + method: GET + data_selector: ShoppingCart +- name: remove_activity + endpoint: + path: /shopping-cart.json/session/{sessionId}/remove-activity/{activityBookingId} + method: GET + data_selector: ShoppingCart +- name: add_or_update_extra + endpoint: + path: /shopping-cart.json/session/{sessionId}/add-or-update-extra/{bType}/{bId} + method: POST + data_selector: ShoppingCart +- name: remove_route + endpoint: + path: /shopping-cart.json/session/{sessionId}/remove-route/{routeBookingId} + method: GET + data_selector: ShoppingCart +- name: list_languages + endpoint: + path: /language.json/findAll + method: GET + data_selector: TranslationLanguageDto +- name: list_routes + endpoint: + path: /route.json/list + method: GET + data_selector: RouteDto +- name: check_route_availability + endpoint: + path: /route.json/check-availability + method: POST + data_selector: RouteAvailabilityReportDto +- name: get_route_by_id + endpoint: + path: /route.json/{id} + method: GET + data_selector: RouteDto +- name: get_questions_for_shopping_cart + endpoint: + path: /question.json/shopping-cart/{sessionId} + method: GET + data_selector: BookingQuestionsDto +- name: answer_questions_for_shopping_cart + endpoint: + path: /question.json/shopping-cart/{sessionId} + method: POST + data_selector: ApiResponse +- name: get_questions_for_booking + endpoint: + path: /question.json/booking/{bookingId} + method: GET + data_selector: BookingQuestionsDto +- name: answer_questions_for_booking + endpoint: + path: /question.json/booking/{bookingId} + method: POST + data_selector: ApiResponse +- name: get_questions_for_activity_booking + endpoint: + path: /question.json/activity-booking/{activityBookingId} + method: GET + data_selector: BookingQuestionsDto +- name: answer_questions_for_activity_booking + endpoint: + path: /question.json/activity-booking/{activityBookingId} + method: POST + data_selector: ApiResponse +- name: get_cart + endpoint: + path: /cart.json/{sessionId} + method: GET + data_selector: ShoppingCart +- name: add_activity_to_cart + endpoint: + path: /cart.json/{sessionId}/activity + method: POST + data_selector: ShoppingCart +- name: remove_product_from_cart + endpoint: + path: /cart.json/{sessionId}/remove/{productBookingConfirmationCode} + method: GET + data_selector: ShoppingCart +- name: apply_promo_code + endpoint: + path: /cart.json/{sessionId}/apply-promo-code/{promoCode} + method: GET + data_selector: ShoppingCart +- name: remove_promo_code + endpoint: + path: /cart.json/{sessionId}/remove-promo-code + method: GET + data_selector: ShoppingCart +- name: apply_gift_card + endpoint: + path: /cart.json/{sessionId}/apply-gift-card/{giftCardCode} + method: GET + data_selector: ShoppingCart +- name: track_affiliate + endpoint: + path: /cart.json/{sessionId}/track-affiliate/{affiliateCode} + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: cartApplyAffiliate + endpoint: + path: /checkout.json/cart/apply-affiliate/{sessionId} + method: POST + data_selector: shoppingCart + params: {} +- name: checkoutOptionsForShoppingCart + endpoint: + path: /checkout.json/options/shopping-cart/{sessionId} + method: GET + data_selector: checkoutOptions + params: {} +- name: checkoutOptionsForBookingRequest + endpoint: + path: /checkout.json/options/booking-request + method: POST + data_selector: checkoutOptions + params: {} +- name: processCheckout + endpoint: + path: /checkout.json/submit + method: POST + data_selector: checkoutResponse + params: + lang: EN +- name: confirmReservedCheckout + endpoint: + path: /checkout.json/confirm-reserved/{code} + method: POST + data_selector: checkoutResponse + params: {} +- name: product_list + endpoint: + path: /product-list.json/list + method: GET + data_selector: items +- name: product_list_by_id + endpoint: + path: /product-list.json/{id} + method: GET + data_selector: items +- name: all_countries + endpoint: + path: /country.json/findAll + method: GET + data_selector: items +- name: BookingDetails + endpoint: + path: /booking-details + method: GET + data_selector: booking + params: {} +- name: BookingRequest + endpoint: + path: /booking-request + method: POST + data_selector: bookingRequest + params: {} +- name: ActivityPriceListDateRange + endpoint: + path: /activity/priceList + method: GET + data_selector: rates + params: + from: start_date + to: end_date +- name: ActivityDto + endpoint: + path: /activity + method: GET + data_selector: activities + params: {} +- name: PassengerCategoryPricesDto + endpoint: + path: /PassengerCategoryPricesDto + method: GET + data_selector: properties +- name: PriceModulationOutput + endpoint: + path: /PriceModulationOutput + method: GET + data_selector: properties +- name: PriceModulatorConfigDto + endpoint: + path: /PriceModulatorConfigDto + method: GET + data_selector: properties +- name: RouteAvailabilityReportDto + endpoint: + path: /RouteAvailabilityReportDto + method: GET + data_selector: properties +- name: RouteDto + endpoint: + path: /RouteDto + method: GET + data_selector: properties +- name: accommodation_search + endpoint: + path: /accommodation.json/search + method: POST +- name: check_room_availability + endpoint: + path: /accommodation.json/check-room-availability + method: POST +- name: check_accommodation_availability + endpoint: + path: /accommodation.json/{id}/check-availability + method: POST +- name: get_accommodation + endpoint: + path: /accommodation.json/{id} + method: GET +- name: get_rooms_by_room_type + endpoint: + path: /accommodation.json/{id}/rooms + method: GET +- name: get_accommodation_availabilities + endpoint: + path: /accommodation.json/availabilities + method: GET +- name: find_accommodation_by_slug + endpoint: + path: /accommodation.json/slug/{slug} + method: GET +- name: all_currencies + endpoint: + path: /currency.json/findAll + method: GET +- name: get_tag_groups + endpoint: + path: /tag.json/groups + method: GET +- name: categories_by_product_type + endpoint: + path: /category.json/{productType} + method: GET +- name: get_upcoming_availabilities + endpoint: + path: /activity.json/{id}/upcoming-availabilities/{max} + method: GET +- name: find_activity_by_slug + endpoint: + path: /activity.json/slug/{slug} + method: GET +- name: get_pickup_places + endpoint: + path: /activity.json/{id}/pickup-places + method: GET +- name: activity_search + endpoint: + path: /activity.json/search + method: POST +- name: get_activity_availabilities + endpoint: + path: /activity.json/{id}/availabilities + method: GET +- name: get_activity_ids + endpoint: + path: /activity.json/active-ids + method: GET +- name: get_updated_activities + endpoint: + path: /activity.json/list-updated + method: GET +- name: activity_list_by_ids + endpoint: + path: /activity.json/list-by-id + method: GET +- name: price_list + endpoint: + path: /activity.json/{id}/price-list + method: GET +- name: get_activity + endpoint: + path: /activity.json/{id} + method: GET +- name: get_session_cart + endpoint: + path: /shopping-cart.json/session/{sessionId} + method: GET +- name: add_route_to_session_cart + endpoint: + path: /shopping-cart.json/session/{sessionId}/route + method: POST +- name: remove_room_from_session_cart + endpoint: + path: /shopping-cart.json/session/{sessionId}/remove-room/{roomBookingId} + method: GET +- name: Booking + endpoint: + path: /api/bookings + method: GET + data_selector: bookings + params: {} +- name: RoomBookingAnswers + endpoint: + path: /roomBookingAnswers + method: GET + data_selector: answerGroups + params: {} +- name: RoomBookingDetails + endpoint: + path: /roomBookingDetails + method: GET + data_selector: adults + params: {} +- name: RouteBookingAnswers + endpoint: + path: /routeBookingAnswers + method: GET + data_selector: answerGroups + params: {} +- name: RouteBookingDetails + endpoint: + path: /routeBookingDetails + method: GET + data_selector: affiliateCommission + params: {} +- name: removeExtraBooking + endpoint: + path: /shopping-cart.json/session/{sessionId}/remove-extra/{bType}/{bId}/{eId} + method: GET + data_selector: ShoppingCart +- name: addAccommodation + endpoint: + path: /shopping-cart.json/session/{sessionId}/accommodation + method: POST + data_selector: ShoppingCart +- name: addActivity + endpoint: + path: /shopping-cart.json/session/{sessionId}/activity + method: POST + data_selector: ShoppingCart +- name: removeAccommodation + endpoint: + path: /shopping-cart.json/session/{sessionId}/remove-accommodation/{accommodationBookingId} + method: GET + data_selector: ShoppingCart +- name: removeActivity + endpoint: + path: /shopping-cart.json/session/{sessionId}/remove-activity/{activityBookingId} + method: GET + data_selector: ShoppingCart +- name: addOrUpdateExtra + endpoint: + path: /shopping-cart.json/session/{sessionId}/add-or-update-extra/{bType}/{bId} + method: POST + data_selector: ShoppingCart +- name: removeRoute + endpoint: + path: /shopping-cart.json/session/{sessionId}/remove-route/{routeBookingId} + method: GET + data_selector: ShoppingCart +- name: allLanguages + endpoint: + path: /language.json/findAll + method: GET + data_selector: TranslationLanguageDto +- name: listRoutes + endpoint: + path: /route.json/list + method: GET + data_selector: RouteDto +- name: checkRouteAvailability + endpoint: + path: /route.json/check-availability + method: POST + data_selector: RouteAvailabilityReportDto +- name: getRoute + endpoint: + path: /route.json/{id} + method: GET + data_selector: RouteDto +- name: forShoppingCart + endpoint: + path: /question.json/shopping-cart/{sessionId} + method: GET + data_selector: BookingQuestionsDto +- name: cartApplyAffiliate + endpoint: + path: /checkout.json/cart/apply-affiliate/{sessionId} + method: POST + data_selector: ShoppingCart + params: {} +- name: checkoutOptionsForShoppingCart + endpoint: + path: /checkout.json/options/shopping-cart/{sessionId} + method: GET + data_selector: Checkout + params: {} +- name: checkoutOptionsForBookingRequest + endpoint: + path: /checkout.json/options/booking-request + method: POST + data_selector: Checkout + params: {} +- name: processCheckout + endpoint: + path: /checkout.json/submit + method: POST + data_selector: CheckoutResponse + params: + lang: EN +- name: confirmReservedCheckout + endpoint: + path: /checkout.json/confirm-reserved/{code} + method: POST + data_selector: CheckoutResponse + params: {} +- name: product_list + endpoint: + path: /product-list.json/list + method: GET + data_selector: items +- name: product_list_by_id + endpoint: + path: /product-list.json/{id} + method: GET + data_selector: items +- name: all_countries + endpoint: + path: /country.json/findAll + method: GET + data_selector: items +- name: BookingDetailsDto + endpoint: + path: /booking/details + method: GET + data_selector: booking + params: {} +- name: CheckoutResponse + endpoint: + path: /checkout + method: POST + data_selector: checkout + params: {} +- name: AccommodationQuery + endpoint: + path: /accommodation/query + method: GET + data_selector: records +- name: SearchResultsDto + endpoint: + path: /search/results + method: GET + data_selector: items +- name: ActivityPriceListDateRange + endpoint: + path: /activityPriceList/dateRange + method: GET + data_selector: rates + params: + incremental: from +- name: ActivityDto + endpoint: + path: /activity + method: GET + data_selector: activities + params: {} +- name: pickupTimeByLocations + endpoint: + path: /pickupTimeByLocations + method: GET + data_selector: items +- name: ticketMsg + endpoint: + path: /ticketMsg + method: GET + data_selector: ticketMsg +- name: pickupPlaceGroups + endpoint: + path: /pickupPlaceGroups + method: GET + data_selector: pickupPlaceGroups +- name: dropoffService + endpoint: + path: /dropoffService + method: GET + data_selector: dropoffService +- name: dropoffFlags + endpoint: + path: /dropoffFlags + method: GET + data_selector: dropoffFlags +- name: customDropoffAllowed + endpoint: + path: /customDropoffAllowed + method: GET + data_selector: customDropoffAllowed +- name: PassengerCategoryPricesDto + endpoint: + path: /PassengerCategoryPricesDto + method: GET + data_selector: results +- name: PriceModulationOutput + endpoint: + path: /PriceModulationOutput + method: GET + data_selector: results +- name: RouteAvailabilityReportDto + endpoint: + path: /RouteAvailabilityReportDto + method: GET + data_selector: results +- name: RouteDto + endpoint: + path: /RouteDto + method: GET + data_selector: results +- name: mission + endpoint: + path: /missions + method: GET + data_selector: missions + params: {} +- name: answers + endpoint: + path: /answers + method: GET + data_selector: answers + params: {} +- name: customer + endpoint: + path: /customers + method: GET + data_selector: customers + params: {} +- name: RoomBookingDetailsDto + endpoint: + path: /roomBookingDetails + method: GET + data_selector: records +- name: RouteBookingDetailsDto + endpoint: + path: /routeBookingDetails + method: GET + data_selector: records +notes: +- Parameters require specific formats, e.g. date as yyyy-MM-dd. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- The currency code defaults to ISK. +- The language defaults to EN. +- Some objects may return nulls in deeply nested fields +errors: +- '400: Invalid pricingCategoryId supplied or pricing category object has been deleted' +- '403: No permissions to access this pricing category' +- '429: Number of requests over allocated quota' +- '400: Invalid parameters' +- '403: Forbidden access' +- '403: No access to resource assignment(s)' +- '400: Invalid body' +- '403: Insufficient permissions' +- '403: Forbidden access to this product' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://api.bokun.io +source_metadata: null diff --git a/brave_search/brave-search-docs.md b/brave_search/brave-search-docs.md new file mode 100644 index 00000000..b661b56f --- /dev/null +++ b/brave_search/brave-search-docs.md @@ -0,0 +1,154 @@ +In this guide, we'll set up a complete Brave Search data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def brave_search_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.search.brave.com/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + web/search,,local/pois,,news/search + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='brave_search_migrations_pipeline', + destination='duckdb', + dataset_name='brave_search_migrations_data', + ) + # Load the data + load_info = pipeline.run(brave_search_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from brave_search_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Web Search: Search the web for various queries. +- Local Points of Interest: Retrieve local points of interest based on queries. +- News Search: Search for news articles. +- Video Search: Search for videos across platforms. +- Image Search: Search for images based on keywords. +- Summarization: Generate summaries or extract relevant information from texts. + +You will then debug the Brave Search pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Brave Search support. + ```shell + dlt init dlthub:brave_search_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Brave Search API, as specified in @brave_search_migrations-docs.yaml + Start with endpoints web/search and and skip incremental loading for now. + Place the code in brave_search_migrations_pipeline.py and name the pipeline brave_search_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python brave_search_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is performed using an API key, which must be included in the request headers to access the endpoints. + + To get the appropriate API keys, please visit the original source at https://www.brave.com/search/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python brave_search_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline brave_search_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset brave_search_migrations_data + The duckdb destination used duckdb:/brave_search_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline brave_search_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("brave_search_migrations_pipeline").dataset() + # get eb/searc table as Pandas frame + data.eb/searc.df().head() + ``` + +## Running into errors? + +Access to certain endpoints, such as Local API, requires a paid Pro plan. The API is limited to 2 requests per second, and queries are restricted to public information unless logged in. Exceeding the request limit may result in errors, including 'REQUEST_LIMIT_EXCEEDED' and '401 Unauthorized' if the API key is invalid. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/brave_search/brave-search-docs.yaml b/brave_search/brave-search-docs.yaml new file mode 100644 index 00000000..bd349653 --- /dev/null +++ b/brave_search/brave-search-docs.yaml @@ -0,0 +1,507 @@ +resources: +- name: local_pois + endpoint: + path: /local/pois + method: GET + data_selector: locations.results +- name: local_descriptions + endpoint: + path: /local/descriptions + method: GET + data_selector: '' +- name: local_pois + endpoint: + path: /res/v1/local/pois + method: GET + data_selector: locations.results +- name: local_descriptions + endpoint: + path: /res/v1/local/descriptions + method: GET + data_selector: descriptions.results +- name: web_search + endpoint: + path: /web/search + method: GET + data_selector: results + params: + count: 20 + country: us + search_lang: en +- name: images_search + endpoint: + path: /images/search + method: GET + data_selector: results + params: + count: 20 + country: us + search_lang: en + spellcheck: 1 +- name: videos_search + endpoint: + path: /videos/search + method: GET + data_selector: results + params: + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: news_search + endpoint: + path: /news/search + method: GET + data_selector: results + params: + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: web_search + endpoint: + path: /web/search + method: GET + data_selector: results + params: + count: 20 + country: us + search_lang: en +- name: images_search + endpoint: + path: /images/search + method: GET + data_selector: results + params: + count: 20 + country: us + search_lang: en + spellcheck: 1 +- name: videos_search + endpoint: + path: /videos/search + method: GET + data_selector: results + params: + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: news_search + endpoint: + path: /news/search + method: GET + data_selector: results + params: + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: chat_completions + endpoint: + path: /chat/completions + method: POST + data_selector: choices + params: {} +- name: news_search + endpoint: + path: /res/v1/news/search + method: GET + params: + q: munich + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: suggest_search + endpoint: + path: /res/v1/suggest/search + method: GET + params: + q: hello + count: 5 + country: us +- name: spellcheck_search + endpoint: + path: /res/v1/spellcheck/search + method: GET + params: + q: hellop + country: us +- name: news_search + endpoint: + path: /res/v1/news/search + method: GET + params: + q: munich + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: suggest_search + endpoint: + path: /res/v1/suggest/search + method: GET + params: + q: hello + count: 5 + country: us +- name: spellcheck_search + endpoint: + path: /res/v1/spellcheck/search + method: GET + params: + q: hellop + country: us +- name: web_search + endpoint: + path: /res/v1/web/search + method: GET + data_selector: results +- name: local_pois + endpoint: + path: /res/v1/local/pois + method: GET + data_selector: locations.results +- name: local_descriptions + endpoint: + path: /res/v1/local/descriptions + method: GET + data_selector: descriptions +- name: web_search + endpoint: + path: /res/v1/web/search + method: GET + data_selector: results + params: + count: 20 + offset: 0 + safesearch: moderate + spellcheck: true + text_decorations: true +- name: web_search + endpoint: + path: /web/search + method: GET + data_selector: '' + params: {} +- name: summarizer_search + endpoint: + path: /summarizer/search + method: GET + data_selector: '' + params: {} +- name: summarizer_summary + endpoint: + path: /summarizer/summary + method: GET + data_selector: '' + params: {} +- name: summarizer_summary_streaming + endpoint: + path: /summarizer/summary_streaming + method: GET + data_selector: '' + params: {} +- name: summarizer_title + endpoint: + path: /summarizer/title + method: GET + data_selector: '' + params: {} +- name: summarizer_enrichments + endpoint: + path: /summarizer/enrichments + method: GET + data_selector: '' + params: {} +- name: summarizer_followups + endpoint: + path: /summarizer/followups + method: GET + data_selector: '' + params: {} +- name: summarizer_entity_info + endpoint: + path: /summarizer/entity_info + method: GET + data_selector: '' + params: {} +- name: chat_completions + endpoint: + path: /chat/completions + method: GET + data_selector: '' + params: {} +- name: chat_completions + endpoint: + path: /chat/completions + method: POST + data_selector: choices + params: + enable_research: 'true' +- name: image_search + endpoint: + path: /res/v1/images/search + method: GET + data_selector: results + params: {} +- name: video_search + endpoint: + path: /res/v1/videos/search + method: GET + data_selector: results +- name: local_pois + endpoint: + path: /local/pois + method: GET +- name: local_descriptions + endpoint: + path: /local/descriptions + method: GET +- name: web_search + endpoint: + path: /web/search + method: GET +- name: news_search + endpoint: + path: /res/v1/news/search + method: GET + data_selector: results + params: {} +- name: suggest + endpoint: + path: /res/v1/suggest/search + method: GET + data_selector: results +- name: spellcheck + endpoint: + path: /res/v1/spellcheck/search + method: GET + data_selector: '' + params: {} +- name: web_search + endpoint: + path: /web/search + method: GET +- name: summarizer_search + endpoint: + path: /summarizer/search + method: GET +- name: summarizer_summary + endpoint: + path: /summarizer/summary + method: GET +- name: summarizer_summary_streaming + endpoint: + path: /summarizer/summary_streaming + method: GET +- name: summarizer_title + endpoint: + path: /summarizer/title + method: GET +- name: summarizer_enrichments + endpoint: + path: /summarizer/enrichments + method: GET +- name: summarizer_followups + endpoint: + path: /summarizer/followups + method: GET +- name: summarizer_entity_info + endpoint: + path: /summarizer/entity_info + method: GET +- name: chat_completions + endpoint: + path: /chat/completions + method: GET +- name: chat_completions + endpoint: + path: /chat/completions + method: POST + data_selector: choices + params: {} +- name: image_search + endpoint: + path: /res/v1/images/search + method: GET + data_selector: results +- name: video_search + endpoint: + path: /res/v1/videos/search + method: GET + data_selector: results + params: {} +- name: news_search + endpoint: + path: /res/v1/news/search + method: GET +- name: web_search + endpoint: + path: /web/search + method: GET + data_selector: results + params: + count: 20 + country: us + search_lang: en +- name: image_search + endpoint: + path: /images/search + method: GET + data_selector: results + params: + count: 20 + country: us + search_lang: en + spellcheck: 1 +- name: video_search + endpoint: + path: /videos/search + method: GET + data_selector: results + params: + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: news_search + endpoint: + path: /news/search + method: GET + data_selector: results + params: + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: suggest + endpoint: + path: /res/v1/suggest/search + method: GET + data_selector: search results + params: + q: query + country: US + count: '5' +- name: spellcheck + endpoint: + path: /res/v1/spellcheck/search + method: GET +- name: news_search + endpoint: + path: /res/v1/news/search + method: GET + data_selector: results + params: + q: munich + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: suggest_search + endpoint: + path: /res/v1/suggest/search + method: GET + data_selector: results + params: + q: hello + count: 5 + country: us +- name: spellcheck_search + endpoint: + path: /res/v1/spellcheck/search + method: GET + data_selector: results + params: + q: hellop + country: us +- name: web_search + endpoint: + path: /web/search + method: GET + data_selector: results + params: + count: 20 + country: us + search_lang: en +- name: image_search + endpoint: + path: /images/search + method: GET + data_selector: results + params: + count: 20 + country: us + search_lang: en + spellcheck: 1 +- name: video_search + endpoint: + path: /videos/search + method: GET + data_selector: results + params: + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: news_search + endpoint: + path: /news/search + method: GET + data_selector: results + params: + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: news_search + endpoint: + path: /res/v1/news/search + method: GET + params: + q: munich + count: 10 + country: us + search_lang: en + spellcheck: 1 +- name: suggest_search + endpoint: + path: /res/v1/suggest/search + method: GET + params: + q: hello + count: 5 + country: us +- name: spellcheck_search + endpoint: + path: /res/v1/spellcheck/search + method: GET + params: + q: hellop + country: us +notes: +- Access to Local API is available through the Pro plans. +- The endpoint supports batching and retrieval of extra information of up to 20 locations + with a single request. +- Power your AI with the world's largest Web search API +- Queries are limited to public queries. Log in to perform any query. +- Queries are limited to public queries. +- API is publicly offered at 2 requests per second. +- To try the API on a Free plan, you’ll still need to subscribe. +- This API is publicly offered at 2 requests per second. +- To try the API on a Free plan, you’ll still need to subscribe — you simply won’t + be charged. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Recheck subscription token' +- '401 Unauthorized: Check your API key' +auth_info: + mentioned_objects: [] +client: + base_url: https://api.search.brave.com + headers: + Accept: application/json + Accept-Encoding: gzip +source_metadata: null diff --git a/carv_data_ai_framework/carv-data-ai-framework-docs.md b/carv_data_ai_framework/carv-data-ai-framework-docs.md new file mode 100644 index 00000000..05626887 --- /dev/null +++ b/carv_data_ai_framework/carv-data-ai-framework-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete CARV data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def carv_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.carv.io/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + news,,nodes,,balanceOf + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='carv_migration_pipeline', + destination='duckdb', + dataset_name='carv_migration_data', + ) + # Load the data + load_info = pipeline.run(carv_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from carv_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- News: Accesses news articles related to the service. +- Nodes: Interacts with the network of nodes in the ecosystem. +- Balance: Retrieves balance information for accounts. +- Transfer: Facilitates token transfers between accounts. + +You will then debug the CARV pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with CARV support. + ```shell + dlt init dlthub:carv_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for CARV API, as specified in @carv_migration-docs.yaml + Start with endpoints news and and skip incremental loading for now. + Place the code in carv_migration_pipeline.py and name the pipeline carv_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python carv_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication is done via OAuth2, specifically using a refresh token flow, which requires setup of a connected app within CARV. + + To get the appropriate API keys, please visit the original source at https://www.carv.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python carv_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline carv_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset carv_migration_data + The duckdb destination used duckdb:/carv_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline carv_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("carv_migration_pipeline").dataset() + # get ew table as Pandas frame + data.ew.df().head() + ``` + +## Running into errors? + +Ensure that you have a proper OAuth2 setup, including a connected app. Be aware of potential rate limits based on user account type, and ensure your Discord account is linked for certain API calls. It's important to manage token expiration and scope permissions carefully to avoid 401 Unauthorized errors. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/carv_data_ai_framework/carv-data-ai-framework-docs.yaml b/carv_data_ai_framework/carv-data-ai-framework-docs.yaml new file mode 100644 index 00000000..d8a85f85 --- /dev/null +++ b/carv_data_ai_framework/carv-data-ai-framework-docs.yaml @@ -0,0 +1,989 @@ +resources: +- name: explorer + endpoint: + path: /explorer + method: GET +- name: wallet_account + endpoint: + path: /getAccountInfo + method: GET + data_selector: accountInfo + params: + address: pg.wallet.publicKey +- name: token_account + endpoint: + path: /getTokenAccountsByOwner + method: GET + data_selector: tokenAccounts.value + params: + owner: pg.wallet.publicKey + programId: TOKEN_PROGRAM_ID +- name: basic_account + endpoint: + path: /getAccountInfo + method: GET + data_selector: accountInfo + params: {} +- name: token_account + endpoint: + path: /getTokenAccountsByOwner + method: GET + data_selector: tokenAccounts + params: {} +- name: program_accounts + endpoint: + path: /getProgramAccounts + method: GET + data_selector: accounts + params: {} +- name: transfer + endpoint: + path: /transfer + method: POST + data_selector: transactionSignature +- name: transfer + endpoint: + path: /transfer + method: POST + data_selector: transaction + params: {} +- name: Testnet RPC Node + endpoint: + path: /rpc + method: GET +- name: Testnet Bridge + endpoint: + path: /bridge + method: GET +- name: Testnet Explorer + endpoint: + path: /explorer + method: GET +- name: testnet_rpc_node + endpoint: + path: /rpc + method: GET + data_selector: data + params: {} +- name: testnet_bridge + endpoint: + path: /bridge + method: GET + data_selector: data + params: {} +- name: testnet_explorer + endpoint: + path: /explorer + method: GET + data_selector: data + params: {} +- name: token_info + endpoint: + path: /api/token/info + method: GET + data_selector: data +- name: user_balance + endpoint: + path: /api/user/balance + method: GET + data_selector: data +- name: token_info + endpoint: + path: /api/token/info + method: GET + data_selector: data + params: {} +- name: user_balance + endpoint: + path: /api/user/balance + method: GET + data_selector: data + params: + user_id: query_user_id +- name: carvid + endpoint: + path: /v1 + method: GET + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: token_info + endpoint: + path: /api/token/info + method: GET + data_selector: data + params: {} +- name: user_balance + endpoint: + path: /api/user/balance + method: GET + data_selector: data + params: {} +- name: carvid + endpoint: + path: /v1 + method: GET + data_selector: data +- name: carvid + endpoint: + path: /v1 + method: GET + data_selector: data + params: {} +- name: data_endpoint + endpoint: + path: /api/data + method: GET + data_selector: records +- name: token_info + endpoint: + path: /api/v1/token/info + method: GET + data_selector: data + params: {} +- name: user_balance + endpoint: + path: /api/v1/user/balance + method: GET + data_selector: balance + params: {} +- name: transactions + endpoint: + path: /eth/transactions + method: GET + data_selector: data +- name: transactions + endpoint: + path: /eth/transactions + method: GET + data_selector: data + params: + time_range: last_24_hours +- name: gas_price + endpoint: + path: /eth/gas_price + method: GET + data_selector: data + params: + time_range: last_3_days +- name: on_chain_data + endpoint: + path: /v1/on-chain-data + method: GET + data_selector: data + params: {} +- name: query_execution + endpoint: + path: /d.a.t.a/framework/query + method: POST + data_selector: dataSources +- name: transactions + endpoint: + path: /eth/transactions + method: POST + data_selector: results +- name: token_transfers + endpoint: + path: /eth/token_transfers + method: POST + data_selector: results +- name: on_chain_data + endpoint: + path: /api/on-chain-data + method: POST + data_selector: dataSources + params: {} +- name: news + endpoint: + path: /api/v1/news + method: GET +- name: news + endpoint: + path: /api/news + method: GET +- name: news + endpoint: + path: /ai-agent-backend/news + method: GET + data_selector: data.infos + params: {} +- name: news + endpoint: + path: /api/v1/news + method: GET + data_selector: data + params: {} +- name: sql_query + endpoint: + path: /ai-agent-backend/sql_query + method: POST + data_selector: data + params: {} +- name: news + endpoint: + path: /news + method: GET +- name: news + endpoint: + path: /ai-agent-backend/news + method: GET +- name: sql_query_by_llm + endpoint: + path: /ai-agent-backend/sql_query_by_llm + method: POST + data_selector: data +- name: news + endpoint: + path: /news + method: GET + data_selector: articles +- name: sql_query + endpoint: + path: /ai-agent-backend/sql_query + method: POST + data_selector: data + params: {} +- name: sql_query_by_llm + endpoint: + path: /ai-agent-backend/sql_query_by_llm + method: POST +- name: news + endpoint: + path: /news + method: GET +- name: sql_query_by_llm + endpoint: + path: /ai-agent-backend/sql_query_by_llm + method: POST +- name: news + endpoint: + path: /news + method: GET +- name: sql_query_by_llm + endpoint: + path: /ai-agent-backend/sql_query_by_llm + method: POST + data_selector: none + params: {} +- name: sql_query_by_llm + endpoint: + path: /ai-agent-backend/sql_query_by_llm + method: POST +- name: news + endpoint: + path: /news + method: GET +- name: on_chain_transactions + endpoint: + path: /api/on_chain/transactions + method: GET + data_selector: data.rows + params: {} +- name: sql_query_by_llm + endpoint: + path: /ai-agent-backend/sql_query_by_llm + method: POST + data_selector: null + params: + question: query +- name: transactions + endpoint: + path: /api/v1/transactions + method: GET + data_selector: data.rows + params: {} +- name: news + endpoint: + path: /ai-agent-backend/news + method: GET + data_selector: data.infos + params: {} +- name: news + endpoint: + path: /ai-agent-backend/news + method: GET + data_selector: data.infos + params: {} +- name: token_info + endpoint: + path: /ai-agent-backend/token_info + method: GET + params: + ticker: query +- name: token_info + endpoint: + path: /ai-agent-backend/token_info + method: GET + data_selector: data + params: + ticker: query +- name: user_balance + endpoint: + path: /ai-agent-backend/user_balance_by_twitter_id + method: GET + data_selector: data + params: + twitter_user_id: string + chain_name: string + token_ticker: string +- name: user_balance_by_discord_id + endpoint: + path: /ai-agent-backend/user_balance_by_discord_id + method: GET + params: + discord_user_id: query + chain_name: query + token_ticker: query +- name: user_balance_by_twitter_id + endpoint: + path: /ai-agent-backend/user_balance_by_twitter_id + method: GET + params: + twitter_user_id: + location: query + type: string + required: false + description: Twitter handle + chain_name: + location: query + type: string + required: false + description: Blockchain name, e.g., "ethereum" + token_ticker: + location: query + type: string + required: false + description: Token ticker, e.g., "ETH" +- name: user_balance + endpoint: + path: /user/balance + method: GET + data_selector: data + params: {} +- name: player_profile + endpoint: + path: /player/profile + method: GET + data_selector: data + params: {} +- name: nft_badges + endpoint: + path: /nft/badges + method: GET + data_selector: badges + params: {} +- name: user_balance_by_discord_id + endpoint: + path: /user_balance_by_discord_id + method: GET + params: + discord_user_id: query + chain_name: query + token_ticker: query +- name: API-Verified Quest (RESTFUL) + endpoint: + method: POST +- name: API-Verified Quest (GraphQL) + endpoint: + method: POST +- name: player_profile + endpoint: + path: /api/v1/player/profile + method: GET + data_selector: data +- name: nft_badges + endpoint: + path: /api/v1/nft/badges + method: GET + data_selector: badges +- name: events + endpoint: + path: /api/v1/events + method: GET + data_selector: events +- name: gem_rewards + endpoint: + path: /api/v1/gem/rewards + method: GET + data_selector: rewards +- name: contract_addresses + endpoint: + path: /contract_addresses + method: GET + data_selector: contracts + params: {} +- name: campaign_traffic + endpoint: + path: /api/v1/campaigns/traffic + method: GET + data_selector: data + params: + incremental: updated_at +- name: user_insights + endpoint: + path: /api/v1/users/insights + method: GET + data_selector: data + params: {} +- name: contract_addresses + endpoint: + path: /contract_addresses + method: GET + data_selector: contracts +- name: user_insights + endpoint: + path: /api/user/insights + method: GET + data_selector: data + params: {} +- name: community_management + endpoint: + path: /api/community/management + method: GET + data_selector: data + params: {} +- name: user_identity + endpoint: + path: /api/v1/user/identity + method: GET + data_selector: records +- name: eligibility + endpoint: + path: /eligibility + method: GET + data_selector: eligibility_criteria + params: {} +- name: execution_options + endpoint: + path: /execution_options + method: GET + data_selector: options + params: {} +- name: ERC 7231 + endpoint: + path: /erc-7231 + method: GET +- name: verifier_nodes + endpoint: + path: /verifier_nodes + method: POST + data_selector: data + params: {} +- name: verifier_nodes + endpoint: + path: /verifier-nodes + method: GET +- name: verifier_node_sale_dynamics + endpoint: + path: /verifier-node-sale-dynamics + method: GET +- name: node_mainnet_smart_contracts + endpoint: + path: /smart-contracts/node-mainnet + method: GET + data_selector: contracts + params: {} +- name: public_node_sale_smart_contracts + endpoint: + path: /smart-contracts/public-node-sale + method: GET + data_selector: contracts + params: {} +- name: verifier_nodes + endpoint: + path: /verifier_nodes + method: GET + data_selector: nodes + params: {} +- name: verifier_nodes + endpoint: + path: /verifier-nodes + method: GET +- name: delegation + endpoint: + path: /carv-ecosystem/verifier-nodes/delegation + method: GET + data_selector: delegators + params: {} +- name: verifier_nodes + endpoint: + path: /verifier-nodes + method: GET +- name: Node Mainnet Smart Contracts + endpoint: + path: /node-mainnet-smart-contracts + method: GET + data_selector: contracts + params: {} +- name: Public Node Sale Smart Contract Addresses + endpoint: + path: /public-node-sale-smart-contract-addresses + method: GET + data_selector: sale_contracts + params: {} +- name: data + endpoint: + path: /api/v1/data + method: GET + data_selector: records + params: {} +- name: identity + endpoint: + path: /api/v1/identity + method: GET + data_selector: records + params: {} +- name: verifier_node_rewards + endpoint: + path: /carv-ecosystem/verifier-nodes/node-rewards + method: GET + data_selector: rewards + params: {} +- name: attestations + endpoint: + path: /attestations + method: GET + data_selector: records +- name: verifications + endpoint: + path: /verifications + method: GET + data_selector: records +- name: api_verified_quest_restful + endpoint: + path: /api-verified-quest/restful + method: GET + data_selector: records +- name: api_verified_quest_graphql + endpoint: + path: /api-verified-quest/graphql + method: POST + data_selector: data +- name: node_sales + endpoint: + path: /api/node_sales + method: GET + data_selector: sales_data +- name: whitelist_info + endpoint: + path: /api/whitelist_info + method: GET + data_selector: whitelist_data +- name: balanceOf + endpoint: + path: /balanceOf + method: GET + data_selector: balance + params: {} +- name: balanceOfAt + endpoint: + path: /balanceOfAt + method: GET + data_selector: balance + params: {} +- name: totalSupply + endpoint: + path: /totalSupply + method: GET + data_selector: supply + params: {} +- name: totalSupplyAt + endpoint: + path: /totalSupplyAt + method: GET + data_selector: supply + params: {} +- name: deposit + endpoint: + path: /deposit + method: POST + data_selector: transaction + params: {} +- name: withdraw + endpoint: + path: /withdraw + method: POST + data_selector: transaction + params: {} +- name: positions + endpoint: + path: /positions + method: GET + data_selector: positions + params: {} +- name: nodes + endpoint: + path: /nodes + method: GET + data_selector: records +- name: community + endpoint: + path: /community + method: GET + data_selector: records +- name: balanceOf + endpoint: + path: /balanceOf + method: GET + data_selector: balance + params: {} +- name: balanceOfAt + endpoint: + path: /balanceOfAt + method: GET + data_selector: balanceAt + params: {} +- name: totalSupply + endpoint: + path: /totalSupply + method: GET + data_selector: totalSupply + params: {} +- name: totalSupplyAt + endpoint: + path: /totalSupplyAt + method: GET + data_selector: totalSupplyAt + params: {} +- name: deposit + endpoint: + path: /deposit + method: POST + data_selector: depositStatus + params: {} +- name: withdraw + endpoint: + path: /withdraw + method: POST + data_selector: withdrawStatus + params: {} +- name: positions + endpoint: + path: /positions + method: GET + data_selector: positionStatus + params: {} +- name: token_address + endpoint: + path: /token/address + method: GET + data_selector: address +- name: supported_testnet_blockchains + endpoint: + path: /token/supported_blockchains + method: GET + data_selector: blockchains +- name: roles + endpoint: + path: /api/roles + method: GET + data_selector: roles + params: {} +- name: token_distribution + endpoint: + path: /v1/token/distribution + method: GET + data_selector: data + params: {} +- name: vesting_schedule + endpoint: + path: /v1/token/vesting + method: GET + data_selector: data + params: {} +- name: token_address + endpoint: + path: /carv-token/carv-testnet-token + method: GET + data_selector: token_address + params: {} +- name: bsc_testnet + endpoint: + path: /carv-token/carv-testnet-token + method: GET + data_selector: bsc_testnet + params: {} +- name: base_testnet + endpoint: + path: /carv-token/carv-testnet-token + method: GET + data_selector: base_testnet + params: {} +- name: ethereum_sepolia_testnet + endpoint: + path: /carv-token/carv-testnet-token + method: GET + data_selector: ethereum_sepolia_testnet + params: {} +- name: community_events + endpoint: + path: /v1/community/events + method: GET + data_selector: events + params: {} +- name: token_info + endpoint: + path: /api/token_info + method: GET + data_selector: data + params: {} +- name: user_balance + endpoint: + path: /api/user_balance + method: GET + data_selector: data + params: {} +notes: +- AI agents operate within a secure TEE environment, ensuring data privacy and security. +- AI agents can confidently execute tasks while adhering to strict data privacy and + usage guarantees. +- Verifier Nodes are designed to validate decentralized identity and data attestations + across Web2 and Web3 ecosystems. +- They validate both chain-level proofs and data privacy guarantees. +- Verifier Nodes validate decentralized identity and data attestations across Web2 + and Web3 ecosystems. +- They ensure the accuracy of identity claims and the integrity of data used in CARV’s + decentralized identity solutions. +- You need to prepare a SVM wallet, Backpack wallet is recommended. +- Make sure you have rpc_url=https://rpc.testnet.carv.io/rpc in your URL so you can + correctly bridge the token to the CARV SVM Chain. +- To withdraw token, you can simply switch the token pair. +- Local mode explorer requires developer mode or manual RPC endpoint setup +- Local mode explorer requires developer mode to be enabled or manual input of CARV's + RPC endpoint. +- Set the RPC URL to CARV SVM Testnet using the command provided. +- Run the command to set the RPC URL to CARV SVM Testnet. +- Real-time monitoring is essential for responsive applications. +- Real-time monitoring for transaction and account changes is available. +- Transactions consist of instructions just like on Solana, benefiting from CARV’s + Layer 2 architecture. +- D.A.T.A Framework enables AI agents to access enriched insights. +- Addresses data fragmentation, inefficiency, and lack of trust. +- AGI requires access to meaningful, secure, and actionable data. +- D.A.T.A Framework empowers AI agents with seamless access to high-quality on-chain + and off-chain data. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- D.A.T.A agents can control their own wallet infrastructure. +- The framework delivers actionable on-chain insights to AI agents for real-time decision-making. +- D.A.T.A integrates off-chain data to enhance AI agents' understanding of on-chain + activities. +- AI agents can execute on-chain transactions autonomously. +- Integration requires setup of connected app in CARV +- Requires setup of OAuth2 client for access +- Data may be rate-limited based on user account type +- By creating agents that are economically invested in their ecosystem's success +- Establish a new model for responsible AI development that naturally aligns with + Web3's core principles of decentralization, transparency, and stakeholder value +- Guaranteed Privacy and Trustless Operation +- 'Trusted Execution Environments (TEE): Securely process sensitive data while ensuring + privacy and preventing unauthorized access.' +- 'CARV Verifier Nodes: Validate the integrity of TEE attestations and zk-proofs, + guaranteeing the trustworthiness of all AI agent operations and data usage.' +- Config will be overridden by the env vars. +- Some objects like Contact may return nulls in deeply nested fields +- Requires a valid OAuth2 setup for accessing API endpoints. +- Standardized message processing across platforms +- Requires setup of API key for access +- Users have full ownership and control of their data. +- Requires setup of OAuth application in CARV +- Requires setup of OAuth 2.0 credentials in the portal +- GraphQL API may have different query structures +- User queries can be processed to return structured responses. +- Some objects may return nulls in deeply nested fields +- Requires setup of OAuth2 for API access +- Some responses may have rate limiting +- The API supports both on-chain and off-chain data integration. +- Apply for a Test Authentication Token to access data. +- Uses a consistent response format for SQL queries executed against blockchain data + sources. +- The D.A.T.A Framework empowers AI agents with real-time data-driven capabilities. +- Integrates on-chain and off-chain data. +- Designed to unlock a wide array of use cases, empowering AI agents with seamless + access to both on-chain and off-chain data. +- Uses consistent response format for SQL queries and data retrieval +- Requires OAuth2 setup for authentication +- Uses OAuth2 with refresh token — requires setup of connected app in CARV +- Requires setup of connected app in CARV +- Requires authentication using OAuth2 +- API supports both REST and GraphQL types +- Authentication is required for accessing data. +- Login token is required and should be provided in the Authorization header. +- The API returns on-chain transaction data. +- Requires setup of API access for OAuth2. +- Ensure that the Discord account is properly linked to a blockchain address via CARV + ID before making a request. +- CARV Portal is the game distribution and data analytics tooling for games. +- Based on the on-chain and off-chain zero & first-party data from over 2.4M users + across various platforms. +- CARV Play ensures gamer data privacy and sovereignty by converting all your gaming + achievements into verifiable SBTs (Soul bound Tokens), storing your in-game achievements, + memories, and journeys across all games and gaming platforms. +- Supports both RESTful API and GraphQL API for maximum compatibility with your current + system. +- Contains various contract addresses deployed on multiple blockchains +- Allows games to provide their own verification API to check user completion status. +- Requires setup of OAuth 2.0 authentication. +- API rate limits may apply. +- Access to insights dashboard requires configuration through CARV Portal +- For details on contracts related to nodes (veCARV, Node License, etc), please refer + to Smart Contract Addresses +- Various methods for verifying authenticity of identities, wallets, and accounts. +- Verifier nodes are lightweight nodes managed by the community. +- They play a crucial role in maintaining the protocol's integrity. +- Performance insights can be viewed via Insights Dashboard +- The CARV Verifier Node Sale will be on the Arbitrum Network. +- There will be a 0.1% fee applied to every transfer in addition to the network fees. +- Uses OAuth2 with refresh token — requires setup of connected app +- Participants who delegate their node must delegate only to nodes with a commission + rate of up to 3% and maintain over 70% uptime. +- Node license holders will keep all airdrops prior to participation in the Program. +- Involves community-operated verifier nodes for security and privacy. +- They primarily check TEE attestations on-chain. +- Some API endpoints may have rate limits. +- 'Eligibility: Pre-Token Generation Event (TGE) Node license holders who have maintained + 70% or higher participation rate, and have not claimed any veCARV rewards will be + eligible for the buyback program.' +- Participants who delegate their node, instead of running it independently, must + delegate only to nodes with a commission rate of up to 3% and that maintain over + 70% uptime until the buyback claim is made. +- 'Timeline: From six months post Token Generation Event (TGE), node license holders + have 7 days to participate in the Program.' +- For details on contracts other than those related to nodes, please refer to Smart + Contracts & Security +- Community-operated verifier nodes are crucial for protocol security +- Anyone can operate verifiers to validate results for their own use, but only authorized + verifiers possessing a License Key are entitled to engage in on-chain consensus + and earn rewards. +- Node licenses are initially non-transferable. +- This is not a token sale. See https://carv.io/node-disclaimer for more details. +- The CARV test verifier is currently operational on the Arbitrum One network. +- Running a verifier node is crucial to maintaining the integrity and security of + the data processing environment. +- There is an anti-sybil mechanism to protect the rights of users who participate + honestly in the event. +- Delegators are advised to thoroughly evaluate potential NaaS providers. +- A reputation index is available to assist delegators in comparing node operators. +- API requires authorization for all endpoints +- Rate limits apply to all requests +- Verifier License holders are able to delegate their licenses using the explorer. +- API responses may vary based on user permissions +- veCARV is a non-transferable token. +- Users are required to pay a network channel fee of 1$ CARV each time they initiate + a Redeem. +- Node sales start on June 3rd, 2024 +- Only 100,000 nodes available in total +- The minimum period T should be between 1 day to 1 week. +- Once veCARV enters the redemption period, it will no longer be eligible to participate + in governance voting. +- Tokens are subject to vesting schedules +- 'The initial amount of veCarv(s) a user receives is calculated as: the amount of + CARV * staking duration * staking coefficient.' +- A user’s veCarv(s) balance will decay linearly over time. +- This token is strictly for testnet usage and has no real-world or mainnet value +- Faucet distributions or manual airdrops may be arranged upon request +- Ensure you’re connected to the correct testnet before initiating any operations + with the token +- Requires setup of OAuth2 with CARV +- Ensure proper permissions are granted for API access +- Tokens are distributed over a four-year period +- Members who can’t vote actively can delegate their voting power to others (voting + delegation). +- Community events are hosted weekly with varying themes. +- This is an early draft and may change based on community feedback. +- Some API calls may have rate limits that need to be considered +- Community events include game nights, beta testing, live streaming, AMAs, townhalls, + pop-up quizzes, and fan-art competitions. +- Requires setup of connected app in api +- Please ensure that our logos are placed in an appropriate location where they can + be easily identified. Also, ensure that our logos are not obscured or distorted + in any way. +- Refer ongoing opportunities to build with CARV here +- AI agents need an identity system to prove who (and what) they are. +- Requires setup of connected app in API. +- CARV provides the habitat in which sovereign AI Beings can live, learn, and evolve. +- The D.A.T.A Framework is designed to empower AI agents with seamless access to high-quality + on-chain and off-chain data. +- By addressing data fragmentation, inefficiency, and lack of trust, D.A.T.A. redefines + how AGI interacts with the world. +errors: +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '400 Bad Request: Check the request parameters' +- '401 Unauthorized: Verify client credentials' +- '429 Too Many Requests: Slow down API calls' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- 'INVALID_GRANT: Ensure correct client credentials' +- '401 Unauthorized: Check token validity' +- '401 Unauthorized: Check API key' +- '401 Unauthorized: Check your OAuth token' +- '429 Too Many Requests: Rate limit exceeded' +- '404 Not Found: Verify endpoint paths' +- '500 Internal Server Error: Retry request' +- 'INVALID_REQUEST: Check your request parameters.' +- 'UNAUTHORIZED: Ensure valid authentication credentials.' +- '400 Bad Request: Check request parameters' +- '400 Bad Request: Invalid SQL query.' +- '400 Bad Request: Invalid request parameters' +- '401 Unauthorized: Check your token and permissions' +- '400 Bad Request: Ensure that all required fields are provided' +- '400 Bad Request: none' +- '400: Bad Request' +- '400 Bad Request: Invalid token ticker.' +- '400: Invalid request' +- Invalid request +- '401 Unauthorized: Check your access token.' +- '404 Not Found: Verify the endpoint URL.' +- '400 Bad Request: The request cannot be fulfilled due to bad syntax.' +- '429 Too Many Requests: Rate limit exceeded.' +- '401 Unauthorized: Invalid credentials or token.' +- Delegators are not eligible to claim any remaining rewards beyond what is covered + by the delegation terms. +- 'INVALID_TOKEN: Ensure the token is valid and not expired' +- '403 FORBIDDEN: Check permissions for the requested resource' +- '404 NOT_FOUND: Verify the endpoint and parameters' +- 'INVALID_REQUEST: Check your request format' +- 'UNAUTHORIZED: Ensure valid credentials' +- 'FORBIDDEN: You do not have permission to access this resource' +- '401 Unauthorized: Check OAuth configuration or token validity' +- Users can cancel redemption requests at any time without being fined. +- '401 Unauthorized: Check your credentials' +- '429 Too Many Requests: Throttle your requests' +- '401 Unauthorized: Check OAuth scopes or token expiration' +- '403 Forbidden: Insufficient permissions' +- '404 Not Found: Resource does not exist' +- 'Invalid staking duration: Must be a multiple of the minimum period T.' +- 'Position not found: Ensure the position ID is correct.' +- '403 Forbidden: You do not have permission to access this resource' +- '404 Not Found: The requested resource does not exist' +- 'TOKEN_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '400 Bad Request: Check request format and parameters' +- '401 Unauthorized: Verify OAuth token and permissions' +- '429 Too Many Requests: Throttle API calls or reduce frequency' +- '401 Unauthorized: Verify OAuth token or scopes' +auth_info: + mentioned_objects: + - OAuth2 + - API Key + - OauthToken + - AuthProvider + - NamedCredential + - OAuthToken + - VerifierNode +client: + base_url: https://api.carv.io + auth: + type: oauth2 + flow: refresh_token +source_metadata: null diff --git a/checkout/checkout-docs.md b/checkout/checkout-docs.md new file mode 100644 index 00000000..866c238a --- /dev/null +++ b/checkout/checkout-docs.md @@ -0,0 +1,149 @@ +In this guide, we'll set up a complete Checkout data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def checkout_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "revoke", "suspend" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='checkout_pipeline', + destination='duckdb', + dataset_name='checkout_data', + ) + # Load the data + load_info = pipeline.run(checkout_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from checkout’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Payment Sessions**: Endpoints related to initiating and managing payment sessions. +- **Payments**: Endpoints for creating, retrieving, and managing payments, including specific actions like captures and voids. +- **Tokens**: Endpoints for managing tokens used in the payment process. +- **Issuing Cards**: Endpoints for managing card issuance, including cardholder and card-specific operations. +- **Cardholders**: Endpoints for managing cardholders associated with issued cards. + +You will then debug the Checkout pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Checkout support. + ```shell + dlt init dlthub:checkout duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Checkout API, as specified in @checkout-docs.yaml + Start with endpoints revoke and suspend and skip incremental loading for now. + Place the code in checkout_pipeline.py and name the pipeline checkout_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python checkout_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The snippets do not contain any specific authentication information such as keys, tokens, client IDs, client secrets, header names, header locations, token URLs, or flows. + + To get the appropriate API keys, please visit the original source at https://www.checkout.com/docs/developer-resources/api. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python checkout_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline checkout load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset checkout_data + The duckdb destination used duckdb:/checkout.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline checkout_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("checkout_pipeline").dataset() + # get "revoke" table as Pandas frame + data."revoke".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/checkout/checkout-docs.yaml b/checkout/checkout-docs.yaml new file mode 100644 index 00000000..369abad2 --- /dev/null +++ b/checkout/checkout-docs.yaml @@ -0,0 +1,49 @@ +client: + auth: The snippets do not contain any specific authentication information such as + keys, tokens, client IDs, client secrets, header names, header locations, token + URLs, or flows. + most_recurring_base_url: https://api.checkout.com + paginator: Pagination is required and can be applied using the `limit` and `skip` + parameters, where `limit` specifies the page size and `skip` indicates the number + of records to skip. +endpoints: +- 'endpoints source: https://www.checkout.com/docs/get-started': + - /payment-sessions` +- 'endpoints source: https://www.checkout.com/docs/payments/authenticate-payments': + - /gateway/payments/pay_ggiqdmmp7m6ehl5rcjxzw46hgq/actions + - https://api.sandbox.checkout.com/payments/pay_hehfmlkpykeupofyxf7nbr6yyy + - /payments` + - /payments/{id + - /tokens` + - https://api.sandbox.checkout.com/payments/pay_7a4355cden2upo2pkve6sxzzwm/actions + - https://api.sandbox.checkout.com/payments/pay_7a4355cden2upo2pkve6sxzzwm/voids + - https://api.sandbox.checkout.com/payments` + - https://api.sandbox.checkout.com/payments/pay_7a4355cden2upo2pkve6sxzzwm + - https://api.sandbox.checkout.com/payments/{id + - /gateway/payments/pay_ggiqdmmp7m6ehl5rcjxzw46hgq + - /gateway/payments/pay_5o3zluz2oh2u7gbonujy33765e/voids + - /gateway/payments/pay_5o3zluz2oh2u7gbonujy33765e/captures + - /gateway/payments/pay_5o3zluz2oh2u7gbonujy33765e/actions + - https://api.sandbox.checkout.com/payments/pay_7a4355cden2upo2pkve6sxzzwm/captures + - /gateway/payments/pay_5o3zluz2oh2u7gbonujy33765e +- 'endpoints source: https://www.checkout.com/docs/card-issuing/create-and-manage-cardholders': + - /issuing/cards + - /issuing/cardholders/crh_d3ozhf43pcq2xbldn2g45qnb44 + - /issuing/cardholders` + - https://api.sandbox.checkout.com/issuing/cardholders` + - /issuing/cardholders/{cardholderId + - https://api.sandbox.checkout.com/issuing/cardholders/{cardholderId +- 'endpoints source: https://www.checkout.com/docs/card-issuing/issue-a-card': + - /issuing/cards` + - https://api.sandbox.checkout.com/issuing/cards` + - /issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials + - /issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491 + - /issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke +- 'endpoints source: https://www.checkout.com/docs/card-issuing/activate-a-card': + - https://api.sandbox.checkout.com/issuing/cards/{cardId + - /issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491 + - /issuing/cards/{cardId + - /issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/suspend + - /issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke +- 'endpoints source: https://www.checkout.com/docs/card-issuing/simulate-issuing-transactions': + - https://api.sandbox.checkout.com/issuing/simulate/authorizations` diff --git a/civo_kubernetes/civo-kubernetes-docs.md b/civo_kubernetes/civo-kubernetes-docs.md new file mode 100644 index 00000000..3bba470b --- /dev/null +++ b/civo_kubernetes/civo-kubernetes-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Civo data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def civo_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.civo.com/v2/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + sizes,,volumes,,dns + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='civo_migrations_pipeline', + destination='duckdb', + dataset_name='civo_migrations_data', + ) + # Load the data + load_info = pipeline.run(civo_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from civo_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Sizes: Provides information about available sizes for instances. +- Volumes: Management of storage volumes. +- DNS: Manage DNS records. +- Firewalls: Configure firewall settings for instances. +- Databases: Manage database resources. + +You will then debug the Civo pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Civo support. + ```shell + dlt init dlthub:civo_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Civo API, as specified in @civo_migrations-docs.yaml + Start with endpoints sizes and and skip incremental loading for now. + Place the code in civo_migrations_pipeline.py and name the pipeline civo_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python civo_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The Civo API uses an API key for authentication, which must be included in the request headers. The API key should be kept secure and should be sent as a bearer token in the 'Authorization' header. + + To get the appropriate API keys, please visit the original source at https://www.civo.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python civo_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline civo_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset civo_migrations_data + The duckdb destination used duckdb:/civo_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline civo_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("civo_migrations_pipeline").dataset() + # get ize table as Pandas frame + data.ize.df().head() + ``` + +## Running into errors? + +It's crucial to ensure that the API key is kept secure and not exposed in public repositories. Additionally, rate limits apply to all API calls, and users should be mindful of their usage to avoid throttling. Some API responses may vary based on account settings. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/civo_kubernetes/civo-kubernetes-docs.yaml b/civo_kubernetes/civo-kubernetes-docs.yaml new file mode 100644 index 00000000..a4c1cb44 --- /dev/null +++ b/civo_kubernetes/civo-kubernetes-docs.yaml @@ -0,0 +1,2583 @@ +resources: +- name: clusters + endpoint: + path: /kubernetes/clusters + method: GET + data_selector: clusters +- name: applications + endpoint: + path: /kubernetes/applications + method: GET + data_selector: applications +- name: kubernetes_versions + endpoint: + path: /v2/kubernetes/versions + method: GET + data_selector: '' +- name: recycle_node + endpoint: + path: /v2/kubernetes/clusters/{cluster_id}/recycle + method: POST + data_selector: '' +- name: private_cloud + endpoint: + path: /v1/private_clouds + method: GET + data_selector: data + params: {} +- name: civostack + endpoint: + path: /v1/civostack + method: GET + data_selector: data + params: {} +- name: meetups + endpoint: + path: /meetups + method: GET + data_selector: records + params: {} +- name: gpu_compute + endpoint: + path: /v1/gpu/compute + method: GET + data_selector: data + params: {} +- name: gpu_kubernetes + endpoint: + path: /v1/gpu/kubernetes + method: GET + data_selector: data + params: {} +- name: meetup + endpoint: + path: /meetups + method: GET + data_selector: meetups + params: {} +- name: personal_information + endpoint: + path: /personal_information + method: GET + data_selector: records +- name: event_registration + endpoint: + path: /event_registration + method: POST + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: logos + endpoint: + path: /brand-assets + method: GET + data_selector: logos + params: {} +- name: logos + endpoint: + path: /brand-assets/logos + method: GET + data_selector: logos + params: {} +- name: color_palette + endpoint: + path: /brand-assets/colours + method: GET + data_selector: colors + params: {} +- name: event_space_booking + endpoint: + path: /api/event_space/booking + method: GET + data_selector: records + params: {} +- name: mysql + endpoint: + path: /databases/mysql + method: POST + data_selector: data +- name: postgresql + endpoint: + path: /databases/postgresql + method: POST + data_selector: data +- name: redis + endpoint: + path: /databases/redis + method: POST + data_selector: data +- name: load_balancer + endpoint: + path: /api/load-balancers + method: POST + data_selector: loadBalancers + params: {} +- name: databases + endpoint: + path: /databases + method: GET + data_selector: records + params: {} +- name: load_balancer + endpoint: + path: /api/load_balancers + method: POST + data_selector: load_balancer_id + params: + concurrent_requests: '10000' +- name: VMware Importer + endpoint: + path: /vmware/importer + method: POST + data_selector: data + params: {} +- name: CivoStack + endpoint: + path: /api/civostack + method: GET + data_selector: resources + params: {} +- name: VMware Importer + endpoint: + path: /api/vmware/import + method: POST + data_selector: importDetails +- name: VMware Importer + endpoint: + path: /vmware-importer + method: POST + data_selector: importOptions + params: {} +- name: instances + endpoint: + path: /v2/instances + method: POST + data_selector: body +- name: ambassadors + endpoint: + path: /ambassadors + method: GET + data_selector: records +- name: instances + endpoint: + path: /v2/instances + method: POST + data_selector: response + params: {} +- name: Civo cluster autoscaler + endpoint: + path: /marketplace/civo-cluster-autoscaler + method: GET +- name: GitLab + endpoint: + path: /marketplace/gitlab + method: GET +- name: Kubefirst + endpoint: + path: /marketplace/kubefirst + method: GET +- name: Acorn + endpoint: + path: /marketplace/acorn + method: GET +- name: Ambassador Edge Stack + endpoint: + path: /marketplace/ambassador-edge-stack + method: GET +- name: Apache APISIX Ingress Controller + endpoint: + path: /marketplace/apisix-ingress-controller + method: GET +- name: Argo Rollouts + endpoint: + path: /marketplace/argo-rollouts + method: GET +- name: Argo Workflows + endpoint: + path: /marketplace/argo-workflows + method: GET +- name: Argo CD + endpoint: + path: /marketplace/argocd + method: GET +- name: ASP.NET core + endpoint: + path: /marketplace/aspnet + method: GET +- name: Atmo + endpoint: + path: /marketplace/atmo + method: GET +- name: Bitwarden Passwordless.dev + endpoint: + path: /marketplace/bitwarden-passwordless-dev + method: GET +- name: Bitwarden Self Host Unified (BETA) + endpoint: + path: /marketplace/bitwarden-unified + method: GET +- name: Prometheus-Blackbox-Exporter + endpoint: + path: /marketplace/blackbox-exporter + method: GET +- name: Cerbos + endpoint: + path: /marketplace/cerbos + method: GET +- name: Cert Manager + endpoint: + path: /marketplace/cert-manager + method: GET +- name: Chaos Mesh + endpoint: + path: /marketplace/chaos-mesh + method: GET +- name: Code Server + endpoint: + path: /marketplace/code-server + method: GET +- name: Cyclops UI + endpoint: + path: /marketplace/cyclops + method: GET +- name: Dapr + endpoint: + path: /marketplace/dapr + method: GET +- name: Dynamic PV Scaler + endpoint: + path: /marketplace/dynamic-pv-scaler + method: GET +- name: EDP + endpoint: + path: /marketplace/edp + method: GET +- name: EnRoute OneStep Ingress API Gateway + endpoint: + path: /marketplace/enroute-onestep + method: GET +- name: Epinio + endpoint: + path: /marketplace/epinio + method: GET +- name: Falco Security + endpoint: + path: /marketplace/falco + method: GET +- name: FerretDB + endpoint: + path: /marketplace/ferretdb + method: GET +- name: Flagsmith + endpoint: + path: /marketplace/flagsmith + method: GET +- name: Flux + endpoint: + path: /marketplace/flux + method: GET +- name: OPA Gatekeeper + endpoint: + path: /marketplace/gatekeeper + method: GET +- name: Ghost + endpoint: + path: /marketplace/ghost + method: GET +- name: Gimlet + endpoint: + path: /marketplace/gimlet + method: GET +- name: Gitea + endpoint: + path: /marketplace/gitea + method: GET +- name: Gloo Edge + endpoint: + path: /marketplace/gloo-edge + method: GET +- name: grapple solution framework + endpoint: + path: /marketplace/grapple-solution-framework + method: GET +- name: HAProxy + endpoint: + path: /marketplace/haproxy + method: GET +- name: Helm + endpoint: + path: /marketplace/helm + method: GET +- name: Istio Service Mesh + endpoint: + path: /marketplace/istio + method: GET +- name: Jenkins + endpoint: + path: /marketplace/jenkins + method: GET +- name: Joomla + endpoint: + path: /marketplace/joomla + method: GET +- name: Kafka + endpoint: + path: /marketplace/kafka + method: GET +- name: KEDA + endpoint: + path: /marketplace/keda + method: GET +- name: Keptn + endpoint: + path: /marketplace/keptn + method: GET +- name: Ketch + endpoint: + path: /marketplace/ketch + method: GET +- name: Keycloak + endpoint: + path: /marketplace/keycloak + method: GET +- name: Kong Ingress Controller + endpoint: + path: /marketplace/kong-ingress-controller + method: GET +- name: Kriten + endpoint: + path: /marketplace/kriten + method: GET +- name: Kube-hunter + endpoint: + path: /marketplace/kube-hunter + method: GET +- name: Kubeclarity + endpoint: + path: /marketplace/kubeclarity + method: GET +- name: Kubefirst + endpoint: + path: /marketplace/kubefirst + method: GET +- name: Kubeflow + endpoint: + path: /marketplace/kubeflow + method: GET +- name: Kubenav + endpoint: + path: /marketplace/kubenav + method: GET +- name: Kubernetes Dashboard + endpoint: + path: /marketplace/kubernetes-dashboard + method: GET +- name: Kubernetes External Secrets + endpoint: + path: /marketplace/kubernetes-external-secrets + method: GET +- name: KubeRocketCI + endpoint: + path: /marketplace/kuberocketci + method: GET +- name: KubeSphere + endpoint: + path: /marketplace/kubesphere + method: GET +- name: KubeVela + endpoint: + path: /marketplace/kubevela + method: GET +- name: Kubevious + endpoint: + path: /marketplace/kubevious + method: GET +- name: Kubewarden + endpoint: + path: /marketplace/kubewarden + method: GET +- name: Kyverno + endpoint: + path: /marketplace/kyverno + method: GET +- name: Linkerd + endpoint: + path: /marketplace/linkerd + method: GET +- name: LitmusChaos + endpoint: + path: /marketplace/litmuschaos + method: GET +- name: Loki Stack + endpoint: + path: /marketplace/loki + method: GET +- name: Longhorn + endpoint: + path: /marketplace/longhorn + method: GET +- name: Mesh + endpoint: + path: /marketplace/maesh + method: GET +- name: MariaDB + endpoint: + path: /marketplace/mariadb + method: GET +- name: Metrics Server + endpoint: + path: /marketplace/metrics-server + method: GET +- name: MinIO + endpoint: + path: /marketplace/minio + method: GET +- name: MongoDB + endpoint: + path: /marketplace/mongodb + method: GET +- name: Netdata + endpoint: + path: /marketplace/netdata + method: GET +- name: NeuVector + endpoint: + path: /marketplace/neuvector + method: GET +- name: NextCloud + endpoint: + path: /marketplace/nextcloud + method: GET +- name: Sonatype nexus repository oss + endpoint: + path: /marketplace/nexus3 + method: GET +- name: Nginx + endpoint: + path: /marketplace/nginx + method: GET +- name: ngrok + endpoint: + path: /marketplace/ngrok-ingress-controller + method: GET +- name: Node-RED + endpoint: + path: /marketplace/nodered + method: GET +- name: OpenFaaS + endpoint: + path: /marketplace/openfaas + method: GET +- name: OpenObserve + endpoint: + path: /marketplace/openobserve + method: GET +- name: Paralus + endpoint: + path: /marketplace/paralus + method: GET +- name: civo_cluster_autoscaler + endpoint: + path: /marketplace/civo-cluster-autoscaler + method: GET + data_selector: records + params: {} +- name: gitlab + endpoint: + path: /marketplace/gitlab + method: GET + data_selector: records + params: {} +- name: kubefirst + endpoint: + path: /marketplace/kubefirst + method: GET + data_selector: records + params: {} +- name: acorn + endpoint: + path: /marketplace/acorn + method: GET + data_selector: records + params: {} +- name: ambassador_edge_stack + endpoint: + path: /marketplace/ambassador-edge-stack + method: GET + data_selector: records + params: {} +- name: apache_apisix_ingress_controller + endpoint: + path: /marketplace/apisix-ingress-controller + method: GET + data_selector: records + params: {} +- name: argo_rollouts + endpoint: + path: /marketplace/argo-rollouts + method: GET + data_selector: records + params: {} +- name: argo_workflows + endpoint: + path: /marketplace/argo-workflows + method: GET + data_selector: records + params: {} +- name: argo_cd + endpoint: + path: /marketplace/argocd + method: GET + data_selector: records + params: {} +- name: aspnet_core + endpoint: + path: /marketplace/aspnet + method: GET + data_selector: records + params: {} +- name: atmo + endpoint: + path: /marketplace/atmo + method: GET + data_selector: records + params: {} +- name: bitwarden_passwordless_dev + endpoint: + path: /marketplace/bitwarden-passwordless-dev + method: GET + data_selector: records + params: {} +- name: bitwarden_unified + endpoint: + path: /marketplace/bitwarden-unified + method: GET + data_selector: records + params: {} +- name: prometheus_blackbox_exporter + endpoint: + path: /marketplace/blackbox-exporter + method: GET + data_selector: records + params: {} +- name: cerbos + endpoint: + path: /marketplace/cerbos + method: GET + data_selector: records + params: {} +- name: cert_manager + endpoint: + path: /marketplace/cert-manager + method: GET + data_selector: records + params: {} +- name: chaos_mesh + endpoint: + path: /marketplace/chaos-mesh + method: GET + data_selector: records + params: {} +- name: code_server + endpoint: + path: /marketplace/code-server + method: GET + data_selector: records + params: {} +- name: cyclops_ui + endpoint: + path: /marketplace/cyclops + method: GET + data_selector: records + params: {} +- name: dapr + endpoint: + path: /marketplace/dapr + method: GET + data_selector: records + params: {} +- name: devtron + endpoint: + path: /marketplace/devtron + method: GET + data_selector: records + params: {} +- name: dynamic_pv_scaler + endpoint: + path: /marketplace/dynamic-pv-scaler + method: GET + data_selector: records + params: {} +- name: edp + endpoint: + path: /marketplace/edp + method: GET + data_selector: records + params: {} +- name: enroute_onestep + endpoint: + path: /marketplace/enroute-onestep + method: GET + data_selector: records + params: {} +- name: epinio + endpoint: + path: /marketplace/epinio + method: GET + data_selector: records + params: {} +- name: falco + endpoint: + path: /marketplace/falco + method: GET + data_selector: records + params: {} +- name: ferretdb + endpoint: + path: /marketplace/ferretdb + method: GET + data_selector: records + params: {} +- name: flagsmith + endpoint: + path: /marketplace/flagsmith + method: GET + data_selector: records + params: {} +- name: flux + endpoint: + path: /marketplace/flux + method: GET + data_selector: records + params: {} +- name: opa_gatekeeper + endpoint: + path: /marketplace/gatekeeper + method: GET + data_selector: records + params: {} +- name: ghost + endpoint: + path: /marketplace/ghost + method: GET + data_selector: records + params: {} +- name: gimlet + endpoint: + path: /marketplace/gimlet + method: GET + data_selector: records + params: {} +- name: gitea + endpoint: + path: /marketplace/gitea + method: GET + data_selector: records + params: {} +- name: gloo_edge + endpoint: + path: /marketplace/gloo-edge + method: GET + data_selector: records + params: {} +- name: grapple_solution_framework + endpoint: + path: /marketplace/grapple-solution-framework + method: GET + data_selector: records + params: {} +- name: haproxy + endpoint: + path: /marketplace/haproxy + method: GET + data_selector: records + params: {} +- name: helm + endpoint: + path: /marketplace/helm + method: GET + data_selector: records + params: {} +- name: istio + endpoint: + path: /marketplace/istio + method: GET + data_selector: records + params: {} +- name: jenkins + endpoint: + path: /marketplace/jenkins + method: GET + data_selector: records + params: {} +- name: joomla + endpoint: + path: /marketplace/joomla + method: GET + data_selector: records + params: {} +- name: kafka + endpoint: + path: /marketplace/kafka + method: GET + data_selector: records + params: {} +- name: keda + endpoint: + path: /marketplace/keda + method: GET + data_selector: records + params: {} +- name: keptn + endpoint: + path: /marketplace/keptn + method: GET + data_selector: records + params: {} +- name: ketch + endpoint: + path: /marketplace/ketch + method: GET + data_selector: records + params: {} +- name: keycloak + endpoint: + path: /marketplace/keycloak + method: GET + data_selector: records + params: {} +- name: kong_ingress_controller + endpoint: + path: /marketplace/kong-ingress-controller + method: GET + data_selector: records + params: {} +- name: kriten + endpoint: + path: /marketplace/kriten + method: GET + data_selector: records + params: {} +- name: kube_hunter + endpoint: + path: /marketplace/kube-hunter + method: GET + data_selector: records + params: {} +- name: kubeclarity + endpoint: + path: /marketplace/kubeclarity + method: GET + data_selector: records + params: {} +- name: kubeflow + endpoint: + path: /marketplace/kubeflow + method: GET + data_selector: records + params: {} +- name: kubenav + endpoint: + path: /marketplace/kubenav + method: GET + data_selector: records + params: {} +- name: kubernetes_dashboard + endpoint: + path: /marketplace/kubernetes-dashboard + method: GET + data_selector: records + params: {} +- name: kubernetes_external_secrets + endpoint: + path: /marketplace/kubernetes-external-secrets + method: GET + data_selector: records + params: {} +- name: kuberocketci + endpoint: + path: /marketplace/kuberocketci + method: GET + data_selector: records + params: {} +- name: kubesphere + endpoint: + path: /marketplace/kubesphere + method: GET + data_selector: records + params: {} +- name: kubevela + endpoint: + path: /marketplace/kubevela + method: GET + data_selector: records + params: {} +- name: kubevious + endpoint: + path: /marketplace/kubevious + method: GET + data_selector: records + params: {} +- name: kubewarden + endpoint: + path: /marketplace/kubewarden + method: GET + data_selector: records + params: {} +- name: kyverno + endpoint: + path: /marketplace/kyverno + method: GET + data_selector: records + params: {} +- name: linkerd + endpoint: + path: /marketplace/linkerd + method: GET + data_selector: records + params: {} +- name: litmuschaos + endpoint: + path: /marketplace/litmuschaos + method: GET + data_selector: records + params: {} +- name: loki + endpoint: + path: /marketplace/loki + method: GET + data_selector: records + params: {} +- name: longhorn + endpoint: + path: /marketplace/longhorn + method: GET + data_selector: records + params: {} +- name: maesh + endpoint: + path: /marketplace/maesh + method: GET + data_selector: records + params: {} +- name: mariadb + endpoint: + path: /marketplace/mariadb + method: GET + data_selector: records + params: {} +- name: metrics_server + endpoint: + path: /marketplace/metrics-server + method: GET + data_selector: records + params: {} +- name: minio + endpoint: + path: /marketplace/minio + method: GET + data_selector: records + params: {} +- name: mongodb + endpoint: + path: /marketplace/mongodb + method: GET + data_selector: records + params: {} +- name: netdata + endpoint: + path: /marketplace/netdata + method: GET + data_selector: records + params: {} +- name: neuvector + endpoint: + path: /marketplace/neuvector + method: GET + data_selector: records + params: {} +- name: nextcloud + endpoint: + path: /marketplace/nextcloud + method: GET + data_selector: records + params: {} +- name: nexus3 + endpoint: + path: /marketplace/nexus3 + method: GET + data_selector: records + params: {} +- name: nginx + endpoint: + path: /marketplace/nginx + method: GET + data_selector: records + params: {} +- name: ngrok + endpoint: + path: /marketplace/ngrok-ingress-controller + method: GET + data_selector: records + params: {} +- name: nodered + endpoint: + path: /marketplace/nodered + method: GET + data_selector: records + params: {} +- name: openfaas + endpoint: + path: /marketplace/openfaas + method: GET + data_selector: records + params: {} +- name: openobserve + endpoint: + path: /marketplace/openobserve + method: GET + data_selector: records + params: {} +- name: paralus + endpoint: + path: /marketplace/paralus + method: GET + data_selector: records + params: {} +- name: Parca + endpoint: + path: /marketplace/parca + method: GET +- name: Percona MySQL + endpoint: + path: /marketplace/percona-mysql + method: GET +- name: Permission-manager + endpoint: + path: /marketplace/permission-manager + method: GET +- name: Percona Monitoring and Management + endpoint: + path: /marketplace/pmm + method: GET +- name: Polaris + endpoint: + path: /marketplace/polaris + method: GET +- name: Portainer + endpoint: + path: /marketplace/portainer + method: GET +- name: PostgreSQL + endpoint: + path: /marketplace/postgresql + method: GET +- name: Projectsveltos + endpoint: + path: /marketplace/projectsveltos + method: GET +- name: Prometheus Operator + endpoint: + path: /marketplace/prometheus-operator + method: GET +- name: Pyroscope + endpoint: + path: /marketplace/pyroscope + method: GET +- name: RabbitMQ + endpoint: + path: /marketplace/rabbitmq + method: GET +- name: Rancher + endpoint: + path: /marketplace/rancher + method: GET +- name: Redis + endpoint: + path: /marketplace/redis + method: GET +- name: rekor + endpoint: + path: /marketplace/rekor + method: GET +- name: Reloader + endpoint: + path: /marketplace/reloader + method: GET +- name: rqlite + endpoint: + path: /marketplace/rqlite + method: GET +- name: Sealed Secrets + endpoint: + path: /marketplace/sealed-secrets + method: GET +- name: Selenium + endpoint: + path: /marketplace/selenium + method: GET +- name: Shipa + endpoint: + path: /marketplace/shipa + method: GET +- name: Siglens-OSS + endpoint: + path: /marketplace/siglens-oss + method: GET +- name: Sonarqube + endpoint: + path: /marketplace/sonarqube + method: GET +- name: Spinkube + endpoint: + path: /marketplace/spinkube + method: GET +- name: System-upgrade-controller + endpoint: + path: /marketplace/system-upgrade-controller + method: GET +- name: Tekton + endpoint: + path: /marketplace/tekton + method: GET +- name: Traefik v2 (LoadBalancer) + endpoint: + path: /marketplace/traefik2-loadbalancer + method: GET +- name: Traefik v2 (NodePort) + endpoint: + path: /marketplace/traefik2-nodeport + method: GET +- name: Unifi network controller + endpoint: + path: /marketplace/unifi-controller + method: GET +- name: Uptime-kuma + endpoint: + path: /marketplace/uptime-kuma + method: GET +- name: HashiCorp Vault + endpoint: + path: /marketplace/vault + method: GET +- name: Volcano + endpoint: + path: /marketplace/volcano + method: GET +- name: WeaveScope + endpoint: + path: /marketplace/weavescope + method: GET +- name: Wordpress + endpoint: + path: /marketplace/wordpress + method: GET +- name: compute + endpoint: + path: /v1/compute + method: GET + data_selector: data + params: {} +- name: kubernetes + endpoint: + path: /v1/kubernetes + method: GET + data_selector: data + params: {} +- name: Civo Public Cloud Services + endpoint: + path: /api + method: GET +- name: Civo relaxAI + endpoint: + path: /api + method: GET +- name: Parca + endpoint: + path: /marketplace/parca + method: GET +- name: Percona MySQL + endpoint: + path: /marketplace/percona-mysql + method: GET +- name: Permission-manager + endpoint: + path: /marketplace/permission-manager + method: GET +- name: Percona Monitoring and Management + endpoint: + path: /marketplace/pmm + method: GET +- name: Polaris + endpoint: + path: /marketplace/polaris + method: GET +- name: Portainer + endpoint: + path: /marketplace/portainer + method: GET +- name: PostgreSQL + endpoint: + path: /marketplace/postgresql + method: GET +- name: Projectsveltos + endpoint: + path: /marketplace/projectsveltos + method: GET +- name: Prometheus Operator + endpoint: + path: /marketplace/prometheus-operator + method: GET +- name: Pyroscope + endpoint: + path: /marketplace/pyroscope + method: GET +- name: RabbitMQ + endpoint: + path: /marketplace/rabbitmq + method: GET +- name: Rancher + endpoint: + path: /marketplace/rancher + method: GET +- name: Redis + endpoint: + path: /marketplace/redis + method: GET +- name: rekor + endpoint: + path: /marketplace/rekor + method: GET +- name: Reloader + endpoint: + path: /marketplace/reloader + method: GET +- name: rqlite + endpoint: + path: /marketplace/rqlite + method: GET +- name: Sealed Secrets + endpoint: + path: /marketplace/sealed-secrets + method: GET +- name: Selenium + endpoint: + path: /marketplace/selenium + method: GET +- name: Shipa + endpoint: + path: /marketplace/shipa + method: GET +- name: Siglens-OSS + endpoint: + path: /marketplace/siglens-oss + method: GET +- name: Sonarqube + endpoint: + path: /marketplace/sonarqube + method: GET +- name: Spinkube + endpoint: + path: /marketplace/spinkube + method: GET +- name: System-upgrade-controller + endpoint: + path: /marketplace/system-upgrade-controller + method: GET +- name: Tekton + endpoint: + path: /marketplace/tekton + method: GET +- name: Traefik v2 (LoadBalancer) + endpoint: + path: /marketplace/traefik2-loadbalancer + method: GET +- name: Traefik v2 (NodePort) + endpoint: + path: /marketplace/traefik2-nodeport + method: GET +- name: Unifi network controller + endpoint: + path: /marketplace/unifi-controller + method: GET +- name: Uptime-kuma + endpoint: + path: /marketplace/uptime-kuma + method: GET +- name: HashiCorp Vault + endpoint: + path: /marketplace/vault + method: GET +- name: Volcano + endpoint: + path: /marketplace/volcano + method: GET +- name: WeaveScope + endpoint: + path: /marketplace/weavescope + method: GET +- name: Wordpress + endpoint: + path: /marketplace/wordpress + method: GET +- name: Civo Public Cloud Services + endpoint: + path: /api + method: GET +- name: Civo relaxAI + endpoint: + path: /api + method: GET +- name: instances + endpoint: + path: /v1/instances + method: GET + data_selector: instances + params: {} +- name: firewalls + endpoint: + path: /networking/firewalls + method: GET + data_selector: firewalls + params: {} +- name: firewalls + endpoint: + path: /networking/firewalls + method: GET + data_selector: firewalls + params: {} +- name: firewall + endpoint: + path: /firewalls + method: POST + data_selector: firewall + params: {} +- name: firewall_rule + endpoint: + path: /firewall/rule + method: POST + data_selector: rule + params: {} +- name: firewall + endpoint: + path: /firewalls + method: POST + data_selector: firewall + params: {} +- name: firewall_rule + endpoint: + path: /firewalls/rules + method: POST + data_selector: rule + params: + action: allow + cidr: 0.0.0.0/0 + direction: ingress + protocol: TCP +- name: civo_size + endpoint: + params: + filter: + - key: name + values: + - g3.small + match_by: re + - key: type + values: + - instance +- name: civo_disk_image + endpoint: + params: + filter: + - key: name + values: + - debian-10 +- name: civo_firewall + endpoint: + params: + name: www +- name: civo_firewall_rule + endpoint: + params: + firewall_id: civo_firewall.www.id + protocol: tcp + start_port: '6443' + end_port: '6443' + cidr: + - 0.0.0.0/0 + direction: ingress + label: kubernetes-api-server + action: allow +- name: civo_size + endpoint: + path: /data/civo_size + method: GET + data_selector: records + params: + filter: + key: name + values: + - g3.small + match_by: re +- name: civo_disk_image + endpoint: + path: /data/civo_disk_image + method: GET + data_selector: records + params: + filter: + key: name + values: + - debian-10 +- name: civo_firewall + endpoint: + path: /resource/civo_firewall + method: POST + data_selector: records + params: + name: www +- name: civo_firewall_rule + endpoint: + path: /resource/civo_firewall_rule + method: POST + data_selector: records + params: + firewall_id: civo_firewall.www.id + protocol: tcp + start_port: '6443' + end_port: '6443' + cidr: + - 0.0.0.0/0 + direction: ingress + label: kubernetes-api-server + action: allow +- name: firewalls + endpoint: + path: /firewalls + method: GET +- name: create_firewall + endpoint: + path: /firewalls/create + method: POST +- name: firewall + endpoint: + path: /firewalls + method: POST + data_selector: firewall + params: + name: new_firewall_name +- name: firewall_rule + endpoint: + path: /firewalls/rules + method: POST + data_selector: rule + params: + firewall_id: firewall_id + protocol: tcp + start_port: '6443' + end_port: '6443' + cidr: 0.0.0.0/0 + direction: ingress + label: kubernetes-api-server + action: allow +- name: firewall + endpoint: + path: /firewall + method: POST + data_selector: firewall + params: + name: www +- name: firewall_rule + endpoint: + path: /firewall/rule + method: POST + data_selector: firewall_rule + params: + firewall_id: civo_firewall.www.id + protocol: tcp + start_port: '6443' + end_port: '6443' + cidr: + - 0.0.0.0/0 + direction: ingress + label: kubernetes-api-server + action: allow +- name: firewall + endpoint: + path: /civo_firewall/www + method: CREATE + data_selector: id + params: {} +- name: instance + endpoint: + path: /civo_instance/foo + method: CREATE + data_selector: id + params: {} +- name: civo_firewall + endpoint: + path: /civo_firewall/www + method: POST + data_selector: id + params: {} +- name: civo_instance + endpoint: + path: /civo_instance/foo + method: POST + data_selector: id + params: {} +- name: civo_firewall + endpoint: + path: /civo_firewall/www + method: CREATE + data_selector: id + params: {} +- name: civo_firewall_rule + endpoint: + path: /civo_firewall_rule/http + method: CREATE + data_selector: id + params: + cidr: + - 0.0.0.0/0 + direction: ingress + end_port: '6443' + protocol: tcp + start_port: '6443' +- name: civo_instance + endpoint: + path: /civo_instance/foo + method: CREATE + data_selector: id + params: + disk_image: a4204155-a876-43fa-b4d6-ea2af8774560 + hostname: foo.com + initial_user: civo + public_ip_required: create + size: g3.small + ram_mb: 2048 +- name: firewall + endpoint: + path: /firewalls + method: DELETE + data_selector: firewall_deleted +- name: civo_firewall + endpoint: + path: /civo_firewall/www + method: CREATE + data_selector: id + params: {} +- name: civo_firewall_rule + endpoint: + path: /civo_firewall_rule/http + method: CREATE + data_selector: id + params: + cidr: + - 0.0.0.0/0 + direction: ingress + end_port: '6443' + label: web-server + protocol: tcp + start_port: '6443' +- name: civo_instance + endpoint: + path: /civo_instance/foo + method: CREATE + data_selector: id + params: + disk_image: a4204155-a876-43fa-b4d6-ea2af8774560 + hostname: foo.com + initial_user: civo + public_ip_required: create + size: g3.small +- name: registration + endpoint: + path: /navigate/india/2025/register + method: GET +- name: venue_info + endpoint: + path: /navigate/india/2025/venue-and-travel + method: GET +- name: sponsorships + endpoint: + path: /navigate/india/2025/sponsor + method: GET +- name: registration + endpoint: + path: /navigate/india/2025/register + method: GET + data_selector: registration_info + params: {} +- name: location + endpoint: + path: /navigate/india/2025/venue-and-travel + method: GET + data_selector: venue_info + params: {} +- name: sponsorships + endpoint: + path: /navigate/india/2025/sponsor + method: GET + data_selector: sponsorship_info + params: {} +- name: sshkey + endpoint: + path: /sshkeys + method: POST + data_selector: result +- name: list_sshkeys + endpoint: + path: /sshkeys + method: GET + data_selector: result +- name: retrieve_sshkey + endpoint: + path: /sshkeys/:id + method: GET + data_selector: result +- name: update_sshkey + endpoint: + path: /sshkeys/:id + method: PUT + data_selector: result +- name: remove_sshkey + endpoint: + path: /sshkeys/:id + method: DELETE + data_selector: result +- name: sshkeys + endpoint: + path: /sshkeys + method: POST + data_selector: result +- name: list_sshkeys + endpoint: + path: /sshkeys + method: GET + data_selector: result +- name: retrieve_sshkey + endpoint: + path: /sshkeys/:id + method: GET + data_selector: result +- name: update_sshkey + endpoint: + path: /sshkeys/:id + method: PUT + data_selector: result +- name: remove_sshkey + endpoint: + path: /sshkeys/:id + method: DELETE + data_selector: result +- name: instances + endpoint: + path: /v2/instances + method: POST + data_selector: result + params: {} +- name: list_instances + endpoint: + path: /v2/instances + method: GET + data_selector: result + params: {} +- name: retrieve_instance + endpoint: + path: /v2/instances/:id + method: GET + data_selector: result + params: {} +- name: retag_instance + endpoint: + path: /v2/instances/:id/tags + method: PUT + data_selector: result + params: {} +- name: reboot_instance + endpoint: + path: /v2/instances/:id/reboots + method: POST + data_selector: result + params: {} +- name: shutdown_instance + endpoint: + path: /v2/instances/:id/stop + method: PUT + data_selector: result + params: {} +- name: start_instance + endpoint: + path: /v2/instances/:id/start + method: PUT + data_selector: result + params: {} +- name: instances + endpoint: + path: /v2/instances + method: POST + data_selector: result + params: {} +- name: list_instances + endpoint: + path: /v2/instances + method: GET + data_selector: result + params: {} +- name: retrieve_instance + endpoint: + path: /v2/instances/:id + method: GET + data_selector: result + params: {} +- name: retag_instance + endpoint: + path: /v2/instances/:id/tags + method: PUT + data_selector: result + params: {} +- name: reboot_instance + endpoint: + path: /v2/instances/:id/reboots + method: POST + data_selector: result + params: {} +- name: shutdown_instance + endpoint: + path: /v2/instances/:id/stop + method: PUT + data_selector: result + params: {} +- name: start_instance + endpoint: + path: /v2/instances/:id/start + method: PUT + data_selector: result + params: {} +- name: instances_start + endpoint: + path: /v2/instances/:id/start + method: PUT + data_selector: result + params: + region: NYC1 +- name: instances_resize + endpoint: + path: /v2/instances/:id/resize + method: PUT + data_selector: result + params: + size: g3.small + region: NYC1 +- name: instances_firewall + endpoint: + path: /v2/instances/:id/firewall + method: PUT + data_selector: result + params: + name: restrictive-firewall +- name: instances_allowed_ips + endpoint: + path: /v2/instances/:id/allowed_ips + method: PUT + data_selector: result + params: + allowed_ips: + - 123.123.34.56 + region: myregion +- name: instances_network_bandwidth_limit + endpoint: + path: /v2/instances/:id/network_bandwidth_limit + method: PUT + data_selector: result + params: + network_bandwidth_limit: 10 + region: myregion +- name: instances_delete + endpoint: + path: /v2/instances/:id + method: DELETE + data_selector: result + params: + region: NYC1 +- name: instances + endpoint: + path: /v2/instances + method: PUT + data_selector: result + params: {} +- name: instance_snapshots + endpoint: + path: /v2/instances/:id/snapshots + method: GET + data_selector: null + params: {} +- name: instance_snapshots + endpoint: + path: /v2/instances/:id/snapshots + method: GET + data_selector: snapshots +- name: create_instance_snapshot + endpoint: + path: /v2/instances/:id/snapshots + method: POST + data_selector: snapshot +- name: delete_instance_snapshot + endpoint: + path: /v2/instances/:id/snapshots/:snapshot-id + method: DELETE + data_selector: status +- name: retrieve_instance_snapshot + endpoint: + path: /v2/instances/:id/snapshots/:snapshot-id + method: GET + data_selector: snapshot +- name: update_instance_snapshot + endpoint: + path: /v2/instances/:id/snapshots/:snapshot-id + method: PUT + data_selector: snapshot +- name: restore_instance_snapshot + endpoint: + path: /v2/instances/:id/snapshots/:snapshot-id/restore + method: POST + data_selector: status +- name: instance_snapshot + endpoint: + path: /v2/instances/abc123-45678/snapshots/xyz-312-776555 + method: DELETE + params: + region: myregion +- name: instance_snapshot + endpoint: + path: /v2/instances/{instance_id}/snapshots/{snapshot_id} + method: DELETE + data_selector: null + params: + region: myregion +- name: snapshot_schedule + endpoint: + path: /v2/resourcesnapshotschedules + method: GET + data_selector: schedules + params: + region: myregion +- name: snapshot_schedule + endpoint: + path: /v2/resourcesnapshotschedules + method: POST + data_selector: snapshot_schedule + params: {} +- name: list_snapshot_schedules + endpoint: + path: /v2/resourcesnapshotschedules + method: GET + data_selector: snapshot_schedules + params: {} +- name: retrieve_snapshot_schedule + endpoint: + path: /v2/resourcesnapshotschedules/:id + method: GET + data_selector: snapshot_schedule + params: {} +- name: update_snapshot_schedule + endpoint: + path: /v2/resourcesnapshotschedules/:id + method: PUT + data_selector: snapshot_schedule + params: {} +- name: delete_snapshot_schedule + endpoint: + path: /v2/resourcesnapshotschedules/:id + method: DELETE + data_selector: snapshot_schedule + params: {} +- name: create_private_network + endpoint: + path: /networks + method: POST + data_selector: result + params: {} +- name: list_private_networks + endpoint: + path: /networks + method: GET + data_selector: result + params: {} +- name: rename_private_network + endpoint: + path: /networks/:id + method: PUT + data_selector: result + params: {} +- name: remove_private_network + endpoint: + path: /networks/:id + method: DELETE + data_selector: result + params: {} +- name: create_private_network + endpoint: + path: /networks + method: POST + data_selector: result + params: {} +- name: list_private_networks + endpoint: + path: /networks + method: GET + data_selector: result + params: {} +- name: rename_private_network + endpoint: + path: /networks/:id + method: PUT + data_selector: result + params: {} +- name: remove_private_network + endpoint: + path: /networks/:id + method: DELETE + data_selector: result + params: {} +- name: create_volume + endpoint: + path: /volumes + method: POST + data_selector: result + params: {} +- name: list_volumes + endpoint: + path: /volumes + method: GET + data_selector: result + params: {} +- name: attach_volume + endpoint: + path: /volumes/:id/attach + method: PUT + data_selector: result + params: {} +- name: detach_volume + endpoint: + path: /volumes/:id/detach + method: PUT + data_selector: result + params: {} +- name: delete_volume + endpoint: + path: /volumes/:id + method: DELETE + data_selector: result + params: {} +- name: create_volume + endpoint: + path: /volumes + method: POST + data_selector: result + params: {} +- name: list_volumes + endpoint: + path: /volumes + method: GET + data_selector: result + params: {} +- name: attach_volume + endpoint: + path: /volumes/:id/attach + method: PUT + data_selector: result + params: {} +- name: detach_volume + endpoint: + path: /volumes/:id/detach + method: PUT + data_selector: result + params: {} +- name: delete_volume + endpoint: + path: /volumes/:id + method: DELETE + data_selector: result + params: {} +- name: firewall + endpoint: + path: /v2/firewalls + method: GET + data_selector: result + params: {} +- name: firewall_rule + endpoint: + path: /v2/firewalls/:firewall_id/rules + method: GET + data_selector: result + params: {} +- name: firewall_rule + endpoint: + path: /v2/firewalls/{firewall_id}/rules/{rule_id} + method: DELETE +- name: disk_images + endpoint: + path: /v2/disk_images + method: GET + data_selector: disk_images +- name: firewall + endpoint: + path: /v2/firewalls + method: POST + data_selector: result + params: {} +- name: list_firewalls + endpoint: + path: /v2/firewalls + method: GET + data_selector: result + params: {} +- name: delete_firewall + endpoint: + path: /v2/firewalls/:id + method: DELETE + data_selector: result + params: {} +- name: create_firewall_rule + endpoint: + path: /v2/firewalls/:firewall_id/rules + method: POST + data_selector: result + params: {} +- name: list_firewall_rules + endpoint: + path: /v2/firewalls/:firewall_id/rules + method: GET + data_selector: result + params: {} +- name: delete_firewall_rule + endpoint: + path: /v2/firewalls/:firewall_id/rules/:id + method: DELETE + data_selector: result + params: {} +- name: firewall_rule + endpoint: + path: /firewalls/{firewall_id}/rules/{rule_id} + method: DELETE +- name: setup_domain + endpoint: + path: /v2/dns + method: POST + data_selector: result +- name: update_domain + endpoint: + path: /v2/dns/:id + method: PUT + data_selector: result +- name: list_domains + endpoint: + path: /v2/dns + method: GET + data_selector: result +- name: delete_domain + endpoint: + path: /v2/dns/:id + method: DELETE + data_selector: result +- name: create_dns_record + endpoint: + path: /v2/dns/:domain_id/records + method: POST + data_selector: result +- name: update_dns_record + endpoint: + path: /v2/dns/:domain_id/records/:id + method: PUT + data_selector: result +- name: list_dns_records + endpoint: + path: /v2/dns/:id/records + method: GET + data_selector: result +- name: delete_dns_record + endpoint: + path: /v2/dns/:domain_id/records/:id + method: DELETE + data_selector: result +- name: dns_record + endpoint: + path: /dns/12345/records/12345678-9012-3456-7890-123456789012 + method: DELETE +- name: disk_images + endpoint: + path: /disk_images + method: GET + data_selector: images +- name: delete_disk_image + endpoint: + path: /disk_images/:id + method: DELETE + data_selector: null +- name: list_webhooks + endpoint: + path: /v2/webhooks + method: GET + data_selector: result + params: {} +- name: create_webhook + endpoint: + path: /v2/webhooks + method: POST + data_selector: result + params: {} +- name: test_webhook + endpoint: + path: /v2/webhooks/:id/test + method: POST + data_selector: result + params: {} +- name: update_webhook + endpoint: + path: /v2/webhooks/:id + method: PUT + data_selector: result + params: {} +- name: delete_webhook + endpoint: + path: /v2/webhooks/:id + method: DELETE + data_selector: result + params: {} +- name: webhook + endpoint: + path: /webhooks/12345 + method: DELETE +- name: setup_domain + endpoint: + path: /v2/dns + method: POST + data_selector: result +- name: update_domain + endpoint: + path: /v2/dns/:id + method: PUT + data_selector: result +- name: list_domains + endpoint: + path: /v2/dns + method: GET + data_selector: result +- name: delete_domain + endpoint: + path: /v2/dns/:id + method: DELETE + data_selector: result +- name: create_dns_record + endpoint: + path: /v2/dns/:domain_id/records + method: POST + data_selector: result +- name: update_dns_record + endpoint: + path: /v2/dns/:domain_id/records/:id + method: PUT + data_selector: result +- name: list_dns_records + endpoint: + path: /v2/dns/:id/records + method: GET + data_selector: result +- name: delete_dns_record + endpoint: + path: /v2/dns/:domain_id/records/:id + method: DELETE + data_selector: result +- name: sizes + endpoint: + path: /sizes + method: GET + data_selector: '' +- name: dns_record + endpoint: + path: /v2/dns/12345/records/12345678-9012-3456-7890-123456789012 + method: DELETE +- name: regions + endpoint: + path: /regions + method: GET + data_selector: '[]' + params: {} +- name: webhooks + endpoint: + path: /v2/webhooks + method: GET + data_selector: result + params: {} +- name: webhook + endpoint: + path: /v2/webhooks/12345 + method: DELETE + data_selector: null + params: {} +- name: sizes + endpoint: + path: /sizes + method: GET + data_selector: '' +- name: regions + endpoint: + path: /v2/regions + method: GET + data_selector: '' +- name: object_store + endpoint: + path: /v2/objectstores + method: POST + data_selector: result + params: + region: region +- name: list_object_stores + endpoint: + path: /v2/objectstores + method: GET + data_selector: result + params: + region: region +- name: retrieve_object_store + endpoint: + path: /v2/objectstores/:id + method: GET + data_selector: result + params: + region: region +- name: update_object_store + endpoint: + path: /v2/objectstores/:id + method: PATCH + data_selector: result + params: + region: region +- name: delete_object_store + endpoint: + path: /v2/objectstores/:id + method: DELETE + data_selector: result + params: + region: region +- name: create_object_store_credential + endpoint: + path: /v2/objectstore/credentials + method: POST + data_selector: result + params: + region: region +- name: list_object_store_credentials + endpoint: + path: /v2/objectstore/credentials + method: GET + data_selector: result + params: + region: region +- name: retrieve_object_store_credential + endpoint: + path: /v2/objectstore/credentials/:id + method: GET + data_selector: result + params: + region: region +- name: update_object_store_credential + endpoint: + path: /v2/objectstore/credentials/:id + method: PATCH + data_selector: result + params: + region: region +- name: delete_object_store_credential + endpoint: + path: /v2/objectstore/credentials/:id + method: DELETE + data_selector: result + params: + region: region +- name: object_store_credential + endpoint: + path: /objectstore/credentials/{id} + method: DELETE + params: + region: NYC1 +- name: object_stores + endpoint: + path: /v2/objectstores + method: GET + data_selector: result + params: + region: '' +- name: object_store_credentials + endpoint: + path: /v2/objectstore/credentials + method: GET + data_selector: result + params: + region: '' +- name: credentials + endpoint: + path: /objectstore/credentials/{id} + method: DELETE + params: + region: NYC1 +- name: quota + endpoint: + path: /v2/quota + method: GET + data_selector: records + params: {} +- name: quota + endpoint: + path: /v2/quota + method: GET + data_selector: null + params: {} +- name: charges + endpoint: + path: /v2/charges + method: GET + data_selector: charges + params: {} +- name: charges + endpoint: + path: /v2/charges + method: GET + data_selector: records + params: {} +- name: recovery_mode_status + endpoint: + path: /v2/instances/:id/recovery + method: GET + data_selector: result + params: + region: lon1 +- name: put_instance_into_recovery_mode + endpoint: + path: /v2/instances/:id/recovery + method: PUT + data_selector: result + params: + region: lon1 +- name: put_instance_out_of_recovery_mode + endpoint: + path: /v2/instances/:id/recovery + method: DELETE + data_selector: result + params: + region: lon1 +- name: Recovery Mode Status + endpoint: + path: /v2/instances/:id/recovery + method: GET + data_selector: result + params: + region: lon1 +- name: console_session_initialization + endpoint: + path: /v2/instances/:id/vnc + method: PUT + params: + region: (required) the identifier for the region where the instance is running, + from the current region list +- name: retrieve_console_session_status + endpoint: + path: /v2/instances/{uuid}/vnc + method: GET + params: + region: (required) the identifier for the region where the instance is running, + from the current region list +- name: stop_console_session + endpoint: + path: /v2/instances/{uuid}/vnc + method: DELETE + params: + region: (required) the identifier for the region where the instance is running, + from the current region list +- name: console_session_initialization + endpoint: + path: /v2/instances/:id/vnc + method: PUT + params: + region: required +- name: console_session_status + endpoint: + path: /v2/instances/{uuid}/vnc + method: GET + params: + region: required +- name: stop_console_session + endpoint: + path: /v2/instances/{uuid}/vnc + method: DELETE + params: + region: required +- name: stop_console_session + endpoint: + path: /instances/{instance_id}/vnc + method: DELETE +- name: instances + endpoint: + path: /v2/instances/{instance_id}/vnc + method: DELETE +- name: disk_images + endpoint: + path: /v2/disk_images + method: GET + data_selector: records + params: + type: custom +- name: disk_images + endpoint: + path: /v2/disk_images + method: GET + data_selector: disk_images + params: + type: string +- name: disk_images + endpoint: + path: /disk_images + method: GET + data_selector: id + params: + type: custom +- name: disk_images + endpoint: + path: /disk_images + method: GET + data_selector: records + params: + type: custom +- name: compute + endpoint: + path: /v1/compute + method: GET + data_selector: instances +- name: kubernetes + endpoint: + path: /v1/kubernetes + method: GET + data_selector: clusters +notes: +- Clusters are created by sending a POST request to /kubernetes/clusters +- Clusters can be deleted by sending a DELETE request to /kubernetes/clusters/:id +- Uses OAuth2 with refresh token — requires setup of connected app in api +- 'Civo: Built for More - Unlocking the Power of Cloud and AI!' +- 'Hourly Cost: $0.01/ hour' +- Requires setup of a connected app in Civo +- Some API responses may vary based on account settings +- A tech event packed with talks and workshops focused on navigating and succeeding + within the cloud native landscape. +- Uses OAuth2 with refresh token — requires setup of connected app in Civo +- Some datasets may return nulls in deeply nested fields +- Some objects may return nulls in deeply nested fields +- Civo does not sell your personal data to any third parties for monetary considerations + as defined by the UCPA. +- We do not knowingly collect information on children. +- Some objects like Contact may return nulls in deeply nested fields +- Users may exercise certain rights regarding their Data within the limits of law, + including the right of access to personal data, right to object to the processing + of their personal data, right to receive their personal data and have it transferred + to another controller, and right to ask for incorrect personal data to be corrected. +- Civo Tech Junction provides a collaborative workspace and hosts tech-related events. +- The venue is designed to support the local tech community. +- Trusted compliance services from a certified provider +- Civo Database is a managed database as a service (DBaaS) that provides users with + optimized performance and reliability at an affordable price. +- It offers high-availability options, with up to five replicas of your data, and + automatic daily backups. +- Powered by our custom-built CivoStack platform, you can get a production-ready Kubernetes + environment up and running in under 90 seconds. +- Simple installation and configuration process for on-prem deployment +- Free migration support available +- FlexCore is built from the ground up with security in mind, providing a hardened + solution you can trust. Your data remains secure and compliant with all relevant + regulations. +- Free & unlimited data transfer +- Available in all regions +- CivoStack Enterprise is a future-proof cloud-native platform that integrates Kubernetes, + IaaS, PaaS, DBaaS, Object Storage, WASM, GPUs, and AI/ML capabilities. +- CivoStack Enterprise is a VMware alternative, offering equivalent functionality + with a straightforward, on-prem licensing model. +- CivoStack Enterprise is compatible with your hardware, making on-prem deployment + quick and easy. +- Guaranteed price commitment with long-term price commitment and transparent billing. +- CivoStack Enterprise is a software stack that enables a future-proofed private cloud + solution that you install to your own hardware. +- CivoStack Enterprise includes numerous AI tools such as Kubeflow-as-a-Service, which + is an end-to-end machine learning product. +- Plug-and-play deployment for private cloud. +- Full-functionality private cloud with no need for third-party providers. +- Data stays in the UK and under UK law. +- No hidden fees. No lock-in. +- 'UK Sovereignty Guaranteed: Your data remains securely within UK borders at all + times, ensuring it is never transferred internationally or subjected to foreign + laws.' +- 'Sustainability at Our Core: With our decarbonized GPU offerings, we are committed + to sustainability while driving innovation.' +- CivoStack Enterprise delivers cutting-edge features and tools, focusing on ease-of-use, + smooth migration, and 24x7 advanced support. +- 100% UK-based. Data stays in the UK and under UK law. +- Sovereign cloud providers support some of the UK's most highly regulated industries. +- Civo supports the privacy & security of your AI operations. +- Data remains securely within regional borders at all times. +- Civo's cloud infrastructure in India is hosted in Mumbai data centre. +- Sustainability at Our Core +- UK Sovereignty Guaranteed +- Civo's genuine commitment to customer success. +- All data stays securely within the UK, fully compliant with UK data laws. +- Service is provided on trust and is intended for use for your demos both live and + pre-recorded. +- Should send API key with every request in an 'Authorization' header. +- Requires an active account with Civo to access the API +- Civo is a cloud service provider who owns a large number of IP ranges. +- The bug bounty program is limited only to the resources owned by your own account. +- Cookies are used for tracking and advertising purposes. +- This policy was last updated on 22/04/2024 +- Ensure that all API keys are kept secure. +- Rate limits apply to all API calls. +- This Agreement has been entered into on the same date that the service agreement + has commenced. +- You will need to associate an API key from your account to Civo CLI in order to + authenticate you to the Civo API. +- Continuous basis depending on the use of the Services by Customer. +- Civo will Process Personal Data as necessary to perform the Services pursuant to + the Agreement. +- Resources such as Kubernetes clusters and virtual machine instances are region-specific. +- Replace with your actual API key in the provider file. +- Certain countries are not supported by the phone verification. +- Civo does not support prepaid or 'virtual' cards as payment types. +- API key required for authentication +- Civo services are chargeable and require a valid payment method. +- All prices are charged in US dollars and are exclusive of VAT. +- Civo accounts support multiple users having access to various resources and access + levels. +- Services are charged hourly, rounded up to the nearest full hour. +- A stopped instance or cluster is chargeable. +- Firewalls are specific to a region and network +- Default action is allow +- Default direction is ingress +- Default protocol is TCP +- CIDR default is 0.0.0.0/0 +- Firewalls are specific to a region and network. +- The region field is optional in most of Civo Terraform provider's resources. +- You cannot delete a firewall if an instance, cluster or other type of resource is + using it. Change the firewall of such resources to be able to delete a firewall. +- For scripting use, you can add a -y flag to Civo CLI commands which usually require + confirmation. This will assume you will answer 'yes' to any prompt. +- You cannot delete a firewall if an instance, cluster or other type of resource is + using it. +- Event is scheduled for November 18th, 2025 at Four Seasons Hotel, Bengaluru. +- Event takes place on November 18th, 2025 at Four Seasons Hotel, Bengaluru. +- Removing an SSH key does not remove it from previously created instances. +- No confirmation step is required for instance operations. +- Attempting to set a private_ip on a VXLAN based network will return that the feature + is not supported in the region. +- Users can create snapshots of their compute instances and their attached volumes. +- Users can create snapshots of compute instances and attached volumes. +- Snapshots can be created on demand or via a schedule. +- Users can create schedules of snapshots to run simultaneously and periodically. +- The request requires the ID parameter in the URL (query string) as well as a region + parameter. +- Volumes can be created and attached to instances, and can be deleted at any time. +- Volumes can only be attached to one instance at a time. +- No confirmation step is required for volume deletion. +- Quota'd limit to the number of firewalls and rules that can be created. +- Quota limit on the number of firewalls and rules that can be created. +- Firewalls can exist even if instances are removed. +- The upload is performed via a PUT request to the generated pre-signed disk_image_url + URL. +- The API only accepts .qcow2 or .raw file formats for the disk image. +- Your Webhook handlers are expected to respond within 5 seconds. +- No confirmation step is required for deleting DNS records. +- Webhook handlers are expected to respond within 5 seconds. +- Object stores are S3-compatible. +- Describing the current quota for the current user is possible by making a GET request + to the https://api.civo.com/v2/quota resource. +- The request should be a GET request to the https://api.civo.com/v2/charges resource. +- The response from the server will be a list of chargeable resources. +- After putting an instance into recovery mode it MUST be rebooted for changes to + take effect. +- Returning the instance back to regular operation requires turning off recovery mode, + followed by a reboot. +- Instances must be set up to allow for password authentication to use this feature. +- Without a valid password, you won't be able to log into your instance. +- The `type` parameter is optional and if used will list only user-created disk images. +- Civo’s user experience is shaped by real feedback from our customers and community. +- Civo offers a cloud-native experience with Kubernetes integration. +- Ensure correct API permissions are set for OAuth. +- Built for More - Unlocking the Power of Cloud and AI! +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Recheck API key or token expiration' +- '401 Unauthorized: Check your OAuth token' +- '404 Not Found: Verify the endpoint URL' +- '500 Internal Server Error: Retry the request after some time' +- We do not charge a fee to respond to your request, for up to one request per year. +- '401 Unauthorized: Check your API key or token' +- '429 Too Many Requests: You have reached the rate limit' +- '429 Too Many Requests: Rate limit exceeded, try again later.' +- '403 Forbidden: Check your API key and permissions.' +- 'Invoice not settled: Contact support to restore services.' +- 'Warning: Are you sure you want to delete the cli-demo firewall (y/N) ? y' +- 'HTTP status 200 OK: Indicates successful operation' +- '200 OK: Successful operation' +- 'Authorization required: Token is missing or invalid' +- '200 OK: Successful request' +- '200 OK: Success' +- '200: Acknowledgment of success' +- '400: Bad Request - Check your request parameters' +- '404: Not Found - Ensure the instance and snapshot IDs are correct' +- '400 Bad Request: Invalid input parameters' +- '401 Unauthorized: Invalid authorization token' +- '404 Not Found: Volume not found' +- '400 Bad Request: Check request parameters' +- '401 Unauthorized: Invalid API key' +- '404 Not Found: Volume ID does not exist' +- '202 Accepted: Indicates successful processing of the request.' +- '404 Not Found: The requested disk image id is not found in the region specified' +- '204 No Content: Successful request' +- '202 Accepted: Request was successful.' +- 'Quota limit exceeded: Reduce number of firewalls or rules.' +- 'Unauthorized: Recheck API key.' +- '204 No Content: If successful, the response will have the HTTP status' +- '404 Not Found: If the requested disk image id is not found in the region specified.' +- '200 OK: Request was successful.' +- '200 OK: Request successful and result returned.' +- '200 OK: Success response' +- '401 Unauthorized: Invalid or missing token' +- '400 Bad Request: Invalid request parameters' +- '401 Unauthorized: Recheck Authorization token' +- '404 Not Found: No active console access session for the instance.' +- '401 Unauthorized: Recheck API key or permissions' +- '401 Unauthorized: Recheck API key' +- '403 Forbidden: Check your API key or permissions.' +- '404 Not Found: Verify the endpoint path.' +- '500 Internal Server Error: Retry the request after some time.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://api.civo.com + auth: + type: apikey + location: header + header_name: Authorization +source_metadata: null diff --git a/clearout_email_verification/clearout-email-verification-docs.md b/clearout_email_verification/clearout-email-verification-docs.md new file mode 100644 index 00000000..23f42549 --- /dev/null +++ b/clearout_email_verification/clearout-email-verification-docs.md @@ -0,0 +1,154 @@ +In this guide, we'll set up a complete Clearout data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def clearout_email_verification_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://app.clearout.io/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + free,,role,,bulk + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='clearout_email_verification_migration_pipeline', + destination='duckdb', + dataset_name='clearout_email_verification_migration_data', + ) + # Load the data + load_info = pipeline.run(clearout_email_verification_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from clearout_email_verification_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Free: Provides access to free resources. +- Role: Manages user roles and permissions. +- Bulk: Handles bulk processing requests. +- Bouncer: Validates email addresses in real-time. +- Webhook: Manages incoming webhook events. +- Billing: Provides access to billing information. + +You will then debug the Clearout pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Clearout support. + ```shell + dlt init dlthub:clearout_email_verification_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Clearout API, as specified in @clearout_email_verification_migration-docs.yaml + Start with endpoints free and and skip incremental loading for now. + Place the code in clearout_email_verification_migration_pipeline.py and name the pipeline clearout_email_verification_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python clearout_email_verification_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication uses OAuth2 with a refresh token mechanism. You need to set up a connected app within Clearout to obtain the client ID and client secret, as well as manage access tokens. + + To get the appropriate API keys, please visit the original source at https://www.clearout.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python clearout_email_verification_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline clearout_email_verification_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset clearout_email_verification_migration_data + The duckdb destination used duckdb:/clearout_email_verification_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline clearout_email_verification_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("clearout_email_verification_migration_pipeline").dataset() + # get re table as Pandas frame + data.re.df().head() + ``` + +## Running into errors? + +Ensure the connected app is properly configured for OAuth2. Be aware of rate limits and the daily verification limit. Unused credits roll over and do not expire, but ensure to monitor your account for sufficient credits. Webhook URLs must be publicly accessible and HTTPS compliant. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/clearout_email_verification/clearout-email-verification-docs.yaml b/clearout_email_verification/clearout-email-verification-docs.yaml new file mode 100644 index 00000000..b1026914 --- /dev/null +++ b/clearout_email_verification/clearout-email-verification-docs.yaml @@ -0,0 +1,2448 @@ +resources: +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: webhooks + endpoint: + path: /webhooks + method: POST + data_selector: notifications +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_validation + endpoint: + path: /email/validation + method: POST + data_selector: data + params: {} +- name: email_validation + endpoint: + path: /email/validate + method: POST + data_selector: data + params: {} +- name: phone_validation + endpoint: + path: /phone/validate + method: POST + data_selector: data + params: {} +- name: billing_information + endpoint: + path: /billing + method: GET +- name: subscription_plans + endpoint: + path: /subscription-plans + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: example_resource + endpoint: + path: /example/endpoint + method: GET + data_selector: data + params: {} +- name: Email Verifier + endpoint: + path: /email-verifier/ + method: GET +- name: Email Finder + endpoint: + path: /email-finder/ + method: GET +- name: Form Guard + endpoint: + path: /form-guard/ + method: GET +- name: Prospect + endpoint: + path: /sales-prospecting/ + method: GET +- name: Reverse Lookup + endpoint: + path: /reverse-lookup/ + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_validation + endpoint: + path: /api/email/validate + method: POST + data_selector: data + params: {} +- name: phone_validation + endpoint: + path: /api/phone/validate + method: POST + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_verification_tools + endpoint: + path: /email_verification_tools + method: GET + data_selector: tools + params: {} +- name: Clearout + endpoint: + path: /email-verifier/clearout + method: GET +- name: ZeroBounce + endpoint: + path: /email-validation/zerobounce + method: GET +- name: NeverBounce + endpoint: + path: /clean/neverbounce + method: GET +- name: Xverify + endpoint: + path: /bulk-email-verifier/xverify + method: GET +- name: Emailable + endpoint: + path: /bulk/emailable + method: GET +- name: MillionVerifier + endpoint: + path: /bulk-verifier/millionverifier + method: GET +- name: My Email Verifier + endpoint: + path: /email-verifier/my-email-verifier + method: GET +- name: Bouncer + endpoint: + path: /email-verification/bouncer + method: GET +- name: BriteVerify + endpoint: + path: /email-verification/briteverify + method: GET +- name: Mailfloss + endpoint: + path: /email-verification/mailfloss + method: GET +- name: Email Hippo + endpoint: + path: /email-verification/email-hippo + method: GET +- name: Debounce + endpoint: + path: /bulk-validation/debounce + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_verifier + endpoint: + path: /email-verification-api/ + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_verification + endpoint: + path: /api/v1/verify + method: POST + data_selector: data + params: {} +- name: email_finder + endpoint: + path: /api/v1/find + method: POST + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_verification + endpoint: + path: /api/verify + method: POST + data_selector: results + params: {} +- name: Clearout + endpoint: + path: /email-verifier/clearout + method: GET +- name: ZeroBounce + endpoint: + path: /email-validation/zerobounce + method: GET +- name: NeverBounce + endpoint: + path: /clean/neverbounce + method: GET +- name: Xverify + endpoint: + path: /bulk-email-verifier/xverify + method: GET +- name: Emailable + endpoint: + path: /bulk/emailable + method: GET +- name: MillionVerifier + endpoint: + path: /bulk-validation/millionverifier + method: GET +- name: My Email Verifier + endpoint: + path: /email-verifier/my-email-verifier + method: GET +- name: Bouncer + endpoint: + path: /email-verification/bouncer + method: GET +- name: BriteVerify + endpoint: + path: /email-verification/briteverify + method: GET +- name: Mailfloss + endpoint: + path: /email-verification/mailfloss + method: GET +- name: Email Hippo + endpoint: + path: /email-verification/email-hippo + method: GET +- name: Debounce + endpoint: + path: /bulk-validation/debounce + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: prospects + endpoint: + path: /prospects + method: GET +- name: email_verification + endpoint: + path: /email_verification + method: POST +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: email_validation + endpoint: + path: /validate/email + method: POST + data_selector: data + params: {} +- name: LinkedIn Profile + endpoint: + path: /extract/profile + method: GET + data_selector: contact_details +- name: LinkedIn Search Page + endpoint: + path: /extract/search + method: GET + data_selector: leads +- name: Sales Navigator + endpoint: + path: /extract/sales_navigator + method: GET + data_selector: sales_data +- name: email_validation + endpoint: + path: /api/email/validate + method: POST + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_verification + endpoint: + path: /api/v1/verify + method: POST + data_selector: results +- name: email_cleanup + endpoint: + path: /api/v1/cleanup + method: POST + data_selector: results +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: bulk_verification + endpoint: + path: /api/verification + method: POST + data_selector: results +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: status_reasons + endpoint: + path: /status/reasons + method: GET +- name: associated_results + endpoint: + path: /associated/results + method: GET +- name: email_verifier + endpoint: + path: /email/verifier + method: GET +- name: email_finder + endpoint: + path: /email/finder + method: GET +- name: prospect_enrichment + endpoint: + path: /prospect/enrichment + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_verification + endpoint: + path: /api/v1/verify + method: POST + data_selector: results + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_verification + endpoint: + path: /api/verify_email + method: POST + data_selector: results + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_verification + endpoint: + path: /api/v1/email-verification + method: POST + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: get_available_credits + endpoint: + path: /v2/email_verify/getcredits + method: GET + data_selector: data +- name: instant_verify + endpoint: + path: /v2/email_verify/instant + method: POST + data_selector: data +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: bulk_verify + endpoint: + path: /email_verify/bulk + method: POST + data_selector: data + params: {} +- name: bulk_verify_progress_status + endpoint: + path: /email_verify/bulk/progress_status + method: GET + data_selector: data + params: {} +- name: bulk_verify_result_download + endpoint: + path: /download/result + method: POST + data_selector: data + params: {} +- name: bulk_verify_cancel + endpoint: + path: /email_verify/list/cancel + method: POST + data_selector: data + params: {} +- name: bulk_verify_removal + endpoint: + path: /email_verify/list/remove + method: POST + data_selector: data + params: {} +- name: catchall_verify + endpoint: + path: /email/verify/catchall + method: POST + data_selector: data + params: {} +- name: disposable_verify + endpoint: + path: /email/verify/disposable + method: POST + data_selector: data + params: {} +- name: business_account_verify + endpoint: + path: /email/verify/business + method: POST + data_selector: data + params: {} +- name: free_account_verify + endpoint: + path: /email/verify/free + method: POST + data_selector: data + params: {} +- name: role_account_verify + endpoint: + path: /email/verify/role + method: POST + data_selector: data + params: {} +- name: gibberish_account_verify + endpoint: + path: /email/verify/gibberish + method: POST + data_selector: data + params: {} +- name: get_available_credits + endpoint: + path: /v2/email_verify/getcredits + method: GET + data_selector: data + params: {} +- name: instant_verify + endpoint: + path: /v2/email_verify/instant + method: POST + data_selector: data + params: {} +- name: bulk_verify + endpoint: + path: /email_verify/bulk + method: POST +- name: bulk_verify_progress_status + endpoint: + path: /email_verify/bulk/progress_status + method: GET +- name: bulk_verify_result_download + endpoint: + path: /download/result + method: POST +- name: bulk_verify_cancel + endpoint: + path: /email_verify/list/cancel + method: POST +- name: bulk_verify_removal + endpoint: + path: /email_verify/list/remove + method: POST +- name: email_verification + endpoint: + path: /api/verifyEmail + method: POST + data_selector: result + params: {} +- name: catchall_verify + endpoint: + path: /email/verify/catchall + method: POST + data_selector: data + params: {} +- name: disposable_verify + endpoint: + path: /email/verify/disposable + method: POST + data_selector: data + params: {} +- name: business_account_verify + endpoint: + path: /email/verify/business + method: POST + data_selector: data + params: {} +- name: free_account_verify + endpoint: + path: /email/verify/free + method: POST + data_selector: data + params: {} +- name: role_account_verify + endpoint: + path: /email/verify/role + method: POST + data_selector: data + params: {} +- name: gibberish_account_verify + endpoint: + path: /email/verify/gibberish + method: POST + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_verification + endpoint: + path: /api/verify/email + method: POST + data_selector: result +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_finder + endpoint: + path: /email-finder/ + method: GET +- name: google_sheets_addon + endpoint: + path: /integrations/clearout-for-sheets/ + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_verification + endpoint: + path: /email-verification + method: POST + data_selector: verification_results +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_verification + endpoint: + path: /api/verify + method: POST + data_selector: results + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: clearout + endpoint: + path: /clearout + method: GET + data_selector: records + params: {} +- name: zerobounce + endpoint: + path: /zerobounce + method: GET + data_selector: records + params: {} +- name: neverbounce + endpoint: + path: /neverbounce + method: GET + data_selector: records + params: {} +- name: xverify + endpoint: + path: /xverify + method: GET + data_selector: records + params: {} +- name: emailable + endpoint: + path: /emailable + method: GET + data_selector: records + params: {} +- name: millionverifier + endpoint: + path: /millionverifier + method: GET + data_selector: records + params: {} +- name: my_email_verifier + endpoint: + path: /my_email_verifier + method: GET + data_selector: records + params: {} +- name: bouncer + endpoint: + path: /bouncer + method: GET + data_selector: records + params: {} +- name: briteverify + endpoint: + path: /briteverify + method: GET + data_selector: records + params: {} +- name: mailfloss + endpoint: + path: /mailfloss + method: GET + data_selector: records + params: {} +- name: email_hippo + endpoint: + path: /email_hippo + method: GET + data_selector: records + params: {} +- name: debounce + endpoint: + path: /debounce + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Clearout + endpoint: + path: /email-verifier/clearout + method: GET + data_selector: records +- name: ZeroBounce + endpoint: + path: /email-verifier/zerobounce + method: GET + data_selector: records +- name: NeverBounce + endpoint: + path: /email-verifier/neverbounce + method: GET + data_selector: records +- name: Xverify + endpoint: + path: /email-verifier/xverify + method: GET + data_selector: records +- name: Emailable + endpoint: + path: /email-verifier/emailable + method: GET + data_selector: records +- name: MillionVerifier + endpoint: + path: /email-verifier/millionverifier + method: GET + data_selector: records +- name: My Email Verifier + endpoint: + path: /email-verifier/myemailverifier + method: GET + data_selector: records +- name: Bouncer + endpoint: + path: /email-verifier/bouncer + method: GET + data_selector: records +- name: BriteVerify + endpoint: + path: /email-verifier/briteverify + method: GET + data_selector: records +- name: Mailfloss + endpoint: + path: /email-verifier/mailfloss + method: GET + data_selector: records +- name: Email Hippo + endpoint: + path: /email-verifier/emailhippo + method: GET + data_selector: records +- name: Debounce + endpoint: + path: /email-verifier/debounce + method: GET + data_selector: records +- name: email_verification + endpoint: + path: /email-verifier + method: POST + data_selector: results +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_finder + endpoint: + path: /email-finder + method: POST +- name: bulk_email_finder + endpoint: + path: /bulk-email-finder + method: POST +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_finder + endpoint: + path: /email-finder-api + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_validation + endpoint: + path: /validate/email + method: POST + data_selector: result + params: + api_token: your_api_token +- name: LinkedIn Profile + endpoint: + path: /services/data/vXX.X/linkedin/profile + method: GET + data_selector: contact_details + params: {} +- name: LinkedIn Search + endpoint: + path: /services/data/vXX.X/linkedin/search + method: GET + data_selector: icps + params: {} +- name: get_available_credits + endpoint: + path: /v2/email_verify/getcredits + method: GET + data_selector: data + params: {} +- name: instant_verify + endpoint: + path: /v2/email_verify/instant + method: POST + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: bulk_verify + endpoint: + path: /email_verify/bulk + method: POST + data_selector: data + params: {} +- name: bulk_verify_progress_status + endpoint: + path: /email_verify/bulk/progress_status + method: GET + data_selector: data + params: {} +- name: bulk_verify_result_download + endpoint: + path: /download/result + method: POST + data_selector: data + params: {} +- name: bulk_verify_cancel + endpoint: + path: /email_verify/list/cancel + method: POST + data_selector: data + params: {} +- name: bulk_verify_removal + endpoint: + path: /email_verify/list/remove + method: POST + data_selector: data + params: {} +- name: get_available_credits + endpoint: + path: /v2/email_verify/getcredits + method: GET + data_selector: data + params: {} +- name: instant_verify + endpoint: + path: /v2/email_verify/instant + method: POST + data_selector: data + params: {} +- name: catchall_verify + endpoint: + path: /email/verify/catchall + method: POST + data_selector: data + params: {} +- name: disposable_verify + endpoint: + path: /email/verify/disposable + method: POST + data_selector: data + params: {} +- name: business_account_verify + endpoint: + path: /email/verify/business + method: POST + data_selector: data + params: {} +- name: free_account_verify + endpoint: + path: /email/verify/free + method: POST + data_selector: data + params: {} +- name: role_account_verify + endpoint: + path: /email/verify/role + method: POST + data_selector: data + params: {} +- name: gibberish_account_verify + endpoint: + path: /email/verify/gibberish + method: POST + data_selector: data + params: {} +- name: bulk_verify + endpoint: + path: /email_verify/bulk + method: POST +- name: bulk_verify_progress_status + endpoint: + path: /email_verify/bulk/progress_status + method: GET +- name: bulk_verify_result_download + endpoint: + path: /download/result + method: POST +- name: bulk_verify_cancel + endpoint: + path: /email_verify/list/cancel + method: POST +- name: bulk_verify_removal + endpoint: + path: /email_verify/list/remove + method: POST +- name: instant_email_finder + endpoint: + path: /email_finder/instant + method: POST + data_selector: data + params: + timeout: 30000 +- name: instant_email_finder_status + endpoint: + path: /email_finder/instant/queue_status + method: GET + data_selector: data + params: {} +- name: catch_all_verify + endpoint: + path: /catchall + method: POST + data_selector: data + params: {} +- name: disposable_verify + endpoint: + path: /disposable + method: POST + data_selector: data + params: {} +- name: business_account_verify + endpoint: + path: /business + method: POST + data_selector: data + params: {} +- name: free_account_verify + endpoint: + path: /free + method: POST + data_selector: data + params: {} +- name: role_account_verify + endpoint: + path: /role + method: POST + data_selector: data + params: {} +- name: gibberish_account_verify + endpoint: + path: /gibberish + method: POST + data_selector: data + params: {} +- name: bulk_email_finder + endpoint: + path: /bulk + method: POST +- name: bulk_email_finder_progress_status + endpoint: + path: /bulk/progress_status + method: GET +- name: bulk_email_finder_result_download + endpoint: + path: /download/result + method: POST +- name: bulk_email_finder_cancel + endpoint: + path: /list/cancel + method: POST +- name: bulk_email_finder_removal + endpoint: + path: /list/remove + method: POST +- name: instant_email_finder + endpoint: + path: /email_finder/instant + method: POST + data_selector: data + params: {} +- name: instant_email_finder_status + endpoint: + path: /email_finder/instant/queue_status + method: GET + data_selector: data + params: {} +- name: reverse_lookup_linkedin + endpoint: + path: /v2/reverse_lookup/linkedin + method: GET + data_selector: data.lead + params: + url: https://www.linkedin.com/in/williamhgates/ +- name: reverse_lookup_email + endpoint: + path: /v2/reverse_lookup/email + method: GET + data_selector: data.lead + params: + email_address: joel@buffer.com +- name: reverse_lookup_domain + endpoint: + path: /v2/reverse_lookup/domain + method: GET + data_selector: data.lead + params: + name: amazon.com +- name: bulk_email_finder + endpoint: + path: /email_finder/bulk + method: POST +- name: bulk_email_finder_progress_status + endpoint: + path: /email_finder/bulk/progress_status + method: GET +- name: bulk_email_finder_result_download + endpoint: + path: /email_finder/download/result + method: POST +- name: bulk_email_finder_cancel + endpoint: + path: /email_finder/list/cancel + method: POST +- name: bulk_email_finder_removal + endpoint: + path: /email_finder/list/remove + method: POST +- name: autocomplete + endpoint: + path: /public/companies/autocomplete + method: GET + data_selector: data + params: + query: company name or domain +- name: reverse_lookup_linkedin + endpoint: + path: /v2/reverse_lookup/linkedin + method: GET + data_selector: data.lead + params: + url: https://www.linkedin.com/in/williamhgates/ +- name: reverse_lookup_email + endpoint: + path: /v2/reverse_lookup/email + method: GET + data_selector: data.lead + params: + email_address: joel@buffer.com +- name: reverse_lookup_domain + endpoint: + path: /v2/reverse_lookup/domain + method: GET + data_selector: data.lead + params: + name: amazon.com +- name: find_mx + endpoint: + path: /domain/resolve/mx + method: POST +- name: find_whois + endpoint: + path: /domain/resolve/whois + method: POST +- name: webhook + endpoint: + path: /webhook + method: POST +- name: company_autocomplete + endpoint: + path: /public/companies/autocomplete + method: GET + data_selector: data + params: {} +- name: find_mx + endpoint: + path: /v2/domain/resolve/mx + method: POST + data_selector: data + params: {} +- name: find_whois + endpoint: + path: /v2/domain/resolve/whois + method: POST + data_selector: data + params: {} +- name: email_verifier_instant_completed + endpoint: + path: /webhook/email_verifier/instant/completed + method: POST + data_selector: payload + params: {} +- name: email_verifier_bulk_completed + endpoint: + path: /webhook/email_verifier/bulk/completed + method: POST + data_selector: payload + params: {} +- name: email_finder_instant_completed + endpoint: + path: /webhook/email_finder/instant/completed + method: POST + data_selector: payload + params: {} +- name: email_finder_bulk_completed + endpoint: + path: /webhook/email_finder/bulk/completed + method: POST + data_selector: payload + params: {} +- name: form_guard_email_validation_completed + endpoint: + path: /webhook/form_guard/email_validation/completed + method: POST + data_selector: payload + params: {} +- name: webhook + endpoint: + path: /webhook + method: POST + data_selector: webhook_data + params: {} +- name: email_verifier_instant_completed + endpoint: + path: /webhooks/email_verifier/instant/completed + method: POST + data_selector: payload +- name: email_verifier_bulk_completed + endpoint: + path: /webhooks/email_verifier/bulk/completed + method: POST + data_selector: payload +- name: email_finder_instant_completed + endpoint: + path: /webhooks/email_finder/instant/completed + method: POST + data_selector: payload +- name: email_finder_bulk_completed + endpoint: + path: /webhooks/email_finder/bulk/completed + method: POST + data_selector: payload +- name: form_guard_email_validation_completed + endpoint: + path: /webhooks/form_guard/email_validation/completed + method: POST + data_selector: payload +- name: email_validation + endpoint: + path: /email-validation + method: POST + data_selector: validation_result +- name: phone_validation + endpoint: + path: /phone-validation + method: POST + data_selector: validation_results +- name: name_validation + endpoint: + path: /name-validation + method: POST + data_selector: result + params: {} +- name: email_validation + endpoint: + path: /email-validation + method: POST +- name: Name Validation + endpoint: + path: /name-validation + method: GET + data_selector: records +- name: email + enabled: true + feedback: true + block_disposable_account: true + block_catchall_status: false + feedback_invalid_message: invalid email address + feedback_disposable_account_message: invalid - disposable account not allowed + feedback_catchall_message: catch all email not acceptable, please enter a different + email address + feedback_on_timeout_message: email could not be verified - timeout occurred + feedback_on_usage_limit_crossed_message: unable to verify the email address, usage + limit crossed + feedback_invalid_classname: co-error-msg + suggest_email: true + suggest_email_message_template: did you mean __suggested_email_address__? +- name: phone + enabled: false + feedback: true + feedback_invalid_message: invalid phone number + feedback_on_timeout_message: phone number could not be verified - timeout occurred + feedback_on_usage_limit_crossed_message: unable to verify the phone number, usage + limit crossed + feedback_invalid_classname: co-phone-error-msg +- name: name + enabled: false + feedback: true + gibberish_threshold: high + block_gibberish_name: true + feedback_invalid_message: invalid name + feedback_on_timeout_message: name could not be verified - timeout occurred + feedback_on_usage_limit_crossed_message: unable to verify the Name, usage limit + crossed + feedback_invalid_classname: co-name-error-msg +notes: +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Compliant as both a Data Processor and Data Controller. +- Google Sheets relies on consistent online access for updating processes on the client + side within the browser. +- No charges for re-verifying emails that were previously verified. +- Google Sheets daily API rate limit stands at 500 verifications per day. +- Webhook events themselves are not charged. +- Webhook URLs must be publicly accessible and support HTTPS. +- Clearout ensures customer data privacy and security by following top security measures, + including GDPR compliance, ISO compliance, and SOC 2 Type II certification. +- Clearout email verification is 99% accurate, providing the best in breed standard + for measuring verifications. +- The maximum number of bulk verification requests you can have in the queue depends + on your subscription plan. +- Credits do not reset each month. With all subscription plans, unused credits roll + over and never expire. +- Emails sent to the Safe-to-Send (Guaranteed Deliverables) category must be sent + within 24 hours from the time of verification to qualify; messages sent after this + timeframe will not be eligible for a refund under the deliverability guarantee. +- Clearout is fully GDPR Compliant and ISO & SOC 2 Type II Certified. +- Clearout email finder is GDPR compliant. +- Utilizes REST API for real-time validation of emails and phone numbers. +- Credits carry over and do not expire. +- Unused credits roll over and never expire. +- Credits do not expire, ensuring continued value from your purchase. +- Credits Never Expire +- 24/7 Support With Expert Marketers +- Fully GDPR Compliant +- ISO & SOC 2 Type II Certified +- Utilizes OAuth2 with refresh token +- Real-time validation ensures only valid leads are captured +- High validation accuracy to ensure emails are correctly verified. +- Immediate checking of email addresses during entry. +- Ability to verify large lists quickly and efficiently. +- Emails sent to the Safe-to-Send (Guaranteed Deliverables) category must be sent + within 24 hours from the time of verification to qualify; messages sent after this + timeframe will not be eligible for a refund under the deliverability guarantee, + as the status of an email can change anytime and is beyond Clearout’s control. +- Certain domains, including educational and institutional (.edu) domains, free service + providers (e.g., Yahoo, AOL), and mail servers behind aggressive anti-spam settings + like Office 365, are not covered under the 97% deliverability guarantee, since the + recipient servers claim they are valid but may still bounce when sent to. +- Users mention they would love to have more trial credits for testing the service. +- Uses OAuth2 with refresh token — requires setup of connected app in Clearout +- API supports email verification and finding services +- Various tools offer free credits for testing purposes. +- Employs advanced technologies for swift data processing. +- Extension can run alongside other tabs/windows for multitasking +- Build prospects from LinkedIn invitation page +- Plugin requires a minimum WordPress version of 4.6, tested and compatible with version + 5.2.1 +- Integrates seamlessly with HubSpot for email validation +- Real-time validation prevents invalid emails from being submitted +- The API token can be created or obtained by creating a ‘Server’ App from Apps menu. +- Clearout integrates with HubSpot for real-time email validation. +- Credits purchased never expire. +- Daily limit resets at EoD based on the organization’s timezone. +- Email verification is the most effective technique to ensure quality data acquisition. +- The bulk email verifier will run your list across multiple algorithms to check if + each email on the particular list is valid and deliverable or not. +- The list should contain one (and only one) email address in each row. +- Email addresses present more than once in the same email list are treated as duplicates. + Credits will not be charged for verification of the duplicate email addresses. +- Clearout checks if the email address belongs to a temporary account created for + a short period, like a few hours to a few days. +- Stay up to date with always using the latest version +- The daily limit resets at EoD based on the organization’s timezone. +- Base URL might vary based on the type of accounts. +- Email marketing is the category that continues to perform effectively year after + year. +- Email deliverability is the foundation of the success of an email marketing campaign. +- The billing access is available with the owner only. +- The results are saved for 30 days only. +- Email addresses should appear in the same column in each row. +- Clearout is committed to maintaining your trust and we are transparent in our practices. +- Your privacy matters to Clearout. +- The result file can be downloaded with or without the duplicates being part of the + result by choosing the correct download option. +- Credits are not charged if the result falls under 'not found' or 'duplicate'. +- Clearout APIs have a base URL to which all the endpoint paths are appended, since + base URL might vary based on the type of accounts API users are advised to check + their base URL by logging into Clearout app and by navigating to Account->API tab +- Clearout offers a free account with 100 free credits. +- Payments made on the Platform are not refundable under any circumstances. +- Clearout Service is available in the European region for European users to comply + with GDPR so that no data processed outside of the European region. +- Clearout complies with GDPR and strives to always provide you with the ease of knowing + your data is strictly secured. +- Clearout Service is available in the European region for European users to comply + with GDPR. +- Rate limits apply — check your account settings for limits. +- Credits never expire and are carried forward +- Users can upgrade or downgrade their plan at any time +- Clearout offers a free account with 100 free credits. This is a great zero-risk + way for a comprehensive free trial. +- Credits never expire and roll over with subscription plans. +- Supported file extensions are .xlsx, .csv +- Default optimize option is 'highest_accuracy' +- Default ignore_duplicate_file option is 'false' +- Clearout's service is fully compliant with the GDPR and we commit in never selling + or sharing the addresses you verify using our system. +- Ensure to use Clearout Zap version (>2.2.0) to address Zapier's 30-second action + timeout. +- Data transmission is secured with 256-bit SSL. +- Data is not stored for more than 30 days. +- Users who prefer to continue with an older version can handle longer-running tasks + by using Zapier’s webhook-based callback service for asynchronous processing. +- Clearout offers email finder tool. +- Clearout provides Google Sheets add-on. +- 100% GDPR and Highest level security +- 100 Free Credits +- No Credit Card For Signup +- Money-Back Guarantee +- 100 free credits on successful signup +- Credits never expire +- 99% Accuracy +- 10 times faster turnaround time +- No Credit Card Required +- Some email services may require specific API keys for verification. +- Many tools offer free credits for testing their services. +- Should be able to identify whether an email is going to bounce. +- Highlighting risky emails such as spam traps, disposables, gibberish, etc. +- Seamless integration with your existing CRM, ESP, and other tools. +- Detailed insights and reporting on verification results. +- Good to have for teams working together from a central account. +- Adherence to data protection regulations like GDPR, ISO, SOC2 TYPE II. +- Reliable customer service for assistance and troubleshooting. +- Support and plans customized for enterprises with larger requirements. +- Most tools offer free credits for testing. +- Some tools lack integration with major platforms. +- Clearout helps maintain hygiene of your database by verifying emails at the point + of capture. +- Integrate Clearout’s REST API into your existing workflow for automated email discovery + and validation. +- Clearout is GDPR, SOC 2 Type II, and ISO-compliant, ensuring enterprise-grade security + and data privacy for all users. +- Clearout's bulk email validator helps ensure that your mailing list contains only + valid email addresses, eliminating the spam complaints, enhancing your sender reputation. +- Clearout uses layered verification to detect valid, deliverable inboxes across even + catch-all domains. +- Clearout is ISO-certified, GDPR-ready, and built with a transparent opt-out system. +- Find email addresses of your LinkedIn connections +- Ensure stable internet connection for smooth operation. +- Google Sheets daily API rate limit is set at 500 verifications per day. +- Requires a valid API token for authentication +- Ensure settings are correctly configured before testing +- Provides valuable insights and contact details for LinkedIn connections +- Default timeout for request is 130,000 milliseconds, Maximum allowed wait time should + not exceed 180,000 milliseconds. +- Google Sheets relies on consistent online access for updating processes. +- Test immediately to ensure the plug-in settings are correct. +- Supported file extensions are .csv, .xlsx +- Maximum allowed wait time should not exceed 180,000 milliseconds +- Default timeout value is 30,000 milliseconds +- The secret token is only visible during generation or rotation. +- Always validate webhook signatures in production. +- Never process webhook data without proper verification. +- Use ngrok for local testing of webhooks. +- All test URLs must use HTTPS for security +- Test events are sent immediately (no retries) +- Test events are free and don't consume credits +- Webhook deliveries may fail due to HTTP errors, timeouts, network issues, or server + unavailability. +- Manual retry functionality is not currently available. +- All webhook endpoints must use HTTPS. +- All webhook events are triggered immediately after the service completes. +- Allows customization of phone validation behavior based on specific requirements. +- Supports multiple phone field configurations. +- Webhook retries are triggered by HTTP error responses, connection timeouts, network + issues, or server unavailability. +- Each webhook request has a maximum timeout of 30 seconds. +- Current Gibberish name detection is based on Markov Chaining detection method and + the model has been trained and tested for USA person names. +- It is recommended to keep the timeout setting at its default value of 10 seconds. +- Unless you have a specific reason to validate only on submission, it's recommended + to keep the mode on AJAX for immediate validation feedback. +- Debug mode should only be enabled in development environments as it may impact performance + and expose sensitive information. +- Allows any email address with a valid mailbox, including role and gibberish accounts, + and blocking disposable accounts. +- Allows only valid business email addresses, blocking free accounts such as gmail.com, + yahoo.com, hotmail and role-based accounts. +- Allows any valid phone number with a valid format +- Allows only valid mobile phone numbers with a valid format +- Allows only landline phone numbers with a valid format +- Custom validation rules for phone numbers can be set +- If you're a first-time user, it's recommended to proceed with the default settings + by clicking Continue. +- If you are updating the Form Guard settings, make sure to reload any pages where + the Form Guard is integrated. +- The widget is not validating my form fields. Check if your form fields have the + correct attributes for auto-detection. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'INVALID_EMAIL: The provided email address is invalid.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'Insufficient credits: Any processes or services requiring credits will not continue.' +- 'INVALID_EMAIL: The email format is invalid.' +- 'PHONE_NOT_VALID: The phone number provided is not valid.' +- '400 Bad Request: Check the request format or parameters.' +- '401 Unauthorized: Ensure API keys are valid.' +- '429 Too Many Requests: Throttle API calls or reduce frequency.' +- 'INVALID_EMAIL: The provided email address is invalid' +- '400 Bad Request: Check the format of the uploaded file.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- '404 Not Found: Verify the endpoint path.' +- '400 Bad Request: Check input data format' +- '401 Unauthorized: Check access token validity' +- '429 Too Many Requests: Slow down the request rate' +- '1000: Invalid API Token, please generate new token' +- '1017: You have reached daily verify limit, please try next day or contact us@clearout.io' +- '400: validation failed' +- '1002: You have exhausted your credits, please add additional credits to continue' +- '401: Unauthorized' +- '429: You have reached API rate limit, try calling after Fri Jul 10 2020 10:59:19 + GMT+0530 (IST) or to increase limit upgrade plan or reach us@clearout.io' +- '503: Service Unavailable' +- '524: Timeout Occurred' +- '400 Bad Request: ''list_id'' is required' +- '401 Unauthorized: Invalid API Token, please generate new token' +- '402 Payment Required: You have exhausted your credits, please add additional credits + to continue' +- 503 Service Unavailable +- '400: validation failed - "email" is required' +- '400 Bad Request: validation failed' +- The app did not respond in-time. It may or may not have completed successfully. +- '402: You have exhausted your credits, please add additional credits to continue' +- '401: Invalid API Token, please generate new token' +- '400 Bad Request: Check the request parameters.' +- '401 Unauthorized: Recheck OAuth credentials.' +- '500 Internal Server Error: Try again later.' +- 'Verification timeout: Retry the request or check email format.' +- 'Invalid API key: Ensure your API key is correct.' +- 'INVALID_API_TOKEN: Check your API token' +- 'EMAIL_NOT_VALID: The provided email address is not valid' +- 'RATE_LIMIT_EXCEEDED: Too many requests made in a short period' +- '400 Bad Request: validation failed, "list_id" is required' +- '402 Payment Required: You do not have sufficient credits for instant email finder' +- '429 OK: You have reached API rate limit, try calling after a certain date' +- '524 A Timeout Occurred: Timeout occurred' +- 'REQUEST_LIMIT_EXCEEDED: You have reached daily verify limit, please try next day + or contact us@clearout.io' +- '400 Bad Request: "email" is required' +- '1083: You have reached the maximum number of email finder bulk requests, please + try after the existing request completes or contact us@clearout.io' +- '1100: Invalid file type' +- '2043: Duplicate file not allowed, set ignore_duplicate_file=true to allow duplicate + file' +- '1028: Your available credits is not enough to find email addresses, please purchase + more credits' +- '1088: Unsupported characters in name fields' +- '402: You do not have sufficient credits for instant email finder' +- '429: You have reached API rate limit' +- '524: Timeout occurred' +- '1101: Your request is already in progress, please wait' +- '429: You have reached API rate limit, try calling after Fri Jul 27 2021 10:59:19 + GMT+0530 (IST) or to increase limit, upgrade plan or reach us@clearout.io' +- '524: A Timeout Occurred' +- '400: "query" is not allowed to be empty' +- '400: validation failed - "url" is not allowed to be empty' +- '400: validation failed, "domain" is required' +- '429: You have reached API rate limit, try calling after specified time or to increase + limit, upgrade plan or reach us@clearout.io' +- '400: Missing signature header' +- '401: Invalid signature or timestamp' +- Missing signature header +- Invalid signature +- Timestamp too old +- Permanent failure occurs after the maximum number of attempts, with no further retries. +- 'Invalid name format: The name entered does not meet validation criteria' +- 'Gibberish detection: The name entered was classified as gibberish' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://app.clearout.io + auth: + type: oauth2 + flow: refresh_token + token_url: https://login.clearout.io/services/oauth2/token + client_id: '{{ dlt.secrets[''clearout_client_id''] }}' + client_secret: '{{ dlt.secrets[''clearout_client_secret''] }}' + refresh_token: '{{ dlt.secrets[''clearout_refresh_token''] }}' + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/cloudify/cloudify-docs.md b/cloudify/cloudify-docs.md new file mode 100644 index 00000000..44fe8d5e --- /dev/null +++ b/cloudify/cloudify-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Cloudify data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def cloudify_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://cloudify.co/api/v2/", + "auth": { + "type": "bearer", + "token": access_token + }, + }, + "resources": [ + nodes,,events,,deployments + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='cloudify_migrations_pipeline', + destination='duckdb', + dataset_name='cloudify_migrations_data', + ) + # Load the data + load_info = pipeline.run(cloudify_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from cloudify_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Nodes: Manage and retrieve information about nodes in your deployment. +- Events: Access event data related to executions and deployments. +- Deployments: Handle deployment operations and configurations. +- Executions: Manage workflow executions like starting, cancelling, and resuming. +- Plugins: Interact with plugins used within the Cloudify environment. + +You will then debug the Cloudify pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Cloudify support. + ```shell + dlt init dlthub:cloudify_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Cloudify API, as specified in @cloudify_migrations-docs.yaml + Start with endpoints nodes and and skip incremental loading for now. + Place the code in cloudify_migrations_pipeline.py and name the pipeline cloudify_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python cloudify_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Cloudify uses OAuth2 for authentication, requiring a connected app setup to manage access tokens, including refresh tokens. + + To get the appropriate API keys, please visit the original source at https://www.cloudify.co/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python cloudify_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline cloudify_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset cloudify_migrations_data + The duckdb destination used duckdb:/cloudify_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline cloudify_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("cloudify_migrations_pipeline").dataset() + # get ode table as Pandas frame + data.ode.df().head() + ``` + +## Running into errors? + +Authentication headers must be included in every secured request. Some endpoints may require specific permissions, and certain features like multi-tenancy are only available in the Premium edition. Additionally, care must be taken regarding OAuth token management and endpoint permissions. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/cloudify/cloudify-docs.yaml b/cloudify/cloudify-docs.yaml new file mode 100644 index 00000000..7ea7cc0b --- /dev/null +++ b/cloudify/cloudify-docs.yaml @@ -0,0 +1,843 @@ +resources: +- name: blueprints + endpoint: + path: /blueprints + method: GET + data_selector: items + params: {} +- name: deployments + endpoint: + path: /deployments + method: GET + data_selector: items + params: {} +- name: events + endpoint: + path: /events + method: GET + data_selector: items + params: {} +- name: events + endpoint: + path: /api/v2/events + method: GET + data_selector: items + params: {} +- name: executions + endpoint: + path: /api/v2/executions + method: GET + data_selector: Token + params: {} +- name: nodes + endpoint: + path: /api/v2/nodes + method: GET + data_selector: items + params: {} +- name: plugins + endpoint: + path: /api/v2/plugins/{plugin-id} + method: GET + data_selector: Token + params: {} +- name: blueprints + endpoint: + path: /api/v2/blueprints + method: GET + data_selector: items +- name: deployments + endpoint: + path: /api/v2/deployments + method: GET + data_selector: items +- name: events + endpoint: + path: /api/v2/events + method: GET + data_selector: items +- name: plugins + endpoint: + path: /api/v2/plugins + method: GET + data_selector: Token + params: {} +- name: snapshots + endpoint: + path: /api/v2/snapshots + method: GET + data_selector: items + params: {} +- name: tokens + endpoint: + path: /api/v2/tokens + method: GET + data_selector: value + params: {} +- name: events + endpoint: + path: /events + method: GET + data_selector: items +- name: executions + endpoint: + path: /executions + method: GET + data_selector: Token +- name: node_instances + endpoint: + path: /node_instances + method: GET + data_selector: Token +- name: nodes + endpoint: + path: /nodes + method: GET + data_selector: items +- name: plugins + endpoint: + path: /plugins + method: GET + data_selector: Token +- name: plugins + endpoint: + path: /api/v2/plugins + method: GET + data_selector: Token + params: {} +- name: snapshots + endpoint: + path: /api/v2/snapshots + method: GET + data_selector: items + params: {} +- name: tokens + endpoint: + path: /api/v2/tokens + method: GET + data_selector: value + params: {} +- name: cfy_cluster_manager_generate_config + endpoint: + path: /generate-config + method: GET + data_selector: options + params: + output-path: ./cfy_cluster_config.yaml + three-nodes: true + nine-nodes: true + external-db: true + verbose: true +- name: cfy_cluster_manager_install + endpoint: + path: /install + method: POST + data_selector: options + params: + config-path: ./cfy_cluster_config.yaml + override: true + validate: true + verbose: true +- name: cfy_cluster_manager_remove + endpoint: + path: /remove + method: DELETE + data_selector: options + params: + config-path: ./cfy_cluster_config.yaml + verbose: true +- name: cfy_cluster_manager_upgrade + endpoint: + path: /upgrade + method: PUT + data_selector: options + params: + config-path: ./cfy_cluster_config.yaml + upgrade-rpm: true + verbose: true +- name: agent + endpoint: + path: /agents + method: GET +- name: generate_config + endpoint: + path: /cfy_cluster_manager/generate-config + method: GET + data_selector: options + params: + output-path: ./cfy_cluster_config.yaml +- name: install_cluster + endpoint: + path: /cfy_cluster_manager/install + method: POST + data_selector: options + params: + config-path: ./cfy_cluster_config.yaml +- name: remove_cluster + endpoint: + path: /cfy_cluster_manager/remove + method: DELETE + data_selector: options + params: + config-path: ./cfy_cluster_config.yaml +- name: upgrade_cluster + endpoint: + path: /cfy_cluster_manager/upgrade + method: PATCH + data_selector: options + params: + config-path: ./cfy_cluster_config.yaml +- name: agents + endpoint: + path: /cloudify_manager/agents + method: GET +- name: release_6.4.0 + endpoint: + path: /cloudify/6.4.0 + method: GET + data_selector: release_notes + params: {} +- name: release_6.3.1 + endpoint: + path: /cloudify/6.3.1 + method: GET + data_selector: release_notes + params: {} +- name: release_6.3.0 + endpoint: + path: /cloudify/6.3.0 + method: GET + data_selector: release_notes + params: {} +- name: release_6.2.1 + endpoint: + path: /cloudify/6.2.1 + method: GET + data_selector: release_notes + params: {} +- name: release_6.1.0 + endpoint: + path: /cloudify/6.1.0 + method: GET + data_selector: release_notes + params: {} +- name: release_6.0.0 + endpoint: + path: /cloudify/6.0.0 + method: GET + data_selector: release_notes + params: {} +- name: release_5.2.7 + endpoint: + path: /cloudify/5.2.7 + method: GET + data_selector: release_notes + params: {} +- name: release_5.2.6 + endpoint: + path: /cloudify/5.2.6 + method: GET + data_selector: release_notes + params: {} +- name: release_5.2.4 + endpoint: + path: /cloudify/5.2.4 + method: GET + data_selector: release_notes + params: {} +- name: release_5.2.3 + endpoint: + path: /cloudify/5.2.3 + method: GET + data_selector: release_notes + params: {} +- name: release_5.2.2 + endpoint: + path: /cloudify/5.2.2 + method: GET + data_selector: release_notes + params: {} +- name: release_5.2.1 + endpoint: + path: /cloudify/5.2.1 + method: GET + data_selector: release_notes + params: {} +- name: release_5.2.0 + endpoint: + path: /cloudify/5.2.0 + method: GET + data_selector: release_notes + params: {} +- name: release_5.1.4 + endpoint: + path: /cloudify/5.1.4 + method: GET + data_selector: release_notes + params: {} +- name: release_5.1.3 + endpoint: + path: /cloudify/5.1.3 + method: GET + data_selector: release_notes + params: {} +- name: release_5.1.2 + endpoint: + path: /cloudify/5.1.2 + method: GET + data_selector: release_notes + params: {} +- name: version_6.4.0 + endpoint: + path: /cloudify/6.4.0/ga-release + method: GET + data_selector: records + params: {} +- name: version_6.3.1 + endpoint: + path: /cloudify/6.3.1/ga-release + method: GET + data_selector: records + params: {} +- name: version_6.3.0 + endpoint: + path: /cloudify/6.3.0/ga-release + method: GET + data_selector: records + params: {} +- name: version_6.2.1 + endpoint: + path: /cloudify/6.2.1/ga-release + method: GET + data_selector: records + params: {} +- name: version_6.1.0 + endpoint: + path: /cloudify/6.1.0/ga-release + method: GET + data_selector: records + params: {} +- name: version_6.0.0 + endpoint: + path: /cloudify/6.0.0/ga-release + method: GET + data_selector: records + params: {} +- name: version_5.2.7 + endpoint: + path: /cloudify/5.2.7/ga-release + method: GET + data_selector: records + params: {} +- name: version_5.2.6 + endpoint: + path: /cloudify/5.2.6/ga-release + method: GET + data_selector: records + params: {} +- name: version_5.2.4 + endpoint: + path: /cloudify/5.2.4/ga-release + method: GET + data_selector: records + params: {} +- name: version_5.2.3 + endpoint: + path: /cloudify/5.2.3/ga-release + method: GET + data_selector: records + params: {} +- name: version_5.2.2 + endpoint: + path: /cloudify/5.2.2/ga-release + method: GET + data_selector: records + params: {} +- name: version_5.2.1 + endpoint: + path: /cloudify/5.2.1/ga-release + method: GET + data_selector: records + params: {} +- name: version_5.2.0 + endpoint: + path: /cloudify/5.2.0/ga-release + method: GET + data_selector: records + params: {} +- name: version_5.1.4 + endpoint: + path: /cloudify/5.1.4/ga-release + method: GET + data_selector: records + params: {} +- name: version_5.1.3 + endpoint: + path: /cloudify/5.1.3/ga-release + method: GET + data_selector: records + params: {} +- name: version_5.1.2 + endpoint: + path: /cloudify/5.1.2/ga-release + method: GET + data_selector: records + params: {} +- name: release_6.4.0 + endpoint: + path: /cloudify/releases/6.4.0 + method: GET + data_selector: release_data + params: {} +- name: release_6.3.1 + endpoint: + path: /cloudify/releases/6.3.1 + method: GET + data_selector: release_data + params: {} +- name: release_6.3.0 + endpoint: + path: /cloudify/releases/6.3.0 + method: GET + data_selector: release_data + params: {} +- name: release_6.2.1 + endpoint: + path: /cloudify/releases/6.2.1 + method: GET + data_selector: release_data + params: {} +- name: release_6.2.0 + endpoint: + path: /cloudify/releases/6.2.0 + method: GET + data_selector: release_data + params: {} +- name: release_6.1.0 + endpoint: + path: /cloudify/releases/6.1.0 + method: GET + data_selector: release_data + params: {} +- name: release_6.0.0 + endpoint: + path: /cloudify/releases/6.0.0 + method: GET + data_selector: release_data + params: {} +- name: release_5.2.7 + endpoint: + path: /cloudify/releases/5.2.7 + method: GET + data_selector: release_data + params: {} +- name: release_5.2.6 + endpoint: + path: /cloudify/releases/5.2.6 + method: GET + data_selector: release_data + params: {} +- name: release_5.2.4 + endpoint: + path: /cloudify/releases/5.2.4 + method: GET + data_selector: release_data + params: {} +- name: release_5.2.3 + endpoint: + path: /cloudify/releases/5.2.3 + method: GET + data_selector: release_data + params: {} +- name: release_5.2.2 + endpoint: + path: /cloudify/releases/5.2.2 + method: GET + data_selector: release_data + params: {} +- name: release_5.2.1 + endpoint: + path: /cloudify/releases/5.2.1 + method: GET + data_selector: release_data + params: {} +- name: release_5.2.0 + endpoint: + path: /cloudify/releases/5.2.0 + method: GET + data_selector: release_data + params: {} +- name: release_5.1.4 + endpoint: + path: /cloudify/releases/5.1.4 + method: GET + data_selector: release_data + params: {} +- name: release_5.1.3 + endpoint: + path: /cloudify/releases/5.1.3 + method: GET + data_selector: release_data + params: {} +- name: user-post + endpoint: + path: /posts/{{POST_ID}} + method: PUT + data_selector: rest_calls + params: {} +- name: agents + endpoint: + path: /agents + method: GET + data_selector: records +- name: deployments + endpoint: + path: /deployments + method: GET + data_selector: records +- name: environment + endpoint: + path: /deployments + method: GET + data_selector: outputs +- name: executions + endpoint: + path: /executions + method: POST +- name: blueprint_path + endpoint: + path: -b, --blueprint-path + method: GET + data_selector: none + params: + default: (blueprint.yaml) +- name: config + endpoint: + path: -c, --config + method: GET + data_selector: none + params: {} +- name: verbose + endpoint: + path: -v, --verbose + method: GET + data_selector: none + params: {} +- name: format + endpoint: + path: -f, --format + method: GET + data_selector: none + params: + default: line-by-line standard logger format +- name: skip_suggestions + endpoint: + path: -xs, --skip-suggestions + method: GET + data_selector: none + params: {} +- name: autofix + endpoint: + path: -af, --autofix + method: GET + data_selector: none + params: + default: 'off' +- name: executions + endpoint: + path: /executions + method: POST +- name: blueprint_path + endpoint: + path: -b, --blueprint-path + method: GET + data_selector: blueprint-path + params: + default: (blueprint.yaml) +- name: config + endpoint: + path: -c, --config + method: GET + data_selector: config + params: {} +- name: verbose + endpoint: + path: -v, --verbose + method: GET + data_selector: verbose + params: {} +- name: format + endpoint: + path: -f, --format + method: GET + data_selector: format + params: + default: line-by-line standard logger format +- name: skip_suggestions + endpoint: + path: -xs, --skip-suggestions + method: GET + data_selector: skip-suggestions + params: {} +- name: autofix + endpoint: + path: -af, --autofix + method: GET + data_selector: autofix + params: + default: 'off' +- name: certificates + endpoint: + path: /cli/maint_cli/certificates/ + method: GET +- name: cluster + endpoint: + path: /cli/maint_cli/clusters/ + method: GET +- name: config + endpoint: + path: /cli/maint_cli/config/ + method: GET +- name: init + endpoint: + path: /cli/maint_cli/init/ + method: GET +- name: ldap + endpoint: + path: /cli/maint_cli/ldap/ + method: GET +- name: license + endpoint: + path: /cli/maint_cli/license/ + method: GET +- name: profiles + endpoint: + path: /cli/maint_cli/profiles/ + method: GET +- name: sites + endpoint: + path: /cli/maint_cli/sites/ + method: GET +- name: snapshots + endpoint: + path: /cli/maint_cli/snapshots/ + method: GET +- name: ssh + endpoint: + path: /cli/maint_cli/ssh/ + method: GET +- name: tenants + endpoint: + path: /cli/maint_cli/tenants/ + method: GET +- name: user-groups + endpoint: + path: /cli/maint_cli/usergroups/ + method: GET +- name: users + endpoint: + path: /cli/maint_cli/users/ + method: GET +- name: certificates + endpoint: + path: /cli/maint_cli/certificates/ + method: GET +- name: cluster + endpoint: + path: /cli/maint_cli/clusters/ + method: GET +- name: config + endpoint: + path: /cli/maint_cli/config/ + method: GET +- name: init + endpoint: + path: /cli/maint_cli/init/ + method: GET +- name: ldap + endpoint: + path: /cli/maint_cli/ldap/ + method: GET +- name: license + endpoint: + path: /cli/maint_cli/license/ + method: GET +- name: profiles + endpoint: + path: /cli/maint_cli/profiles/ + method: GET +- name: sites + endpoint: + path: /cli/maint_cli/sites/ + method: GET +- name: snapshots + endpoint: + path: /cli/maint_cli/snapshots/ + method: GET +- name: ssh + endpoint: + path: /cli/maint_cli/ssh/ + method: GET +- name: tenants + endpoint: + path: /cli/maint_cli/tenants/ + method: GET +- name: user-groups + endpoint: + path: /cli/maint_cli/usergroups/ + method: GET +- name: users + endpoint: + path: /cli/maint_cli/users/ + method: GET +- name: blueprints + endpoint: + path: /blueprints + method: POST +- name: deployments + endpoint: + path: /deployments/{{deployment-id}} + method: PUT +- name: executions + endpoint: + path: /executions + method: POST +- name: upload_blueprint + endpoint: + path: /blueprints + method: POST +- name: create_deployment + endpoint: + path: /deployments/{{deployment-id}} + method: PUT +- name: execute_workflow + endpoint: + path: /executions + method: POST +- name: service-base-network + endpoint: + path: /services/data/vXX.X/sobjects/service-base-network + method: POST + data_selector: records + params: + incremental: external_network_name +- name: firewall + endpoint: + path: /network-automation-example-fortigate.zip + method: POST + data_selector: upload + params: {} +- name: loadbalancer + endpoint: + path: /network-automation-example-bigip.zip + method: POST + data_selector: upload + params: {} +- name: webserver + endpoint: + path: /network-automation-example-httpd.zip + method: POST + data_selector: upload + params: {} +- name: servicechain + endpoint: + path: /network-automation-example-service.zip + method: POST + data_selector: upload + params: {} +- name: service-base-network + endpoint: + path: /github.com/cloudify-community/blueprint-examples/releases/download/latest/network-automation-example-network-topology.zip + method: POST + data_selector: blueprint + params: {} +- name: manager_discovery + endpoint: + path: /manager_discovery.yaml + method: POST +notes: +- Authentication headers should be added to every request sent to a secured manager. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- 'Cloudify offers three ways to get started and onboard the Cloudify Manager: Cloudify + as a Service, Cloudify Premium, and Cloudify Community Version.' +- Some objects may return nulls in deeply nested fields +- A load balancer is required for load distribution over the managers. +- The Cluster Manager package is currently supported over CentOS or RHEL OS. +- For Linux platforms, you must have Python installed on the image at the time of + the agent installation. +- For Windows, the agent installer is bundled with a Python interpreter. +- 6.4.0 RN +- 6.3.1 RN +- 6.3.0 RN +- 6.2.1 RN +- 6.2.0 RN +- 6.1.0 RN +- 6.0.0 RN +- 5.2.7 RN +- 5.2.6 RN +- 5.2.4 RN +- 5.2.3 RN +- 5.2.2 RN +- 5.2.1 RN +- 5.2.0 RN +- 5.1.4 RN +- 5.1.3 RN +- Some API endpoints may require specific permissions to access. +- Multi-tenancy is a Cloudify Premium-edition feature that enables you to create multiple + independent logical groups of resources as isolated environments on a single Cloudify + Manager. +- Cloudify uses RabbitMQ as its broker, and supports configurable security. +- Multi-tenancy is a Cloudify Premium-edition feature that enables you to create multiple + independent logical groups of resources. +- When in maintenance mode, Cloudify Manager activity is suspended. +- Creates a user via some REST API. +- Schedules are polled every 60 seconds, and those which have executions at the given + time are run. +- When the manager is in maintenance mode, the scheduler won’t run any executions. +- The UI side of deployment schedules is not yet up to speed with the new scheduling + mechanism +- To make use of CLOUDIFY_TOKEN you must not set CLOUDIFY_USERNAME and CLOUDIFY_PASSWORD +- Defining CLOUDIFY_SSL_TRUST_ALL as true bypasses certificate verification +- To use CLOUDIFY_TOKEN, do not set CLOUDIFY_USERNAME and CLOUDIFY_PASSWORD +- CLOUDIFY_SSL_TRUST_ALL set to true can bypass certificate verification +- Cloudify uses plugins to communicate with external services/systems. +- Only STARTED, CANCELLED and FAILED executions can be resumed. +- The API supports starting, cancelling, and resuming workflow executions. +- The simplest way to get the Cloudify CLI utility is through the Cloudify docker + image. +- Running a command with the --quiet flag limits the log output to critical logs only. +- Requires setup of connected app in api +- A .cloudify directory is created under the Home directory. +- The directory contains a file named config.yaml that you can customize. +- Activate your manager by applying your Cloudify license. +- Use Docker to deploy Cloudify Manager +- Ensure to apply your Cloudify license for Premium versions. +- Supports multiple authentication methods Token- and 'Kube config'- based authentication. +- Best practices for agile blueprint development +- Plugin development should ensure context independence +- The name of secrets must be compatible with the secrets as inputs used in 'Deploy + on' mechanism. +- Cloudify reserves the right to change these Terms at any time. +- Software is licensed, not sold. +- Cloudify provides built-in integration with a list of Ci/CD tools such as Jenkins, + Git Actions, Circle CI, etc. +- The name of secrets must be compatible with the secrets as inputs used in “Deploy + on” mechanism. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- Configuration file is validated before it is being used. +- Connection to each instance is tested before the installation starts. +- 'CANCELLED: Execution has been cancelled' +- 'FAILED: Execution has failed' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://cloudify.co + auth: + type: oauth2 +source_metadata: null diff --git a/companycam/companycam-docs.md b/companycam/companycam-docs.md new file mode 100644 index 00000000..6086229f --- /dev/null +++ b/companycam/companycam-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete CompanyCam data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def companycam_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.companycam.com/v2/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + tags,,groups,,photos + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='companycam_migrations_pipeline', + destination='duckdb', + dataset_name='companycam_migrations_data', + ) + # Load the data + load_info = pipeline.run(companycam_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from companycam_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Tags: Manage and retrieve tags. +- Groups: Handle group-related operations. +- Photos: Upload and access photos. +- Projects: Manage projects and their details. +- Users: Handle user-related operations. + +You will then debug the CompanyCam pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with CompanyCam support. + ```shell + dlt init dlthub:companycam_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for CompanyCam API, as specified in @companycam_migrations-docs.yaml + Start with endpoints tags and and skip incremental loading for now. + Place the code in companycam_migrations_pipeline.py and name the pipeline companycam_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python companycam_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + CompanyCam uses a Bearer Token for authorization, requiring you to prepend your token with 'Bearer'. Additionally, OAuth2 is employed, necessitating a client setup. + + To get the appropriate API keys, please visit the original source at https://www.companycam.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python companycam_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline companycam_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset companycam_migrations_data + The duckdb destination used duckdb:/companycam_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline companycam_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("companycam_migrations_pipeline").dataset() + # get ag table as Pandas frame + data.ag.df().head() + ``` + +## Running into errors? + +Be aware that CompanyCam enforces rate limits on API requests, which necessitates implementing a retry mechanism for requests that may be denied due to these limits. Additionally, webhooks require an HTTP 200 response code, or they will retry based on an exponential backoff strategy. Partner integrations are needed for OAuth setup, and the current user is defined by the authentication process. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/companycam/companycam-docs.yaml b/companycam/companycam-docs.yaml new file mode 100644 index 00000000..8fb0c1ef --- /dev/null +++ b/companycam/companycam-docs.yaml @@ -0,0 +1,768 @@ +resources: +- name: projects + endpoint: + path: /projects + method: GET + data_selector: array of objects + params: {} +- name: checklists + endpoint: + path: /v2/checklists + method: GET +- name: checklists + endpoint: + path: /v2/checklists + method: GET +- name: company + endpoint: + path: /v2/company + method: GET +- name: current_user + endpoint: + path: /v2/users/current + method: GET + data_selector: '' +- name: users + endpoint: + path: /v2/users + method: GET +- name: create_user + endpoint: + path: /v2/users + method: POST +- name: user + endpoint: + path: /v2/users/{id} + method: GET +- name: update_user + endpoint: + path: /v2/users/{id} + method: PUT +- name: delete_user + endpoint: + path: /v2/users/{id} + method: DELETE +- name: projects + endpoint: + path: /v2/projects + method: POST +- name: projects + endpoint: + path: /v2/projects/{id} + method: GET +- name: projects + endpoint: + path: /v2/projects/{id} + method: PUT +- name: projects + endpoint: + path: /v2/projects/{id} + method: DELETE +- name: archive_project + endpoint: + path: /v2/projects/{id}/archive + method: PATCH +- name: restore_project + endpoint: + path: /v2/projects/{id}/restore + method: PUT +- name: photos + endpoint: + path: /projects/{project_id}/photos + method: GET +- name: photos + endpoint: + path: /v2/projects/{project_id}/photos + method: POST +- name: assigned_users + endpoint: + path: /v2/projects/{project_id}/assigned_users + method: GET +- name: assign_user_to_project + endpoint: + path: /v2/projects/{project_id}/assigned_users/{user_id} + method: PUT +- name: remove_assigned_user + endpoint: + path: /v2/projects/{project_id}/assigned_users/{user_id} + method: DELETE +- name: update_project_notepad + endpoint: + path: /v2/projects/{project_id}/notepad + method: PUT +- name: project_collaborators + endpoint: + path: /v2/projects/{project_id}/collaborators + method: GET +- name: project_invitations + endpoint: + path: /v2/projects/{project_id}/invitations + method: GET +- name: project_invitation + endpoint: + path: /v2/projects/{project_id}/invitations + method: POST +- name: project_labels + endpoint: + path: /v2/projects/{project_id}/labels + method: GET +- name: projects + endpoint: + path: /v2/projects/{project_id}/labels + method: POST +- name: delete_label + endpoint: + path: /v2/projects/{project_id}/labels/{id} + method: DELETE +- name: project_documents + endpoint: + path: /v2/projects/{project_id}/documents + method: GET +- name: upload_document + endpoint: + path: /v2/projects/{project_id}/documents + method: POST +- name: project_comments + endpoint: + path: /v2/projects/{project_id}/comments + method: GET +- name: project_comment + endpoint: + path: /v2/projects/{project_id}/comments + method: POST +- name: project_checklists + endpoint: + path: /v2/projects/{project_id}/checklists + method: GET +- name: project_checklists + endpoint: + path: /v2/projects/{project_id}/checklists + method: GET +- name: create_checklist + endpoint: + path: /v2/projects/{project_id}/checklists + method: POST +- name: create_checklist + endpoint: + path: /v2/projects/{project_id}/checklists + method: POST +- name: project_checklist + endpoint: + path: /v2/projects/{project_id}/checklists/{id} + method: GET +- name: project_checklist + endpoint: + path: /v2/projects/{project_id}/checklists/{id} + method: GET +- name: photos + endpoint: + path: /v2/photos + method: GET +- name: photos + endpoint: + path: /photos + method: GET +- name: photos + endpoint: + path: /v2/photos/{id} + method: GET +- name: photos + endpoint: + path: /v2/photos/{id} + method: GET +- name: photo + endpoint: + path: /v2/photos/{id} + method: PUT +- name: delete_photo + endpoint: + path: /v2/photos/{id} + method: DELETE +- name: update_photo + endpoint: + path: /v2/photos/{id} + method: PUT +- name: list_photo_tags + endpoint: + path: /v2/photos/{photo_id}/tags + method: GET +- name: photo + endpoint: + path: /v2/photos/{id} + method: DELETE +- name: photos + endpoint: + path: /v2/photos/{photo_id}/tags + method: POST +- name: list_photo_tags + endpoint: + path: /v2/photos/{photo_id}/tags + method: GET +- name: photo_comments + endpoint: + path: /v2/photos/{photo_id}/comments + method: GET +- name: photos + endpoint: + path: /v2/photos/{photo_id}/tags + method: POST +- name: photos + endpoint: + path: /v2/photos/{photo_id}/comments + method: POST +- name: photo_comments + endpoint: + path: /v2/photos/{photo_id}/comments + method: GET +- name: update_photo_description + endpoint: + path: /v2/photos/{photo_id}/descriptions + method: POST +- name: tags + endpoint: + path: /v2/tags + method: GET +- name: photos + endpoint: + path: /v2/photos/{photo_id}/comments + method: post +- name: tags + endpoint: + path: /v2/tags + method: POST +- name: tag + endpoint: + path: /v2/tags/{id} + method: GET +- name: update_photo_description + endpoint: + path: /v2/photos/{photo_id}/descriptions + method: POST +- name: tags + endpoint: + path: /v2/tags/{id} + method: PUT +- name: tags + endpoint: + path: /v2/tags + method: GET +- name: tag + endpoint: + path: /v2/tags/{id} + method: DELETE +- name: tags + endpoint: + path: /v2/tags + method: POST +- name: checklist_templates + endpoint: + path: /v2/templates/checklists + method: GET +- name: tag + endpoint: + path: /v2/tags/{id} + method: GET +- name: groups + endpoint: + path: /groups + method: GET +- name: tag + endpoint: + path: /v2/tags/{id} + method: PUT +- name: groups + endpoint: + path: /v2/groups + method: POST +- name: tags + endpoint: + path: /v2/tags/{id} + method: DELETE +- name: group + endpoint: + path: /v2/groups/{id} + method: GET +- name: checklist_templates + endpoint: + path: /v2/templates/checklists + method: GET +- name: groups + endpoint: + path: /v2/groups/{id} + method: PUT +- name: groups + endpoint: + path: /v2/groups + method: GET +- name: group + endpoint: + path: /v2/groups/{id} + method: DELETE +- name: groups + endpoint: + path: /v2/groups + method: POST +- name: webhooks + endpoint: + path: /v2/webhooks + method: GET +- name: group + endpoint: + path: /v2/groups/{id} + method: GET +- name: webhook + endpoint: + path: /v2/webhooks + method: POST +- name: webhook + endpoint: + path: /v2/webhooks/{id} + method: GET +- name: group + endpoint: + path: /v2/groups/{id} + method: PUT +- name: webhook + endpoint: + path: /v2/webhooks/{id} + method: PUT +- name: groups + endpoint: + path: /v2/groups/{id} + method: DELETE +- name: webhook + endpoint: + path: /v2/webhooks/{id} + method: DELETE +- name: webhooks + endpoint: + path: /v2/webhooks + method: GET +- name: webhook + endpoint: + path: /v2/webhooks + method: POST +- name: webhook + endpoint: + path: /v2/webhooks/{id} + method: GET +- name: checklists + endpoint: + path: /reference/listchecklists + method: GET +- name: company + endpoint: + path: /reference/getcurrentcompany + method: GET +- name: users + endpoint: + path: /reference/getcurrentuser + method: GET +- name: projects + endpoint: + path: /reference/listprojects + method: GET +- name: photos + endpoint: + path: /reference/listphotos + method: GET +- name: tags + endpoint: + path: /reference/listtags + method: GET +- name: templates + endpoint: + path: /reference/listchecklisttemplates + method: GET +- name: groups + endpoint: + path: /reference/listgroups + method: GET +- name: webhooks + endpoint: + path: /reference/listwebhooks + method: GET +- name: users + endpoint: + path: /reference/listusers + method: GET + data_selector: records +- name: webhook + endpoint: + path: /v2/webhooks/{id} + method: PUT +- name: projects + endpoint: + path: /reference/listprojects + method: GET + data_selector: records +- name: photos + endpoint: + path: /reference/listphotos + method: GET + data_selector: records +- name: Contact + endpoint: + path: /reference/contact + method: GET +- name: webhook + endpoint: + path: /v2/webhooks/{id} + method: DELETE +- name: comment + endpoint: + path: /reference/comment + method: GET + data_selector: records +- name: Address + endpoint: + path: /reference/address + method: GET +- name: checklists + endpoint: + path: /reference/listchecklists + method: GET +- name: company + endpoint: + path: /reference/getcurrentcompany + method: GET +- name: users + endpoint: + path: /reference/getcurrentuser + method: GET +- name: ImageURI + endpoint: + path: /reference/imageuri + method: GET + data_selector: uri +- name: Users + endpoint: + path: /reference/listusers + method: GET + data_selector: records + params: {} +- name: Retrieve Current User + endpoint: + path: /reference/getcurrentuser + method: GET + data_selector: records + params: {} +- name: Create User + endpoint: + path: /reference/createuser + method: POST + data_selector: records + params: {} +- name: Retrieve User + endpoint: + path: /reference/getuser + method: GET + data_selector: records + params: {} +- name: Update User + endpoint: + path: /reference/updateuser + method: PUT + data_selector: records + params: {} +- name: Delete User + endpoint: + path: /reference/deleteuser + method: DELETE + data_selector: records + params: {} +- name: checklists + endpoint: + path: /reference/listchecklists + method: GET +- name: company + endpoint: + path: /reference/getcurrentcompany + method: GET +- name: users + endpoint: + path: /reference/getcurrentuser + method: GET +- name: projects + endpoint: + path: /reference/listprojects + method: GET +- name: photos + endpoint: + path: /reference/listphotos + method: GET +- name: tags + endpoint: + path: /reference/listtags + method: GET +- name: templates + endpoint: + path: /reference/listchecklisttemplates + method: GET +- name: groups + endpoint: + path: /reference/listgroups + method: GET +- name: webhooks + endpoint: + path: /reference/listwebhooks + method: GET +- name: projects + endpoint: + path: /reference/listprojects + method: GET + data_selector: records +- name: company + endpoint: + path: /reference/getcurrentcompany + method: GET + data_selector: records +- name: user + endpoint: + path: /reference/getcurrentuser + method: GET + data_selector: records +- name: photos + endpoint: + path: /reference/listphotos + method: GET + data_selector: photos +- name: photo + endpoint: + path: /reference/getphoto + method: GET + data_selector: photo +- name: update_photo + endpoint: + path: /reference/updatephoto + method: PUT + data_selector: photo +- name: delete_photo + endpoint: + path: /reference/deletephoto + method: DELETE + data_selector: photo +- name: Contact + endpoint: + path: /reference/contact + method: GET + data_selector: records +- name: checklists + endpoint: + path: /reference/listchecklists + method: GET +- name: company + endpoint: + path: /reference/getcurrentcompany + method: GET +- name: users + endpoint: + path: /reference/listusers + method: GET +- name: projects + endpoint: + path: /reference/listprojects + method: GET +- name: photos + endpoint: + path: /reference/listphotos + method: GET +- name: tags + endpoint: + path: /reference/listtags + method: GET +- name: templates + endpoint: + path: /reference/listchecklisttemplates + method: GET +- name: groups + endpoint: + path: /reference/listgroups + method: GET +- name: webhooks + endpoint: + path: /reference/listwebhooks + method: GET +- name: comment + endpoint: + path: /reference/comment + method: GET + data_selector: records +- name: Tags + endpoint: + path: /reference/listtags + method: GET + data_selector: records +- name: Address + endpoint: + path: /address + method: GET +- name: groups + endpoint: + path: /reference/listgroups + method: GET + data_selector: groups + params: {} +- name: ImageURI + endpoint: + path: /reference/imageuri + method: GET +- name: webhook + endpoint: + path: /reference/listwebhooks + method: GET + data_selector: records +- name: Coordinate + endpoint: + path: /coordinate + method: GET + data_selector: coordinate + params: {} +- name: document + endpoint: + path: /documents + method: GET + data_selector: documents +- name: Tag + endpoint: + path: /reference/listtags + method: GET + data_selector: '' +- name: groups + endpoint: + path: /reference/listgroups + method: GET + data_selector: groups +- name: webhook + endpoint: + path: /reference/listwebhooks + method: GET +- name: projects + endpoint: + path: /v2/projects + method: POST + data_selector: null + params: {} +- name: checklists + endpoint: + path: /v2/checklists + method: GET +- name: company + endpoint: + path: /v2/company + method: GET +- name: current_user + endpoint: + path: /v2/users/current + method: GET +- name: projects + endpoint: + path: /projects + method: GET +- name: checklists + endpoint: + path: /v2/checklists + method: GET +- name: photos + endpoint: + path: /photos + method: GET +- name: company + endpoint: + path: /v2/company + method: GET +- name: tags + endpoint: + path: /tags + method: GET +- name: current_user + endpoint: + path: /v2/users/current + method: GET +- name: checklist_templates + endpoint: + path: /v2/templates/checklists + method: GET +- name: projects + endpoint: + path: /projects + method: GET +- name: groups + endpoint: + path: /groups + method: GET +- name: photos + endpoint: + path: /photos + method: GET +- name: webhook + endpoint: + path: /v2/webhooks + method: GET +- name: tags + endpoint: + path: /v2/tags + method: GET +- name: checklist_templates + endpoint: + path: /v2/templates/checklists + method: GET +- name: groups + endpoint: + path: /groups + method: GET +- name: webhooks + endpoint: + path: /webhooks + method: GET +notes: +- Partner integrations are required to use OAuth if at all possible. +- CompanyCam uses a Bearer Token to authorize the request, so make sure you prepend + your token with Bearer. +- Each time you request a new access_token, you will receive a new refresh_token as + well. +- A webhook with a total error count above 25 will be disabled. +- Total error count is reset with each successful response. +- CompanyCam rate limits API requests to protect against excessive use. +- It is recommended that you implement a sufficient retry mechanism in order to account + for potential requests that might be denied because of a rate limit. +- CompanyCam uses a Bearer Token to authorize the request +- To designate a different CompanyCam User as the creator or editor, send the User's + CompanyCam email in the request header. +- Uses OAuth2 with authorization code flow — requires setup of a client. +- Webhook requests expect an HTTP 200 response code. +- Webhook will retry with exponential backoff strategy for responses other than 200. +- CompanyCam rate limits API requests to protect against excessive use. It is recommended + that you implement a sufficient retry mechanism in order to account for potential + requests that might be denied because of a rate limit. +- The current User is defined by the person who authenticated with CompanyCam using + the OAuth2.0 flow. +- To designate a different User as the creator or editor, send that User's email in + the request header as X_COMPANYCAM_USER. +errors: +- '400: Bad Request' +- '404: Not Found' +- '500: Internal Server Error' +- HTTP Status Codes +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- 401 Unauthorized +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '400: Bad Request – The request is invalid' +- '401: Unauthorized – The user needs to authenticate or authentication failed' +- '402: Payment Required – The user''s subscription has expired' +- '403: Forbidden – The user doesn’t have privilege to access the resource' +- '404: Not Found – The specified resource could not be found' +- '409: Conflict – The entity is not unique' +- '422: Unprocessable Entity – There was an issue persisting your request due to invalid + data' +- '500: Internal Server Error – We had a problem with our server' +- Any response code that is not exactly a 200 will result in the Webhook to retry +- 'Rate limit exceeded: Implement retry mechanism' +auth_info: + mentioned_objects: [] +client: + base_url: https://api.companycam.com + auth: + type: Bearer +source_metadata: null diff --git a/connexun_text_analysis/connexun-text-analysis-docs.md b/connexun_text_analysis/connexun-text-analysis-docs.md new file mode 100644 index 00000000..17256bd9 --- /dev/null +++ b/connexun_text_analysis/connexun-text-analysis-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Connexun data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def connexun_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.connexun.com/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + summarize,,languages,,sentiment + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='connexun_migration_pipeline', + destination='duckdb', + dataset_name='connexun_migration_data', + ) + # Load the data + load_info = pipeline.run(connexun_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from connexun_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- News: Provides trending news articles and top news from different countries. +- Text Analysis: Offers sentiment analysis and text classification features. +- Language Detection: Identifies languages present in the given text. +- Summarization: Summarizes texts and analyses their content. + +You will then debug the Connexun pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Connexun support. + ```shell + dlt init dlthub:connexun_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Connexun API, as specified in @connexun_migration-docs.yaml + Start with endpoints summarize and and skip incremental loading for now. + Place the code in connexun_migration_pipeline.py and name the pipeline connexun_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python connexun_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + This source uses OAuth2 authentication, requiring an AuthToken in the header for access. + + To get the appropriate API keys, please visit the original source at https://www.connexun.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python connexun_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline connexun_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset connexun_migration_data + The duckdb destination used duckdb:/connexun_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline connexun_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("connexun_migration_pipeline").dataset() + # get ummariz table as Pandas frame + data.ummariz.df().head() + ``` + +## Running into errors? + +Users must set up a connected app to utilize OAuth2 with refresh tokens. Be cautious of potential 503 and 400 error responses, which indicate service unavailability and bad requests respectively. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/connexun_text_analysis/connexun-text-analysis-docs.yaml b/connexun_text_analysis/connexun-text-analysis-docs.yaml new file mode 100644 index 00000000..0122da2f --- /dev/null +++ b/connexun_text_analysis/connexun-text-analysis-docs.yaml @@ -0,0 +1,112 @@ +resources: +- name: sentiment + endpoint: + path: /text-analysis/sentiment + method: POST + data_selector: Sentiment + params: {} +- name: world_trending + endpoint: + path: /news/trending + method: GET + params: {} +- name: top_from_country + endpoint: + path: /news/top/from-country + method: GET + params: {} +- name: top_about_country + endpoint: + path: /news/top/about-country + method: GET + params: {} +- name: inter_country + endpoint: + path: /news/inter-country + method: GET + params: {} +- name: text_popularity + endpoint: + path: /classify/text-popularity + method: POST + data_selector: countries +- name: nationality + endpoint: + path: /classifier/nationality + method: GET + params: {} +- name: summarize + endpoint: + path: /analysis/summarize + method: POST + data_selector: summarization + params: {} +- name: summarize + endpoint: + path: /demos/text-analysis-summarization + method: GET +- name: short_text_geoparser + endpoint: + path: /demos/text-analysis-short-text-geoparser + method: GET +- name: language_detection + endpoint: + path: /demos/text-analysis-language-detection + method: GET +- name: sentiment_evaluation + endpoint: + path: /demos/text-analysis-sentiment-evaluation + method: GET +- name: Local Mentions + endpoint: + path: /news-api/local-mentions + method: GET +- name: languages + endpoint: + path: /languages + method: GET + data_selector: Languages + params: {} +- name: languages + endpoint: + path: /languages + method: GET + data_selector: Languages +- name: summarize + endpoint: + path: /summarize + method: POST + data_selector: summaryResBody +- name: sentiment + endpoint: + path: /sentiment + method: POST + data_selector: sentimentResBody +- name: summarize + endpoint: + path: /summarize + method: POST + data_selector: summaryResBody + params: {} +- name: sentiment + endpoint: + path: /sentiment + method: POST + data_selector: sentimentResBody + params: {} +notes: +- Contact Sales for more information. +- Uses OAuth2 with refresh token — requires setup of connected app in api +errors: +- 503 response +- '400: Error' +auth_info: + mentioned_objects: + - AuthTokenHeader +client: + base_url: https://api.connexun.com + auth: + type: oauth2 + location: header + header_name: AuthToken +source_metadata: null diff --git a/constructiononline/constructiononline-docs.md b/constructiononline/constructiononline-docs.md new file mode 100644 index 00000000..f490d7e4 --- /dev/null +++ b/constructiononline/constructiononline-docs.md @@ -0,0 +1,158 @@ +In this guide, we'll set up a complete ConstructionOnline data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def constructiononline_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://us.constructiononline.com/api/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + rfis,,files,,todos + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='constructiononline_migrations_pipeline', + destination='duckdb', + dataset_name='constructiononline_migrations_data', + ) + # Load the data + load_info = pipeline.run(constructiononline_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from constructiononline_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- RFIs: Manage Request for Information items related to projects. +- Files: Upload and manage project-related files. +- Todos: Track tasks and to-dos for project management. +- Leads: Handle potential client opportunities. +- Notes: Store and manage notes associated with projects. +- Items: Organize various project items. +- Permit: Manage permits required for construction projects. +- Photos: Upload and manage project images. +- Profile: Access and manage user profiles. +- Invoices: Handle invoicing for completed work. + +You will then debug the ConstructionOnline pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with ConstructionOnline support. + ```shell + dlt init dlthub:constructiononline_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for ConstructionOnline API, as specified in @constructiononline_migrations-docs.yaml + Start with endpoints rfis and and skip incremental loading for now. + Place the code in constructiononline_migrations_pipeline.py and name the pipeline constructiononline_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python constructiononline_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The ConstructionOnline API utilizes OAuth2 for authentication, which requires a connected app setup for token generation and management. + + To get the appropriate API keys, please visit the original source at https://www.constructiononline.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python constructiononline_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline constructiononline_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset constructiononline_migrations_data + The duckdb destination used duckdb:/constructiononline_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline constructiononline_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("constructiononline_migrations_pipeline").dataset() + # get fi table as Pandas frame + data.fi.df().head() + ``` + +## Running into errors? + +Access to the ConstructionOnline API is limited to eligible companies with Business or Enterprise subscriptions. Users must be aware that some API responses may return nulls for deeply nested fields. Additionally, certain features and functionalities may depend on user permissions set within the ConstructionOnline platform. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/constructiononline/constructiononline-docs.yaml b/constructiononline/constructiononline-docs.yaml new file mode 100644 index 00000000..50f50a96 --- /dev/null +++ b/constructiononline/constructiononline-docs.yaml @@ -0,0 +1,3190 @@ +resources: +- name: project + endpoint: + path: /api/v1/projects + method: GET + data_selector: records +- name: lead + endpoint: + path: /api/v1/leads + method: GET + data_selector: records +- name: contacts + endpoint: + path: /contacts + method: GET + data_selector: records +- name: Essential Guide to Contacts + endpoint: + path: /essential-guide-to-contacts + method: GET +- name: Public vs. Private Contact Details + endpoint: + path: /public-vs-private-contact-details + method: GET +- name: Add a New Contact + endpoint: + path: /add-new-contacts + method: GET +- name: Import Contacts + endpoint: + path: /import-contacts + method: GET +- name: View a Contact's Projects + endpoint: + path: /view-a-contacts-projects + method: GET +- name: View a Contact's History + endpoint: + path: /view-user-history + method: GET +- name: Edit a Contact + endpoint: + path: /edit-a-contact + method: GET +- name: Bulk Edit the Properties of Multiple Contacts + endpoint: + path: /bulk-edit-properties-of-multiple-contacts + method: GET +- name: Convert a Contact to a Lead + endpoint: + path: /convert-a-contact-to-a-lead + method: GET +- name: Export Contacts to Excel + endpoint: + path: /export-contacts-to-excel + method: GET +- name: Delete a Contact + endpoint: + path: /delete-contact + method: GET +- name: Bulk Delete Multiple Contacts + endpoint: + path: /bulk-delete-multiple-contacts + method: GET +- name: Hide Leads in your Contacts List + endpoint: + path: /hide-leads-in-your-contacts-list + method: GET +- name: daily_logs + endpoint: + path: /daily-logs + method: GET +- name: Items Database & Costbooks + endpoint: + path: /en/items-database-costbooks + method: GET + data_selector: records + params: {} +- name: contacts + endpoint: + path: /contacts + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: data + params: {} +- name: Transmittals + endpoint: + path: /en/transmittals + method: GET + data_selector: records +- name: daily_logs + endpoint: + path: /daily-logs + method: GET + data_selector: dailyLogs +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: data + params: {} +- name: contacts + endpoint: + path: /api/contacts + method: GET + data_selector: data + params: {} +- name: RFIs + endpoint: + path: /en/rfis + method: GET +- name: Submittals + endpoint: + path: /en/submittals + method: GET +- name: Transmittals + endpoint: + path: /en/transmittals + method: GET +- name: submittals + endpoint: + path: /api/v1/submittals + method: GET + data_selector: records + params: {} +- name: transmittals + endpoint: + path: /transmittals + method: GET +- name: warranty_tracking + endpoint: + path: /warranty-tracking + method: GET +- name: permit_tracking + endpoint: + path: /permit-tracking + method: GET +- name: meeting_minutes + endpoint: + path: /meeting-minutes + method: GET +- name: Estimate + endpoint: + path: /create-estimate + method: POST + data_selector: estimateDetails +- name: Create new Folders + endpoint: + path: /create-a-folder-1 + method: GET +- name: Upload Files + endpoint: + path: /upload-a-file-1 + method: GET +- name: Manage Folder Permissions + endpoint: + path: /manage-folder-permissions + method: GET +- name: Create new Albums + endpoint: + path: /create-an-album-1 + method: GET +- name: Upload Photos to a Project + endpoint: + path: /upload-an-image-1 + method: GET +- name: Sort Albums, Folders, & Files + endpoint: + path: /sort-project-files-and-folders-1 + method: GET +- name: Sort Photos within an Album + endpoint: + path: /sort-images-in-an-album-1 + method: GET +- name: Make Albums/Folders Private + endpoint: + path: /make-albums/folders-private-1 + method: GET +- name: Preview Files/Photos + endpoint: + path: /preview-a-file-1 + method: GET +- name: Rename Files/Photos + endpoint: + path: /rename-a-file-or-folder-1 + method: GET +- name: Create a New Blank Document + endpoint: + path: /create-a-new-blank-document-1 + method: GET +- name: Edit Files + endpoint: + path: /edit-created-reports-and-documents-1 + method: GET +- name: Edit Photos + endpoint: + path: /edit-an-image-1 + method: GET +- name: View Details & Comments on Files/Photos + endpoint: + path: /view-file-details-or-comments-1 + method: GET +- name: Delete Photos + endpoint: + path: /delete-an-image-1 + method: GET +- name: Restore/Recover Deleted Albums, Folders, & Files + endpoint: + path: /restore-deleted + method: GET +- name: blank_estimate + endpoint: + path: /create/estimate + method: POST + data_selector: estimate_data + params: {} +- name: Import Estimate from Excel + endpoint: + path: /import/estimate/excel + method: POST + data_selector: importResult + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Estimate Templates + endpoint: + path: /financials/estimate-templates + method: GET + data_selector: templates + params: {} +- name: Estimate Template + endpoint: + path: /import/estimate-template + method: POST + data_selector: template + params: {} +- name: Estimate Templates + endpoint: + path: /create-an-estimate-template + method: GET +- name: permit + endpoint: + path: /permit + method: GET + data_selector: data + params: {} +- name: Estimate Templates + endpoint: + path: /create-estimate-template + method: POST + data_selector: template_data +- name: Estimate Templates + endpoint: + path: /create/estimate/template + method: POST + data_selector: template + params: {} +- name: estimate_proposal + endpoint: + path: /create-estimate-proposal + method: POST + data_selector: proposal + params: {} +- name: Estimate Proposal + endpoint: + path: /api/estimate_proposal + method: POST + data_selector: proposal_data +- name: Estimate + endpoint: + path: /create-estimate-from-template + method: POST + data_selector: estimateData +- name: work_log + endpoint: + path: /daily_logs/work + method: GET + data_selector: records +- name: equipment_log + endpoint: + path: /daily_logs/equipment + method: GET + data_selector: records +- name: materials_log + endpoint: + path: /daily_logs/materials + method: GET + data_selector: records +- name: project_notes + endpoint: + path: /daily_logs/notes + method: GET + data_selector: records +- name: observed_weather + endpoint: + path: /daily_logs/weather + method: GET + data_selector: records +- name: visitor_log + endpoint: + path: /daily_logs/visitors + method: GET + data_selector: records +- name: delivery_log + endpoint: + path: /daily_logs/deliveries + method: GET + data_selector: records +- name: safety_log + endpoint: + path: /daily_logs/safety + method: GET + data_selector: records +- name: delay_log + endpoint: + path: /daily_logs/delays + method: GET + data_selector: records +- name: daily_logs + endpoint: + path: /en/daily-logs + method: GET +- name: Estimate + endpoint: + path: /import/estimate/excel + method: POST + data_selector: estimateData +- name: Delete Estimate + endpoint: + path: /api/v1/estimates/delete + method: DELETE +- name: work_log + endpoint: + path: /logs/work + method: GET + data_selector: records +- name: equipment_log + endpoint: + path: /logs/equipment + method: GET + data_selector: records +- name: materials_log + endpoint: + path: /logs/materials + method: GET + data_selector: records +- name: project_notes + endpoint: + path: /logs/project_notes + method: GET + data_selector: records +- name: observed_weather + endpoint: + path: /logs/observed_weather + method: GET + data_selector: records +- name: visitor_log + endpoint: + path: /logs/visitor + method: GET + data_selector: records +- name: delivery_log + endpoint: + path: /logs/delivery + method: GET + data_selector: records +- name: safety_log + endpoint: + path: /logs/safety + method: GET + data_selector: records +- name: delay_log + endpoint: + path: /logs/delay + method: GET + data_selector: records +- name: Client Selections + endpoint: + path: /client/selections + method: GET + data_selector: selections +- name: Daily Log + endpoint: + path: /daily-logs + method: POST + data_selector: dailyLogs + params: {} +- name: Daily Logs + endpoint: + path: /daily-logs + method: GET + data_selector: logs +- name: Estimate Template + endpoint: + path: /import/estimate-template + method: POST + data_selector: template +- name: Estimate Templates + endpoint: + path: /import-estimate-template + method: POST +- name: Estimate Templates + endpoint: + path: /create-estimate-template + method: POST + data_selector: templates + params: {} +- name: Estimate Templates + endpoint: + path: /api/estimate_templates + method: GET + data_selector: templates + params: {} +- name: Estimate Proposal + endpoint: + path: /create-estimate-proposal + method: POST +- name: announcements + endpoint: + path: /clientlink/announcements + method: GET + data_selector: announcements + params: {} +- name: messaging + endpoint: + path: /clientlink/messaging + method: GET + data_selector: messages + params: {} +- name: files + endpoint: + path: /clientlink/files + method: GET + data_selector: files + params: {} +- name: photos + endpoint: + path: /clientlink/photos + method: GET + data_selector: photos + params: {} +- name: financial_overview + endpoint: + path: /clientlink/financial_overview + method: GET + data_selector: financial_overview + params: {} +- name: change_orders + endpoint: + path: /clientlink/change_orders + method: GET + data_selector: change_orders + params: {} +- name: client_selections + endpoint: + path: /clientlink/client_selections + method: GET + data_selector: client_selections + params: {} +- name: calendar + endpoint: + path: /clientlink/calendar + method: GET + data_selector: calendar_events + params: {} +- name: schedule + endpoint: + path: /clientlink/schedule + method: GET + data_selector: schedule + params: {} +- name: daily_logging + endpoint: + path: /clientlink/daily_logging + method: GET + data_selector: daily_logs + params: {} +- name: punch_lists + endpoint: + path: /clientlink/punch_lists + method: GET + data_selector: punch_lists + params: {} +- name: to_dos + endpoint: + path: /clientlink/to_dos + method: GET + data_selector: to_dos + params: {} +- name: requests_for_information + endpoint: + path: /clientlink/rfis + method: GET + data_selector: rfis + params: {} +- name: transmittals + endpoint: + path: /clientlink/transmittals + method: GET + data_selector: transmittals + params: {} +- name: submittals + endpoint: + path: /clientlink/submittals + method: GET + data_selector: submittals + params: {} +- name: redline_planroom + endpoint: + path: /clientlink/redline_planroom + method: GET + data_selector: redline_plans + params: {} +- name: checklists + endpoint: + path: /clientlink/checklists + method: GET + data_selector: checklists + params: {} +- name: Estimate Proposal + endpoint: + path: /create/estimate-proposal + method: POST + data_selector: proposal_details +- name: daily_log + endpoint: + path: /daily-logs + method: GET + data_selector: logs +- name: Combined Log Report + endpoint: + path: /generate/combined-log-report + method: POST + data_selector: report_data +- name: daily_log + endpoint: + path: /daily_logs + method: GET + data_selector: logs +- name: daily_logs + endpoint: + path: /en/daily-logs + method: GET +- name: daily_log + endpoint: + path: /daily-logs + method: GET + data_selector: logs +- name: daily_logs + endpoint: + path: /en/daily-logs + method: GET +- name: daily_logs + endpoint: + path: /daily_logs + method: GET + data_selector: logs +- name: daily_log + endpoint: + path: /en/daily-logs + method: GET +- name: work_logs + endpoint: + path: /work-logs + method: GET +- name: daily_log + endpoint: + path: /daily-logs + method: GET +- name: Combined Log Report + endpoint: + path: /generate/combined-log-report + method: POST + data_selector: report + params: {} +- name: ClientLink Contact + endpoint: + path: /link-a-clientlink-user-to-a-quickbooks-customer-1 + method: GET + data_selector: records +- name: daily_logs + endpoint: + path: /en/daily-logs + method: GET +- name: Daily Logs + endpoint: + path: /daily-logs + method: GET + data_selector: logs + params: {} +- name: Weather Entries + endpoint: + path: /weather-entries + method: GET + data_selector: entries + params: {} +- name: Photostream + endpoint: + path: /photostream + method: GET + data_selector: photos + params: {} +- name: daily_logs + endpoint: + path: /en/daily-logs + method: GET +- name: QuickBooks Integration + endpoint: + path: /quickbooks/integration + method: GET +- name: daily_logs + endpoint: + path: /daily-logs + method: GET + data_selector: logs + params: {} +- name: ClientLink User + endpoint: + path: /link-client + method: POST + data_selector: clientLinkUser +- name: Project Financial Data + endpoint: + path: /financials + method: GET + data_selector: financialData +- name: purchase_orders + endpoint: + path: /purchasing/purchase-orders + method: POST +- name: QuickBooks Customer + endpoint: + path: /api/quickbooks/customers + method: GET + data_selector: customers + params: {} +- name: Project + endpoint: + path: /api/projects + method: GET + data_selector: projects + params: {} +- name: Outgoing Accounts + endpoint: + path: /api/v1/outgoing_accounts + method: POST + data_selector: data + params: {} +- name: QuickBooks Items + endpoint: + path: /api/v1/items + method: POST + data_selector: data + params: {} +- name: Incoming Revenue Accounts + endpoint: + path: /api/v1/incoming_revenue_accounts + method: POST + data_selector: data + params: {} +- name: Change Orders + endpoint: + path: /change-orders + method: POST + data_selector: changeOrder + params: {} +- name: Invoices + endpoint: + path: /invoices + method: POST +- name: purchase_orders + endpoint: + path: /purchasing/purchase-orders + method: GET +- name: purchase_order + endpoint: + path: /purchase_orders + method: POST +- name: QuickBooks Online + endpoint: + path: /api/quickbooks/online + method: GET + data_selector: data +- name: QuickBooks Desktop + endpoint: + path: /api/quickbooks/desktop + method: GET + data_selector: data +- name: Credit Memo + endpoint: + path: /create-credit-memo + method: POST + data_selector: creditMemo + params: + cost: negative +- name: customer + endpoint: + path: /v3/customers + method: GET +- name: project + endpoint: + path: /v3/projects + method: GET +- name: Delete a Contact + endpoint: + path: /delete-contact + method: DELETE +- name: contact + endpoint: + path: /contacts + method: POST +- name: Project + endpoint: + path: /link/project + method: POST +- name: change_order + endpoint: + path: /change-orders + method: GET +- name: contact + endpoint: + path: /contacts + method: POST + data_selector: contact + params: {} +- name: change_orders + endpoint: + path: /api/change-orders + method: POST +- name: change_order + endpoint: + path: /change-orders + method: GET + data_selector: changeOrders + params: + status: Pending +- name: contacts + endpoint: + path: /contacts + method: GET +- name: contacts + endpoint: + path: /contacts + method: GET + data_selector: records +- name: Estimate Columns + endpoint: + path: /estimating/columns + method: GET +- name: company_employee_permissions + endpoint: + path: /api/company_employee_permissions + method: POST + data_selector: permissions + params: {} +- name: quickbooks_integration + endpoint: + path: /api/integration/quickbooks + method: GET + data_selector: integration_data + params: {} +- name: Files & Photos + endpoint: + path: /en/files-photos + method: GET +- name: ClientLink Contacts + endpoint: + path: /clientlink/contacts + method: GET + data_selector: contacts +- name: TeamLink Contacts + endpoint: + path: /teamlink/contacts + method: GET + data_selector: contacts +- name: projects + endpoint: + path: /projects/status + method: POST +- name: contact + endpoint: + path: /contacts + method: DELETE +- name: contacts + endpoint: + path: /api/v1/contacts + method: POST + data_selector: data +- name: contacts + endpoint: + path: /api/v1/contacts + method: GET + data_selector: records + params: {} +- name: leads + endpoint: + path: /api/v1/leads + method: GET + data_selector: records + params: {} +- name: contact + endpoint: + path: /contacts + method: POST + data_selector: contact + params: {} +- name: Public Details + endpoint: + path: /contacts/public_details + method: GET + data_selector: public_details +- name: Private Details + endpoint: + path: /contacts/private_details + method: GET + data_selector: private_details +- name: Project Starts + endpoint: + path: /projects/starts + method: GET + data_selector: project_starts +- name: Company Account Details + endpoint: + path: /company/account/details + method: GET + data_selector: account_details +- name: Archived Projects + endpoint: + path: /projects/archived + method: GET + data_selector: archived_projects +- name: Export Projects + endpoint: + path: /projects/export + method: POST + data_selector: exported_projects +- name: Change Orders + endpoint: + path: /change-orders + method: GET +- name: Files & Photos + endpoint: + path: /files-photos + method: GET + data_selector: records +- name: files_photos + endpoint: + path: /files-photos + method: GET +- name: Company Profile + endpoint: + path: /profile + method: GET + data_selector: profileData +- name: contacts + endpoint: + path: /api/v1/contacts + method: GET + data_selector: data + params: {} +- name: contacts + endpoint: + path: /api/v1/contacts + method: GET + data_selector: contacts +- name: leads + endpoint: + path: /api/v1/leads + method: POST + data_selector: leads +- name: Company Public Profile + endpoint: + path: /public_profile + method: POST + data_selector: profile_data + params: {} +- name: Projects + endpoint: + path: /projects + method: GET +- name: Company Account Details + endpoint: + path: /company/account/details + method: GET + data_selector: accountDetails +- name: Project Status + endpoint: + path: /projects/status + method: GET + data_selector: projectStatus +- name: Archived Projects + endpoint: + path: /projects/archived + method: GET + data_selector: archivedProjects +- name: Change Orders + endpoint: + path: /change-orders + method: GET +- name: change_order + endpoint: + path: /change-orders + method: GET + data_selector: records +- name: Company Public Profile + endpoint: + path: /company/public_profile + method: GET + data_selector: social_media_links + params: {} +- name: notification_settings + endpoint: + path: /api/notification_settings + method: GET + data_selector: settings + params: {} +- name: CompanyEmployee + endpoint: + path: /api/company/employees + method: POST + data_selector: employee + params: {} +- name: company_profile + endpoint: + path: /profile + method: GET + data_selector: profile_data +- name: Company Contacts + endpoint: + path: /api/contacts/company + method: GET + data_selector: contacts +- name: ClientLink Contacts + endpoint: + path: /api/contacts/clientlink + method: GET + data_selector: contacts +- name: TeamLink Contacts + endpoint: + path: /api/contacts/teamlink + method: GET + data_selector: contacts +- name: Leads + endpoint: + path: /api/contacts/leads + method: GET + data_selector: contacts +- name: Inactive Contacts + endpoint: + path: /api/contacts/inactive + method: GET + data_selector: contacts +- name: Company Employee Permissions + endpoint: + path: /api/company-employee-permissions + method: GET + data_selector: permissions + params: {} +- name: Project-Level Permissions + endpoint: + path: /api/project-level-permissions + method: GET + data_selector: project_permissions + params: {} +- name: Company Public Profile + endpoint: + path: /add-banner + method: POST + data_selector: banner + params: {} +- name: Company Contacts + endpoint: + path: /api/company_contacts + method: GET + data_selector: contacts +- name: Company Contacts + endpoint: + path: /company/contacts + method: GET + data_selector: contacts +- name: Company Employees + endpoint: + path: /company/employees + method: GET + data_selector: employees +- name: Company Employee Permissions + endpoint: + path: /api/company_employee_permissions + method: GET + data_selector: permissions + params: {} +- name: Project-Level Permissions + endpoint: + path: /api/project_level_permissions + method: GET + data_selector: project_permissions + params: {} +- name: leads + endpoint: + path: /import/leads + method: POST + data_selector: results +- name: Leads + endpoint: + path: /import/leads + method: POST + data_selector: importedLeads +- name: Lead Capturing + endpoint: + path: /lead-capturing + method: POST + data_selector: leads + params: {} +- name: Company Employees + endpoint: + path: /add-company-employee + method: POST + data_selector: response + params: {} +- name: Lead Capture + endpoint: + path: /lead-capture + method: POST + data_selector: leads + params: + required_fields: + - First Name + - Last Name + - Email Address +- name: company_employee + endpoint: + path: /api/v1/company_employees + method: POST + data_selector: employee_data + params: + required: + - first_name + - last_name + - email +- name: Opportunities + endpoint: + path: /constructiononline/opportunities + method: GET +- name: opportunities + endpoint: + path: /api/v1/opportunities + method: GET + data_selector: opportunities +- name: company_contacts + endpoint: + path: /api/v1/company_contacts + method: GET + data_selector: contacts +- name: clientlink_contacts + endpoint: + path: /api/v1/clientlink_contacts + method: GET + data_selector: contacts +- name: teamlink_contacts + endpoint: + path: /api/v1/teamlink_contacts + method: GET + data_selector: contacts +- name: leads + endpoint: + path: /api/v1/leads + method: GET + data_selector: leads +- name: inactive_contacts + endpoint: + path: /api/v1/inactive_contacts + method: GET + data_selector: inactive_contacts +- name: opportunities + endpoint: + path: /opportunities + method: GET + data_selector: records +- name: Estimate Proposal + endpoint: + path: /create-proposal + method: POST + data_selector: proposalDetails +- name: Company Employee Permissions + endpoint: + path: /permissions/company_employees + method: GET + data_selector: permissions + params: {} +- name: Project-Level Permissions + endpoint: + path: /permissions/project_level + method: GET + data_selector: project_permissions + params: {} +- name: Estimate Proposal + endpoint: + path: /opportunities/estimate-proposals + method: POST + data_selector: proposal + params: {} +- name: delete_company_employee + endpoint: + path: /delete/company/employee + method: DELETE +- name: company_contacts + endpoint: + path: /api/v1/company_contacts + method: GET + data_selector: contacts +- name: Company Contacts + endpoint: + path: /company/contacts + method: GET + data_selector: contacts + params: {} +- name: opportunities + endpoint: + path: /opportunities + method: GET + data_selector: opportunities + params: {} +- name: Company Employee Permissions + endpoint: + path: /company_employee_permissions + method: GET + data_selector: permissions +- name: Project-Level Permissions + endpoint: + path: /project_level_permissions + method: GET + data_selector: permissions +- name: Project Template + endpoint: + path: /api/project-templates + method: GET + data_selector: templates +- name: leads + endpoint: + path: /import/leads/excel + method: POST + data_selector: importedLeads + params: {} +- name: Lead + endpoint: + path: /leads + method: GET + data_selector: leads +- name: Lead + endpoint: + path: /leads + method: POST + data_selector: lead_data +- name: Opportunity + endpoint: + path: /opportunities + method: GET + data_selector: opportunity_data +- name: projects + endpoint: + path: /api/projects + method: GET +- name: Lead Capture + endpoint: + path: /lead_capture + method: POST + data_selector: leads + params: {} +- name: Cost Code List + endpoint: + path: /assign/cost-code-list + method: POST + data_selector: data + params: {} +- name: Opportunities + endpoint: + path: /en/opportunities + method: GET +- name: opportunities + endpoint: + path: /opportunities + method: GET + data_selector: opportunities +- name: opportunities + endpoint: + path: /opportunities + method: GET +- name: Opportunities + endpoint: + path: /en/opportunities + method: GET +- name: Proposals + endpoint: + path: /en/proposals + method: GET +- name: Estimate Proposal + endpoint: + path: /api/v1/estimate_proposals + method: POST + data_selector: proposal + params: {} +- name: estimates + endpoint: + path: /api/v1/estimates + method: GET + data_selector: data + params: {} +- name: company_logo + endpoint: + path: /set-company-logo + method: POST +- name: resources + endpoint: + path: /api/v1/resources + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /projects + method: POST +- name: Resource + endpoint: + path: /resources + method: GET + data_selector: resources + params: {} +- name: estimate_notes + endpoint: + path: /api/v1/estimates/notes + method: GET + data_selector: notes + params: {} +- name: opportunities + endpoint: + path: /opportunities + method: GET + data_selector: opportunities +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: Estimate Line Items + endpoint: + path: /api/estimating/line-items + method: GET +- name: estimate_classifications + endpoint: + path: /api/v1/estimates/classifications + method: POST + data_selector: classifications + params: {} +- name: Cost Codes + endpoint: + path: /cost-codes + method: POST + data_selector: cost_codes + params: {} +- name: projects + endpoint: + path: /projects/scope-of-work + method: POST + data_selector: scopeOfWork + params: {} +- name: estimate_line_items + endpoint: + path: /api/v1/estimate_line_items/status + method: POST + data_selector: data + params: {} +- name: Estimate Status + endpoint: + path: /api/estimate/status + method: POST + data_selector: status + params: {} +- name: CostbookItems + endpoint: + path: /costbook/items + method: POST +- name: ProjectTemplate + endpoint: + path: /create-project-template + method: POST +- name: ProjectTemplate + endpoint: + path: /api/projectTemplates + method: POST + data_selector: templateData +- name: Estimate Columns + endpoint: + path: /en/estimating + method: GET +- name: Estimate Columns + endpoint: + path: /show/hide-estimate-columns + method: GET +- name: Estimate Column Defaults + endpoint: + path: /restore/estimate/column/defaults + method: POST +- name: Notes + endpoint: + path: /notes + method: POST +- name: Estimate Notes + endpoint: + path: /api/estimate/notes + method: GET + data_selector: notes + params: {} +- name: Estimate Line Items + endpoint: + path: /services/data/vXX.X/estimating/line-items + method: POST + data_selector: results +- name: estimate_settings + endpoint: + path: /estimate/settings + method: GET + data_selector: settings + params: {} +- name: Cost Codes + endpoint: + path: /cost-codes + method: POST + data_selector: cost_codes +- name: Estimate + endpoint: + path: /set-classification-markup + method: POST +- name: classification_markup + endpoint: + path: /set-classification-markup + method: POST + data_selector: classificationMarkups + params: {} +- name: Estimate Line Items + endpoint: + path: /path/to/estimate/line/items + method: POST + data_selector: data + params: {} +- name: estimate_status + endpoint: + path: /estimate/status + method: GET + data_selector: status +- name: Estimate Tax Settings + endpoint: + path: /understanding-estimate-tax-settings + method: GET +- name: costbook_items + endpoint: + path: /costbook/items + method: POST + data_selector: items + params: {} +- name: estimate_tax_settings + endpoint: + path: /estimating/tax_settings + method: GET + data_selector: tax_settings + params: {} +- name: Estimate Column View + endpoint: + path: /services/data/vXX.X/estimates/columnView + method: GET + data_selector: columnViews + params: {} +- name: Estimate + endpoint: + path: /estimating/columns + method: GET +- name: Estimate + endpoint: + path: /estimates + method: GET + data_selector: estimates +- name: Estimate Proposal + endpoint: + path: /estimate_proposals + method: GET + data_selector: proposals +- name: change_order + endpoint: + path: /change-orders + method: GET + data_selector: changeOrders + params: {} +- name: Full-Screen Mode + endpoint: + path: /full-screen-mode + method: GET + data_selector: steps + params: {} +- name: client_selections + endpoint: + path: /client-selections + method: GET + data_selector: selectionSheets + params: {} +- name: Estimate Settings + endpoint: + path: /api/estimate-settings + method: GET + data_selector: settings + params: {} +- name: Estimate Classification Markup + endpoint: + path: /set-classification-markup + method: GET + data_selector: LineItems +- name: client_selections + endpoint: + path: /client_selections + method: GET + data_selector: records + params: {} +- name: Client Selections + endpoint: + path: /client-selections + method: GET + data_selector: selections + params: {} +- name: Estimate Tax Settings + endpoint: + path: /estimating/tax-settings + method: GET + data_selector: taxSettings +- name: Company Employee Permissions + endpoint: + path: /manage-company-users/employee-permissions + method: GET +- name: Company Employee Permissions + endpoint: + path: /manage-employee-permissions + method: GET +- name: estimate_tax_settings + endpoint: + path: /api/estimate/tax/settings + method: GET +- name: schedules + endpoint: + path: /schedules/createFromEstimate + method: POST +- name: invoices + endpoint: + path: /invoices + method: POST + data_selector: invoice + params: {} +- name: invoices + endpoint: + path: /api/invoices + method: GET + data_selector: records +- name: Change Orders + endpoint: + path: /change-orders + method: GET + data_selector: changeOrders +- name: Change Order Markup Settings + endpoint: + path: /change-order-markup-settings + method: GET + data_selector: settings +- name: predecessor_relationships + endpoint: + path: /predecessors + method: GET + data_selector: relationships +- name: client_selections + endpoint: + path: /client-selections + method: GET + data_selector: records +- name: schedules + endpoint: + path: /schedules + method: POST + data_selector: data + params: {} +- name: Schedule Baseline + endpoint: + path: /scheduling/baseline + method: GET + data_selector: scheduleBaselines + params: {} +- name: client_selections + endpoint: + path: /client_selections + method: GET + data_selector: records +- name: custom_calendar + endpoint: + path: /create-a-custom-calendar + method: POST + data_selector: calendar + params: {} +- name: purchase_order + endpoint: + path: /api/purchase_order + method: POST + data_selector: purchase_order_data +- name: calendars + endpoint: + path: /calendars + method: GET + data_selector: records + params: {} +- name: company_employee_permissions + endpoint: + path: /manage-employee-permissions + method: GET +- name: To Dos + endpoint: + path: /todos + method: GET + data_selector: tasks + params: {} +- name: expense + endpoint: + path: /expenses + method: POST + data_selector: expense_details +- name: invoice_payment + endpoint: + path: /api/payments + method: POST + data_selector: paymentDetails +- name: To Dos + endpoint: + path: /api/todos + method: GET + data_selector: tasks +- name: Company To Dos + endpoint: + path: /to-do-lists + method: GET + data_selector: companyToDos + params: {} +- name: create_invoice + endpoint: + path: /create_invoice + method: POST + data_selector: invoice_data +- name: To Dos + endpoint: + path: /api/todos + method: GET + data_selector: todos + params: {} +- name: Invoice + endpoint: + path: /invoicing + method: POST + data_selector: invoice_data +- name: Punch List + endpoint: + path: /punchlists + method: GET +- name: contacts + endpoint: + path: /contacts + method: GET +- name: projects + endpoint: + path: /projects + method: GET +- name: punch_list + endpoint: + path: /punch-lists + method: GET + data_selector: punchLists + params: {} +- name: punch_list + endpoint: + path: /punch_lists + method: POST +- name: Finish - Start + endpoint: + path: /services/data/vXX.X/sobjects/FinishStart + method: GET + data_selector: records + params: {} +- name: Finish - Finish + endpoint: + path: /services/data/vXX.X/sobjects/FinishFinish + method: GET + data_selector: records + params: {} +- name: Start - Finish + endpoint: + path: /services/data/vXX.X/sobjects/StartFinish + method: GET + data_selector: records + params: {} +- name: Start - Start + endpoint: + path: /services/data/vXX.X/sobjects/StartStart + method: GET + data_selector: records + params: {} +- name: Punch List + endpoint: + path: /api/punch-list + method: POST + data_selector: data + params: {} +- name: cost_code + endpoint: + path: /api/cost_codes + method: POST + data_selector: cost_codes + params: + permissions: Can Create, Edit, & Delete +- name: punch_list_item + endpoint: + path: /punch-list-item + method: POST + data_selector: results +- name: punch_list_item + endpoint: + path: /punch_list_items + method: POST + data_selector: attachments + params: {} +- name: Punch List + endpoint: + path: /punch-lists + method: POST +- name: Punch List + endpoint: + path: /punch-lists + method: GET +- name: print_punch_list + endpoint: + path: /print/punch-list + method: GET + data_selector: punch_list_data +- name: calendars + endpoint: + path: /calendars + method: GET + data_selector: records +- name: Daily Logs + endpoint: + path: /daily-logs + method: POST + data_selector: daily_logs + params: {} +- name: calendars + endpoint: + path: /calendars + method: GET + data_selector: records +- name: calendars + endpoint: + path: /calendars + method: GET +- name: To Dos + endpoint: + path: /api/todos + method: GET + data_selector: tasks + params: {} +- name: checklist + endpoint: + path: /en/checklists + method: GET + data_selector: Item Issues + params: {} +- name: checklist_item_issue + endpoint: + path: /api/checklist_item_issue + method: POST + data_selector: issue + params: {} +- name: To Do Lists + endpoint: + path: /api/todos + method: GET + data_selector: tasks +- name: Company To Dos + endpoint: + path: /api/company/todos + method: GET + data_selector: todos + params: {} +- name: To Dos + endpoint: + path: /api/todos + method: GET + data_selector: todos +- name: time_sheets + endpoint: + path: /time-tracking + method: GET +- name: To Dos + endpoint: + path: /api/todos + method: GET + data_selector: todos + params: {} +- name: Punch List + endpoint: + path: /punchlist + method: GET + data_selector: items + params: {} +- name: messages + endpoint: + path: /api/messages + method: POST + data_selector: message + params: {} +- name: Punch List + endpoint: + path: /punchlists + method: POST + data_selector: newPunchList + params: {} +- name: Messages + endpoint: + path: /messages + method: GET + data_selector: messages + params: {} +- name: Punch List Items + endpoint: + path: /punch-lists/items + method: POST +- name: Punch Lists + endpoint: + path: /punch-lists + method: GET +- name: rfis + endpoint: + path: /en/rfis + method: GET + data_selector: rfis + params: {} +- name: Punch List + endpoint: + path: /punch-lists + method: POST +- name: RFI + endpoint: + path: /api/rfis + method: GET + data_selector: rfis +- name: Punch List Item + endpoint: + path: /en/files-photos + method: GET + data_selector: items +- name: cost_codes + endpoint: + path: /cost_codes + method: GET + data_selector: cost_codes + params: {} +- name: cost_code_lists + endpoint: + path: /cost_code_lists + method: GET + data_selector: cost_code_lists + params: {} +- name: cost_code_divisions + endpoint: + path: /cost_code_divisions + method: GET + data_selector: cost_code_divisions + params: {} +- name: Punch List Item Attachments + endpoint: + path: /attach-files-to-punch-list-item + method: POST + data_selector: attachments + params: {} +- name: punch_list + endpoint: + path: /punch-lists + method: POST + data_selector: punchList + params: {} +- name: RFI + endpoint: + path: /api/rfi + method: GET + data_selector: rfis + params: {} +- name: punch_list + endpoint: + path: /punch_lists + method: POST + data_selector: signatures + params: {} +- name: print_punch_list + endpoint: + path: /print-punch-list + method: GET +- name: Daily Logs + endpoint: + path: /daily-logs + method: POST +- name: submittal + endpoint: + path: /submittals + method: POST + data_selector: submittal_data +- name: Submittals + endpoint: + path: /submittals + method: GET + data_selector: submittals +- name: submittal_revision + endpoint: + path: /submittals + method: POST +- name: Item Issues + endpoint: + path: /item-issues + method: GET + data_selector: itemIssues + params: {} +- name: Items + endpoint: + path: /items + method: GET + data_selector: items + params: {} +- name: transmittal + endpoint: + path: /transmittals + method: GET + data_selector: records +- name: transmittals + endpoint: + path: /transmittals + method: POST + data_selector: transmittal + params: {} +- name: checklist_item_issue + endpoint: + path: /checklist/item/issue + method: POST + data_selector: issue + params: {} +- name: transmittals + endpoint: + path: /transmittals + method: GET +- name: transmittals + endpoint: + path: /transmittals + method: POST + data_selector: transmittal_data +- name: GamePlan + endpoint: + path: /api/gameplan + method: POST + data_selector: gameplan + params: {} +- name: Time Tracking + endpoint: + path: /time-tracking + method: GET + data_selector: timeSheets +- name: Redline Sheets + endpoint: + path: /api/redline/sheets + method: POST +- name: Time Tracking + endpoint: + path: /time-tracking + method: GET + data_selector: requirements +- name: messages + endpoint: + path: /api/messages + method: POST + data_selector: data + params: + recipients: required + project_id: required +- name: upload_sheets + endpoint: + path: /upload/sheets + method: POST + data_selector: upload_status + params: {} +- name: upload_revisions + endpoint: + path: /upload/revisions + method: POST + data_selector: upload_status + params: {} +- name: Messages + endpoint: + path: /messages + method: GET + data_selector: messages + params: {} +- name: Redline Sheet + endpoint: + path: /redline/sheet/email + method: POST + data_selector: sheet + params: {} +- name: project_announcements + endpoint: + path: /announcements + method: GET +- name: RFIs + endpoint: + path: /rfis + method: GET + data_selector: records +- name: RFIs + endpoint: + path: /api/rfis + method: GET + data_selector: rfis +- name: files_photos + endpoint: + path: /en/files-photos + method: GET +- name: cost_code_lists + endpoint: + path: /cost_code_lists + method: GET +- name: cost_code_divisions + endpoint: + path: /cost_code_divisions + method: GET +- name: cost_codes + endpoint: + path: /cost_codes + method: GET +- name: RFIs + endpoint: + path: /en/rfis + method: GET +- name: RFI + endpoint: + path: /api/rfis + method: GET + data_selector: rfis +- name: default_text_blocks + endpoint: + path: /default_text_blocks + method: POST + data_selector: defaultTextBlocks + params: {} +- name: RFIs + endpoint: + path: /en/rfis + method: GET +- name: Submittals + endpoint: + path: /en/submittals + method: GET +- name: submittals + endpoint: + path: /api/submittals + method: POST + data_selector: response + params: {} +- name: daily_logs + endpoint: + path: /daily-logs + method: POST +- name: submittal + endpoint: + path: /submittals + method: POST + data_selector: submittals + params: {} +- name: daily_log + endpoint: + path: /daily_log + method: POST + data_selector: log_entry + params: + permissions: Can View, Create, and Edit their own log entries +- name: submittals + endpoint: + path: /api/submittals + method: GET + data_selector: records +- name: submittal_revision + endpoint: + path: /submittals/revision + method: POST +- name: GamePlan + endpoint: + path: /gameplan + method: GET +- name: Transmittals + endpoint: + path: /transmittals + method: GET +- name: transmittal + endpoint: + path: /api/transmittals + method: POST + data_selector: data + params: {} +- name: transmittals + endpoint: + path: /transmittals + method: GET +- name: client_selections + endpoint: + path: /api/client_selections + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: data +- name: transmittals + endpoint: + path: /en/transmittals + method: GET +- name: Transmittals + endpoint: + path: /transmittals + method: GET + data_selector: transmittals +- name: projects + endpoint: + path: /upload-a-project-from-constructionsuite-to-constructiononline + method: POST + data_selector: projects +- name: contacts + endpoint: + path: /turning-automatic-contact-sync-on/off + method: POST + data_selector: contacts +- name: estimates + endpoint: + path: /uploading-estimates-from-constructionsuite-to-constructiononline + method: POST + data_selector: estimates +- name: change_orders + endpoint: + path: /upload-change-orders-to-constructiononline-from-constructionsuite + method: POST + data_selector: change_orders +- name: schedules + endpoint: + path: /uploading-schedules-from-constructionsuite-to-constructiononline + method: POST + data_selector: schedules +- name: Projects + endpoint: + path: /upload-projects + method: POST +- name: Redline Takeoff Licenses + endpoint: + path: /redline/takeoff/licenses + method: GET + data_selector: licenses + params: {} +- name: Redline Takeoff Structure + endpoint: + path: /redline/takeoff/structure + method: GET + data_selector: structure + params: {} +- name: Takeoff Measurement Types + endpoint: + path: /redline/takeoff/measurement_types + method: GET + data_selector: measurement_types + params: {} +- name: Redline Sheets + endpoint: + path: /redline/sheets + method: GET +- name: Contacts + endpoint: + path: /api/v1/contacts + method: POST +- name: Projects + endpoint: + path: /api/v1/projects + method: POST +- name: Estimates + endpoint: + path: /api/v1/estimates + method: POST +- name: Schedules + endpoint: + path: /api/v1/schedules + method: POST +- name: Files + endpoint: + path: /api/v1/files + method: POST +- name: upload_guidelines + endpoint: + path: /upload_guidelines + method: GET + data_selector: guidelines + params: {} +- name: upload_time + endpoint: + path: /upload_time + method: GET + data_selector: upload_time_info + params: {} +- name: upload_failed + endpoint: + path: /upload_failed + method: GET + data_selector: upload_failed_info + params: {} +- name: pinned_items + endpoint: + path: /pinning/items + method: GET + data_selector: items +- name: callout_scanning + endpoint: + path: /callout/scanning + method: GET + data_selector: callouts +- name: sheet_comparison + endpoint: + path: /compare/sheets + method: GET + data_selector: comparisons +- name: sheet_sorting + endpoint: + path: /sort/sheets + method: GET + data_selector: sorted_sheets +- name: sheet_tags + endpoint: + path: /tags/sheets + method: POST + data_selector: tags +- name: sheet_printing + endpoint: + path: /print/sheets + method: POST + data_selector: print_details +- name: sheet_sharing + endpoint: + path: /share/sheets + method: POST + data_selector: share_details +- name: Redline Planroom + endpoint: + path: /redline-planroom + method: GET + data_selector: records +- name: Files & Photos + endpoint: + path: /files-photos + method: GET + data_selector: records +- name: Redline Sheet + endpoint: + path: /redline/sheet/email + method: POST +- name: Photostream + endpoint: + path: /photostream + method: GET + data_selector: images + params: {} +- name: Warranty Settings + endpoint: + path: /warranty/settings + method: GET + data_selector: settings + params: {} +- name: Files + endpoint: + path: /files + method: GET + data_selector: file_records +- name: Photos + endpoint: + path: /photos + method: GET + data_selector: photo_records +- name: Files & Photos + endpoint: + path: /files-photos + method: GET +- name: Warranty + endpoint: + path: /warranty/create + method: POST + data_selector: warrantyDetails + params: {} +- name: default_text_blocks + endpoint: + path: /default-text-blocks + method: POST + data_selector: defaultTextBlocks + params: {} +- name: daily_logs + endpoint: + path: /daily-logs + method: POST + data_selector: dailyLogEntries +- name: Daily Log + endpoint: + path: /daily_logs + method: POST + data_selector: log_entries + params: {} +- name: GamePlan + endpoint: + path: /gameplan + method: GET +- name: Contacts + endpoint: + path: /contacts + method: POST +- name: Projects + endpoint: + path: /projects + method: POST +- name: Estimates + endpoint: + path: /estimates + method: POST +- name: Schedules + endpoint: + path: /schedules + method: POST +- name: Files + endpoint: + path: /files + method: POST +- name: Projects + endpoint: + path: /upload/projects + method: POST + data_selector: projects + params: {} +- name: Contacts + endpoint: + path: /upload/contacts + method: POST + data_selector: contacts + params: {} +- name: Estimates + endpoint: + path: /upload/estimates + method: POST + data_selector: estimates + params: {} +- name: Change Orders + endpoint: + path: /upload/change-orders + method: POST + data_selector: change_orders + params: {} +- name: Schedules + endpoint: + path: /upload/schedules + method: POST + data_selector: schedules + params: {} +- name: Project + endpoint: + path: /upload/project + method: POST +- name: contacts + endpoint: + path: /api/contacts + method: POST +- name: projects + endpoint: + path: /api/projects + method: POST +- name: estimates + endpoint: + path: /api/estimates + method: POST +- name: schedules + endpoint: + path: /api/schedules + method: POST +- name: files + endpoint: + path: /api/files + method: POST +- name: Geofence Settings + endpoint: + path: /settings/geofence + method: POST + data_selector: settings + params: {} +- name: Warranty Settings + endpoint: + path: /warranty/settings + method: GET + data_selector: reminders + params: {} +- name: Warranty Tracking + endpoint: + path: /warranty/tracking + method: POST + data_selector: reminders +- name: warranty_tracking + endpoint: + path: /warranty-tracking + method: GET + data_selector: warranties + params: {} +- name: warranty + endpoint: + path: /warranty + method: POST + data_selector: warrantyData +- name: Warranty Tracking + endpoint: + path: /warranty_tracking + method: POST + data_selector: warranty + params: {} +notes: +- Eligible companies have read and write access to the ConstructionOnline API. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Uses OAuth2 with refresh token — requires setup of connected app in ConstructionOnline +- Some objects may return nulls in deeply nested fields +- Requires setup of connected app in ConstructionOnline +- Requires OAuth2 setup with client application. +- 'FAQ: Transmittals' +- 'Project Tracking Reports: Daily Logs' +- Requires setup of connected app in ConstructionOnline. +- Some objects like Contact may return nulls in deeply nested fields +- Only 3-Level Estimates offer full compatibility with Redline™ Takeoff, Items Database + & Assemblies, Company Costbooks, and the OnPoint™ Proposal Wizard. +- Estimates calculated using the Standard Calculation Method are fully compatible + with ConstructionOnline's entire library of Financial Reports, construction contracts, + and all advanced financial management tools. +- Estimates must be saved within a Project or Opportunity. +- Each Project, Project Template, or Opportunity is limited to ONE single Estimate + saved at a time. +- Estimates in ConstructionOnline must be saved within a Project or Opportunity. +- 2-Level Estimates are not compatible with ConstructionOnline's Advanced Estimating + and Reporting features. +- Estimates must be imported using one of the Excel templates provided by ConstructionOnline. +- Each ConstructionOnline Project, Project Template, or Opportunity is limited to + ONE Estimate at a time. +- Each Project, Project Template, or Opportunity can only have ONE Estimate at a time. +- Company Users must have Estimating permissions set as 'Can Create, Edit, & Delete' + to delete an Estimate. +- Deleting an Estimate is only available via browser access to ConstructionOnline. + Estimates are only available in View-Only Mode in the ConstructionOnline Mobile + App. +- Creating an Estimate Template is available through browser access to ConstructionOnline™ + only. +- Estimates are presented in View-Only Mode on the ConstructionOnline™ Mobile App. +- API requires setup for authentication. +- Creating an Estimate Template is available through browser access to ConstructionOnline + only. +- It is highly recommended to use the Standard (3-Level) Estimate Detail option when + creating new Estimate Templates. +- Document Preview pane shows a live preview of the Proposal. +- 3-Level Estimates are the recommended method for new construction estimates created + in OnCost™ Estimating. +- Standard Calculation method is the recommended method for new estimates created + in OnCost™ Estimating. +- Estimates in ConstructionOnline™ must be saved within a Project or Opportunity. +- Each Project, Project Template, or Opportunity is limited to ONE single Estimate + saved to the Project, Project Template, or Opportunity at a time. +- ClientLink/TeamLink Users do not have access to any OnCost™ Estimating features + within the Portal. +- Creating an Estimate is available through browser access to ConstructionOnline™ + only. +- Automated Weather Tracking is enabled by default for all new projects created in + ConstructionOnline. +- It is highly recommended to use templates saved with the Standard (3-Level) Estimate + Detail option when creating new Estimates. +- 2-Level Estimates are a Legacy option and are not compatible with many of ConstructionOnline's + financial features, like Redline Takeoff, Company Costbooks, or the OnPoint Proposal + Wizard. +- Creating an Estimate is available through browser access to ConstructionOnline only. + Estimates are presented in View-Only Mode on the ConstructionOnline Mobile App. +- It is highly recommended to use the Standard 3-Level Estimate Template. +- The template structure should not be edited. Any changes to the template will cause + the import to fail; all columns and column headers must remain as presented in the + template file for import, including empty or blank columns. +- To create a new Estimate for a Project, Project Template, or Opportunity with an + existing Estimate, you will need to delete the existing Estimate first. +- Company Users must have Estimating permissions set as 'Can Create, Edit, & Delete' + to import an Estimate from Excel. +- Importing an Estimate from Excel is exclusively available via browser access to + ConstructionOnline. Estimates cannot be imported from the CO Mobile App. +- Daily Logs will save as the current date unless otherwise selected. +- Company Users must have Daily Logging permissions set as 'Can Create, Edit & Delete' + to create Daily Logs. +- Users can save and repurpose existing construction Estimate structures. +- Company Accounts allow for users to save an unlimited number of Estimate Templates, + as well as Project Templates and Schedule Templates. +- All ConstructionOnline™ subscriptions include access to 20+ preloaded, modifiable + Company Templates. +- Creating an Estimate Template is available through browser access to ConstructionOnline™ + only. Estimates are presented in View-Only Mode on the ConstructionOnline™ Mobile + App. +- Estimate Templates must be imported using one of the Excel templates provided by + ConstructionOnline. +- If the file fails to import, an 'Import Failed' message will appear prompting you + to ensure that your Estimate Template has been formatted correctly. +- Users can save an unlimited number of Estimate Templates, as well as Project Templates + and Schedule Templates. +- ConstructionOnline™ is engineered to help construction companies streamline every + aspect of their projects through the implementation of scalable, repeatable processes. +- 2-Level Estimates are a Legacy option and are not compatible with many of ConstructionOnline's + financial features, like Redline™ Takeoff, Company Costbooks, or the OnPoint™ Proposal + Wizard. +- An Estimate must be created & saved to the Opportunity or Project before an Estimate + Proposal can be created. +- Any feature permission with additional options must have the primary permission + selected to gain access to the additional permission options. +- Combined Log Reports can only be created from 'Active' ConstructionOnline™ Projects. +- All Report options are selected by default. +- Only Project Folders, Albums, Files, and Images can be shared or copied to the Portal(s). +- Albums and Folders that have been shared to the ClientLink and/or TeamLink Portal + can be identified by the 'Shared With' badges. +- Unless otherwise selected, Daily Logs will save as the current date. +- ClientLink™ Users cannot create Daily Logs; however, they may have permission to + view Daily Logs created by other users. +- To create Daily Logs, TeamLink™ Users must have Daily Logging permissions set as + 'Can View, Create, and Edit'. +- Company Users can also use the ConstructionOnline Mobile App to create Daily Logs. +- Filters are user-specific and persist when navigating away from the Daily Logging + feature. +- Daily Logging Filter options are exclusively available through browser access to + ConstructionOnline. +- Hours from work logs are obtained from the work log field '# of Hours'. +- Any filters applied to Daily Logs will also apply to the exported Excel file. +- Hours from work logs can also be exported at the company-wide level in addition + to the individual project level. +- 'The downloaded Excel file will organize the data into two separate sheets: ''Hours + from Work Logs - All'' and ''Hours from Work Logs by Cost Code - All''.' +- The spreadsheet 'Hours from Work Logs - All' organizes work hours by resource. +- The spreadsheet 'Hours from Work Logs by Cost Code - All' organizes work hours by + cost code. +- Company Users must have Daily Logging permissions set as 'Can Create, Edit, & Delete' + to export work logs to Excel. +- ClientLink & TeamLink Users do not have the option to export hours from work logs, + even if they have permission to access Daily Logs. +- Work hours cannot be exported to Excel via the ConstructionOnline™ Mobile App. +- Only one QuickBooks Online company can be linked to your ConstructionOnline account. +- ClientLink Contacts must be assigned within any ConstructionOnline Project you are + connecting with QuickBooks Online. +- Managing Folders & Albums should be done through the Files tab. +- Sharing an Album/Folder means any new File or Image added to it will be visible + in the Portal. +- To share a single File or Photo to the Portal, users should copy the specific File + or Photo to the desired Portal(s). +- Company Employees must have their permissions set to 'Can Create, Edit, & Delete' + for Files and Photos to be able to share Folders and Albums. +- In ClientLink/TeamLink Settings, the Photos option must be selected for users to + access shared Albums, and the Files option must be selected for users to access + shared Folders. +- Folders and Albums can only be shared through browser access to ConstructionOnline. +- Accounting Integration for ConstructionOnline Company Account must be activated + by a Company Admin User. +- Access to Accounting Integration functions is exclusively available for ConstructionOnline + Company Admin Users. +- Non-Admin Company Users can view QuickBooks data imported to ConstructionOnline. +- Access to your company's QuickBooks Online administrator account will be required + to complete the integration. +- Daily Logging Filter options are exclusively available through browser access to + ConstructionOnline™. +- Work logs can track the number of hours worked per day on the job site by members + of your project team. +- The total number of work hours can be exported as an Excel file. +- Hours from work logs are obtained from the work log field "# of Hours". +- 'The downloaded Excel file will organize the data into two separate sheets: "Hours + from Work Logs - All" and "Hours from Work Logs by Cost Code - All".' +- The spreadsheet "Hours from Work Logs - All" organizes work hours by resource. +- The spreadsheet "Hours from Work Logs by Cost Code - All" organizes work hours by + cost code. +- Company Users must have Daily Logging permissions set as "Can Create, Edit, & Delete" + to export work logs to Excel. +- Completing the Company Integration, connecting a ClientLink user, and connecting + the project are all required before Change Orders can be sent to QuickBooks Online. +- Only ConstructionOnline Company Administrators can sync ConstructionOnline and QuickBooks + Online. +- Change Orders must be approved before sending to QuickBooks Online. +- Sending a Change Order with a negative cost will create a Credit Memo in QuickBooks. +- ClientLink Contacts must be assigned within any ConstructionOnline Project to connect + with QuickBooks Online. +- Values imported from QuickBooks are labeled as 'Unclassified' if they do not match + existing Estimate Subcategory, Client Selection, or Change Order. +- Integrating with QuickBooks Online +- Accounting Integration for your ConstructionOnline Company Account must be activated + by a Company Admin User. +- A ClientLink Contact is required to successfully link a ConstructionOnline Project + to QuickBooks Online. +- By default, the first ClientLink Contact added to a ConstructionOnline Project Team + will be designated as the primary QuickBooks Customer, unless modified by a ConstructionOnline + Company Admin User. +- Each individual ConstructionOnline Project must be linked to QuickBooks Online to + send and receive financial data. +- Individual ConstructionOnline Project must be linked before any financial data transfer + can be initiated. +- Access to specific project features may vary based on individual builders' permission + settings. +- Your company's QuickBooks Online administrator will need to approve the integration + process. +- ConstructionOnline Projects sync as QuickBooks Online Sub-customers and integration + must be activated in ConstructionOnline per-project settings. +- ConstructionOnline Contacts sync as QuickBooks Online Customers. +- Completing the Company Integration, connecting a ClientLink user, and connecting + the project are all required before estimates can be sent to QuickBooks Online. +- Change Orders must have a Pending Status in order to be marked as Approved. +- Only Approved Change Orders will show on the Estimate and be added to the Project + total. +- Adjustments to a Column View only apply to the Column View of the Estimate currently + open. +- Column Views are also user-specific—any adjustments to a Column View are unique + to the user who made the edits. +- Hiding an Estimate column does not delete the data stored within the column. +- Customizing Estimate Column Views is exclusively available via browser access to + ConstructionOnline. +- Purchase Orders will be generated and stored in QuickBooks Online. +- All ConstructionOnline subscription levels include the ability to integrate with + QuickBooks Online. +- ConstructionOnline's QuickBooks Desktop Integration is available for companies with + Team, Business, and Enterprise subscription levels. +- Advanced accounting integration requires assigning a customer to the project. +- Projects with a Project Status of 'Pending' are only accessible to Company Administrators + and the Project Creator (even if not a Company Admin). +- ClientLink™ & TeamLink™ Users are not able to access Projects with a Project Status + of 'Pending' within the Portal and will not receive any notifications regarding + the Project. +- Projects with a Project Status of 'Live' are accessible to all Company Employees + on the Project Team. +- ClientLink™ & TeamLink™ Users can access Projects with Project Status of 'Live' + within the Portal through email invitations. +- ClientLink™ and/or TeamLink™ Users can be added to Projects exclusively through + browser access to ConstructionOnline™. +- Pending & Rejected Change Orders will show on the Estimate, but will not alter the + Project total. +- Customizing Estimate Column Views is exclusively available via browser access to + ConstructionOnline. Estimates are presented in View-Only Mode on the ConstructionOnline + Mobile App. +- ClientLink and TeamLink users must login via your Public Profile to view the Portal. +- Previewing the Portal does not give you access to perform actions on behalf of your + ClientLink/TeamLink Users (changing their password, approving a selection, etc.) +- ConstructionOnline offers native integrations with QuickBooks Desktop and QuickBooks + Online. +- All ConstructionOnline subscriptions allow for unlimited training free of charge + to all ConstructionOnline Users. +- When Project's Status is set to 'Live', project invitation emails are sent automatically. +- Files & Images downloaded through the shared link are not tracked or logged by ConstructionOnline. +- Copying a private Album/Folder will make its visibility Public in the copied location. +- ClientLink/TeamLink users must have the 'Recent Files' or 'Recent Photos' Permissions + checked to see Folders or Albums within the Portal. +- Only Administrators and Company Users with permission to Upload and Edit Files and + Photos can copy folders/albums to the Portal. +- Copying Albums & Folders takes an exact copy of it at that time and will not update + as new Files are added to the original Album or Folder. +- When creating a New Project, the Project Status is set to 'Live' by default, but + can be updated at any time. +- Project Status can be set exclusively through browser access to ConstructionOnline™. +- Email Notification Frequency must be set to Immediately After Event Occurs to edit + the settings. +- ConstructionOnline provides six different contact designations. +- Only Basic Contacts and ClientLink Contacts can be Converted to Leads +- 'Mobile App: ClientLink™ and/or TeamLink™ Users can be added to Projects exclusively + through browser access to ConstructionOnline™.' +- You must use your contractor's email invitation to set up your TeamLink account. +- We recommend that you download and login to the CO Mobile App AFTER you have set + up your TeamLink account. +- You must use your builder's email invitation to set up your ClientLink account. +- We recommend that you download and login to the CO Mobile App AFTER you have set + up your ClientLink account. +- Access to each feature depends on your company's ConstructionOnline subscription + level. +- Projects can only be archived by a Company Admin or the Project's Creator. +- Deleting a Project is irreversible. +- Certain communication related events will always trigger immediate email notifications. +- All Public Profile URLs begin with https://constructiononline.com/profile/ +- The Company Public Profile cannot be customized using the ConstructionOnline Mobile + App. +- Opportunities can only be created for/related to Leads. +- Only Basic Contacts and ClientLink Contacts can be Converted to Leads. +- Do not attempt to create a TeamLink account from the main ConstructionOnline login + page! +- 'Frequently asked questions (FAQ) about Projects can be found in the article FAQ: + Projects.' +- 'Projects in ConstructionOnline can be created in four ways: from scratch, from + a template, converting an opportunity, or duplicating an existing project.' +- Deleting a Project does not award you with a new Project Start. +- Change Orders cannot be saved as templates. +- TeamLink Users must be added to the Project to view Change Orders. +- The Company Account Owner can set notification preferences for Company Employees + and Company Admin Users. +- Company Admin Users can set notification preferences for Company Employees as well + as other Company Admin Users. +- However, Company Admin Users cannot set notification preferences for the Company + Account Owner. +- Company Employees can only set their own notification preferences. +- In order to receive Text Notifications, the Company Employee's Contact Info must + include both a Phone Number AND Mobile Provider. +- Notification preferences are not accessible from the ConstructionOnline Mobile App. +- The only frequency that allows direct edits within Notification Settings is Immediately + After Event Occurs. +- All other frequencies utilize pre-selected settings that cannot be changed. +- Users can set their own preferred notifications. +- Current ConstructionOnline subscription packages allow for unlimited Company Employees. +- Only ConstructionOnline Company Admin Users can add new Company Employees. +- Company Admin Users are responsible for customizing the Company Public Profile. +- Each ConstructionOnline Company Account must have a unique, custom Public Profile + Shortcut. +- Company Admin Users are responsible for account management. +- Company Employees can manage content but not account administration. +- Company Admin Users are responsible for setting and managing permissions. +- Access to certain features depends on the subscription level. +- Deleting a Company Employee does not delete their own ConstructionOnline account. +- Only Company Admin Users can delete Company Employees. +- Company Admin Users cannot delete the Account Owner. +- Deleting a Company Employee cannot be undone. +- Client testimonials are intended for sharing the experiences of satisfied past clients + to potential new clients. +- Leads must be imported using the Excel template provided by ConstructionOnline. +- The template structure should not be edited. Any changes to the template will cause + the import to fail. +- Company Users must have permissions for Lead Tracking set as 'Can Create, Edit, + & Delete' to import Leads from Excel. +- Leads are visible in both Lead Tracking AND Contacts. +- By default, the Lead Capture form is turned off for all Company Public Profiles. +- Visitors are required to submit their First Name, Last Name, and Email Address. + All other contact fields are optional. +- Non-Admin Company Users must have permissions for Lead Tracking set as 'Can Create, + Edit, & Delete' to access Web Capture Settings. +- Company Employees will need to access the Company Invite sent to the email address + to activate their user account. +- A single Lead in ConstructionOnline could potentially spawn multiple Opportunities +- Access to Lead Tracking is exclusively available for ConstructionOnline Company + Employees with assigned Lead Tracking permissions. +- Each ConstructionOnline Company Account can have an unlimited number of Opportunities. +- You cannot create Opportunity templates in ConstructionOnline. +- Access to Redline™ Takeoff is only included for certain subscription packages for + a limited number of users. +- Estimate Proposals cannot be created using the ConstructionOnline Mobile App. +- Users must have Estimating Permissions set to 'Can View' or 'Can View, Edit, & Delete' + to access Estimating Reports. +- GamePlan reports automatically pull from all company calendars, project schedules, + to dos, punch lists, checklists, and RFIs in ConstructionOnline to deliver a detailed + plan of action. +- The company logo or letterhead must be in the form of an image file. +- 'The following file types are acceptable for upload: jpeg, bmp, tiff, & png.' +- The uploaded image file must not exceed 1 GB. +- Only a single image file can be uploaded at a time. +- Adding the company logo or letterhead to reports & documents does not add the company + logo to the Company Public Profile. +- Any Company Employee, Admin or Non-Admin, can add a company logo or letterhead for + reports & documents generated within the Company Account. +- The uploaded company logo or letterhead will apply to generated reports & documents + company-wide. +- By default, the company logo or letterhead will appear in the top right corner of + generated reports & documents. +- Deleted Company Employees will be removed from your Company Contacts and from any + company projects. +- Ownership for items created by or actions performed by the Company Employee will + be transferred to the Account Owner. +- Daily Logs are the only exception — any Daily Logs created by a Company Employee + will retain the employee's name even if the employee is deleted from the Company + Account. +- Deleting a Company Employee cannot be undone! +- Company Contacts can be managed within the ConstructionOnline platform. +- All current ConstructionOnline subscriptions allow for an unlimited number of Company + Contacts. +- A single Lead in ConstructionOnline™ could potentially spawn multiple Opportunities. +- If permissions were not set during the initial contact creation of the Company Employee, + they will not have access to any features within the Company Account as the default + permissions for newly created Company Employees are 'Cannot View'. +- Project-Level Permissions override an employee's Company Employee Permissions for + a project without permanently impacting the employee's default Permission settings. +- Allows importing multiple Leads from Excel to ConstructionOnline. +- Project Templates can only be applied to new projects created from ConstructionOnline™. + Project Templates are not accessible via CO™ Mobile. +- All Company Users have the ability to Edit Project's Scope of Work from Projects + Set to Live. +- Company Admins and Project Creators can Edit Project's Scope of Work from Projects + Set to Pending. +- Leads require further discussion or review to qualify as a prospective client. +- API supports project management functionalities +- Lead Capture form requires First Name, Last Name, and Email Address from visitors. +- Deleted Opportunities cannot be recovered. +- Estimate Proposals cannot be created using the ConstructionOnline Mobile App. Creation + of reports & documents is exclusively accessible via browser access. +- Descriptions longer than 40 characters will only show the first 40 characters of + that Description within the default Description column width. +- Managing OnCost™ Estimates is exclusively available for Company Employees via browser + access to ConstructionOnline™. +- Resources can be assigned within all OnCost™ Estimates in ConstructionOnline™ +- Adding a Resource to an Estimate is exclusively available for Company Employees + via browser access to ConstructionOnline™. +- ConstructionOnline™ Company Accounts may be limited to a particular number of project + starts per year, depending upon the company's selected subscription package. +- New Projects may be created from scratch in ConstructionOnline™, CO™ Mobile, Socket™, + and/or CO™ Drive, although some setup options may be limited outside of the primary + ConstructionOnline™ web interface. +- Estimate Notes can be pulled from the Estimate using the Estimate Notes Report. +- Estimate Notes may also be included on the Simple Estimate Proposal. +- Only ConstructionOnline Company Users who have Estimating permissions set to 'Can + Create, Edit, & Delete' can add Notes to an Estimate. +- ClientLink and TeamLink Users cannot access Estimate Notes. +- A single Lead in ConstructionOnline could potentially spawn multiple Opportunities. +- As the industry's leading construction estimating software, ConstructionOnline™ + OnCost™ Estimating empowers construction pros to build detailed construction cost + estimates and track project financials from start to finish. +- Estimate Item attachments are not automatically added to Project Files. +- Attachments cannot be added to individual Estimate Categories or Subcategories. +- Project Templates group multiple project management elements together, offering + a single standardized roadmap for project creation. +- Project Templates can only be applied to new projects created from ConstructionOnline™. +- Project Templates are not accessible via CO™ Mobile. +- Classifications can be locked within the Estimate using the Lock Estimate options + for any OnCost™ Estimate. +- Only one Cost Code can be assigned per Estimate Category, Subcategory, or Item. +- Adding Cost Codes to Estimates is exclusively available via browser access to ConstructionOnline. + Estimates are presented in View-Only Mode on the ConstructionOnline Mobile App. +- The Status of Estimate Line Items can be used as a filter when generating the Estimate + Status Report. +- Project Templates can only be accessed through ConstructionOnline™. Project Templates + are not accessible via CO™ Mobile. +- Changes to Estimate Column Views for OnCost™ Estimating only update what data is + displayed for the Company User. +- Changes to Estimate Column Views do not remove any entered data from the Estimate. +- Changes to Estimate Column Views are specific to each user's profile and do not + impact how other users within the same ConstructionOnline™ Company Account can/will + view any given OnCost™ Estimate. +- ConstructionOnline™ will remember the user's last chosen Column View and automatically + default to that view for subsequent Estimates viewed in ConstructionOnline™. +- Taxes in ConstructionOnline can be set at either the Company or Project level. +- The Description column is a default column within Simple Estimate, Advanced Estimate, + and Budget Column Views but can be added to any Estimate Column View. +- Column Views are also user-specific. +- Restoring Estimate Column Defaults does not remove any entered data from the Estimate + - it only updates what data is displayed for the Company User. +- Changes to Estimate Column Views are specific to each User's profile and do not + impact how other Users within the same ConstructionOnline™ Company Account can/will + view any given OnCost™ Estimate. +- Managing OnCost™ Estimates is exclusively available via browser access to ConstructionOnline™. + Estimates are presented in View-Only Mode on the ConstructionOnline™ Mobile App. +- Provides users with powerful, user-friendly tools for creating detailed, comprehensive + cloud-based Estimates and Reports. +- Full-Screen Mode is available within all OnCost™ Estimates in ConstructionOnline™ + - including Opportunity Estimates & Estimate Templates. +- Full-Screen Mode is user-specific—entering & exiting Full-Screen Mode are unique + to the user choosing their screen view. +- 'Permissions: ConstructionOnline™ Company Users who have Estimating permissions + set to ''Can View'' or ''Can Create, Edit, & Delete'' can enter Full Screen Mode.' +- 'Mobile App: Full-Screen Mode is not available within the ConstructionOnline™ Mobile + App.' +- 'Permissions: Only ConstructionOnline™ Company Users who have Estimating permissions + set to ''Can Create, Edit, & Delete'' can add Notes to an Estimate.' +- ClientLink/TeamLink Users cannot access Estimate Notes. +- Most common file types may be uploaded as an attachment to an Estimate Line Item, + including PDF, DOC, JPG, and PNG files. +- Estimate Settings selected within this tab only apply to the current Estimate or + Estimate Template. +- Estimate Settings do not impact Settings at the Company or Project Level. +- Cost Codes will not send over when an Estimate is sent from ConstructionOnline to + QuickBooks Online or QuickBooks Desktop. +- Company Users must have Estimating permissions set as 'Can Create, Edit, & Delete' + to add Cost Codes to an Estimate. +- Company Users with Estimating permissions set to 'Can View' can view Cost Codes + in Estimates they have access to, but cannot add Cost Codes to an Estimate. +- Cost Codes cannot be added to entries on the Selections, Company Overhead and Margin, + or Takeoffs sheets of an Estimate. +- Adding Cost Codes to Estimates is exclusively available via browser access to ConstructionOnline. + Estimates are presented in 'View-Only Mode' on the ConstructionOnline Mobile App. +- Classification Markup is an Estimate-Level Setting that only applies to the current + Estimate or Estimate Template. +- Classification Markup cannot be set at the Company or Project Level. +- Only ConstructionOnline Company Users with Estimating permissions set to 'Can Create, + Edit, & Delete' can set Classification Markup. +- Estimates are presented in View-Only Mode on the ConstructionOnline Mobile App. +- Allows users to track over 30 key points of data from a cloud-based location. +- Options for updating the Status of Estimate Line Items to indicate whether the information + is in an Estimated, Firm, or Bid state. +- ConstructionOnline's industry-leading construction estimating software—OnCost™ Estimating—comes + with all of the tools construction companies need to build and track detailed & + accurate construction estimates. +- Restoring Defaults only restores the default Units that have been deleted from the + Units list. It does not undo edits made during the Renaming of Units and does not + remove New Units. +- Units that have been renamed and assigned within the Estimate will populate to the + first option from the Units list when defaults are restored. +- New Units that have been added to the Units list will not be removed when Restoring + the Defaults. +- Costbook Items must be enabled in Estimate Costbook Options for items to be inserted + into the estimate. +- Company Users must have permissions to add, edit, and delete Company Costbooks. +- Estimate Tax Settings are initially set when an Estimate is created for the first + time, but can be edited at any later time. +- 'Estimate Tax Settings can be set and edited for each individual Estimate in ConstructionOnline: + Project Estimates, Opportunity Estimates, and Estimate Templates.' +- To edit Estimate Tax Settings, Company Users must have Estimating Permissions set + as 'Can Create, Edit, & Delete'. +- Estimate Tax Settings are only accessible via browser access to ConstructionOnline. + Estimates are only available in View-Only Mode on the ConstructionOnline Mobile + App. +- With the world's fastest online Scheduling and the most powerful cloud-based Estimating + in the industry, ConstructionOnline provides your team with a versatile toolkit + engineered for project success. +- An estimate for a Project must exist before a schedule can be generated from an + estimate. +- Company Employees must have BOTH Estimating and Schedules Permissions set as Can + Create, Edit, & Delete in order to create a schedule from an estimate. +- Users cannot generate a schedule from an estimate using the ConstructionOnline Mobile + App. +- While creating a schedule from an estimate is a valuable and efficient method to + ensure cohesive project management, it is important to note that the schedule and + estimate function independently beyond schedule creation. Generating a schedule + from an estimate does not create an active sync between the two. +- Access to your company's QuickBooks Online administrator account will be required + to successfully complete the integration. +- Accounting Integration Settings can be managed at the company level, however each + individual ConstructionOnline Project must be linked before any data transfer can + be initiated. +- Columns can be arranged for ALL Estimates in ConstructionOnline™. +- Estimates cannot include Options. +- ClientLink and TeamLink Users do not have access to Estimates. +- Manual entry is the only option for applying markup to a Lump Sum Change Order. +- Default markup settings will automatically apply markup to Detailed Change Orders. +- Full-Screen Mode is available within all OnCost™ Estimates in ConstructionOnline™ +- Easily manage visibility for all empty construction estimate sections in ConstructionOnline's + OnCost™ Estimating +- Change Order Markup Settings do not apply to Lump Sum Change Orders. +- Change Order Markup Settings will not automatically apply to any change orders created + prior to customization. +- Empty Estimate sections are defined as Estimate rows with no dollar amount. +- The Estimating Toolbar is user-specific - each Company User can control if the Estimating + Toolbar is shown or hidden for Estimates within their account. +- If the Estimating Toolbar is hidden within a certain Estimate, the Toolbar will + be hidden for ALL other Estimates or Estimate Templates. The Toolbar will remain + hidden until the Company User opts to display the Toolbar again. +- Company Users must have Estimating Permissions set as "Can Create, Edit, & Delete" + to show/hide empty Estimate sections. +- Company Users with Estimating Permissions set as "Can View" or "Cannot View" do + not have access to the Estimating Toolbar or to show/hide empty Estimate sections. +- The Estimating Toolbar and its functions are exclusively available via browser access + to ConstructionOnline™. Estimates are presented in View-Only Mode on the ConstructionOnline™ + Mobile App. +- Company Users must have Client Selections permissions set as 'Can Create, Edit, + & Delete' to add Selection Choices using the Selection QuickPick Tool. +- ClientLink Users do not have the option to add new Categories or Selections. +- TeamLink™ Users do not have the option to add Selection Choices. +- The Selection QuickPick Tool is exclusively available via browser access to ConstructionOnline. +- ConstructionOnline's industry-leading OnCost™ Estimating software provides users + with flexible, customizable options for organizing over 30 key points of financial + data related to construction estimates. +- Company Users must have Client Selections permissions set as "Can Create, Edit, + & Delete" to install the Selection QuickPick Tool from ConstructionOnline. +- ClientLink™ Users must have Client Selections permissions set as "Can View Selections" + AND "Can Create Selections" to install the Selection QuickPick Tool from ConstructionOnline. +- TeamLink™ Users do not have the option to add Selection Choices and are therefore + unable to install the Selection QuickPick Tool. +- The Selection QuickPick Tool is exclusively available via browser access to ConstructionOnline. + The Selection QuickPick Tool cannot be used with the ConstructionOnline Mobile App. +- The Estimate Settings selected within this tab only apply to the current Estimate + or Estimate Template. +- 'Permissions: Only ConstructionOnline™ Company Users with Estimating permissions + set to ''Can Create, Edit, & Delete'' can set Classification Markup.' +- 'Mobile App: Estimates are presented in View-Only Mode on the ConstructionOnline™ + Mobile App. Classifications and Classification Markup can be viewed from the ConstructionOnline™ + Mobile App, but not assigned or managed.' +- Custom Units can be edited within any OnCost™ Estimate in ConstructionOnline™. +- The Unit column is a default column within Simple & Advanced Estimate sheet views. +- ConstructionOnline's Purchasing module is available for companies with current ConstructionOnline + subscriptions at the Team, Business, and Enterprise levels. +- ConstructionOnline Company Users must have Purchase Orders, Bills, and Payments + permissions set to 'Can Create & Edit' or 'Can Create, Edit & Delete' to create + new Purchase Orders. +- Expertly engineered to integrate alongside ConstructionOnline's financial toolkit +- Any resources assigned in the estimate will transfer over to the schedule. +- ConstructionOnline Company Users must have 'Can Create & Edit' or 'Can Create, Edit + & Delete' Expenses & Receipts permissions in order to create new Expenses. +- Multiple payments may be recorded for a single Invoice. +- Only ConstructionOnline™ Company Users with 'Can Create, Edit, & Delete' permissions + for Invoicing can record a payment for an Invoice. +- ClientLink™ and TeamLink™ Users cannot Record Payments in ConstructionOnline™. +- Invoicing features are exclusively accessible via browser access to ConstructionOnline™. +- Estimates in ConstructionOnline cannot include Options like in ConstructionSuite. +- ClientLink and TeamLink Users do not have access to Estimates in their respective + Project Portals. +- Predecessor relationships include Finish-Start, Finish-Finish, Start-Finish, Start-Start +- Predecessors can have lag time, which can be negative (lead time) +- The browser extension for the Selection QuickPick Tool must be installed before + it can be used to add Selection Choices. +- Make sure to pin the extension to your browser for quicker access to the QuickPick + Tool. +- The Selection QuickPick Tool can only add Selection Choices to Projects/Project + Templates that contain at least one Category. +- If the Selection QuickPick Tool gets stuck loading your product information, close + the tool, then re-open the tool. +- If the Selection QuickPick Tool pulled incorrect product information, reload the + product webpage. +- A Schedule Task can have multiple Predecessors +- A Schedule Group cannot be set as a Predecessor +- A Predecessor must have an end date before the linked Task’s start date +- Company Users must have Client Selections permissions set as 'Can Create, Edit, + & Delete' to install the Selection QuickPick Tool from ConstructionOnline. +- ClientLink™ Users must have Client Selections permissions set as 'Can View Selections' + AND 'Can Create Selections' to install the Selection QuickPick Tool from ConstructionOnline. +- Only ConstructionOnline™ Company Users with 'Can Create, Edit, & Delete' permissions + can create a Client Selection Category. +- ClientLink™ and TeamLink™ Users cannot create Categories or Selections. +- Use Calendars to manage and organize activities in one central place. +- Navigate to the Company Calendar page to create a Custom Calendar. +- Purchasing module is available for companies with current subscriptions at the Team, + Business, and Enterprise levels. +- Company Users must have Purchase Orders, Bills, and Payments permissions set to + Can Create & Edit or Can Create, Edit & Delete to create new Purchase Orders. +- Company Employee Permissions are managed within Company Employee Settings. +- List View for ConstructionOnline™ To Do Lists serves as the default view for managing + your To Dos +- Any styling and formatting changes made in ConstructionOnline To Do Lists are user-specific +- For payments to be recorded, an Invoice must first be created from the project Estimate + or an approved Change Order in ConstructionOnline™. +- Any styling and formatting changes made in ConstructionOnline To Do Lists are unique + to each user. +- Changes do not modify the underlying data. +- Each user can customize their task management experience without affecting others. +- Options available to send an Invoice via Email or print it as a PDF. +- Automated email reminders can be set for invoices. +- Invoice details can be customized to be more general or detailed. +- Requires integration configuration with QuickBooks Desktop +- Each ConstructionOnline™ Project can contain an unlimited amount of task lists. +- Punch Lists—and their respective Items & Item Issues—can be created manually per + Project, included as part of a Project Template, or imported from Excel. +- 'Permissions: ConstructionOnline™ Company Users must have Punch Lists permissions + set to ''Can Create, Edit, & Delete'' to create new Punch Lists.' +- First time users will need to log into QuickBooks as Admin in Single-User mode to + accept the Integration Certificate in QuickBooks. +- QuickBooks and Socket will need to be installed on the same computer to integrate. +- The QuickBooks Initial Setup is a universal set of settings - you only have to perform + the setup once for all projects! +- You must have an internet connection - This is a Direct Connection! +- ConstructionOnline™ Company Users must have Punch Lists permissions set to "Can + Create, Edit, & Delete" to create new Punch List Item Issues. +- ClientLink™ and TeamLink™ Users with Punch Lists permissions can "see Punch Lists + they're assigned a Viewer on, make changes to Punch Lists they're assigned an Editor + on, and make changes to Punch List Items they're an Assigned Resource on." +- New Punch List Item Issues can be created from the CO™ Mobile App. +- Only one Cost Code can be assigned for each Punch List Item. +- Company Users must have permissions for Punch Lists set as 'Can Create, Edit, & + Delete' to add Cost Codes to Punch List Items. +- Users can attach files to individual punch list items for detailed documentation. +- Files can also be attached to a Punch List Item from the Edit Punch List Item window. +- 'Users can also right-click on a file to access four additional actions: Preview, + Save to Project, Download, Remove Attachment.' +- Company Users must have Punch List permissions set as 'Can Create, Edit, & Delete' + to attach files to a Punch List Item. +- A Schedule Baseline is a snapshot of a project schedule at a particular moment in + time. +- Company Users can electronically sign off on the Punch List by adding their signature + directly in ConstructionOnline. +- Company Users can also electronically sign Punch Lists using the CO™ Mobile App. +- ClientLink™ and TeamLink™ Users cannot electronically sign Punch Lists directly + in ConstructionOnline. +- Punch Lists can also be digitally signed using the CO™ Mobile App. +- Generate a print-ready copy of a construction punch list, which can be customized + with specific filters, company-wide headers & footers, and more +- 'Permissions: Company Users must have permissions for Punch Lists as ''Can Create, + Edit, & Delete'' or ''Can View'' to print a Punch List.' +- Punch Lists cannot be printed out from the CO™ Mobile App. The creation of reports + & documents is exclusively available via browser access to ConstructionOnline. +- To add a Cost Code to a Daily Log, a Cost Code List must be assigned to the Project. +- Only Company Admin Users or the Project Creator can add a Cost Code List to a Project. +- Refer to the ConstructionOnline API documentation for detailed endpoint usage. +- Only one Cost Code can be assigned per Daily Log. +- To make the entire Cost Code List appear in the dropdown menu, enter a single space + in the Cost Code text box. +- Cost Codes cannot be added to Daily Weather Summaries, as these are automatic entries + from weather tracking that cannot be edited. +- Company Users must have Daily Logging permissions set as 'Can Create, Edit, & Delete' + to add a Cost Code to a Daily Log. +- ClientLink™ and TeamLink™ Users cannot view/add any information in relation to Cost + Codes. +- TeamLink Users with Daily Logging permissions set as 'Can View, Create, and Edit' + can edit their own Daily Logs, but do not have the option to add Cost Codes to Daily + Logs. +- Cost Codes can be added to Daily Logs from the ConstructionOnline Mobile App. +- To Dos can be created at the Company or Project level. +- Styling and formatting changes made to ConstructionOnline To Do List interfaces + are user-specific. +- ConstructionOnline™ Company Users must have Checklists permissions set to 'Can Create, + Edit, & Delete' to create new Checklist Item Issues. +- Data modifications made to tasks are reflected in real time. +- Each member of your project team can customize the style and format of their ConstructionOnline + To Do Lists. +- Changes made to the display or organization of task data are specific to each user's + account and do not affect other team members' views. +- Linked Items within To Dos can be associated with tasks or groups. +- To Dos can be pinned to sheets in Redline™ Planroom. +- Private To Dos will be only visible to the Creator and any Assigned or Related Resources. +- A Punch List must be created before Punch List Items can be added. +- ConstructionOnline™ Company Users must have Punch Lists permissions set to "Can + Create, Edit, & Delete" to create new Punch List Items. +- New Punch List Items can be created from the CO™ Mobile App. +- Requires a Punch List Item to be added before creating a new Item Issue. +- RFIs are tracked by Due Date and Status. +- RFIs can be marked as Resolved or Unresolved. +- ClientLink™ and TeamLink™ Users cannot view any information in relation to Cost + Codes—including any Cost Codes assigned to Punch List Items. +- Company Users can add a Cost Code to a Punch List Item using the CO™ Mobile App. +- Once uploaded, thumbnail images of the files will appear under the Punch List Item. +- Company Users must have Punch List permissions set as 'Can Create, Edit, & Delete' + to sign a Punch List. +- RFIs must be associated with an existing project. +- RFIs can be shared with TeamLink & ClientLink members. +- RFIs can be accessed and responded to via email. +- Only Company Employees can create Submittals. +- Submittals must be associated with an existing Project. +- Submittals can be shared with TeamLink & ClientLink members to view and respond. +- Submittals cannot be created without at least one Approver. +- Submittals play a crucial role in the contractual relationship. +- Refer to the ConstructionOnline API documentation for specific integration details. +- OCR scans and automatically reads Sheet Numbers, Names, and Callouts on every page. +- GamePlan settings are per user – Company User A can have a GamePlan set for Bob, + Company User B could have a different GamePlan set for Bob. +- Each Company User can only have one GamePlan set per resource. +- Only Company Administrators can edit Time Sheets for all Company Employees. +- Plans must be vector PDFs for successful upload. +- Ensure a stable internet connection (200 - 300 Mbps) during upload. +- Files and Photos are two separate sections of ConstructionOnline that assist with + different aspects of file management. +- Default Text Blocks are only accessible when generating a ConstructionOnline Report + or Document. +- Default Text Blocks can be added to most Financial and Communication Reports. +- Some ConstructionOnline reports & documents do not have the option to add Default + Text Blocks. +- Default Text Blocks are stored within the ConstructionOnline Company Account. +- You will need a Pro ConstructionOnline account subscription to use CO Drive. +- Requires setup of connected app in api +- Submittals cannot be created without adding at least one Approver. +- Submittals should not be deleted from ConstructionOnline as they cannot be recovered. +- Submittals can be shared with TeamLink & ClientLink members to view and respond + to. +- SuiteLink lets you easily share project documents, change orders, estimates, schedules, + plans, and photos with your entire project team. +- OCR scans and automatically reads Sheet Numbers, Names, and Callouts on every page, + saving you hours of work on each job. +- Formatting PDF plans plays a key role in ensuring your plans are scanned correctly. +- SuiteLink is not a direct 1:1 sync between ConstructionSuite and ConstructionOnline. +- Estimates and Change Orders can only be uploaded from ConstructionSuite to ConstructionOnline. +- If Project Sync is enabled, Projects will automatically sync between ConstructionSuite + and ConstructionOnline. +- Redline Takeoff is exclusively available for Team, Business, and Enterprise subscriptions. +- Redline Takeoff licenses must be assigned manually by a ConstructionOnline Product + Specialist. +- An active TotalCare membership is required to use SuiteLink. +- SuiteLink configuration must be completed before syncing information between ConstructionSuite + and ConstructionOnline. +- Plans must be the same size, ideally 24x36. +- All sheets must be vector PDFs. +- 'Recommended browsers: Google Chrome, Microsoft Edge, Firefox.' +- Set Geofence Radius to determine the distance at which notifications are triggered +- Set Nearby Radius to define the distance at which to include “Nearby Projects” +- Set Geofencing Schedule to limit location tracking to preferred days/times. +- You must enable Location Access for the ConstructionOnline Mobile App in Settings + on your mobile device. +- Step-by-step instructions for pinning existing items to a sheet can be found online. +- Redline Planroom's UDAi technology scans plans for automatic callout detection. +- Companies with Business or Enterprise subscriptions to ConstructionOnline are eligible + for read & write access to the ConstructionOnline API. +- API access is only available for companies with Business or Enterprise level subscriptions. +- Warranty Tracking feature is available for companies with current ConstructionOnline + subscriptions at Team, Business, and Enterprise levels. +- Warranty Tracking is also available as a Per-Company Add-On for all other plans. +- Creating warranty reminders is currently exclusively available through browser access + to ConstructionOnline. +- The Photostream is a dynamic, chronological timeline of select Project images. +- Warranty Tracking in ConstructionOnline is intended to streamline the construction + warranty management process. +- Customizable settings able to be applied to all warranties across your company. +- Managing Warranty Settings is currently exclusively available through browser access + to ConstructionOnline. +- Creating new warranties is currently exclusively available through browser access + to ConstructionOnline. +- ClientLink™ and TeamLink™ Users cannot access Default Text Blocks. +- Default Text Blocks are not accessible from the CO™ Mobile App. Creation of Default + Text Blocks is exclusively available via browser access to ConstructionOnline. +- Scheduling appointments is currently exclusively available through browser access + to ConstructionOnline. +- Allows subs, suppliers, and project team members to create detailed construction + daily reports. +- TeamLink™ Users must have Daily Logging permissions set to 'Can View, Create, and + Edit their own log entries' to create new Daily Logs from the TeamLink™ Portal. +- 'FAQ: SuiteLink, Connecting ConstructionSuite & ConstructionOnline' +- ConstructionSuite will link to the Project of the same name in ConstructionOnline. +- Allows uploading multiple resources via SuiteLink from ConstructionSuite into ConstructionOnline. +- 'FAQ: ConstructionOnline API' +- Uses OAuth2 — requires setup of connected app in ConstructionOnline +- Set Nearby Radius to define the distance at which to include 'Nearby Projects' +- Set Geofencing Schedule to limit location tracking to preferred days/times +- You must enable Location Access for the ConstructionOnline Mobile App in Settings + on your mobile device +- Warranty Tracking is available for companies with current ConstructionOnline subscriptions + at Team, Business, and Enterprise levels. +- ConstructionOnline streamlines warranty management for Company Users. +- ConstructionOnline’s Warranty Tracking tools encourage contractors to proactively + address warranty issues through the Appointments feature. +- 'Alternative Access Point: An Appointment may also be created from within the ''Warranty + Tracking'' tab of the Company Overview.' +- 'Subscription Level: ConstructionOnline''s Warranty Tracking feature is available + for companies with current ConstructionOnline subscriptions at Team, Business, and + Enterprise levels.' +- 'Permissions: Admin Users and Company Users with ''Can Create & Edit'' or ''Can + Create, Edit, & Delete'' permissions for Warranty Tracking can create an appointment.' +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Check your client credentials and OAuth token.' +- '404 Not Found: Ensure the endpoint exists and is correct.' +- '403 Forbidden: Check your permissions for the requested resource' +- Company Users must have Estimating permissions set as 'Can Create, Edit, & Delete' + to delete an Estimate. +- Could not match QuickBooks Job with ConstructionOnline Project. +- Could not find exact match for QuickBooks Item(s) in OnCost Estimate. +- '401 Unauthorized: Recheck permissions or token expiration' +- 'Import failed: Template is edited' +- '401 Unauthorized: Company Users must have permissions set as ''Can Create, Edit, + & Delete'' to import Leads.' +- Most common file types may be uploaded as an attachment to an Estimate Line Item, + including PDF, DOC, JPG, and PNG files. +- 'Permissions: Only ConstructionOnline™ Company Users with Estimating Permissions + set to ''Can Create, Edit & Delete'' can edit Estimate Custom Units.' +- Company Users with Estimating Permissions set as 'Can View' or 'Cannot View' cannot + arrange Estimate column views. +- Managing Estimate Column Views is exclusively available via browser access to ConstructionOnline™. +- If the Selection QuickPick Tool gets stuck loading your product information, close + the tool, then re-open the tool. +- If the Selection QuickPick Tool pulled incorrect product information, reload the + product webpage. +- '401 Unauthorized: Check your credentials' +- ClientLink and TeamLink Users cannot view/add any information in relation to Cost + Codes. +- TeamLink Users with Daily Logging permissions set as 'Can View, Create, and Edit' + can edit their own Daily Logs, but do not have the option to add Cost Codes to Daily + Logs. +- 'UPLOAD_FAILED: Check file format and internet connection.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle uploads or reduce frequency.' +- 'UPLOAD_FAILED: Check browser compatibility or internet speed.' +- 'FORMAT_ERROR: Ensure files are in vector PDF format.' +- 'CORRUPT_FILE: Repair PDF files before re-uploading.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential + - Company Admin Users + - Project Creator +client: + base_url: https://us.constructiononline.com/ + auth: + type: oauth2 +source_metadata: null diff --git a/cortex_metrics/cortex-metrics-docs.md b/cortex_metrics/cortex-metrics-docs.md new file mode 100644 index 00000000..f524bd9b --- /dev/null +++ b/cortex_metrics/cortex-metrics-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Cortex Metrics data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def cortex_metrics_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://cortexmetrics.io/api/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + ruler, rules, alerts + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='cortex_metrics_migration_pipeline', + destination='duckdb', + dataset_name='cortex_metrics_migration_data', + ) + # Load the data + load_info = pipeline.run(cortex_metrics_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from cortex_metrics_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- General: General information and status endpoints. +- Rules: Manage and query rules. +- Alerts: Create and manage alerts. +- Metrics: Access and query metrics data. +- Configuration: Manage configuration settings. + +You will then debug the Cortex Metrics pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Cortex Metrics support. + ```shell + dlt init dlthub:cortex_metrics_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Cortex Metrics API, as specified in @cortex_metrics_migration-docs.yaml + Start with endpoints ruler and rules and skip incremental loading for now. + Place the code in cortex_metrics_migration_pipeline.py and name the pipeline cortex_metrics_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python cortex_metrics_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is required for certain endpoints. Multi-tenancy must be enabled via the CLI flag '-auth.enabled' or its respective YAML config option. For endpoints requiring authentication when multi-tenancy is enabled, include the 'X-Scope-OrgID' HTTP request header set to the tenant ID. + + To get the appropriate API keys, please visit the original source at https://cortexmetrics.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python cortex_metrics_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline cortex_metrics_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset cortex_metrics_migration_data + The duckdb destination used duckdb:/cortex_metrics_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline cortex_metrics_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("cortex_metrics_migration_pipeline").dataset() + # get ule table as Pandas frame + data.ule.df().head() + ``` + +## Running into errors? + +Be aware that some endpoints have specific HTTP methods required for access, and multi-tenancy may introduce additional complexity in requests. Additionally, experimental features may have limitations and require careful testing. It's essential to monitor for any breaking changes during version upgrades. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/cortex_metrics/cortex-metrics-docs.yaml b/cortex_metrics/cortex-metrics-docs.yaml new file mode 100644 index 00000000..cefad823 --- /dev/null +++ b/cortex_metrics/cortex-metrics-docs.yaml @@ -0,0 +1,7282 @@ +resources: +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: series + endpoint: + path: /api/v1/series + method: GET,POST +- name: labels + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: index + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof/heap + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: index + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof/heap + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET + data_selector: '' + params: {} +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST + data_selector: '' + params: {} +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET + data_selector: '' + params: {} +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET + data_selector: '' + params: {} +- name: template_files + endpoint: + path: /configs/templates + method: GET + data_selector: '' + params: {} +- name: set_template_files + endpoint: + path: /configs/templates + method: POST + data_selector: '' + params: {} +- name: alertmanager_config + endpoint: + path: /configs/alertmanager + method: GET + data_selector: '' + params: {} +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: index + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof/heap + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: index + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ingester_flush + endpoint: + path: /ingester/flush + method: GET,POST +- name: ingester_shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingester_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET + data_selector: null + params: {} +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof/heap + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingester_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: index + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof/heap + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: status + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services + endpoint: + path: /services + method: GET +- name: ready + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenant_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker + endpoint: + path: /distributor/ha_tracker + method: GET +- name: ingester_flush + endpoint: + path: /ingester/flush + method: GET,POST +- name: ingester_shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingester_ring + endpoint: + path: /ingester/ring + method: GET +- name: ingester_all_user_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: series + endpoint: + path: /api/v1/series + method: GET,POST +- name: labels + endpoint: + path: /api/v1/labels + method: GET,POST +- name: label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_info + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET +- name: rules + endpoint: + path: /api/v1/rules + method: GET +- name: alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: rules_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_config + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: delete_alertmanager_tenant_config + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET,POST,DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET,POST +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof/heap + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST + headers: + X-Prometheus-Remote-Write-Version: 0.1.0 +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ingester_flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: ingester_shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingester_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: series + endpoint: + path: /api/v1/series + method: GET,POST +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: index + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof/heap + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: index + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: index + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: user_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: rule_groups + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: push + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: all_user_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush + endpoint: + path: /ingester/flush + method: + - GET + - POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: + - GET + - POST +- name: ingester_ring + endpoint: + path: /ingester/ring + method: GET +- name: all_user_stats_ingester + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: + - GET + - POST +- name: query + endpoint: + path: /api/v1/query + method: + - GET + - POST +- name: query_range + endpoint: + path: /api/v1/query_range + method: + - GET + - POST +- name: query_exemplars + endpoint: + path: /api/v1/query_exemplars + method: + - GET + - POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: + - GET + - POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: + - GET + - POST +- name: series + endpoint: + path: /api/v1/series + method: + - GET + - POST +- name: labels + endpoint: + path: /api/v1/labels + method: + - GET + - POST +- name: label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: user_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring + endpoint: + path: /ruler/ring + method: GET +- name: rule_groups + endpoint: + path: /ruler/rule_groups + method: GET +- name: rules + endpoint: + path: /api/v1/rules + method: GET +- name: alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: rules_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_config + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: delete_alertmanager_config + endpoint: + path: /api/v1/alerts + method: DELETE +- name: purger_delete_tenant + endpoint: + path: /purger/delete_tenant + method: POST +- name: purger_delete_tenant_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof/heap + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: index + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenant_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ingester_flush + endpoint: + path: /ingester/flush + method: GET,POST +- name: ingester_shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingester_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: series + endpoint: + path: /api/v1/series + method: GET,POST +- name: labels + endpoint: + path: /api/v1/labels + method: GET,POST +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: query_exemplars + endpoint: + path: /api/v1/query_exemplars + method: GET + data_selector: '' + params: {} +- name: services_status + endpoint: + path: /services + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ingester_flush + endpoint: + path: /ingester/flush + method: GET,POST +- name: ingester_shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingester_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: index + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ingester_flush + endpoint: + path: /ingester/flush + method: GET,POST +- name: ingester_shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingester_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: user_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: delete_tenant_config + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: index + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: index + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ingester_flush + endpoint: + path: /ingester/flush + method: GET,POST +- name: ingester_shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingester_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: user_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: index + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: series + endpoint: + path: /api/v1/series + method: GET,POST +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET + data_selector: records +- name: Proposals + endpoint: + path: /docs/proposals/ + method: GET + data_selector: proposals + params: {} +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof_heap + endpoint: + path: /debug/pprof/heap + method: GET +- name: pprof_block + endpoint: + path: /debug/pprof/block + method: GET +- name: pprof_profile + endpoint: + path: /debug/pprof/profile + method: GET +- name: pprof_trace + endpoint: + path: /debug/pprof/trace + method: GET +- name: pprof_goroutine + endpoint: + path: /debug/pprof/goroutine + method: GET +- name: pprof_mutex + endpoint: + path: /debug/pprof/mutex + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: rules + endpoint: + path: /api/v1/rules + method: GET +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ingester_flush + endpoint: + path: /ingester/flush + method: GET,POST +- name: ingester_shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingester_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET + data_selector: current_template_files +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET + data_selector: current_alertmanager_config +- name: rule_groups + endpoint: + path: /api/v1/rules/{namespace} + method: GET + data_selector: rule_groups +- name: rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET + data_selector: rule_group +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: index + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: template_files + endpoint: + path: /configs/templates + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: index + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ingester_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: user_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: multitenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: index_page + endpoint: + path: / + method: GET +- name: configuration + endpoint: + path: /config + method: GET +- name: runtime_configuration + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: pprof + endpoint: + path: /debug/pprof + method: GET +- name: fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingesters_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: build_information + endpoint: + path: /api/v1/status/buildinfo + method: GET +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: Index + endpoint: + path: / + method: GET +- name: Configuration + endpoint: + path: /config + method: GET +- name: Runtime Configuration + endpoint: + path: /runtime_config + method: GET +- name: Services status + endpoint: + path: /services + method: GET +- name: Readiness probe + endpoint: + path: /ready + method: GET +- name: Metrics + endpoint: + path: /metrics + method: GET +- name: Remote write + endpoint: + path: /api/v1/push + method: POST +- name: OTLP Receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: Distributor ring status + endpoint: + path: /distributor/ring + method: GET +- name: Tenants stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: Ingester Flush blocks + endpoint: + path: /ingester/flush + method: + - GET + - POST +- name: Ingester Shutdown + endpoint: + path: /ingester/shutdown + method: + - GET + - POST +- name: Ingester tenants stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: Get tenant ingestion stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: Ruler ring status + endpoint: + path: /ruler/ring + method: GET +- name: delete_tenant_config + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: remote_write + endpoint: + path: /api/v1/push + method: POST +- name: otlp_receiver + endpoint: + path: /api/v1/otlp/v1/metrics + method: POST +- name: tenants_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: ha_tracker_status + endpoint: + path: /distributor/ha_tracker + method: GET +- name: flush_blocks + endpoint: + path: /ingester/flush + method: GET,POST +- name: shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: ingester_ring_status + endpoint: + path: /ingester/ring + method: GET +- name: ingester_tenants_stats + endpoint: + path: /ingester/all_user_stats + method: GET +- name: ingester_mode + endpoint: + path: /ingester/mode + method: GET,POST +- name: instant_query + endpoint: + path: /api/v1/query + method: GET,POST +- name: range_query + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: exemplar_query + endpoint: + path: /api/v1/query_exemplars + method: GET,POST +- name: format_query + endpoint: + path: /api/v1/format_query + method: GET,POST +- name: parse_query + endpoint: + path: /api/v1/parse_query + method: GET,POST +- name: get_series_by_label_matchers + endpoint: + path: /api/v1/series + method: GET,POST +- name: get_label_names + endpoint: + path: /api/v1/labels + method: GET,POST +- name: get_label_values + endpoint: + path: /api/v1/label/{name}/values + method: GET +- name: get_metric_metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: remote_read + endpoint: + path: /api/v1/read + method: POST +- name: get_tenant_ingestion_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: ruler_ring_status + endpoint: + path: /ruler/ring + method: GET +- name: ruler_rules + endpoint: + path: /ruler/rule_groups + method: GET +- name: list_rules + endpoint: + path: /api/v1/rules + method: GET +- name: list_alerts + endpoint: + path: /api/v1/alerts + method: GET +- name: list_rule_groups + endpoint: + path: /api/v1/rules + method: GET +- name: get_rule_groups_by_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: GET +- name: get_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: GET +- name: set_rule_group + endpoint: + path: /api/v1/rules/{namespace} + method: POST +- name: delete_rule_group + endpoint: + path: /api/v1/rules/{namespace}/{groupName} + method: DELETE +- name: delete_namespace + endpoint: + path: /api/v1/rules/{namespace} + method: DELETE +- name: delete_tenant_configuration + endpoint: + path: /ruler/delete_tenant_config + method: POST +- name: alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: alertmanager_ring_status + endpoint: + path: /multitenant_alertmanager/ring + method: GET +- name: alertmanager_ui + endpoint: + path: / + method: GET +- name: alertmanager_delete_tenant_configuration + endpoint: + path: /multitenant_alertmanager/delete_tenant_config + method: POST +- name: get_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: POST +- name: delete_alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: DELETE +- name: tenant_delete_request + endpoint: + path: /purger/delete_tenant + method: POST +- name: tenant_delete_status + endpoint: + path: /purger/delete_tenant_status + method: GET +- name: store_gateway_ring_status + endpoint: + path: /store-gateway/ring + method: GET +- name: compactor_ring_status + endpoint: + path: /compactor/ring + method: GET +- name: get_rule_files + endpoint: + path: /api/prom/configs/rules + method: GET +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: get_template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: get_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: validate_alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager/validate + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: index + endpoint: + path: / + method: GET +- name: config + endpoint: + path: /config + method: GET +- name: runtime_config + endpoint: + path: /runtime_config + method: GET +- name: services_status + endpoint: + path: /services + method: GET +- name: readiness_probe + endpoint: + path: /ready + method: GET +- name: metrics + endpoint: + path: /metrics + method: GET +- name: distributor_ring_status + endpoint: + path: /distributor/ring + method: GET +- name: ingester_flush + endpoint: + path: /ingester/flush + method: GET,POST +- name: ingester_shutdown + endpoint: + path: /ingester/shutdown + method: GET,POST +- name: query_instant + endpoint: + path: /api/v1/query + method: GET,POST +- name: query_range + endpoint: + path: /api/v1/query_range + method: GET,POST +- name: template_files + endpoint: + path: /api/prom/configs/templates + method: GET +- name: alertmanager_config + endpoint: + path: /api/prom/configs/alertmanager + method: GET +- name: alertmanager_configuration + endpoint: + path: /api/v1/alerts + method: GET +- name: set_template_files + endpoint: + path: /api/prom/configs/templates + method: POST +- name: set_rule_files + endpoint: + path: /api/prom/configs/rules + method: POST +- name: set_alertmanager_config_file + endpoint: + path: /api/prom/configs/alertmanager + method: POST +- name: deactivate_configs + endpoint: + path: /api/prom/configs/deactivate + method: DELETE +- name: restore_configs + endpoint: + path: /api/prom/configs/restore + method: POST +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: store-gateway + endpoint: + path: /docs/blocks-storage/store-gateway/ + method: GET + data_selector: '' + params: {} +- name: compactor + endpoint: + path: /docs/blocks-storage/compactor/ + method: GET + data_selector: '' + params: {} +- name: querier + endpoint: + path: /docs/blocks-storage/querier/ + method: GET + data_selector: '' + params: {} +- name: multitenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs + params: {} +- name: ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups + params: {} +- name: distributor_all_user_stats + endpoint: + path: /distributor/all_user_stats + method: GET +- name: debug_fgprof + endpoint: + path: /debug/fgprof + method: GET +- name: ha_tracker + endpoint: + path: /ha-tracker + method: GET +- name: user_stats + endpoint: + path: /api/v1/user_stats + method: GET +- name: chunks + endpoint: + path: /api/v1/chunks + method: GET +- name: multitenant_alertmanager_status + endpoint: + path: /multitenant_alertmanager/status + method: GET +- name: status + endpoint: + path: /status + method: GET +- name: push + endpoint: + path: /api/v1/push + method: POST +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs + params: {} +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups + params: {} +- name: Querier + endpoint: + path: /blocks-storage/querier/ + method: GET +- name: Store-gateway + endpoint: + path: /blocks-storage/store-gateway/ + method: GET +- name: Compactor + endpoint: + path: /blocks-storage/compactor/ + method: GET +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET +- name: alertmanager + endpoint: + path: /alertmanager + method: GET + data_selector: alerts + params: {} +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: campaign_member + endpoint: + params: + incremental: updated_at +- name: contact + endpoint: + params: {} +- name: multitenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET +- name: multitenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET +- name: alertmanager + endpoint: + path: /alertmanager + method: GET +- name: ruler + endpoint: + path: /ruler + method: GET +- name: ingester_config + endpoint: + params: + flush_period: 1m0s + retain_period: 5m0s + max_chunk_idle_time: 5m0s + max_stale_chunk_idle_time: 2m0s + flush_op_timeout: 1m0s + max_chunk_age: 12h0m0s + chunk_age_jitter: '0' + concurrent_flushes: 50 + spread_flushes: true + rate_update_period: 15s +- name: querier_config + endpoint: + params: + max_concurrent: 20 + batch_iterators: true + ingester_streaming: true + max_samples: 50000000 + default_evaluation_interval: 1m0s +- name: ruler_config + endpoint: + params: + external_url: '' + evaluation_interval: 1m0s + poll_interval: 1m0s + rule_path: /rules + alertmanager_url: '' + enable_alertmanager_discovery: false + alertmanager_refresh_interval: 1m0s + enable_alertmanager_v2: false + notification_queue_capacity: 10000 + notification_timeout: 10s + enable_sharding: false + search_pending_for: 5m0s + flush_period: 1m0s +- name: alertmanager_config + endpoint: + params: + data_dir: data/ + external_url: '' + poll_interval: 15s + cluster_bind_address: 0.0.0.0:9094 + cluster_advertise_address: '' + peer_timeout: 15s + fallback_config_file: '' + auto_webhook_root: '' +- name: table_manager_config + endpoint: + params: + poll_interval: 2m0s + creation_grace_period: 10m0s + enable_ondemand_throughput_mode: false + enable_inactive_throughput_on_demand_mode: false +- name: multitenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: rule_groups + endpoint: + path: /ruler/rule_groups + method: GET +- name: table_manager + endpoint: + params: + creation_grace_period: 10m0s +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: records +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: records +- name: rules + endpoint: + path: /rules + method: GET + data_selector: records + params: {} +- name: alerts + endpoint: + path: /alerts + method: GET + data_selector: records + params: {} +- name: multitenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: table_manager + endpoint: + path: /table_manager + method: GET + data_selector: records + params: {} +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: alertmanager + endpoint: + path: /alertmanager + method: GET +- name: prometheus + endpoint: + path: /prometheus + method: GET +- name: metadata + endpoint: + path: /api/v1/metadata + method: GET +- name: ingester_config + endpoint: + params: + flush_period: 1m0s + retain_period: 5m0s + max_chunk_idle_time: 5m0s + max_stale_chunk_idle_time: 2m0s + flush_op_timeout: 1m0s + max_chunk_age: 12h0m0s + chunk_age_jitter: '0' + concurrent_flushes: 50 + spread_flushes: true + rate_update_period: 15s +- name: querier_config + endpoint: + params: + max_concurrent: 20 + batch_iterators: true + ingester_streaming: true + max_samples: 50000000 + default_evaluation_interval: 1m0s +- name: ruler_config + endpoint: + params: + external_url: '' + evaluation_interval: 1m0s + poll_interval: 1m0s + rule_path: /rules + alertmanager_url: '' + enable_alertmanager_discovery: false + alertmanager_refresh_interval: 1m0s + enable_alertmanager_v2: false + notification_queue_capacity: 10000 + notification_timeout: 10s + enable_sharding: false + search_pending_for: 5m0s + flush_period: 1m0s +- name: alertmanager_config + endpoint: + params: + data_dir: data/ + external_url: '' + poll_interval: 15s + cluster_bind_address: 0.0.0.0:9094 + cluster_advertise_address: '' + peer_timeout: 15s + fallback_config_file: '' + auto_webhook_root: '' +- name: table_manager_config + endpoint: + params: + poll_interval: 2m0s + creation_grace_period: 10m0s + enable_ondemand_throughput_mode: false + enable_inactive_throughput_mode: false +- name: storage_config + endpoint: + params: + dynamodb_url: '' +- name: tenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET +- name: tenant_ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET +- name: multitenant_alertmanager_configs + endpoint: + path: /multitenant_alertmanager/configs + method: GET + data_selector: configs +- name: ruler_rule_groups + endpoint: + path: /ruler/rule_groups + method: GET + data_selector: rule_groups +- name: ruler + endpoint: + path: /ruler + method: GET + data_selector: rules + params: {} +- name: alertmanager + endpoint: + path: /alertmanager + method: GET + data_selector: alerts + params: {} +- name: ingester_config + endpoint: + path: /ingester + method: GET + data_selector: records + params: {} +- name: querier_config + endpoint: + path: /querier + method: GET + data_selector: records + params: {} +- name: ruler_config + endpoint: + path: /ruler + method: GET + data_selector: records + params: {} +- name: alertmanager_config + endpoint: + path: /alertmanager + method: GET + data_selector: records + params: {} +- name: table_manager_config + endpoint: + path: /table-manager + method: GET + data_selector: records + params: {} +- name: storage_config + endpoint: + path: /storage + method: GET + data_selector: records + params: {} +- name: rule + endpoint: + path: /rules + method: GET + data_selector: rules + params: {} +notes: +- Multi-tenancy can be enabled/disabled via the CLI flag '-auth.enabled'. +- Requires authentication for certain endpoints. +- Multi-tenancy can be enabled/disabled via the CLI flag -auth.enabled or its respective + YAML config option. +- Requires authentication. +- When multi-tenancy is enabled, endpoints requiring authentication are expected to + be called with the X-Scope-OrgID HTTP request header set to the tenant ID. +- Multi-tenancy can be enabled/disabled via the CLI flag `-auth.enabled`. +- Multi-tenancy is enabled via CLI flag `-auth.enabled` or YAML config option. +- When multi-tenancy is enabled, the X-Scope-OrgID header must be set to the tenant + ID. +- Multi-tenancy can be enabled/disabled via the CLI flag -auth.enabled. +- When multi-tenancy is enabled, include X-Scope-OrgID header with tenant ID. +- Multi-tenancy can be enabled/disabled via -auth.enabled CLI flag. +- Cortex can be configured to use local storage or cloud storage (S3, GCS, and Azure). +- Request authentication and authorization are handled by an external reverse proxy. +- Query frontend can also be used with any Prometheus-API compatible service. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Uses OAuth2 with refresh token — requires setup of connected app in Cortex +- Cortex is an OSS licensed project as Apache License 2.0 +- When multi-tenancy is enabled, endpoints requiring authentication are expected to + be called with the `X-Scope-OrgID` HTTP request header set to the tenant ID. +- Multi-tenancy can be enabled/disabled via the CLI flag `-auth.enabled` or its respective + YAML config option. +- Local file disclosure vulnerability in OpsGenie configuration has been fixed. +- Rename oltp_endpoint to otlp_endpoint to match opentelemetry spec and lib name. +- Log warn level on push requests when they have status code 4xx. +- Change HTTP status code from 503/422 to 499 if a request is canceled. +- This release removes support for chunks storage. See below for more. +- 'Query-Frontend: deprecate `-querier.compress-http-responses` in favour of `-api.response-compression-enabled`.' +- 'Querier: deprecated `-store.max-look-back-period`. You should use `-querier.max-query-lookback` + instead.' +- 'Blocks storage: increased `-blocks-storage.bucket-store.chunks-cache.attributes-ttl` + default from `24h` to `168h` (1 week).' +- 'Blocks storage: the config option `-blocks-storage.bucket-store.index-cache.postings-compression-enabled` + has been deprecated and postings compression is always enabled.' +- 'Ruler: gRPC message size default limits on the Ruler-client side have changed.' +- 'Distributor/Ingester: Provide ability to not overflow writes in the presence of + a leaving or unhealthy ingester.' +- 'Query-frontend: introduced query statistics logged in the query-frontend when enabled + via `-frontend.query-stats-enabled=true`.' +- 'Experimental TSDB: added metrics useful to alert on critical conditions of the + blocks storage.' +- WAL support for chunks is now considered to be production-ready. +- Deprecate `-blocks-storage.tsdb.wal-compression-enabled` flag (use `blocks-storage.tsdb.wal-compression-type` + instead). +- Change OTLP handler to be consistent with the Prometheus OTLP handler. +- Change all max async concurrency default values `50` to `3` +- Enable Compactor and Alertmanager in target all. +- 'gRPC Client: Expose connection timeout and set default to value to 5s.' +- Enable store gateway zone stable shuffle sharding by default. +- Remove support for chunks storage entirely. +- Remove support for alertmanager and ruler legacy store configuration. +- Disables TSDB isolation. +- Drops support Prometheus 1.x rule format on configdb. +- Removes -ingester.stream-chunks-when-using-blocks experimental flag and stream chunks + by default when querier.ingester-streaming is enabled. +- 'Memberlist: Expose default configuration values to the command line options.' +- Some files and directories created by Cortex components on local disk now have stricter + permissions. +- The metric cortex_deprecated_flags_inuse_total has been renamed to deprecated_flags_inuse_total. +- The blocks storage compactor runs a migration task at startup in this version, which + can take many minutes and use a lot of RAM. +- Turn this off after first run. +- 'OpenStack Swift: the default value for the `-ruler.storage.swift.container-name` + and `-swift.container-name` config options has changed from `cortex` to empty string.' +- Enforced the HTTP method required by some API endpoints which did (incorrectly) + allow any method before that. +- TLS configuration for gRPC, HTTP and etcd clients is now marked as experimental. +- Cassandra backend support is now GA (stable). +- Blocks storage is now GA (stable). +- 'Ingester: Removed deprecated untyped record from chunks WAL.' +- Distributor API endpoints are no longer served unless target is set to distributor + or all. +- Increase the default Cassandra client replication factor to 3. +- 'Blocks storage: removed the support to transfer blocks between ingesters on shutdown.' +- The buckets for the cortex_chunk_store_index_lookups_per_query metric have been + changed to 1, 2, 4, 8, 16. +- 'Blocks storage: the operation label value getrange has changed into get_range for + the metrics thanos_store_bucket_cache_operation_requests_total and thanos_store_bucket_cache_operation_hits_total.' +- 'Experimental Delete Series: /api/v1/admin/tsdb/delete_series and /api/v1/admin/tsdb/cancel_delete_request + purger APIs to return status code 204 instead of 200 for success.' +- 'Experimental blocks storage: The max concurrent queries against the long-term storage + is now a limit shared across all tenants.' +- Query with no metric name that has previously resulted in HTTP status code 500 now + returns status code 422 instead. +- The query-frontend now requires the -querier.default-evaluation-interval config + to be set to the same value of the querier. +- When the querier receives a /series request with a time range older than the data + stored in the ingester, it now ignores the requested time range and returns known + series anyway instead of returning an empty response. +- Fixed an edge case leading to an invalid CQL query when querying the index on a + Cassandra store. +- Increment series per metric when recovering from WAL or transfer. +- Fixed wrong number of arguments for 'mget' command Redis error when a query has + no chunks to lookup from storage. +- Automatically remove old tmp checkpoints, fixing a potential disk space leak after + an ingester crashes. +- This experimental blocks storage in Cortex 1.0.0 has a bug which may lead to the + error cannot iterate chunk for series when running queries. +- Fix potential data corruption in cases of timeout between distributors and ingesters. +- 'Cortex chunks storage has been deprecated and it’s now in maintenance mode: all + Cortex users are encouraged to migrate to the blocks storage.' +- 'Fix for CVE-2021-31232: Local file disclosure vulnerability when -experimental.alertmanager.enable-api + is used.' +- FramedSnappy encoding support has been removed from Push and Remote Read APIs. +- 'Ruler: removed the flag `-ruler.evaluation-delay-duration-deprecated` which was + deprecated in 1.4.0.' +- Some API endpoints require specific HTTP methods. +- TLS configuration for gRPC, HTTP and etcd clients is now marked as experimental. + These features are not yet fully baked, and we expect possible small breaking changes + in Cortex 1.5. +- Experimental API changes may affect integration. +- Change default value of `-blocks-storage.bucket-store.index-cache.multilevel.max-async-concurrency` + from `50` to `3` +- This release removes support for chunks storage. +- Before upgrading to this release, you should also remove any deprecated chunks-related + configuration. +- Some files and directories created by Cortex components on local disk now have stricter + permissions, and are only readable by owner, but not group or others. +- Add support for SNS Receiver. +- Cortex now fails fast on startup if unable to connect to the ring backend. +- Multi-tenancy can be enabled/disabled via the CLI flag '-auth.enabled' or its respective + YAML config option. +- Requires authentication for all endpoints. +- Note the blocks storage compactor runs a migration task at startup in this version, + which can take many minutes and use a lot of RAM. +- Queries can be federated across multiple tenants. +- The default value of -blocks-storage.bucket-store.sync-interval has been changed + from 5m to 15m. +- 'Blocks storage: update the default HTTP configuration values for the S3 client + to the upstream Thanos default values.' +- 'Query-frontend: POST requests whose body size exceeds 10MiB will be rejected.' +- Clarify limitations of the /api/v1/series, /api/v1/labels and /api/v1/label/{name}/values + endpoints. +- The query-frontend now requires the `-querier.default-evaluation-interval` config + to be set to the same value of the querier. +- 'Experimental Support Parquet format: Implement parquet converter service to convert + a TSDB block into Parquet and Parquet Queryable.' +- Implement versioned transactions for writes to DynamoDB ring. +- 'Configsdb: Ruler configs doesn’t work. Remove all configs from postgres database + that have format Prometheus 1.x rule format before upgrading to v1.14.0.' +- 'Fix for CVE-2021-31232: Local file disclosure vulnerability when -experimental.alertmanager.enable-api + is used. The HTTP basic auth password_file can be used as an attack vector to send + any file content via a webhook. The alertmanager templates can be used as an attack + vector to send any file content because the alertmanager can load any text file + specified in the templates list.' +- Queries can be federated across multiple tenants. The tenants IDs involved need + to be specified separated by a | character in the X-Scope-OrgID request header. +- Experimental features may change without notice. +- Some endpoints may have specific requirements for query parameters. +- This release brings the usual mix of bugfixes and improvements. +- 'This experimental blocks storage in Cortex 1.0.0 has a bug which may lead to the + error cannot iterate chunk for series when running queries. This bug has been fixed + in #2400. If you’re running the experimental blocks storage, please build Cortex + from master.' +- Target info metric is enabled by default and can be disabled via -distributor.otlp.disable-target-info=true + flag +- Convert all attributes to labels is disabled by default and can be enabled via -distributor.otlp.convert-all-attributes=true + flag +- Upgraded objstore dependency and support Azure Workload Identity Authentication. +- Added connection_string to support authenticating via SAS token. +- Marked msi_resource config as deprecating. +- Local file disclosure vulnerability when `-experimental.alertmanager.enable-api` + is used. +- Queries can be federated across multiple tenants. The tenants IDs involved need + to be specified separated by a `|` character in the `X-Scope-OrgID` request header. +- Improved shuffle sharding support in the write path. +- 'Experimental TSDB: fixed chunk data corruption when querying back series using + the experimental blocks storage.' +- Update Go version to 1.21.3 +- The metric `cortex_deprecated_flags_inuse_total` has been renamed to `deprecated_flags_inuse_total`. +- This guide uses `grafana-datasource-docker.yaml` which is specifically configured + for the single binary Docker Compose deployment. For Kubernetes/microservices mode, + use `grafana-datasource.yaml` instead. +- The default value for the -blocks-storage.bucket-store.sync-interval has been changed + from 5m to 15m. +- This guide uses `grafana-datasource-docker.yaml` which is specifically configured + for the single binary Docker Compose deployment. +- This mode is not recommended or intended for production environments or production + use. +- Each HTTP request must include a header specifying a tenant ID. +- 'Experimental Ruler: Rule groups persisted to object storage using the experimental + API have an updated object key encoding to better handle special characters.' +- Internally, some components are based on Thanos, but no Thanos knowledge is required + in order to run it. +- HA Tracker flags were renamed to provide more clarity +- You can specify “heap ballast” to reduce Go GC Churn +- HA Tracker no longer always makes a request to Consul/Etcd when a request is not + from the active replica +- Queries are now correctly cancelled by the query-frontend +- target_info metric is enabled by default and can be disabled via -distributor.otlp.disable-target-info=true + flag +- Some changes include renaming metrics and adding new configuration flags. +- 'Compactor: Added cortex_compactor_runs_interrupted_total to separate compaction + interruptions from failures.' +- Some features are experimental and may require additional configuration. +- Compactor is now required when running a Cortex cluster with the blocks storage. +- Enable native histogram ingestion via -blocks-storage.tsdb.enable-native-histograms + flag. +- Support sending native histogram samples to Ingester. +- Zone-awareness replication for time-series now should be explicitly enabled. +- 'Azure Storage: Upgraded objstore dependency and support Azure Workload Identity + Authentication.' +- 'Experimental: OTLP ingestion.' +- Experimental features may have limitations and could change in future releases. +- Log warn level on push requests when they have status code 4xx. Do not log if status + is 429. +- Use the default OTEL trace sampler when `-tracing.otel.exporter-type` is set to + `awsxray`. +- When the querier receives a `/series` request with a time range older than the data + stored in the ingester, it now ignores the requested time range and returns known + series anyway instead of returning an empty response. +- Alertmanager now removes local files after Alertmanager is no longer running for + removed or resharded user. +- Alertmanager now stores local files in per-tenant folders. +- Support for migration to new hierarchy will be removed in Cortex 1.11. +- 'Ruler: deprecated `-ruler.storage.*` CLI flags in favour of `-ruler-storage.*`. + The deprecated config will be removed in Cortex 1.11.' +- 'Alertmanager: deprecated `-alertmanager.storage.*` CLI flags in favour of `-alertmanager-storage.*`. + This change doesn’t apply to `alertmanager.storage.path` and `alertmanager.storage.retention`. + The deprecated config will be removed in Cortex 1.11.' +- 'Blocks storage: removed the config option `-blocks-storage.bucket-store.index-cache.postings-compression-enabled`, + which was deprecated in Cortex 1.6. Postings compression is always enabled.' +- 'Querier: removed the config option `-store.max-look-back-period`, which was deprecated + in Cortex 1.6.' +- 'Query Frontend: removed the config option `-querier.compress-http-responses`, which + was deprecated in Cortex 1.6.' +- 'Alertmanager: Don’t expose cluster information to tenants via the `/alertmanager/api/v1/status` + API endpoint when operating with clustering enabled.' +- 'Ingester: don’t update internal “last updated” timestamp of TSDB if tenant only + sends invalid samples.' +- Require explicit flag `-.tls-enabled` to enable TLS in GRPC clients. +- Removed `-querier.split-queries-by-day` (deprecated in Cortex 0.4.0). Please use + `-querier.split-queries-by-interval` instead. +- The chunks pool controlled by `-blocks-storage.bucket-store.max-chunk-pool-bytes` + is now shared across all tenants. +- Return error code 400 instead of 429 when per-user/per-tenant series/metadata limits + are reached. +- Add `reason` label to `cortex_compactor_blocks_marked_for_deletion_total` metric. +- The `DELETE /api/v1/alerts` is now idempotent. No error is returned if the alertmanager + config doesn’t exist. +- Add a separate set of configuration options to configure the ruler storage backend + under the `-ruler-storage.` flag prefix. +- Add a separate set of configuration options to configure the alertmanager storage + backend under the `-alertmanager-storage.` flag prefix. +- Adds support to S3 server-side encryption using KMS. +- Enable `@ ` modifier in PromQL using the new `-querier.at-modifier-enabled` + flag. +- 'Query Frontend: deprecate `-querier.compress-http-responses` in favour of `-api.response-compression-enabled`.' +- 'Ruler: gRPC message size default limits on the Ruler-client side have changed: + limit for outgoing gRPC messages has changed from 2147483647 to 16777216 bytes, + limit for incoming gRPC messages has changed from 4194304 to 104857600 bytes.' +- 'API: Add GZIP HTTP compression to the API responses. Compression can be enabled + via `-api.response-compression-enabled`.' +- Added zone-awareness support on queries. When zone-awareness is enabled, queries + will still succeed if all ingesters in a single zone will fail. +- 'Blocks storage ingester: exported more TSDB-related metrics.' +- Exposed gRPC keepalive policy options by gRPC server. +- Fixed issue where fatal errors and various log messages where not logged. +- Queries can be federated across multiple tenants. The tenants IDs involved need + to be specified separated by a '|' character in the 'X-Scope-OrgID' request header. +- Dropped 'blank Alertmanager configuration; using fallback' message from Info to + Debug level. +- Some API endpoints require explicit HTTP methods that were previously more permissive. +- Zone-awareness replication for time-series now should be explicitly enabled in the + distributor. +- Dropped “blank Alertmanager configuration; using fallback” message from Info to + Debug level. +- Removed the deprecated CLI flag -config-yaml. +- Enforced the HTTP method required by some API endpoints. +- Renamed CLI flags to configure the network interface names from which automatically + detect the instance IP. +- Increased default -.redis.timeout from 100ms to 500ms. +- 'Shuffle sharding: added support for shuffle-sharding queriers in the query-frontend.' +- 'Shuffle sharding: added support for shuffle-sharding ingesters on the read path.' +- Added OpenStack Swift support to blocks storage. +- Support for Cassandra client SSL certificates. +- 'Experimental TSDB: Series limit per user and per metric now work in TSDB blocks.' +- 'OTLP: Change OTLP handler to be consistent with the Prometheus OTLP handler.' +- Enable consistent reads to Consul. +- Change all max async concurrency default values 50 to 3 +- Change default value of -blocks-storage.bucket-store.index-cache.multilevel.max-async-concurrency + from 50 to 3 +- Update the cortex_ingester_inflight_push_requests metric to represent the maximum + number of inflight requests recorded in the last minute. +- 'Ruler: Add an experimental flag -ruler.query-response-format to retrieve query + response as a proto format.' +- 'Ruler: Pagination support for List Rules API.' +- 'Query Frontend/Querier: Add protobuf codec -api.querier-default-codec and the option + to choose response compression type -querier.response-compression.' +- 'Ruler: Experimental: Add ruler.frontend-address to allow query to query frontends + instead of ingesters.' +- 'Ruler: Minimize chances of missed rule group evaluations that can occur due to + OOM kills, bad underlying nodes, or due to an unhealthy ruler that appears in the + ring as healthy. This feature is enabled via -ruler.enable-ha-evaluation flag.' +- 'Store Gateway: Add an in-memory chunk cache.' +- 'Chunk Cache: Support multi level cache and add metrics.' +- 'Distributor: Accept multiple HA Tracker pairs in the same request.' +- 'Ruler: Add support for per-user external labels' +- 'Query Frontend: Support a metadata federated query when -tenant-federation.enabled=true.' +- 'Query Frontend: Support an exemplar federated query when -tenant-federation.enabled=true.' +- 'Ingester/StoreGateway: Add support for cache regex query matchers via -ingester.matchers-cache-max-items + and -blocks-storage.bucket-store.matchers-cache-max-items.' +- Add TLS configs to consul. +- Add option ingester.disable-chunk-trimming to disable chunk trimming. +- Add blocks-storage.tsdb.wal-compression-type to support zstd wal compression type. +- Added `connection_string` to support authenticating via SAS token. +- Marked `msi_resource` config as deprecating. +- Setting these explicitly to zero will no longer cause the default to be used. +- If the default is desired, then do set the option. +- 'CHANGE: The metric `memberlist_kv_store_value_bytes` has been removed due to values + no longer being stored in-memory as encoded bytes.' +- 'Blocks storage: compactor is now required when running a Cortex cluster with the + blocks storage, because it also keeps the bucket index updated.' +- Experimental features may have different behaviors and should be used with caution. +- 'Experimental blocks storage: the store-gateway service is required in a Cortex + cluster running with the experimental blocks storage.' +- 'Experimental TSDB: removed `-experimental.tsdb.bucket-store.binary-index-header-enabled` + flag. Now the binary index-header is always enabled.' +- 'Experimental Delete Series: Make delete request cancellation duration configurable.' +- '`target_info` metric is enabled by default and can be disabled via `-distributor.otlp.disable-target-info=true` + flag' +- Convert all attributes to labels is disabled by default and can be enabled via `-distributor.otlp.convert-all-attributes=true` + flag +- You can specify the attributes converted to labels via `-distributor.promote-resource-attributes` + flag. Supported only if `-distributor.otlp.convert-all-attributes=false` +- Timeout for requests to Weave Cloud configs service is 5s +- Add dynamic interval size for query splitting. +- Support Prometheus remote write 2.0. +- Add new `-ruler.query-stats-enabled` which when enabled will report the `cortex_ruler_query_seconds_total` + as a per-user metric. +- Implemented experimental feature to use gRPC stream connection for push requests. +- Support for percentage based sharding for compactors. +- Allow choosing PromQL engine via header. +- Update the `cortex_ingester_inflight_push_requests` metric to represent the maximum + number of inflight requests recorded in the last minute. +- Removed the flags `-.grpc-use-gzip-compression` which were deprecated in + 1.3.0. +- It's not required to set `-frontend.query-stats-enabled=true` in the querier anymore + to enable query statistics logging in the query-frontend. +- Block deletion marks are now stored in a per-tenant global markers/ location. +- Configured replica label is now verified against label value length limit. +- The `extend_writes` field in YAML configuration has moved from `lifecycler` to `distributor_config`. +- Deprecated `-cluster.` CLI flags in favor of their `-alertmanager.cluster.` equivalent. +- The default value of `-blocks-storage.bucket-store.sync-interval` has been changed + from `5m` to `15m`. +- -blocks-storage.s3.http.idle-conn-timeout is set 90 seconds. +- -blocks-storage.s3.http.response-header-timeout is set to 2 minutes. +- -distributor.sharding-strategy CLI flag introduced to explicitly specify sharding + strategy in write path +- -distributor.zone-awareness-enabled CLI flag should be explicitly enabled for zone-awareness + replication +- Experimental features may have limitations and require careful testing. +- Add an experimental `tenant-federation.regex-matcher-enabled` flag. +- User discovery is based on scanning block storage. +- Cortex 0.7.0 is a major step forward the upcoming 1.0 release. +- Introduces some breaking changes. +- Cleaned up some configuration options in preparation for the Cortex 1.0.0 release. +- Cortex 0.4.0 is the last version that can *write* denormalised tokens. Cortex 0.5.0 + and above always write normalised tokens. +- Cortex 0.6.0 is the last version that can *read* denormalised tokens. Starting with + Cortex 0.7.0 only normalised tokens are supported. +- Add support for percentage based sharding for compactors. +- 'Ruler: Add new `-ruler.query-stats-enabled` which when enabled will report the + `cortex_ruler_query_seconds_total` as a per-user metric.' +- 'Query Frontend: Add `cortex_query_fetched_series_total` and `cortex_query_fetched_chunks_bytes_total` + per-user counters.' +- 'AlertManager: Add support for SNS Receiver.' +- 'Distributor: Add label `status` to metric `cortex_distributor_ingester_append_failures_total`.' +- 'Queries: Added `present_over_time` PromQL function, also some TSDB optimisations.' +- Add timeout for waiting on compactor to become ACTIVE in the ring. +- Support memcached auto-discovery via `auto-discovery` flag. +- Ensure that a remote storage backend is configured for Alertmanager to store state + using -alertmanager-storage.backend, and flags related to the backend. Note that + the local and configdb storage backends are not supported. +- Block deletion marks are now stored in a per-tenant global markers/ location too. +- GZIP HTTP compression can be enabled via -api.response-compression-enabled. +- -distributor.sharding-strategy CLI flag introduced to explicitly specify sharding + strategy in the write path. +- -distributor.zone-awareness-enabled CLI flag must be explicitly enabled for zone-aware + replication. +- 'Experimental TSDB: removed -experimental.tsdb.bucket-store.binary-index-header-enabled + flag. Now the binary index-header is always enabled.' +- 'Experimental Memberlist ring: randomize gossip node names to avoid conflicts when + running multiple clients on the same host, or reusing host names.' +- TLS server validation is now enabled by default, a new parameter tls_insecure_skip_verify + can be set to true to skip validation optionally. +- Backporting upgrade to go 1.22.7 to patch CVE-2024-34155, CVE-2024-34156, CVE-2024-34158 +- Querying long-term store for labels is always enabled. +- If `native-histograms` feature is enabled in monitoring Prometheus then the metric + name needs to be updated in your dashboards. +- Cortex 0.7.0 is a major step forward the upcoming 1.0 release. In this release, + we’ve got 164 contributions from 26 authors. +- Please be aware that Cortex 0.7.0 introduces some breaking changes. You’re encouraged + to read all the CHANGE entries below before upgrading your Cortex cluster. +- Cortex 0.6.0 is the last version that can *read* denormalised tokens. +- 'Fix for CVE-2021-31232: Local file disclosure vulnerability when -experimental.alertmanager.enable-api + is used. The HTTP basic auth password_file can be used as an attack vector to send + any file content via a webhook.' +- -distributor.sharding-strategy CLI flag introduced to explicitly specify sharding + strategy in the write path +- -experimental.distributor.user-subring-size flag renamed to -distributor.ingestion-tenant-shard-size +- user_subring_size limit YAML config option renamed to ingestion_tenant_shard_size +- -distributor.zone-awareness-enabled CLI flag introduced to explicitly enable zone-awareness + replication in the distributor +- 'Fix for CVE-2021-31232: Local file disclosure vulnerability when `-experimental.alertmanager.enable-api` + is used. The HTTP basic auth `password_file` can be used as an attack vector to + send any file content via a webhook. The alertmanager templates can be used as an + attack vector to send any file content because the alertmanager can load any text + file specified in the templates list.' +- The oldest Prometheus version supported in the remote write is 1.7. +- Block deletion marks are now stored in a per-tenant global markers location. +- 'This experimental blocks storage in Cortex 1.0.0 has a bug which may lead to the + error cannot iterate chunk for series when running queries. This bug has been fixed + in #2400.' +- WAL support for chunks is now considered to be production-ready +- Ensure that a remote storage backend is configured for Alertmanager to store state + using `-alertmanager-storage.backend`, and flags related to the backend. +- Cortex 0.4.0 is the last version that can *write* denormalised tokens. +- Cortex 0.5.0 and above always write normalised tokens. +- You can specify the attributes converted to labels via -distributor.promote-resource-attributes + flag. Supported only if -distributor.otlp.convert-all-attributes=false +- Queries can be federated across multiple tenants. The tenants IDs involved need + to be specified separated by a '|' character in the X-Scope-OrgID request header. +- 'Blocksconvert – Builder: download plan file locally before processing it.' +- 'Blocksconvert – Cleaner: added new tool for deleting chunks data.' +- 'Blocksconvert – Scanner: support for scanning specific date-range only.' +- 'Blocksconvert – Scanner: metrics for tracking progress.' +- 'Blocksconvert – Builder: retry block upload before giving up.' +- 'Blocksconvert – Scanner: upload plans concurrently.' +- The root level YAML config has changed from tsdb to blocks_storage. +- Metric `cortex_kv_request_duration_seconds` now includes `name` label to denote + which client is being used as well as the `backend` label to denote the KV backend + implementation in use. +- Query Frontend now uses Round Robin to choose a tenant queue to service next. +- The biggest change is that WAL support for chunks is now considered to be production-ready! +- The tenants IDs involved need to be specified separated by a `|` character in the + `X-Scope-OrgID` request header. +- The gRPC streaming for ingesters doesn’t work when using the experimental TSDB blocks + storage. +- -distributor.sharding-strategy CLI flag introduced to specify sharding strategy. +- -experimental.distributor.user-subring-size flag renamed to -distributor.ingestion-tenant-shard-size. +- user_subring_size limit YAML config option renamed to ingestion_tenant_shard_size. +- -distributor.zone-awareness-enabled CLI flag introduced to enable zone-aware replication. +- -config-yaml flag removed, use -schema-config-file instead. +- -frontend.max-body-size customisable to control max body size for POST requests. +- Experimental features may have limitations and should be used with caution. +- Ensure that a remote storage backend is configured for Alertmanager to store state + using `-alertmanager-storage.backend`, and flags related to the backend. Note that + the `local` and `configdb` storage backends are not supported. +- Change all max async concurrency default values from 50 to 3 +- Omit empty data, errorType and error fields in API response. +- Add GZIP HTTP compression to the API responses. +- Enabled caching of meta.json attributes. +- Experimental blocks storage requires the store-gateway service. +- Cortex 0.7.0 introduces some breaking changes. +- You’re encouraged to read all the CHANGE entries below before upgrading your Cortex + cluster. +- Cortex 0.6.0 is the last version that can *read* denormalised tokens. Starting with + Cortex 0.7.0 only normalised tokens are supported, and ingesters writing denormalised + tokens to the ring are ignored by distributors. +- -distributor.sharding-strategy CLI flag introduced to specify sharding strategy + in write path. +- -experimental.distributor.user-subring-size renamed to -distributor.ingestion-tenant-shard-size. +- -distributor.zone-awareness-enabled CLI flag introduced to enable zone-aware replication + in distributor. +- -config-yaml CLI flag removed, use -schema-config-file instead. +- -compactor.ring.instance-interface renamed to -compactor.ring.instance-interface-names. +- -store-gateway.sharding-ring.instance-interface renamed to -store-gateway.sharding-ring.instance-interface-names. +- -distributor.ring.instance-interface renamed to -distributor.ring.instance-interface-names. +- -ruler.ring.instance-interface renamed to -ruler.ring.instance-interface-names. +- -.redis.enable-tls renamed to -.redis.tls-enabled. +- enable_tls YAML config option renamed to tls_enabled. +- default -.redis.timeout increased from 100ms to 500ms. +- max body size can be customized via -frontend.max-body-size. +- Fixed a bug with `api/v1/query_range` where no responses would return null values + for `result` and empty values for `resultType. +- Experimental TSDB features are subject to change. +- Be aware that Cortex 0.7.0 introduces some breaking changes. +- Enable Compactor and Alertmanager in target all +- Remove support for chunks storage entirely. If you are using chunks storage on a + previous version, you must migrate your data on version 1.13.1 or earlier. +- The default value for -blocks-storage.bucket-store.sync-interval has been changed + from 5m to 15m. +- 'Query-frontend: POST requests whose body size exceeds 10MiB will be rejected. The + max body size can be customised via -frontend.max-body-size.' +- Some endpoints have limitations regarding the data returned. +- DynamoDB table management requests per second limit. +- DynamoDB rate cap to back off when throttled. +- Experimental features may have limited functionality and require additional configuration. +- 'gRPC Client: Expose connection timeout and set default to value to 5s' +- Exemplars are now emitted for all gRPC calls and many operations tracked by histograms. +- The frontend component now does not cache results if it finds a `Cache-Control` + header and if one of its values is `no-store`. +- Flags changed with transition to upstream Prometheus rules manager. +- Runtime config is simply a file that is reloaded by Cortex every couple of seconds. +- Cortex now rejects data with duplicate labels. +- 'Experimental: Write-Ahead-Log added in ingesters for more data reliability against + ingester crashes.' +- The distributor can now drop labels from samples per user via the `distributor.drop-label` + flag. +- Added support for Microsoft Azure blob storage to be used for storing chunk data. +- Added readiness probe endpoint`/ready` to queriers. +- Added support to store ring tokens to a file and read it back on startup. +- 'Experimental TSDB: Added `/series` API endpoint support with TSDB blocks storage.' +- 'Experimental TSDB: Added TSDB blocks `compactor` component.' +- This is an experimental feature, which can be enabled by setting -tenant-federation.enabled=true + on all Cortex services. +- -distributor.sharding-strategy CLI flag introduced to explicitly specify which sharding + strategy should be used in the write path +- -distributor.zone-awareness-enabled CLI flag added to explicitly enable zone-awareness + replication for time-series +- Removed the deprecated CLI flag -config-yaml; use -schema-config-file instead +- POST requests whose body size exceeds 10MiB will be rejected; max body size can + be customised via -frontend.max-body-size. +- Shuffle sharding now should be explicitly enabled via -distributor.sharding-strategy + CLI flag. +- Added shuffle sharding support to ruler. +- Added -.redis.tls-insecure-skip-verify flag. +- Experimental features may be subject to change. +- Fixed `wrong number of arguments for 'mget' command` Redis error when a query has + no chunks to lookup from storage. +- Add new `-ruler.query-stats-enabled` which when enabled will report the `cortex_ruler_query_seconds_total` + as a per-user metric that tracks the sum of the wall time of executing queries in + the ruler in seconds. +- Add `cortex_query_fetched_series_total` and `cortex_query_fetched_chunks_bytes_total` + per-user counters to expose the number of series and bytes fetched as part of queries. +- Files stored by Alertmanager previously are migrated to new hierarchy. +- Support for this migration will be removed in Cortex 1.11. +- Experimental features may be unstable and should be used with caution. +- Update Go version to 1.20.4. +- -distributor.sharding-strategy CLI flag introduced to explicitly specify which sharding + strategy should be used in the write path. +- -distributor.zone-awareness-enabled CLI flag required to enable zone-awareness replication + for time-series. +- Cortex 0.4.0 is the last version that can write denormalised tokens. +- Prevent path traversal attack from users able to control the HTTP header `X-Scope-OrgID`. +- 'Ingester: Remove `-querier.query-store-for-labels-enabled` flag. Querying long-term + store for labels is always enabled.' +- 'Server: Instrument `cortex_request_duration_seconds` metric with native histogram.' +- Ensure that a remote storage backend is configured for Alertmanager to store state + using -alertmanager-storage.backend, and flags related to the backend. +- It’s not required to set `-frontend.query-stats-enabled=true` in the querier anymore + to enable query statistics logging in the query-frontend. +- 'Blocks storage: compactor is now required when running a Cortex cluster with the + blocks storage.' +- 'Blocks storage: block deletion marks are now stored in a per-tenant global markers/ + location.' +- 'HA Tracker: configured replica label is now verified against label value length + limit (`-validation.max-length-label-value`).' +- 'Distributor: `extend_writes` field in YAML configuration has moved from `lifecycler` + (inside `ingester_config`) to `distributor_config`.' +- 'Blocks storage: the default value of `-blocks-storage.bucket-store.sync-interval` + has been changed from `5m` to `15m`.' +- Changed target flag for purger from data-purger to purger. +- The max concurrent queries against the long-term storage is now a limit shared across + all tenants and not a per-tenant limit anymore. +- query-frontend requires the -querier.default-evaluation-interval config to be set + to the same value of the querier +- Experimental TSDB returns known series instead of an empty response for time ranges + older than stored data +- The gRPC streaming for ingesters doesn’t work when using the experimental TSDB blocks + storage. Please do not enable -querier.ingester-streaming if you’re using the TSDB + blocks storage. +- The example Kubernetes manifests (stored at k8s/) have been removed due to a lack + of proper support and maintenance. +- Local file disclosure vulnerability when `-experimental.alertmanager.enable-api` + is used. The HTTP basic auth `password_file` can be used as an attack vector to + send any file content via a webhook. +- Allow specifying JAEGER_ENDPOINT instead of sampling server or local agent port. +- Please be aware that Cortex 0.7.0 introduces some breaking changes. +- The gRPC streaming for ingesters doesn’t work when using the experimental TSDB blocks + storage. Please do not enable `-querier.ingester-streaming` if you’re using the + TSDB blocks storage. +- Multi level cache backfilling operation becomes async. +- Disable uploading compacted blocks and overlapping compaction in ingester. +- Count the number of rate-limited samples in distributor_samples_in_total. +- Remove certain metrics for the tenant when the ruler deletes the manager for the + tenant. +- Mark certain flags as deprecated. +- Error response returned by Query Frontend now follows Prometheus API error response + format. +- 'Ruler: deprecated `-ruler.storage.*` CLI flags in favour of `-ruler-storage.*`.' +- This is an experimental feature. +- Titles:"config_store" has been renamed to "configs". +- '* [BUGFIX] QueryFrontend: fixed a panic (`integer divide by zero`) in the query-frontend. + The query-frontend now requires the `-querier.default-evaluation-interval` config + to be set to the same value of the querier.' +- '* [BUGFIX] Experimental TSDB: when the querier receives a `/series` request with + a time range older than the data stored in the ingester, it now ignores the requested + time range and returns known series anyway instead of returning an empty response. + This aligns the behaviour with the chunks storage.' +- '* [BUGFIX] Cassandra: fixed an edge case leading to an invalid CQL query when querying + the index on a Cassandra store.' +- '* [BUGFIX] Ingester: increment series per metric when recovering from WAL or transfer.' +- '* [BUGFIX] Fixed `wrong number of arguments for ''mget'' command` Redis error when + a query has no chunks to lookup from storage.' +- '* [BUGFIX] Ingester: Automatically remove old tmp checkpoints, fixing a potential + disk space leak after an ingester crashes.' +- If you’re running the experimental blocks storage, please build Cortex from master. +- Removed CLI flags support to configure the schema. +- Renamed CLI flag -config-yaml to -schema-config-file. +- Removed CLI flag -store.min-chunk-age in favor of -querier.query-store-after. +- The corresponding YAML config option ingestermaxquerylookback has been renamed to + query_ingesters_within. +- Deprecated CLI flag -frontend.cache-split-interval in favor of -querier.split-queries-by-interval. +- Renamed the YAML config option defaul_validity to default_validity. +- Removed the YAML config option config_store in favor of store. +- Removed the YAML config root block configdb in favor of configs. +- Removed the fluentd-based billing infrastructure. +- Cortex 0.6.0 is the last version that can read denormalised tokens. +- Before upgrading to this release, you should also remove any deprecated chunks-related + configuration, as this release will no longer accept that. +- Ensure that a remote storage backend is configured for Alertmanager to store state. +- Add support for Azure blob storage. +- Experimental blocks storage features are mentioned. +- Changes in metric names and configurations are noted. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '403 Forbidden: Ensure the correct X-Scope-OrgID header is set.' +- Invalid metric label names. +- Exceeded max number of labels per metric. +- Timestamp is older/newer than the configured min/max time range. +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity.' +- '400: Bad request' +- '422: Unprocessable entity' +- '500: Internal server error' +- 'HTTP status code 422: Limit errors reported by ingester during query-time.' +- 'ResourceExhausted: Convert gRPC ResourceExhausted status code from store gateway + to 422 limit error.' +- Fixes a panic in the query-tee when comparing result. +- 'Frontend: Fixes @ modifier functions (start/end) when splitting queries by time.' +- '400: Bad Request' +- '429: Too Many Requests' +- '422: Unprocessable Entity' +- '400: Emit an error with a 400 status code when empty labels are found.' +- '400 Bad Request: Check request parameters' +- '404 Not Found: Verify endpoint path' +- '500 Internal Server Error: Server encountered an error' +- '422: Limit errors reported by ingester during query-time now return HTTP status + code 422.' +- '500 Internal Server Error: Check for issues with the request or server.' +- '422 Unprocessable Entity: Verify the request parameters.' +- 'HTTP status code 422: Limit errors reported by ingester during query-time' +- 'RESOURCE_EXHAUSTED: Convert gRPC ResourceExhausted status code from store gateway + to 422 limit error' +- '401 Unauthorized: Ensure tenant ID is correctly specified in the header.' +- 'RESOURCE_EXHAUSTED: Check for rate limits or resource usage.' +- '400: return error code 400 instead of 429 when per-user/per-tenant series/metadata + limits are reached.' +- '422: returning 422 (instead of 500) when query hits max_chunks_per_query limit + with block storage.' +- '400: Invalid request' +- '404: Not Found' +- 'RESOURCE_EXHAUSTED: Check resource limits or modify requests.' +- '400: Return error code 400 instead of 429 when per-user/per-tenant series/metadata + limits are reached.' +- '422: Returning 422 (instead of 500) when query hits max_chunks_per_query limit + with block storage.' +- '400: Emit an error when empty labels are found before the relabelling or label + dropping process.' +- '401: Unauthorized' +- '400: Invalid samples submitted' +- '429: Per-user/per-tenant limits reached' +- '422: Max chunks per query limit exceeded' +- cannot iterate chunk for series +- '400: Emit an error with a 400 status code when empty labels are found before the + relabelling or label dropping process.' +- '400: Bad Request - Invalid samples' +- '429: Too Many Requests - Per-user/tenant limits reached' +- '422: Unprocessable Entity - Exceeded max_chunks_per_query limit' +- 'cannot iterate chunk for series: Please build Cortex from master.' +- Query with no metric name that has previously resulted in HTTP status code 500 now + returns status code 422 instead. +- 'ResourceExhausted: Convert gRPC status code from store gateway to 422 limit error.' +- HTTP status code 500 has been replaced with status code 422 for certain queries. +- 'RESOURCE_EXHAUSTED: Convert gRPC ResourceExhausted status code from store gateway + to 422 limit error.' +- 'Slow query logging: when using downstream server request parameters were not logged.' +- 'cannot iterate chunk for series: This bug has been fixed in #2400' +- HTTP status code 500 now returns status code 422 instead for invalid queries. +- '400: Bad Request - Check your request parameters' +- '404: Not Found - Verify the endpoint and parameters' +- '500: Internal Server Error - Try again later or check server status' +- The gRPC streaming for ingesters doesn’t work when using the experimental TSDB blocks + storage. Please do not enable -querier.ingester-streaming if you’re using the TSDB + blocks storage. +- 'ResourceExhausted: Check resource limits or optimize query.' +- '400 Bad Request: Check your request syntax' +- '404 Not Found: Verify the endpoint path' +- '500 Internal Server Error: Server encountered an unexpected condition' +- '422 Unprocessable Entity: Limit errors reported by ingester during query-time now + return HTTP status code 422' +- '404: Not Found - Ensure the endpoint exists' +- '500: Internal Server Error - Check server logs for more details' +- Removed CLI flags support to configure the schema. +- Renamed CLI flag -config-yaml to -schema-config-file. +- Removed CLI flag -store.min-chunk-age in favor of -querier.query-store-after. +- HTTP status code 500 now returns status code 422 instead. +- The gRPC streaming for ingesters doesn’t work when using the experimental TSDB blocks + storage. Please do not enable `-querier.ingester-streaming` if you’re using the + TSDB blocks storage. +auth_info: + mentioned_objects: [] +client: + base_url: https://cortexmetrics.io + headers: + Accept: application/json +source_metadata: null diff --git a/debounce/debounce-docs.md b/debounce/debounce-docs.md new file mode 100644 index 00000000..ac2c39a0 --- /dev/null +++ b/debounce/debounce-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Debounce data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def debounce_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.debounce.io/v1/", + "auth": { + "type": "apikey", + "token": api_key, + }, + }, + "resources": [ + usage/,status,upload + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='debounce_migration_pipeline', + destination='duckdb', + dataset_name='debounce_migration_data', + ) + # Load the data + load_info = pipeline.run(debounce_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from debounce_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Usage: Provides information about API usage limits and statistics. +- Status: Returns the current operational status of the API. +- Upload: Allows for uploading data for processing. +- Balance: Shows the current balance of credits available for API use. + +You will then debug the Debounce pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Debounce support. + ```shell + dlt init dlthub:debounce_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Debounce API, as specified in @debounce_migration-docs.yaml + Start with endpoints usage/ and status and skip incremental loading for now. + Place the code in debounce_migration_pipeline.py and name the pipeline debounce_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python debounce_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The API requires authentication via an API key for all requests, ensuring secure access and usage tracking. + + To get the appropriate API keys, please visit the original source at https://www.debounce.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python debounce_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline debounce_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset debounce_migration_data + The duckdb destination used duckdb:/debounce_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline debounce_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("debounce_migration_pipeline").dataset() + # get sage table as Pandas frame + data.sage.df().head() + ``` + +## Running into errors? + +It is important to note that the API has a maximum limit of 5 concurrent calls, which reduces to 2 if the 'data enrichment' option is enabled. Additionally, different error codes indicate various issues, such as exceeding credit limits or invalid API tokens. Be mindful of the request limits and ensure that all required parameters are provided correctly to avoid errors. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/debounce/debounce-docs.yaml b/debounce/debounce-docs.yaml new file mode 100644 index 00000000..f206981a --- /dev/null +++ b/debounce/debounce-docs.yaml @@ -0,0 +1,109 @@ +resources: +- name: single_validation + endpoint: + path: / + method: GET + data_selector: results +- name: single_validation + endpoint: + path: / + method: GET + data_selector: results + params: + email: required +- name: upload + endpoint: + path: /upload + method: GET + data_selector: debounce + params: + url: string +- name: upload + endpoint: + path: /upload + method: GET + data_selector: debounce + params: + url: string +- name: status + endpoint: + path: /status + method: GET +- name: status + endpoint: + path: /status + method: GET +- name: account_balance + endpoint: + path: /v1/balance/ + method: GET + data_selector: balance + params: {} +- name: account_balance + endpoint: + path: /v1/balance/ + method: GET + data_selector: balance +- name: API Usage History + endpoint: + path: /usage/ + method: GET + data_selector: debounce + params: + start: string + end: string +- name: api_usage_history + endpoint: + path: /v1/usage/ + method: GET + data_selector: debounce + params: + start: required + end: required +notes: +- The real-time lookup API is accessed via the GET method. +- All requests to our API need authentication. +- All data is received as JSON. +- Each response sent from the API contains a success parameter which is of 0/1 type, + indicating whether the request was successful or not. +- To ensure optimal performance and stability for all users, our API has a maximum + limit of 5 concurrent calls. +- If the 'data enrichment' option is enabled, this limitation becomes 2. +- If you are going to use this API within a sign-up form, you must consider Deliverable, + Accept-all and Unknown statuses as valid. +- You will pay 2 extra credits for each successful data enrichment. +- We will bill you 0.2 extra credits for each successful profile photo added. +- When specifying dates, use the YY-MM-DD format. +- Ensure that the start date is after 20-08-14 and the end date is equal or less than + today's date. +errors: +- '401 Unauthorized: Wrong API' +- 'HTTP/ 429 Too Many Requests: Maximum concurrent calls reached' +- 'HTTP/ 429 Too Many Requests: Authentication Failed - The maximum number of calls + per day reached.' +- '401 Unauthorized: Invalid API token' +- '402 Payment Required: Validation credits are finished. You need to buy credits + to validate more emails.' +- '403 Forbidden: Request not allowed' +- '429 Too Many Requests: Rate limit has been exceeded' +- 'HTTP/1.1 402 Payment Required: Credits Low' +- 'HTTP/1.1 401 Unauthorized: Wrong API' +- 'Credits Low: 402 Payment Required' +- 'Wrong API: 401 Unauthorized' +- 'Maximum concurrent calls reached: 429 Too Many Requests' +- 'Authentication Failed - The maximum number of calls per day reached: 429 Too Many + Requests' +- '400 Bad Request: URL parameter is not valid.' +- '429 Too Many Requests: Maximum concurrent calls reached' +- '402 Payment Required: You have exhausted your credits, please add additional credits + to continue.' +- 'REQUEST_LIMIT_EXCEEDED: Maximum concurrent calls reached' +- '200: Successful request' +- Required parameters not provided correctly may result in error responses. +auth_info: + mentioned_objects: [] +client: + base_url: https://api.debounce.io + auth: + type: apikey +source_metadata: null diff --git a/deepvue_api/deepvue-api-docs.md b/deepvue_api/deepvue-api-docs.md new file mode 100644 index 00000000..ca67e0b0 --- /dev/null +++ b/deepvue_api/deepvue-api-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Deepvue data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def deepvue_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://production.deepvue.tech/", + "auth": { + "type": "apikey", + "token": "{{ dlt.secrets['client_id'] }}" +}, + }, + "resources": [ + itr,ledger,taxpayer + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='deepvue_migrations_pipeline', + destination='duckdb', + dataset_name='deepvue_migrations_data', + ) + # Load the data + load_info = pipeline.run(deepvue_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from deepvue_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- ITR APIs: APIs to download ITR information such as ITR ID, Filing Year, and more. +- GST APIs: APIs for GST-related tasks such as verification and OTP generation. +- Taxpayer APIs: APIs to verify vendors, customers, and employees using TAN. +- UAN Verification APIs: APIs to extract employment details and verify EPFO details. + +You will then debug the Deepvue pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Deepvue support. + ```shell + dlt init dlthub:deepvue_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Deepvue API, as specified in @deepvue_migrations-docs.yaml + Start with endpoints itr and ledger and skip incremental loading for now. + Place the code in deepvue_migrations_pipeline.py and name the pipeline deepvue_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python deepvue_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is handled through an API key, which must be included in the header of the request using the key 'x-api-key'. The client ID and client secret are stored in a secret management system. + + To get the appropriate API keys, please visit the original source at https://www.deepvue.tech/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python deepvue_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline deepvue_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset deepvue_migrations_data + The duckdb destination used duckdb:/deepvue_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline deepvue_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("deepvue_migrations_pipeline").dataset() + # get t table as Pandas frame + data.t.df().head() + ``` + +## Running into errors? + +Ensure compliance with UIDAI regulations, especially regarding the storage and sharing of Aadhaar numbers. The authorization token is valid for only 24 hours, necessitating a refresh. All API requests must be made over HTTPS. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/deepvue_api/deepvue-api-docs.yaml b/deepvue_api/deepvue-api-docs.yaml new file mode 100644 index 00000000..8ecc2de4 --- /dev/null +++ b/deepvue_api/deepvue-api-docs.yaml @@ -0,0 +1,33155 @@ +resources: +- name: Download ITR + endpoint: + path: /reference/itr-apis/download-itr-api + method: POST +- name: Get ITR Details + endpoint: + path: /reference/itr-apis/get-itr-details-api + method: GET +- name: Get 26AS Details + endpoint: + path: /reference/itr-apis/get-26as-details-api + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Generate Otp + endpoint: + path: /api/generateOtp + method: POST + data_selector: response + params: {} +- name: create_client + endpoint: + path: /v1/verification/itr/create-client + method: POST +- name: download_itr + endpoint: + path: /v1/verification/itr/itr-download + method: POST +- name: download_26AS + endpoint: + path: /v1/verification/itr/26AS-download + method: POST +- name: get_26as_details + endpoint: + path: /v1/verification/itr/get-26as-details + method: GET + data_selector: data + params: + itr_client_id: '{{ITR Client ID}}' + tds_id: '{{TDS ID}}' +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: Aadhaar OCR API + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR API + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR API + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR API + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR API + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR API + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR API + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: Mobile To Name + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-name + method: GET +- name: Mobile To Pan + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-pan + method: GET +- name: Mobile To Uan + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-uan + method: GET +- name: Mobile To Uan List + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-uan-list + method: GET +- name: Mobile To Digital Age + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-digital-age + method: GET +- name: Mobile To Vehicle RC + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-vehicle-rc + method: GET +- name: Mobile Network Details + endpoint: + path: /reference/mobile-number-intelligence/mobile-network-details + method: GET +- name: Mobile To Multiple Upi + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-multiple-upi + method: GET +- name: MNRL Check API + endpoint: + path: /reference/mobile-number-intelligence/mnrl-api + method: GET +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Download e-Aadhar + endpoint: + path: /digilocker-api/download-e-aadhar + method: POST +- name: Get Issued Files + endpoint: + path: /digilocker-api/get-issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAdhaar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: / + method: GET + params: + consent: Required + purpose: Required +- name: generate_otp + endpoint: + path: / + method: POST + params: + aadhaar_number: Required + captcha: Required + session_id: Required + consent: Required + purpose: Required +- name: verify_otp + endpoint: + path: / + method: POST + params: + otp: Required + session_id: Required + consent: Required + purpose: Required + mobile_number: Optional + generate_pdf: Optional +- name: reload_captcha + endpoint: + path: / + method: GET + params: + consent: Required + purpose: Required + session_id: Required +- name: Aadhaar OCR + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Get User Access Token + endpoint: + path: /getUserAccessToken + method: POST +- name: Download e-Aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: Get Issued Files + endpoint: + path: /getIssuedFiles + method: GET +- name: Download File + endpoint: + path: /downloadFile + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Download e-Aadhar + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Get Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: POST +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: POST +- name: initiate_session + endpoint: + path: / + method: GET + params: + consent: string Required + purpose: string Required +- name: generate_otp + endpoint: + path: / + method: POST + params: + aadhaar_number: string Required + captcha: string Required + session_id: string Required + consent: string Required + purpose: string Required +- name: verify_otp + endpoint: + path: / + method: POST + params: + otp: string Required + session_id: string Required + consent: string Required + purpose: string Required + mobile_number: string + generate_pdf: boolean +- name: reload_captcha + endpoint: + path: / + method: GET + params: + consent: string Required + purpose: string Required + session_id: string Required +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Get User Access Token + endpoint: + path: /get/user/access/token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get/issued/files + method: GET +- name: Download File + endpoint: + path: /download/file + method: GET +- name: Initiate Session + endpoint: + path: / + method: GET + params: + consent: Required + purpose: Required +- name: Generate OTP + endpoint: + path: / + method: POST + params: + aadhaar_number: Required + captcha: Required + session_id: Required + consent: Required + purpose: Required +- name: Verify OTP + endpoint: + path: / + method: POST + params: + otp: Required + session_id: Required + consent: Required + purpose: Required + mobile_number: Optional + generate_pdf: Optional +- name: Reload Captcha + endpoint: + path: / + method: GET + params: + consent: Required + purpose: Required + session_id: Required +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: POST +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Download e-Aadhar + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Get Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: generate_otp + endpoint: + path: /v1/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: '{{Aadhaar Number}}' + captcha: '{{Captcha}}' + session_id: '{{Session ID}}' + consent: Y + purpose: For KYC +- name: initiate_session + endpoint: + path: / + method: GET + params: + consent: Required + purpose: Required +- name: generate_otp + endpoint: + path: / + method: POST + params: + aadhaar_number: Required + captcha: Required + session_id: Required + consent: Required + purpose: Required +- name: verify_otp + endpoint: + path: / + method: POST + params: + otp: Required + session_id: Required + consent: Required + purpose: Required + mobile_number: Optional + generate_pdf: Optional +- name: reload_captcha + endpoint: + path: / + method: GET + params: + consent: Required + purpose: Required + session_id: Required +- name: initiate_session + endpoint: + path: /v1/ekyc/aadhaar/connect + method: GET + params: + consent: Y + purpose: For KYC +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Document OCR + endpoint: + path: /reference/document-ocr + method: GET + data_selector: fields +- name: Initiate Session + endpoint: + path: /reference/document-ocr/initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /reference/document-ocr/get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /reference/document-ocr/download-e-aadhar + method: POST +- name: Get Issued Files + endpoint: + path: /reference/document-ocr/get-issued-files + method: GET +- name: Download File + endpoint: + path: /reference/document-ocr/download-file + method: POST +- name: generate_otp + endpoint: + path: /v1/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: '{{Aadhaar Number}}' + captcha: '{{Captcha}}' + session_id: '{{Session ID}}' + consent: Y + purpose: For KYC +- name: initiate_session + endpoint: + path: /v1/ekyc/aadhaar/connect + method: GET + params: + consent: Y + purpose: For KYC +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: generate_otp + endpoint: + path: /v1/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: '' + captcha: '' + session_id: '' + consent: Y + purpose: For KYC +- name: verify_otp + endpoint: + path: /v1/ekyc/aadhaar/verify-otp + method: POST + params: + otp: '' + session_id: '' + consent: Y + purpose: For KYC + mobile_number: '' + generate_pdf: '' +- name: reload_captcha + endpoint: + path: /v1/ekyc/aadhaar/reload-captcha + method: GET + params: + consent: Y + purpose: For KYC + session_id: '' +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Get User Access Token + endpoint: + path: /get/user/access/token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get/issued/files + method: GET +- name: Download File + endpoint: + path: /download/file + method: GET +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET +- name: Digilocker API + endpoint: + path: /reference/digilocker-api + method: POST +- name: KYC APIs + endpoint: + path: /reference/kyc-apis + method: GET +- name: Document OCR + endpoint: + path: /reference/document-ocr + method: POST +- name: Mobile Number Intelligence + endpoint: + path: /reference/mobile-number-intelligence + method: GET +- name: Document Forensics + endpoint: + path: /reference/document-forensics + method: POST +- name: Face Forensics + endpoint: + path: /reference/face-forensics + method: POST +- name: Async APIs + endpoint: + path: /reference/async-apis + method: POST +- name: GST APIs + endpoint: + path: /reference/gst-apis + method: GET +- name: GST Taxpayer + endpoint: + path: /reference/gst-taxpayer + method: POST +- name: Business Compliance + endpoint: + path: /reference/business-compliance + method: GET +- name: Taxpayer + endpoint: + path: /reference/taxpayer + method: GET +- name: ITR APIs + endpoint: + path: /reference/itr-apis + method: POST +- name: MCA APIs + endpoint: + path: /reference/mca-apis + method: GET +- name: MSME APIs + endpoint: + path: /reference/msme-apis + method: GET +- name: Financial Services + endpoint: + path: /reference/financial-services + method: GET +- name: EPFO + endpoint: + path: /reference/epfo + method: GET +- name: Bulk Validations + endpoint: + path: /reference/bulk-validations + method: POST +- name: Reports + endpoint: + path: /reference/reports + method: GET +- name: generate_otp + endpoint: + path: /v1/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: '' + captcha: '' + session_id: '' + consent: Y + purpose: For KYC +- name: verify_otp + endpoint: + path: /v1/ekyc/aadhaar/verify-otp + method: POST + params: + otp: '' + session_id: '' + consent: Y + purpose: For KYC + mobile_number: '9999999999' +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Get User Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Get Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: reload_captcha + endpoint: + path: /v1/ekyc/aadhaar/reload-captcha + method: GET + params: + consent: Y + purpose: For KYC + session_id: '' +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: initiate_session + endpoint: + path: / + method: GET + params: + consent: Required + purpose: Required +- name: generate_otp + endpoint: + path: / + method: POST + params: + aadhaar_number: Required + captcha: Required + session_id: Required + consent: Required + purpose: Required +- name: verify_otp + endpoint: + path: / + method: POST + params: + otp: Required + session_id: Required + consent: Required + purpose: Required + mobile_number: Optional + generate_pdf: Optional +- name: reload_captcha + endpoint: + path: / + method: GET + params: + consent: Required + purpose: Required + session_id: Required +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Get User Access Token + endpoint: + path: /getUserAccessToken + method: POST +- name: Download e-Aadhar + endpoint: + path: /downloadEaadhaar + method: GET +- name: Get Issued Files + endpoint: + path: /getIssuedFiles + method: GET +- name: Download File + endpoint: + path: /downloadFile + method: GET +- name: Get User Access Token + endpoint: + path: /getUserAccessToken + method: POST +- name: Download e-Aadhar + endpoint: + path: /downloadEaadhaar + method: GET +- name: Get Issued Files + endpoint: + path: /getIssuedFiles + method: GET +- name: Download File + endpoint: + path: /downloadFile + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST + data_selector: records +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST + data_selector: records +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST + data_selector: records +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET + data_selector: records +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Download e-Aadhar + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Get Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: initiate_session + endpoint: + path: / + method: GET + params: + consent: Required + purpose: Required +- name: generate_otp + endpoint: + path: / + method: POST + params: + aadhaar_number: Required + captcha: Required + session_id: Required + consent: Required + purpose: Required +- name: verify_otp + endpoint: + path: / + method: POST + params: + otp: Required + session_id: Required + consent: Required + purpose: Required + mobile_number: Optional + generate_pdf: Optional +- name: reload_captcha + endpoint: + path: / + method: GET + params: + consent: Required + purpose: Required + session_id: Required +- name: Initiate Session +- name: Get User Access Token +- name: Download e-Aadhar +- name: Get Issued Files +- name: Download File +- name: Aadhaar Verification + endpoint: + path: /reference/kyc-apis/aadhaar-verification-api-basic + method: GET +- name: PAN Verification + endpoint: + path: /reference/kyc-apis/pan-verification-api-basic + method: GET +- name: GSTIN Verification + endpoint: + path: /reference/gst-apis/gstin-verification-api-basic + method: GET +- name: initiate_session + endpoint: + path: / + method: GET + params: + consent: string Required + purpose: string Required +- name: generate_otp + endpoint: + path: / + method: POST + params: + aadhaar_number: string Required + captcha: string Required + session_id: string Required + consent: string Required + purpose: string Required +- name: verify_otp + endpoint: + path: / + method: POST + params: + otp: string Required + session_id: string Required + consent: string Required + purpose: string Required + mobile_number: 10-digit mobile number + generate_pdf: boolean +- name: reload_captcha + endpoint: + path: / + method: GET + params: + consent: string Required + purpose: string Required + session_id: string Required +- name: Initiate Session + endpoint: + path: /api/initiateSession + method: POST +- name: Get User Access Token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: Download e-Aadhar + endpoint: + path: /api/downloadEaadhaar + method: GET +- name: Get Issued Files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: Download File + endpoint: + path: /api/downloadFile + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Download e-Aadhar + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Get Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api-v2/generate-otp-v2 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api-v2/verify-otp-v2 + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: Authorize + endpoint: + path: /authorize + method: POST + data_selector: access_token + params: {} +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: / + method: GET + params: + consent: string + purpose: string +- name: generate_otp + endpoint: + path: / + method: POST + params: + aadhaar_number: string + captcha: string + session_id: string + consent: string + purpose: string +- name: verify_otp + endpoint: + path: / + method: POST + params: + otp: string + session_id: string + consent: string + purpose: string + mobile_number: string + generate_pdf: boolean +- name: reload_captcha + endpoint: + path: / + method: GET + params: + consent: string + purpose: string + session_id: string +- name: Initiate Session + endpoint: + path: /initiate_session + method: POST +- name: Get User Access Token + endpoint: + path: /get_user_access_token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get_issued_files + method: GET +- name: Download File + endpoint: + path: /download_file + method: GET +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: + aadhaar_number: User's 12-digit Aadhaar number + consent: Y/N based on whether the customer has given consent for validating + their KYC + purpose: The purpose of the KYC check as required by regulations +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api-v2/generate-otp-v2 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api-v2/verify-otp-v2 + method: POST +- name: KYC APIs + endpoint: + path: /reference/kyc-apis + method: GET + data_selector: records +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: generate_otp + endpoint: + path: /v2/ekyc/aadhaar/generate-otp + method: POST + data_selector: response + params: + aadhaar_number: AADHAAR_NUMBER + consent: Y + purpose: ForKYC +- name: verify_otp + endpoint: + path: /v2/ekyc/aadhaar/verify-otp + method: POST + data_selector: response + params: + otp: OTP received on the registered mobile number + reference_id: reference_id + consent: Y + purpose: KYC check purpose +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: + aadhaar_number: User's 12-digit Aadhaar number + consent: Y/N based on whether the customer has given consent for validating + their KYC + purpose: The purpose of the KYC check as required by regulations +- name: generate_otp + endpoint: + path: /v2/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: AADHAAR_NUMBER + consent: Y + purpose: ForKYC +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Generate OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/generate-otp-v2 + method: POST +- name: Verify OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/verify-otp-v2 + method: POST +- name: Session Expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: generate_otp + endpoint: + path: /v2/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: AADHAAR_NUMBER + consent: Y + purpose: ForKYC +- name: verify_otp + endpoint: + path: /v2/ekyc/aadhaar/verify-otp + method: POST + params: + otp: OTP + reference_id: REFERENCE_ID + consent: Y + purpose: ForKYC +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: + aadhaar_number: string + consent: Y/N + purpose: string +- name: verify_otp + endpoint: + path: /verify-otp + method: POST + data_selector: response + params: {} +- name: initiate_session + endpoint: + path: /initiate-session + method: POST + data_selector: response + params: {} +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST + data_selector: response + params: {} +- name: generate_otp + endpoint: + path: /v2/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: AADHAAR_NUMBER + consent: Y + purpose: ForKYC +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: + aadhaar_number: User's 12-digit Aadhaar number + consent: Y/N based on whether the customer has given consent for validating + their KYC + purpose: The purpose of the KYC check as required by regulations +- name: generate_otp + endpoint: + path: /v2/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: AADHAAR_NUMBER + consent: Y + purpose: ForKYC +- name: generate_otp + endpoint: + path: /v2/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: User's 12-digit Aadhaar number + consent: Y/N based on whether the customer has given consent for validating + their KYC + purpose: The purpose of the KYC check as required by regulations +- name: verify_otp + endpoint: + path: /v2/ekyc/aadhaar/verify-otp + method: POST + params: + otp: OTP received on the registered mobile number + reference_id: Required + consent: Y/N based on whether your customer has given consent for validating + their KYC + purpose: The purpose of the KYC check, which is mandatory as per regulations + mobile_number: 10-digit mobile number to check whether it is the same mobile + linked to Aadhaar + generate_pdf: True or False, depending upon whether pdf needs to be generated + or not +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: generate_otp + endpoint: + path: /v2/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: AADHAAR_NUMBER + consent: Y + purpose: ForKYC +- name: verify_otp + endpoint: + path: /v2/ekyc/aadhaar/verify-otp + method: POST + params: + otp: OTP + reference_id: REFERENCE_ID + consent: Y + purpose: ForKYC +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Session Expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: Refresh Taxpayer Access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: Initiate Session + endpoint: + path: /initiate_session + method: POST +- name: Generate OTP + endpoint: + path: /generate_otp + method: POST +- name: Verify OTP + endpoint: + path: /verify_otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: + aadhaar_number: user's 12-digit Aadhaar number + consent: Y/N + purpose: purpose of the KYC check +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: generate_otp + endpoint: + path: /v2/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: AADHAAR_NUMBER + consent: Y + purpose: ForKYC +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: + aadhaar_number: User's 12-digit Aadhaar number + consent: Y/N based on whether the customer has given consent for validating + their KYC + purpose: the purpose of the KYC check as required by regulations +- name: generate_otp + endpoint: + path: /v2/ekyc/aadhaar/generate-otp + method: POST + params: + aadhaar_number: AADHAAR_NUMBER + consent: Y + purpose: ForKYC +- name: generate_otp + endpoint: + path: /v2/ekyc/aadhaar/generate-otp + method: POST + data_selector: response + params: + aadhaar_number: User's 12-digit Aadhaar number + consent: Y/N based on whether the customer has given consent for validating + their KYC + purpose: The purpose of the KYC check as required by regulations +- name: verify_otp + endpoint: + path: /v2/ekyc/aadhaar/verify-otp + method: POST + data_selector: response + params: + otp: OTP received on the registered mobile number + reference_id: reference ID + consent: Y/N based on whether your customer has given consent for validating + their KYC + purpose: The purpose of the KYC check + mobile_number: 10-digit mobile number to check whether it is the same mobile + linked to Aadhaar + generate_pdf: True or False, depending upon whether pdf needs to be generated + or not +- name: Offline Aadhaar eKYC + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: generate_otp + endpoint: + path: /v2/ekyc/aadhaar/generate-otp + method: POST + data_selector: response + params: + aadhaar_number: User's 12-digit Aadhaar number + consent: Y/N based on whether the customer has given consent for validating + their KYC + purpose: The purpose of the KYC check as required by regulations +- name: verify_otp + endpoint: + path: /v2/ekyc/aadhaar/verify-otp + method: POST + data_selector: response + params: + otp: OTP received on the registered mobile number, with a validity of 10 minutes + reference_id: reference_id + consent: Y/N based on whether your customer has given consent for validating + their KYC + purpose: The purpose of the KYC check, which is mandatory as per regulations + mobile_number: 10-digit mobile number to check whether it is the same mobile + linked to Aadhaar on which the OTP was sent + generate_pdf: True or False, depending upon whether pdf needs to be generated + or not +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Initiate Session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadE_Aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST + data_selector: session_code + params: + consent: user_consent + purpose: session_reason + redirect_url: redirect_url +- name: initiate_session + endpoint: + path: /reference/digilocker-api/initiate-session + method: POST +- name: access_token + endpoint: + path: /reference/digilocker-api/access-token + method: POST +- name: e-aadhaar_api + endpoint: + path: /reference/digilocker-api/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /reference/digilocker-api/issued-files + method: POST +- name: download_file + endpoint: + path: /reference/digilocker-api/download-file + method: POST +- name: initiate_session + endpoint: + path: / + method: POST + data_selector: data + params: + consent: required + purpose: required + redirect_url: optional + redirect_to_signup: 'false' +- name: get_user_access_token + endpoint: + path: / + method: POST + data_selector: data + params: + consent: required + purpose: required + initial_deepvue_transaction_id: required + digilocker_code: required +- name: download_e_aadhar + endpoint: + path: / + method: POST + data_selector: data + params: + consent: required + purpose: required + initial_deepvue_transaction_id: required +- name: get_issued_files + endpoint: + path: / + method: POST + data_selector: data + params: + consent: required + purpose: required + initial_deepvue_transaction_id: required +- name: download_file + endpoint: + path: / + method: POST + data_selector: data + params: + uri: required +- name: initiate_session + endpoint: + path: /initiate/session + method: POST + data_selector: session + params: + consent: user_consent + purpose: session_initiation_reason + redirect_url: redirect_url +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST + data_selector: access_token +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET + data_selector: aadhaar_xml +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET + data_selector: issued_files +- name: download_file + endpoint: + path: /download/file + method: GET + data_selector: file_content +- name: Ledger APIs + endpoint: + path: /ledger + method: GET + data_selector: records +- name: Returns APIs + endpoint: + path: /returns + method: GET + data_selector: records +- name: Offline Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: / + method: POST + data_selector: data + params: + consent: Required + purpose: Required + redirect_url: Optional + redirect_to_signup: 'Default: false' +- name: access_token + endpoint: + path: / + method: POST + data_selector: data + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required + digilocker_code: Required +- name: e_aadhaar + endpoint: + path: / + method: POST + data_selector: data + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required +- name: issued_files + endpoint: + path: / + method: POST + data_selector: data + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: initiate_session + endpoint: + path: /initiate_session + method: POST + data_selector: session + params: + consent: user_consent + purpose: session_reason +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST + data_selector: access_token + params: {} +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET + data_selector: aadhaar_xml + params: {} +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET + data_selector: issued_files + params: {} +- name: download_file + endpoint: + path: /download_file + method: GET + data_selector: file_content + params: {} +- name: Initiate Session + endpoint: + path: /api/initiateSession + method: POST + data_selector: sessionDetails +- name: Get User Access Token + endpoint: + path: /api/getUserAccessToken + method: POST + data_selector: accessToken +- name: Download e-Aadhar + endpoint: + path: /api/downloadEAadhar + method: GET + data_selector: adharXML +- name: Get Issued Files + endpoint: + path: /api/getIssuedFiles + method: GET + data_selector: issuedFiles +- name: Download File + endpoint: + path: /api/downloadFile + method: GET + data_selector: fileContent +- name: initiate_session + endpoint: + path: /v1/kyc/digilocker/initiate-session + method: POST + data_selector: data + params: {} +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: initiate_session + endpoint: + path: /initiate/session + method: POST + data_selector: session + params: + consent: user_consent + purpose: session_purpose +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST + data_selector: access_token + params: {} +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET + data_selector: aadhar_data + params: {} +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET + data_selector: issued_files + params: {} +- name: download_file + endpoint: + path: /download/file + method: GET + data_selector: file_data + params: + uri: file_uri +- name: initiate_session + endpoint: + path: /v1/kyc/digilocker/initiate-session + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: access_token + endpoint: + path: /v1/kyc/digilocker/access-token + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: eaadhaar + endpoint: + path: /v1/kyc/digilocker/eaadhaar + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: issued_files + endpoint: + path: /v1/kyc/digilocker/issued-files + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /v1/kyc/digilocker/initiate-session + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: access_token + endpoint: + path: /v1/kyc/digilocker/access-token + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: e_aadhaar + endpoint: + path: /v1/kyc/digilocker/eaadhaar + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: issued_files + endpoint: + path: /v1/kyc/digilocker/issued-files + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: offline_aadhaar_ekyc + endpoint: + path: /offline-aadhaar-ekyc + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: /initiate-session + method: POST + data_selector: session_data + params: + consent: user_consent + purpose: session_purpose +- name: get_user_access_token + endpoint: + path: /get-user-access-token + method: POST + data_selector: access_token_data + params: {} +- name: download_e_aadhar + endpoint: + path: /download-e-aadhar + method: POST + data_selector: aadhar_xml_data + params: {} +- name: get_issued_files + endpoint: + path: /get-issued-files + method: GET + data_selector: issued_files_data + params: {} +- name: download_file + endpoint: + path: /download-file + method: GET + data_selector: file_data + params: {} +- name: initiate_session + endpoint: + path: /api/initiate-session + method: POST +- name: get_user_access_token + endpoint: + path: /api/get-user-access-token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download-e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get-issued-files + method: GET +- name: download_file + endpoint: + path: /api/download-file + method: GET +- name: initiate_session + endpoint: + path: /digilocker/initiate-session + method: POST +- name: access_token + endpoint: + path: /digilocker/access-token + method: POST +- name: e-aadhaar + endpoint: + path: /digilocker/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /digilocker/issued-files + method: POST +- name: download_file + endpoint: + path: /digilocker/download-file + method: POST +- name: Initiate Session + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_SESSION_CREATED + params: {} +- name: Access Token + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_ACCESS_TOKEN_SUCCESSFUL + params: {} +- name: E-Aadhaar + endpoint: + path: / + method: POST + data_selector: '200' + params: {} +- name: Issued Files + endpoint: + path: / + method: POST + data_selector: '200' + params: {} +- name: Generate OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST + data_selector: session_data + params: + consent: user_consent + purpose: session_purpose + redirect_url: redirect_url +- name: Get User Access Token + endpoint: + path: /getUserAccessToken + method: POST + data_selector: access_token_data + params: {} +- name: Download e-Aadhar + endpoint: + path: /downloadEAadhaar + method: GET + data_selector: aadhaar_data + params: {} +- name: Get Issued Files + endpoint: + path: /getIssuedFiles + method: GET + data_selector: issued_files_data + params: {} +- name: Download File + endpoint: + path: /downloadFile + method: GET + data_selector: file_data + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Initiate Session + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_SESSION_CREATED + params: + consent: Required + purpose: Required + redirect_url: Optional + redirect_to_signup: 'Default: false' +- name: Access Token + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_ACCESS_TOKEN_SUCCESSFUL + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required + digilocker_code: Required +- name: E-Aadhaar + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_E_AADHAAR_SUCCESSFUL + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required +- name: Issued Files + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_ISSUED_FILES_SUCCESSFUL + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST + data_selector: session_data +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST + data_selector: access_token_data +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET + data_selector: aadhaar_xml_data +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET + data_selector: issued_files_data +- name: download_file + endpoint: + path: /download/file + method: GET + data_selector: file_data +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST +- name: Ledger APIs + endpoint: + path: /ledger + method: GET +- name: Returns APIs + endpoint: + path: /returns + method: GET +- name: initiate_session + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /v1/kyc/digilocker/initiate-session + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: access_token + endpoint: + path: /v1/kyc/digilocker/access-token + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: eaadhaar + endpoint: + path: /v1/kyc/digilocker/eaadhaar + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: issued_files + endpoint: + path: /v1/kyc/digilocker/issued-files + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: '' + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: '' + params: {} +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: '' + params: {} +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST + data_selector: '' + params: {} +- name: Ledger APIs + endpoint: + path: /ledger + method: GET +- name: Returns APIs + endpoint: + path: /returns + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: Aadhaar OCR + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: session + params: + consent: user_consent + purpose: session_purpose + redirect_url: redirect_url +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST + data_selector: access_token + params: {} +- name: download_e_aadhar + endpoint: + path: /downloadEAadhaar + method: GET + data_selector: aadhaar_xml + params: {} +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET + data_selector: issued_files + params: {} +- name: download_file + endpoint: + path: /downloadFile + method: POST + data_selector: file + params: {} +- name: initiate_session + endpoint: + path: /v1/kyc/digilocker/initiate-session + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC + redirect_url: '{{Redirect URL}}' + redirect_to_signup: false +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: Initiate Session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: initiate_session + endpoint: + path: /v1/kyc/digilocker/initiate-session + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: access_token + endpoint: + path: /v1/kyc/digilocker/access-token + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: eaadhaar + endpoint: + path: /v1/kyc/digilocker/eaadhaar + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: issued_files + endpoint: + path: /v1/kyc/digilocker/issued-files + method: POST + data_selector: data + params: + consent: Y + purpose: For KYC +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET +- name: Digilocker API + endpoint: + path: /reference/digilocker-api + method: POST +- name: KYC APIs + endpoint: + path: /reference/kyc-apis + method: GET +- name: Document OCR + endpoint: + path: /reference/document-ocr + method: POST +- name: Mobile Number Intelligence + endpoint: + path: /reference/mobile-number-intelligence + method: GET +- name: Document Forensics + endpoint: + path: /reference/document-forensics + method: POST +- name: Face Forensics + endpoint: + path: /reference/face-forensics + method: POST +- name: Async APIs + endpoint: + path: /reference/async-apis + method: POST +- name: GST APIs + endpoint: + path: /reference/gst-apis + method: GET +- name: GST Taxpayer + endpoint: + path: /reference/gst-taxpayer + method: POST +- name: Business Compliance + endpoint: + path: /reference/business-compliance + method: GET +- name: Taxpayer + endpoint: + path: /reference/taxpayer + method: GET +- name: ITR APIs + endpoint: + path: /reference/itr-apis + method: POST +- name: MCA APIs + endpoint: + path: /reference/mca-apis + method: GET +- name: MSME APIs + endpoint: + path: /reference/msme-apis + method: GET +- name: Financial Services + endpoint: + path: /reference/financial-services + method: POST +- name: EPFO + endpoint: + path: /reference/epfo + method: GET +- name: Bulk Validations + endpoint: + path: /reference/bulk-validations + method: POST +- name: Reports + endpoint: + path: /reference/reports + method: GET +- name: initiate_session + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_SESSION_CREATED + params: {} +- name: access_token + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_ACCESS_TOKEN_SUCCESSFUL + params: {} +- name: e_aadhaar + endpoint: + path: / + method: POST + data_selector: '200' + params: {} +- name: issued_files + endpoint: + path: / + method: POST + data_selector: '200' + params: {} +- name: initiate_session + endpoint: + path: /api/initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /api/get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get/issued/files + method: GET +- name: download_file + endpoint: + path: /api/download/file + method: GET +- name: Initiate Session + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Offline Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: DigiLocker + endpoint: + path: /digilocker-api + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /api/get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get_issued_files + method: GET +- name: download_file + endpoint: + path: /api/download_file + method: GET +- name: initiate_session + endpoint: + path: /initiate-session + method: POST + data_selector: session + params: + consent: user_consent + purpose: session_reason +- name: get_user_access_token + endpoint: + path: /get-user-access-token + method: POST + data_selector: access_token + params: {} +- name: download_e_aadhar + endpoint: + path: /download-e-aadhar + method: GET + data_selector: aadhar_xml + params: {} +- name: get_issued_files + endpoint: + path: /get-issued-files + method: GET + data_selector: issued_files + params: {} +- name: download_file + endpoint: + path: /download-file + method: GET + data_selector: file + params: {} +- name: initiate_session + endpoint: + path: /initiate/session + method: POST + data_selector: session + params: + consent: 'true' + purpose: session initiation +- name: initiate_session + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_SESSION_CREATED + params: + consent: Required + purpose: Required + redirect_url: Optional + redirect_to_signup: 'Default: false' +- name: get_user_access_token + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_ACCESS_TOKEN_SUCCESSFUL + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required + digilocker_code: Required +- name: download_e_aadhaar + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_SESSION_CREATED + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required +- name: get_issued_files + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_SESSION_CREATED + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required +- name: download_file + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_SESSION_CREATED + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required +- name: ledger + endpoint: + path: /ledger + method: GET +- name: returns + endpoint: + path: /returns + method: GET +- name: initiate_session + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_SESSION_CREATED + params: + consent: Required + purpose: Required + redirect_url: optional + redirect_to_signup: 'false' +- name: access_token + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_ACCESS_TOKEN_SUCCESSFUL + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required + digilocker_code: Required +- name: download_e_aadhaar + endpoint: + path: / + method: POST + data_selector: '200' + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required +- name: issued_files + endpoint: + path: / + method: POST + data_selector: '200' + params: + consent: Required + purpose: Required + initial_deepvue_transaction_id: Required +- name: Ledger APIs + endpoint: + path: /path/to/ledger/apis + method: GET +- name: Returns APIs + endpoint: + path: /path/to/returns/apis + method: GET +- name: Aadhaar OCR API + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR API + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR API + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR API + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR API + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR API + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR API + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Offline Aadhaar eKYC + endpoint: + path: /offline-aadhaar-ekyc + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: session + params: + consent: required + purpose: required +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST + data_selector: access_token + params: {} +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET + data_selector: aadhar_xml + params: {} +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET + data_selector: issued_files + params: {} +- name: download_file + endpoint: + path: /downloadFile + method: GET + data_selector: file_content + params: {} +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + data_selector: data + params: + pan_number: string +- name: PAN-Aadhaar Link Status + endpoint: + path: /pan-aadhaar/link-status + method: GET + data_selector: data + params: + pan_number: string + aadhaar_number: string +- name: Offline Aadhaar eKYC + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: POST +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + data_selector: {} + params: + pan_number: string + aadhaar_number: string +- name: initiate_session + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_SESSION_CREATED + params: {} +- name: get_user_access_token + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_ACCESS_TOKEN_SUCCESSFUL + params: {} +- name: download_e_aadhaar + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_E_AADHAAR_SUCCESSFUL + params: {} +- name: get_issued_files + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_ISSUED_FILES_SUCCESSFUL + params: {} +- name: download_file + endpoint: + path: / + method: POST + data_selector: RESPONSE_DIGILOCKER_FILE_DOWNLOAD_SUCCESSFUL + params: {} +- name: IFSC Verification API + endpoint: + path: / + method: GET + data_selector: Object + params: + ifsc: string +- name: UPI Verification API + endpoint: + path: / + method: GET + data_selector: Object + params: + vpa: string +- name: UPI Advanced Verification API + endpoint: + path: / + method: GET + data_selector: Object + params: + vpa: string +- name: Mobile To UPI API + endpoint: + path: / + method: GET + data_selector: Object + params: + mobile_number: string +- name: Name Match API + endpoint: + path: / + method: GET + data_selector: Object + params: + name1: string + name2: string +- name: ledger + endpoint: + path: /api/ledger + method: GET +- name: returns + endpoint: + path: /api/returns + method: GET +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + data_selector: data + params: + pan_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET + data_selector: records +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST + data_selector: records +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST + data_selector: records +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET + data_selector: records +- name: IFSC Verification + endpoint: + path: / + method: GET +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: IFSC Verification + endpoint: + path: /reference/kyc-apis/ifsc-verification-api + method: GET +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + params: + pan_number: string +- name: Vehicle RC Verification + endpoint: + path: /vehicle/rc/verification + method: GET + params: + rc_number: string +- name: Aadhaar Verification + endpoint: + path: / + method: GET + params: + aadhaar_number: required +- name: PAN Verification + endpoint: + path: / + method: GET + params: + pan_number: required +- name: PAN Verification Plus + endpoint: + path: / + method: GET + params: + pan_number: required +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + params: + pan_number: string +- name: PAN Verification Plus + endpoint: + path: /pan/verification/plus + method: GET + params: + pan_number: string +- name: Pan-Aadhaar Link Status + endpoint: + path: /pan-aadhaar/link-status + method: GET + params: + pan_number: string + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + data_selector: {} + params: + pan_number: string + aadhaar_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: session_initiation + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: access_token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: e_aadhaar + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: download_file + endpoint: + path: /digilocker-api/download-file + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: IFSC code +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: UPI ID +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: data + params: + aadhaar_number: string +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: data + params: + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: data +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: GET + data_selector: data +- name: initiate_session + endpoint: + path: /initiateSession + method: GET +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: GET +- name: verify_ifsc + endpoint: + path: / + method: GET + params: + ifsc: Required +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: Required +- name: mobile_to_upi + endpoint: + path: / + method: GET + params: + mobile_number: Required +- name: name_match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Digilocker - Get User Access Token + endpoint: + path: /digilocker/get-access-token + method: POST +- name: Digilocker - Download e-Aadhar + endpoint: + path: /digilocker/download-e-aadhar + method: GET +- name: Digilocker - Get Issued Files + endpoint: + path: /digilocker/get-issued-files + method: GET +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Aadhaar Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_AADHAAR + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_PAN_BASIC + params: + pan_number: string +- name: PAN Verification Plus + endpoint: + path: / + method: GET + data_selector: RESPONSE_INDIVIDUAL_PAN_VERIFICATION_SUCCESSFUL + params: + pan_number: string +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + params: + pan_number: string +- name: Vehicle RC Verification + endpoint: + path: /vehicle/rc-verification + method: GET + params: + rc_number: string +- name: initiate_session + endpoint: + path: /initiateSession + method: GET +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: GET +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string Required +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string Required +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: response + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: {} +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: response + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: initiate_session + endpoint: + path: /digilocker-api/initiate-session + method: POST + data_selector: records +- name: access_token + endpoint: + path: /digilocker-api/access-token + method: POST + data_selector: records +- name: e_aadhaar_api + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST + data_selector: records +- name: issued_files + endpoint: + path: /digilocker-api/issued-files + method: POST + data_selector: records +- name: download_file + endpoint: + path: /digilocker-api/download-file + method: POST + data_selector: records +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Generate OTP + endpoint: + path: /generate/otp + method: POST +- name: Verify OTP + endpoint: + path: /verify/otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: verify_aadhaar + endpoint: + path: /verify/aadhaar + method: POST + data_selector: data + params: + aadhaar_number: string +- name: verify_pan + endpoint: + path: /verify/pan + method: POST + data_selector: data + params: + pan_number: string +- name: verify_passport + endpoint: + path: /verify/passport + method: POST + data_selector: data + params: + file_number: string + dob: string +- name: verify_vehicle_rc + endpoint: + path: /verify/vehicle_rc + method: POST + data_selector: data + params: + rc_number: string +- name: verify_bank_account + endpoint: + path: /verify/bank_account + method: POST + data_selector: data + params: + account_number: string + ifsc: string + name: string +- name: IFSC Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE + params: + ifsc: Required +- name: UPI Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE + params: + vpa: Required +- name: Mobile To UPI + endpoint: + path: / + method: GET + data_selector: RESPONSE + params: + mobile_number: Required +- name: Name Match + endpoint: + path: / + method: GET + data_selector: RESPONSE + params: + name1: string + name2: string +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Aadhaar OCR + endpoint: + path: /document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR + endpoint: + path: /document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR + endpoint: + path: /document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR + endpoint: + path: /document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR + endpoint: + path: /document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR + endpoint: + path: /document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR + endpoint: + path: /document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string Required + aadhaar_number: string +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST + data_selector: response +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST + data_selector: response +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST + data_selector: response +- name: IFSC Verification + endpoint: + path: / + method: GET + data_selector: messagestring + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + data_selector: messagestring + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + data_selector: messagestring + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + data_selector: messagestring + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + data_selector: messagestring + params: + name1: string + name2: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: get_user_access_token + endpoint: + path: /get-user-access-token + method: POST +- name: download_e_aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get-issued-files + method: GET +- name: download_file + endpoint: + path: /download-file + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' + name: '' +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: initiate_session + endpoint: + path: /initiate + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: digilocker_initiate_session + endpoint: + path: /digilocker/initiate + method: POST +- name: get_user_access_token + endpoint: + path: /digilocker/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /digilocker/downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /digilocker/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /digilocker/downloadFile + method: GET +- name: aadhaar_verification + endpoint: + path: /aadhaar/verify + method: GET + data_selector: data + params: + aadhaar_number: string +- name: pan_verification + endpoint: + path: /pan/verify + method: GET + data_selector: data + params: + pan_number: string +- name: vehicle_rc_verification + endpoint: + path: /vehicle/rc/verify + method: GET + data_selector: data + params: + rc_number: string +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /generateOTP + method: POST +- name: Verify OTP + endpoint: + path: /verifyOTP + method: POST +- name: Reload Captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /digilocker/api/initiate-session + method: POST + data_selector: access_token +- name: access_token + endpoint: + path: /digilocker/api/access-token + method: POST + data_selector: access_token +- name: e-aadhaar_api + endpoint: + path: /digilocker/api/e-aadhaar-api + method: POST + data_selector: data +- name: issued_files + endpoint: + path: /digilocker/api/issued-files + method: POST + data_selector: files +- name: download_file + endpoint: + path: /digilocker/api/download-file + method: POST + data_selector: file +- name: Initiate Session + endpoint: + path: /api/initiate_session + method: GET +- name: Generate OTP + endpoint: + path: /api/generate_otp + method: POST +- name: Verify OTP + endpoint: + path: /api/verify_otp + method: POST +- name: Reload Captcha + endpoint: + path: /api/reload_captcha + method: GET +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string + name: string +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: Aadhaar Verification + endpoint: + path: /verify/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /verify/pan + method: GET + data_selector: data + params: + pan_number: string +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: ifsc_verification + endpoint: + path: / + method: GET + data_selector: response + params: + ifsc: string +- name: upi_verification + endpoint: + path: / + method: GET + data_selector: response + params: + vpa: string +- name: mobile_to_upi + endpoint: + path: / + method: GET + data_selector: response + params: + mobile_number: string +- name: name_match + endpoint: + path: / + method: GET + data_selector: response + params: + name1: string + name2: string +- name: IFSC Verification API + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification API + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification API + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI API + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match API + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /api/get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get_issued_files + method: GET +- name: download_file + endpoint: + path: /api/download_file + method: GET +- name: Initiate Session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /generateOTP + method: POST +- name: Verify OTP + endpoint: + path: /verifyOTP + method: POST +- name: Reload Captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: verify_ifsc + endpoint: + path: / + method: GET + params: + ifsc: required +- name: verify_upi + endpoint: + path: / + method: GET + params: + vpa: required +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + data_selector: data + params: + aadhaar_number: required +- name: PAN Verification - Basic + endpoint: + path: /pan/verification/basic + method: GET + data_selector: data + params: + pan_number: required +- name: PAN Verification - Plus + endpoint: + path: /pan/verification/plus + method: GET + data_selector: data + params: + pan_number: required +- name: Aadhaar Verification + endpoint: + path: / + method: GET + params: + aadhaar_number: string Required +- name: PAN Verification + endpoint: + path: / + method: GET + params: + pan_number: string Required +- name: Bank Account Verification + endpoint: + path: / + method: GET + params: + account_number: string Required + ifsc: string Required +- name: ifsc_verification + endpoint: + path: / + method: GET + data_selector: messages + params: + ifsc: '' +- name: upi_verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_UPI + params: + vpa: '' +- name: upi_advanced_verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_UPI + params: + vpa: '' +- name: mobile_to_upi + endpoint: + path: / + method: GET + data_selector: Linked VPA Fetched Successfully + params: + mobile_number: '' +- name: name_match + endpoint: + path: / + method: GET + data_selector: matches + params: + name1: '' + name2: '' +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: response + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: {} +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: response + params: {} +- name: Pan-Aadhaar Link Status + endpoint: + path: /kyc-apis/pan-aadhaar-link-status-api + method: GET +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Initiate Session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: verify_ifsc + endpoint: + path: / + method: GET + params: + ifsc: string +- name: verify_upi + endpoint: + path: / + method: GET + params: + vpa: string +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET + data_selector: records +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: Required +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: Required +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: Required +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: Required +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: Required + name2: Required +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: IFSC Verification API + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification API + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification API + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI API + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match API + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + data_selector: data + params: + pan_number: string +- name: PAN To Father Name + endpoint: + path: /pan/father-name + method: GET + data_selector: data + params: + pan_number: string +- name: PAN To Employment Status + endpoint: + path: /pan/employment-status + method: GET + data_selector: data + params: + pan_number: string +- name: PAN KRA Verification + endpoint: + path: /pan/kra-verification + method: GET + data_selector: data + params: + pan_number: string +- name: Passport Verification + endpoint: + path: /passport/verification + method: GET + data_selector: data + params: + file_number: string + dob: string +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAdhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: Aadhaar eKYC + endpoint: + path: /offline-aadhaar-ekyc + method: POST +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Get User Access Token + endpoint: + path: /user/access/token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /issued/files + method: GET +- name: Download File + endpoint: + path: /download/file + method: GET +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verify + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verify + method: GET + data_selector: data + params: + pan_number: string +- name: Initiate Session + endpoint: + path: /initiateSession + method: GET +- name: Generate OTP + endpoint: + path: /generateOTP + method: POST +- name: Verify OTP + endpoint: + path: /verifyOTP + method: POST +- name: Reload Captcha + endpoint: + path: /reloadCaptcha + method: GET +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /initiateSession + method: GET +- name: Generate OTP + endpoint: + path: /generateOTP + method: POST +- name: Verify OTP + endpoint: + path: /verifyOTP + method: POST +- name: Initiate Session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: string + name: string +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /api/get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get_issued_files + method: GET +- name: download_file + endpoint: + path: /api/download_file + method: GET +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET + data_selector: details +- name: IFSC Verification + endpoint: + path: / + method: GET + data_selector: messages + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_UPI + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + data_selector: Linked VPA Fetched Successfully + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + data_selector: matches + params: + name1: string + name2: string +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + data_selector: data + params: + aadhaar_number: required +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + data_selector: data + params: + pan_number: required +- name: PAN-Aadhaar Link Status + endpoint: + path: /pan-aadhaar/link-status + method: GET + data_selector: data + params: + pan_number: required + aadhaar_number: optional +- name: pan_aadhaar_link_status + endpoint: + path: /kyc-apis/pan-aadhaar-link-status-api + method: GET + data_selector: records +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string Required + aadhaar_number: string +- name: IFSC Verification API + endpoint: + path: / + method: GET + data_selector: '200' + params: + ifsc: '' +- name: UPI Verification API + endpoint: + path: / + method: GET + data_selector: '200' + params: + vpa: '' +- name: UPI Advanced Verification API + endpoint: + path: / + method: GET + data_selector: '200' + params: + vpa: '' +- name: Mobile To UPI API + endpoint: + path: / + method: GET + data_selector: '200' + params: + mobile_number: '' +- name: Name Match API + endpoint: + path: / + method: GET + data_selector: '200' + params: + name1: '' + name2: '' +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: Initiate Session + endpoint: + path: /initiateSession + method: GET +- name: Generate OTP + endpoint: + path: /generateOTP + method: POST +- name: Verify OTP + endpoint: + path: /verifyOTP + method: POST +- name: Reload Captcha + endpoint: + path: /reloadCaptcha + method: GET +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Generate OTP + endpoint: + path: /generate/otp + method: POST +- name: Verify OTP + endpoint: + path: /verify/otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload/captcha + method: GET +- name: Aadhaar Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_AADHAAR + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_PAN_BASIC + params: + pan_number: string + name: string +- name: PAN Verification Plus + endpoint: + path: / + method: GET + data_selector: RESPONSE_INDIVIDUAL_PAN_VERIFICATION_SUCCESSFUL + params: + pan_number: string +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: string + name: string +- name: Initiate Session + endpoint: + path: /initiate/session + method: GET +- name: Generate OTP + endpoint: + path: /generate/otp + method: POST +- name: Verify OTP + endpoint: + path: /verify/otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload/captcha + method: GET +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: IFSC Verification + endpoint: + path: /ifsc-verification + method: GET + data_selector: response + params: + ifsc: string +- name: UPI Verification + endpoint: + path: /upi-verification + method: GET + data_selector: response + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: /upi-advanced-verification + method: GET + data_selector: response + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: /mobile-to-upi + method: GET + data_selector: response + params: + mobile_number: string +- name: Name Match + endpoint: + path: /name-match + method: GET + data_selector: response + params: + name1: string + name2: string +- name: PAN To Father Name + endpoint: + path: /kyc-apis/pan-to-father-name-api + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verify + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verify + method: GET + data_selector: data + params: + pan_number: string +- name: Bank Account Verification + endpoint: + path: /bank/verify + method: GET + data_selector: data + params: + account_number: string + ifsc: string + name: string +- name: initiate_session + endpoint: + path: /v1/authorize + method: POST +- name: verify_ifsc + endpoint: + path: / + method: GET + params: + ifsc: required +- name: verify_upi + endpoint: + path: / + method: GET + params: + vpa: required + name: optional +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /api/get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get_issued_files + method: GET +- name: download_file + endpoint: + path: /api/download_file + method: GET +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: vehicle_rc_verification_advanced + endpoint: + path: / + method: GET + params: + rc_number: string +- name: bank_account_verification + endpoint: + path: / + method: GET + params: + account_number: string + ifsc: string + name: string +- name: IFSC Verification + endpoint: + path: / + method: GET + data_selector: messagestring + params: + ifsc: Required +- name: UPI Verification + endpoint: + path: / + method: GET + data_selector: messagestring + params: + vpa: Required +- name: Mobile To UPI + endpoint: + path: / + method: GET + data_selector: messagestring + params: + mobile_number: Required +- name: Name Match + endpoint: + path: / + method: GET + data_selector: messagestring + params: + name1: string + name2: string +- name: PAN To Father Name + endpoint: + path: /kyc-apis/pan-to-father-name-api + method: GET +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: PAN To Father Name + endpoint: + path: /kyc-apis/pan-to-father-name-api + method: GET + data_selector: records +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: POST +- name: Authorize + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN Number + aadhaar_number: AADHAAR NUMBER +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: '{{PAN Number}}' + aadhaar_number: '{{AADHAAR}}' +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + params: + pan_number: '{{PAN Number}}' +- name: employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + data_selector: data + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + params: + pan_number: PAN-Number +- name: upi_verification + endpoint: + path: /v1/verification/upi + method: GET + params: + vpa: '{{UPI ID}}' + name: '{{Name}}' +- name: upi_advanced_verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + params: + vpa: '{{UPI ID}}' +- name: mobile_to_vpa_verification + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: '{{Mobile Number}}' +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar?aadhaar_number=AADHAAR_NUMBER + method: GET + data_selector: data + params: {} +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic?pan_number={{PAN_Number}}&name={{Name}} + method: GET + data_selector: data + params: {} +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus?pan_number=PAN-Number + method: GET + data_selector: data + params: {} +- name: pan_verification_plus_v2 + endpoint: + path: /v2/verification/pan-plus?pan_number=PAN-Number + method: GET + data_selector: data + params: {} +- name: pan_aadhaar_link_status + endpoint: + path: /v1/pan-aadhaar-link-status?pan_number=PAN_NUMBER&aadhaar_number=AADHAAR_NUMBER + method: GET + data_selector: data + params: {} +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN Number + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN Number +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan-aadhaar-link-status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: records + params: + pan_number: '{{PAN Number}}' + aadhaar_number: '{{AADHAAR}}' +- name: pan-to-fathername + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: records + params: + pan_number: '{{PAN Number}}' +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + params: + pan_number: '{{PAN Number}}' +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: '{{PAN Number}}' + aadhaar_number: '{{AADHAAR}}' +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + data_selector: data + params: + pan_number: pan_number +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + data_selector: data + params: + file_number: file_number + dob: dob +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + data_selector: data + params: + rc_number: rc_number +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + data_selector: data + params: + rc_number: rc_number +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN Number + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN Number +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: upi_verification + endpoint: + path: /v1/verification/upi + method: GET + params: + vpa: '{{UPI ID}}' + name: '{{Name}}' +- name: upi_advanced_verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + params: + vpa: '{{UPI ID}}' +- name: mobile_to_vpa + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: '{{Mobile Number}}' +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + params: + file_number: PASSPORT_FILE_NO + dob: YYYY-MM-DD +- name: vehicle_rc_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + params: + rc_number: RC Number +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v2/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN Number + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN Number +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: ifsc_verification + endpoint: + path: /ifsc + method: GET + params: + vpa: IFSC Code +- name: mobile_to_vpa_verification + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + data_selector: data + params: + mobile_number: '{{Mobile Number}}' +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + data_selector: data.challan_details.challans + params: + rc_number: '{{RC Number}}' +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: PAN Number + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + params: + pan_number: PAN Number +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v2/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN Number + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN Number +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: verify_ifsc + endpoint: + path: /v1/verification/ifsc + method: GET + data_selector: data + params: + ifsc: '{{IFSC Code}}' +- name: verify_bank_account + endpoint: + path: /v1/verification/bankaccount + method: GET + data_selector: data + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-employment-status?pan_number=PAN_NUMBER + method: GET + data_selector: data + params: + pan_number: string +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status?pan_number={{PAN Number}} + method: GET + data_selector: data + params: + pan_number: string +- name: passport_verification + endpoint: + path: /v1/verification/passport?file_number={{PASSPORT_FILE_NO}}&dob={{YYYY-MM-DD}} + method: GET + data_selector: data + params: + file_number: string + dob: string +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced?rc_number={{RC Number}} + method: GET + data_selector: data + params: + rc_number: string +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details?rc_number={{RC Number}} + method: GET + data_selector: data + params: + rc_number: string +- name: IFSC Verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: UPI Verification + endpoint: + path: /v1/verification/upi + method: GET + params: + vpa: '{{UPI ID}}' + name: '{{Name}}' +- name: UPI Advanced Verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + params: + vpa: '{{UPI ID}}' +- name: Mobile To UPI + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: '{{Mobile Number}}' +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + data_selector: data + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + data_selector: data + params: + ifsc: '{{IFSC Code}}' +- name: verify_upi + endpoint: + path: /verification/ifsc + method: GET + params: + vpa: '{{IFSC Code}}' +- name: Authorize + endpoint: + path: /authorize + method: POST + data_selector: access_token + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: otp + params: {} +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: verification_status + params: {} +- name: mobile_to_vpa_verification + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: '{{Mobile Number}}' +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: initiate_session + endpoint: + path: /digilocker/api/initiate-session + method: POST +- name: access_token + endpoint: + path: /digilocker/api/access-token + method: POST +- name: e_aadhaar_api + endpoint: + path: /digilocker/api/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /digilocker/api/issued-files + method: POST +- name: download_file + endpoint: + path: /digilocker/api/download-file + method: POST +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Get User Access Token + endpoint: + path: /user/access_token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /issued/files + method: GET +- name: Download File + endpoint: + path: /download/file + method: GET +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: verify_ifsc + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '' +- name: verify_bank_account + endpoint: + path: /v1/verification/bankaccount + method: GET + params: + account_number: '' + ifsc: '' + name: '' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: {} +- name: upi_verification + endpoint: + path: /v1/verification/upi + method: GET + params: + vpa: string + name: string +- name: upi_advanced_verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + params: + vpa: string +- name: mobile_to_vpa + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: string +- name: name_match + endpoint: + path: /v1/verification/name-match + method: GET + params: + name1: string + name2: string +- name: pan_aadhaar_link_status + endpoint: + path: /kyc-apis/pan-aadhaar-link-status-api + method: GET + data_selector: records +- name: Initiate Session + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAdhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /api/get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get_issued_files + method: GET +- name: download_file + endpoint: + path: /api/download_file + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: response + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: {} +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: response + params: {} +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verify + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verify + method: GET + data_selector: data + params: + pan_number: string +- name: Bank Account Verification + endpoint: + path: /bank/verify + method: GET + data_selector: data + params: + account_number: string + ifsc: string + name: string +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: ifsc_verification + endpoint: + path: / + method: GET + data_selector: response + params: + ifsc: required +- name: upi_verification + endpoint: + path: / + method: GET + data_selector: response + params: + vpa: required +- name: name_match + endpoint: + path: / + method: GET + data_selector: response + params: + name1: optional + name2: optional +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /generateOTP + method: POST +- name: Verify OTP + endpoint: + path: /verifyOTP + method: POST +- name: Reload Captcha + endpoint: + path: /reloadCaptcha + method: GET +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET +- name: DigiLocker API + endpoint: + path: /reference/digilocker-api + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: GET +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: GET +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: required +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: required +- name: Initiate Session + endpoint: + path: /initiate-session + method: GET +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: GET +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: verify_ifsc + endpoint: + path: / + method: GET + params: + ifsc: string +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: upi_advanced_verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: mobile_to_upi + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: name_match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: IFSC Verification API + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification API + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification API + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI API + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match API + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: GET + data_selector: data + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: data + params: + aadhaar_number: string +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: data + params: + otp: string +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: string + name: string +- name: Aadhaar Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_AADHAAR + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_PAN_BASIC + params: + pan_number: string +- name: PAN Verification Plus + endpoint: + path: / + method: GET + data_selector: RESPONSE_INDIVIDUAL_PAN_VERIFICATION_SUCCESSFUL + params: + pan_number: string +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: verify_aadhaar + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_AADHAAR + params: + aadhaar_number: string +- name: verify_pan + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_PAN + params: + pan_number: string +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: Generate OTP + endpoint: + path: /reference/kyc-apis/bank-adhaar-seeding-status/bank-aadhaar-seeding-generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /reference/kyc-apis/bank-adhaar-seeding-status/bank-aadhaar-seeding-verify-otp + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /api/get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get_issued_files + method: GET +- name: download_file + endpoint: + path: /api/download_file + method: GET +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + params: + pan_number: string +- name: Bank Account Verification + endpoint: + path: /bank/account/verification + method: GET + params: + account_number: string + ifsc: string + name: string +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /api/get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get_issued_files + method: GET +- name: download_file + endpoint: + path: /api/download_file + method: GET +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string + name: string +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verify + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verify + method: GET + params: + pan_number: string +- name: Vehicle RC Verification + endpoint: + path: /vehicle/rc/verify + method: GET + params: + rc_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: Required +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: Required +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: Required +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: Required +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_verification_plus_v2 + endpoint: + path: /v2/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN Number + aadhaar_number: AADHAAR NUMBER +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: '{{PAN Number}}' + aadhaar_number: '{{AADHAAR}}' +- name: pan_to_fathername + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + params: + pan_number: '{{PAN Number}}' +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: '{{PAN Number}}' + aadhaar_number: '{{AADHAAR}}' +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + params: + pan_number: '{{PAN Number}}' +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: initiate_session + endpoint: + path: /initiate/session + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generate/otp + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verify/otp + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST + data_selector: '' + params: {} +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: UPI Verification + endpoint: + path: /v1/verification/upi + method: GET + params: + vpa: string + name: string +- name: UPI Advanced Verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: string +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR_NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + name: NAME +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + aadhaar_number: AADHAAR_NUMBER +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN Number + aadhaar_number: AADHAAR NUMBER +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: '{{PAN Number}}' + aadhaar_number: '{{AADHAAR}}' +- name: pan_to_fathername + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + params: + pan_number: '{{PAN Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: Aadhaar Verification + endpoint: + path: /v1/authorize + method: POST +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' + aadhaar_number: '{{AADHAAR}}' +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' +- name: employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN Number + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN Number +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + data_selector: data + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + params: + pan_number: '{{PAN%20Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_verification_advanced + endpoint: + path: /v1/verification/rc-advanced + method: GET + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: UPI Verification + endpoint: + path: /v1/verification/upi + method: GET + data_selector: data + params: + vpa: '{{UPI ID}}' + name: '{{Name}}' +- name: UPI Advanced Verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + data_selector: data + params: + vpa: '{{UPI ID}}' +- name: Mobile To UPI + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + data_selector: data + params: + mobile_number: '{{Mobile Number}}' +- name: Name Match + endpoint: + path: /v1/verification/name-match + method: GET + data_selector: data + params: + name1: '{{name1}}' + name2: '{{name2}}' +- name: upi_verification + endpoint: + path: /verification/ifsc + method: GET + params: + vpa: IFSC Code +- name: mobile_to_vpa_verification + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + data_selector: data + params: + mobile_number: '{{Mobile Number}}' +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR_NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + name: NAME +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR_NUMBER +- name: pan_verification + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + name: NAME +- name: pan_plus_verification + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + aadhaar_number: AADHAAR_NUMBER +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + params: + file_number: FILE_NUMBER + dob: DOB(YYYY-MM-DD) +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + data_selector: messages + params: + ifsc: '{{IFSC Code}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: upi_verification + endpoint: + path: /v1/verification/upi + method: GET + params: + vpa: '{{UPI ID}}' + name: '{{Name}}' +- name: upi_advanced_verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + params: + vpa: '{{UPI ID}}' +- name: mobile_to_upi + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: '{{Mobile Number}}' +- name: name_match + endpoint: + path: /v1/verification/name-match + method: GET + params: {} +- name: Aadhaar Verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: PAN Verification + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: PAN To Father Name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN Number +- name: PAN To Employment Status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + data_selector: data + params: {} +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + data_selector: data + params: {} +- name: verify_upi + endpoint: + path: /ifsc + method: GET + params: + vpa: '{{IFSC Code}}' +- name: mobile_to_vpa_verification + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: '{{Mobile Number}}' +- name: initiate_session + endpoint: + path: /digilocker/initiate-session + method: POST +- name: access_token + endpoint: + path: /digilocker/access-token + method: POST +- name: e_aadhaar_api + endpoint: + path: /digilocker/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /digilocker/issued-files + method: POST +- name: download_file + endpoint: + path: /digilocker/download-file + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: PAN Number + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + params: + pan_number: PAN Number +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + data_selector: data + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced + endpoint: + path: /v1/verification/rc-advanced + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + data_selector: data + params: + ifsc: '{{IFSC Code}}' +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET +- name: upi_verification + endpoint: + path: /v1/verification/upi + method: GET + data_selector: data + params: + vpa: UPI ID + name: Name +- name: upi_advanced_verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + data_selector: data + params: + vpa: UPI ID +- name: mobile_to_vpa + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + data_selector: data + params: + mobile_number: Mobile Number +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: initiate_session + endpoint: + path: /digilocker/initiate-session + method: POST +- name: access_token + endpoint: + path: /digilocker/access-token + method: POST +- name: issued_files + endpoint: + path: /digilocker/issued-files + method: POST +- name: download_file + endpoint: + path: /digilocker/download-file + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: IFSC Verification + endpoint: + path: /reference/kyc-apis/ifsc-verification-api + method: GET +- name: Offline Aadhaar Verification + endpoint: + path: /offline-aadhaar-verification + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: GET +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: Initiate Session + endpoint: + path: /initiate_session + method: POST +- name: Generate OTP + endpoint: + path: /generate_otp + method: POST +- name: Verify OTP + endpoint: + path: /verify_otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload_captcha + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + data_selector: data + params: + pan_number: string +- name: PAN To Father Name + endpoint: + path: /pan/father-name + method: GET + data_selector: data + params: + pan_number: string +- name: PAN To Employment Status + endpoint: + path: /pan/employment-status + method: GET + data_selector: data + params: + pan_number: string +- name: Bank Account Verification + endpoint: + path: /bank/account-verification + method: GET + data_selector: data + params: + account_number: string + ifsc: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: Initiate Session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /generateOTP + method: POST +- name: Verify OTP + endpoint: + path: /verifyOTP + method: POST +- name: Reload Captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /generateOTP + method: POST +- name: Verify OTP + endpoint: + path: /verifyOTP + method: POST +- name: Reload Captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + params: + pan_number: string +- name: Vehicle RC Verification + endpoint: + path: /vehicle/rc/verification + method: GET + params: + rc_number: string +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: IFSC Verification API + endpoint: + path: / + method: GET +- name: UPI Verification API + endpoint: + path: / + method: GET +- name: UPI Advanced Verification API + endpoint: + path: / + method: GET +- name: Mobile To UPI API + endpoint: + path: / + method: GET +- name: Name Match API + endpoint: + path: / + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: required +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpas: required + name: optional +- name: IFSC Verification + endpoint: + path: /reference/kyc-apis/ifsc-verification-api + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: Aadhaar Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_AADHAAR + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_PAN + params: + pan_number: string +- name: IFSC + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: Aadhaar Verification + endpoint: + path: / + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: / + method: GET + params: + pan_number: string +- name: PAN Verification Plus + endpoint: + path: / + method: GET + params: + pan_number: string +- name: PAN Verification API - Plus - V2 + endpoint: + path: / + method: GET + params: + pan_number: string +- name: Aadhaar OCR API + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR API + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR API + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR API + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR API + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR API + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR API + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: digilocker_initiate_session + endpoint: + path: /digilocker/initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /digilocker/get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /digilocker/download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /digilocker/get_issued_files + method: GET +- name: download_file + endpoint: + path: /digilocker/download_file + method: GET +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string Required + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: sessionData + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: otpData + params: {} +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: aadhaarInfo + params: {} +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST + data_selector: captchaData + params: {} +- name: IFSC Verification API + endpoint: + path: / + method: GET + params: + ifsc: required +- name: UPI Verification API + endpoint: + path: / + method: GET + params: + vpa: required +- name: UPI Advanced Verification API + endpoint: + path: / + method: GET + params: + vpa: required +- name: Mobile To UPI API + endpoint: + path: / + method: GET + params: + mobile_number: required +- name: Name Match API + endpoint: + path: / + method: GET + params: + name1: optional + name2: optional +- name: Initiate Session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: GET +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /generateOtp + method: POST +- name: Verify OTP + endpoint: + path: /verifyOtp + method: POST +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: Required +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: Required + name: Optional +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: Aadhaar Verification + endpoint: + path: / + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: / + method: GET + params: + pan_number: string +- name: Bank Account Verification + endpoint: + path: / + method: GET + params: + account_number: string + ifsc: string + name: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: IFSC_verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI_verification + endpoint: + path: / + method: GET + params: + vpa: string + name: string +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: initiate_session + endpoint: + path: /reference/digilocker-api/initiate-session + method: POST +- name: access_token + endpoint: + path: /reference/digilocker-api/access-token + method: POST +- name: e-aadhaar_api + endpoint: + path: /reference/digilocker-api/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /reference/digilocker-api/issued-files + method: POST +- name: download_file + endpoint: + path: /reference/digilocker-api/download-file + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: verify_aadhaar + endpoint: + path: /verify/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: string +- name: verify_pan + endpoint: + path: /verify/pan + method: GET + data_selector: data + params: + pan_number: string +- name: check_pan_aadhaar_link + endpoint: + path: /check/pan-aadhaar-link + method: GET + data_selector: data + params: + pan_number: string + aadhaar_number: string +- name: ifsc_verification + endpoint: + path: / + method: GET + data_selector: '200' + params: + ifsc: string +- name: upi_verification + endpoint: + path: / + method: GET + data_selector: '200' + params: + vpa: string +- name: mobile_to_upi + endpoint: + path: / + method: GET + data_selector: '200' + params: + mobile_number: string +- name: name_match + endpoint: + path: / + method: GET + data_selector: '200' + params: + name1: string + name2: string +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Generate OTP + endpoint: + path: /generate/otp + method: POST +- name: Verify OTP + endpoint: + path: /verify/otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload/captcha + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: GET +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: GET +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: PAN Verification + endpoint: + path: /pan-verification + method: POST +- name: PAN Verification Plus + endpoint: + path: /pan-verification-plus + method: POST +- name: PAN-Aadhaar Link Status + endpoint: + path: /pan-aadhaar-link-status + method: GET +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEadhaar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string Required + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: Required +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: Required +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: Required +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: Required +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: Initiate Session + endpoint: + path: /initiate_session + method: POST +- name: Get User Access Token + endpoint: + path: /get_user_access_token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get_issued_files + method: GET +- name: Download File + endpoint: + path: /download_file + method: GET +- name: Offline Aadhaar eKYC + endpoint: + path: /offline-aadhaar-ekyc + method: POST +- name: Aadhaar Verification + endpoint: + path: /aadhaar-verification + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: response + params: {} +- name: generate_otp + endpoint: + path: /generateOtp + method: POST + data_selector: response + params: + aadhaar_number: string +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST + data_selector: response + params: + otp: string +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: string + name: string +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: data + params: + aadhaar_number: string + otp: string +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: data + params: + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: data + params: {} +- name: IFSC Verification API + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification API + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification API + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI API + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match API + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: GET +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: GET +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: verify_otp + endpoint: + path: /verify_otp + method: POST + data_selector: data + params: + aadhaar_number: string +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: data + params: + aadhaar_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: Required +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: Required +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: Required +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: initiate_session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: access_token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: e_aadhaar_api + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: download_file + endpoint: + path: /digilocker-api/download-file + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + data_selector: data + params: + pan_number: string +- name: Bank Account Verification + endpoint: + path: /bank/account/verification + method: GET + data_selector: data + params: + account_number: string + ifsc: string + name: string +- name: IFSC_Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI_Verification + endpoint: + path: / + method: GET + params: + vpa: string + name: string +- name: Aadhaar Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_AADHAAR + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_PAN_BASIC + params: + pan_number: string +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: data + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: data + params: {} +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET + data_selector: data + params: {} +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET + data_selector: data + params: {} +- name: Download File + endpoint: + path: /download-file + method: GET + data_selector: data + params: {} +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string Required + aadhaar_number: string +- name: IFSC Verification API + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification API + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification API + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI API + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match API + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /reference/digilocker-api/initiate-session + method: POST +- name: access_token + endpoint: + path: /reference/digilocker-api/access-token + method: POST +- name: e_aadhaar_api + endpoint: + path: /reference/digilocker-api/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /reference/digilocker-api/issued-files + method: POST +- name: download_file + endpoint: + path: /reference/digilocker-api/download-file + method: POST +- name: ifsc_verification + endpoint: + path: / + method: GET + data_selector: response_attributes +- name: upi_verification + endpoint: + path: / + method: GET + data_selector: response_attributes +- name: IFSC Verification + endpoint: + path: /reference/kyc-apis/ifsc-verification-api + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: Aadhaar Verification + endpoint: + path: / + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: / + method: GET + params: + pan_number: string +- name: PAN To Father Name + endpoint: + path: / + method: GET + params: + pan_number: string +- name: PAN To Employment Status + endpoint: + path: / + method: GET + params: + pan_number: string +- name: Vehicle RC Verification + endpoint: + path: / + method: GET + params: + rc_number: string +- name: Bank Account Verification + endpoint: + path: / + method: GET + params: + account_number: string + ifsc: string + name: string +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verify + method: GET + data_selector: response + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verify + method: GET + data_selector: response + params: + pan_number: string +- name: PAN Verification Plus + endpoint: + path: /pan/verify/plus + method: GET + data_selector: response + params: + pan_number: string +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: string Required +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: string Required +- name: upi_advanced_verification + endpoint: + path: / + method: GET + params: + vpa: string Required +- name: mobile_to_upi + endpoint: + path: / + method: GET + params: + mobile_number: string Required +- name: name_match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + data_selector: data + params: + pan_number: string +- name: Pan-Aadhaar Link Status + endpoint: + path: /pan-aadhaar/link-status + method: GET + data_selector: data + params: + pan_number: string + aadhaar_number: string +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: initiate_session + endpoint: + path: /digilocker/initiate-session + method: POST +- name: access_token + endpoint: + path: /digilocker/access-token + method: POST +- name: e-aadhaar_api + endpoint: + path: /digilocker/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /digilocker/issued-files + method: POST +- name: download_file + endpoint: + path: /digilocker/download-file + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: Inititate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string + name: string +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET + data_selector: records +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET +- name: Aadhaar Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_AADHAAR + params: + aadhaar_number: required +- name: PAN Verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_PAN_BASIC + params: + pan_number: required +- name: Initiate Session + endpoint: + path: /initiate_session + method: POST +- name: Generate OTP + endpoint: + path: /generate_otp + method: POST +- name: Verify OTP + endpoint: + path: /verify_otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload_captcha + method: POST +- name: Digilocker API + endpoint: + path: /digilocker + method: GET +- name: IFSC Verification + endpoint: + path: / + method: GET + data_selector: messagestring + params: + ifsc: Required +- name: UPI Verification + endpoint: + path: / + method: GET + data_selector: messagestring + params: + vpa: Required +- name: Mobile To UPI + endpoint: + path: / + method: GET + data_selector: messagestring + params: + mobile_number: Required +- name: Name Match + endpoint: + path: / + method: GET + data_selector: messagestring + params: + name1: string + name2: string +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string Required + aadhaar_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAdhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string + name: string +- name: initiate_session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: access_token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: e-aadhaar-api + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: download_file + endpoint: + path: /digilocker-api/download-file + method: POST +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verify + method: GET + data_selector: RESPONSE_VALID_AADHAAR + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verify + method: GET + data_selector: RESPONSE_VALID_PAN + params: + pan_number: string +- name: IFSC Verification + endpoint: + path: / + method: GET + data_selector: Object + params: + ifsc: Required +- name: UPI Verification + endpoint: + path: / + method: GET + data_selector: Object + params: + vpa: Required +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + data_selector: Object + params: + vpa: Required +- name: Mobile To UPI + endpoint: + path: / + method: GET + data_selector: Object + params: + mobile_number: Required +- name: Name Match + endpoint: + path: / + method: GET + data_selector: Object + params: + name1: Required + name2: Required +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST + data_selector: data +- name: Generate OTP + endpoint: + path: /generate/otp + method: POST + data_selector: data +- name: Verify OTP + endpoint: + path: /verify/otp + method: POST + data_selector: data +- name: Reload Captcha + endpoint: + path: /reload/captcha + method: POST + data_selector: data +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: IFSC Verification API + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification API + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification API + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI API + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match API + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/reload-captcha + method: GET +- name: session + endpoint: + path: /api/initiateSession + method: POST +- name: user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEadhar + method: GET +- name: issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verification + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verification + method: GET + params: + pan_number: string +- name: ifsc_verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: string + name: string +- name: initiate_session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: access_token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: e-aadhaar_api + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: download_file + endpoint: + path: /digilocker-api/download-file + method: POST +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: ifsc_verification + endpoint: + path: / + method: GET + data_selector: messagestring + params: + ifsc: IFSC code +- name: upi_verification + endpoint: + path: / + method: GET + data_selector: messagestring + params: + vpa: UPI ID +- name: mobile_to_upi + endpoint: + path: / + method: GET + data_selector: messagestring + params: + mobile_number: Mobile number +- name: name_match + endpoint: + path: / + method: GET + data_selector: messagestring + params: + name1: First name + name2: Second name +- name: Initiate Session + endpoint: + path: /initiate-session + method: GET +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: initiate_session + endpoint: + path: /reference/digilocker-api/initiate-session + method: POST +- name: access_token + endpoint: + path: /reference/digilocker-api/access-token + method: POST +- name: e-aadhaar_api + endpoint: + path: /reference/digilocker-api/e-aadhaar-api + method: POST +- name: issued_files + endpoint: + path: /reference/digilocker-api/issued-files + method: POST +- name: download_file + endpoint: + path: /reference/digilocker-api/download-file + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: Aadhaar Verification + endpoint: + path: / + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: / + method: GET + params: + pan_number: string + name: string +- name: PAN Verification Plus + endpoint: + path: / + method: GET + params: + pan_number: string +- name: PAN Verification Plus V2 + endpoint: + path: / + method: GET + params: + pan_number: string +- name: IFSC Verification + endpoint: + path: /reference/kyc-apis/ifsc-verification-api + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verify + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verify + method: GET + data_selector: data + params: + pan_number: string +- name: Bank Account Verification + endpoint: + path: /bank/account/verify + method: GET + data_selector: data + params: + account_number: string + ifsc: string + name: string +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: Aadhaar Verification + endpoint: + path: / + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: / + method: GET + params: + pan_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Generate OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/generate-otp-v2 + method: POST +- name: Verify OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/verify-otp-v2 + method: POST +- name: Initiate Session Digilocker + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Generate OTP + endpoint: + path: /generate/otp + method: POST +- name: Verify OTP + endpoint: + path: /verify/otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload/captcha + method: POST +- name: ifsc_verification + endpoint: + path: / + method: GET + data_selector: messagestring + params: + ifsc: string +- name: upi_verification + endpoint: + path: / + method: GET + data_selector: messagestring + params: + vpa: string + name: string +- name: Initiate Session + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + params: + aadhaar_number: string +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + params: + aadhaar_number: string +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + params: {} +- name: Initiate Session + endpoint: + path: /reference/digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /reference/digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /reference/digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /reference/digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /reference/digilocker-api/download-file + method: POST +- name: verify_ifsc + endpoint: + path: / + method: GET + data_selector: messages + params: + ifsc: string +- name: upi_verification + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_UPI + params: + vpa: string +- name: mobile_to_upi + endpoint: + path: / + method: GET + data_selector: Linked VPA Fetched Successfully + params: + mobile_number: string +- name: name_match + endpoint: + path: / + method: GET + data_selector: matches + params: + name1: string + name2: string +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAadhaar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: Initiate Session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: pan_aadhaar_link_status + endpoint: + path: / + method: GET + params: + pan_number: string + aadhaar_number: string +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: Required +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: Required +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: Required +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: GET +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET +- name: UPI Verification + endpoint: + path: / + method: GET + query_parameters: + vpa: UPI ID for verification +- name: IFSC Verification + endpoint: + path: /reference/kyc-apis/ifsc-verification-api + method: GET +- name: PAN Verification API - Basic + endpoint: + path: / + method: GET + data_selector: RESPONSE_VALID_PAN_BASIC + params: + pan_number: string + name: string +- name: PAN To Employment Status + endpoint: + path: / + method: GET + data_selector: SUCCESS + params: + pan_number: string +- name: PAN KRA Verification API + endpoint: + path: / + method: GET + data_selector: RESPONSE_PAN_KRA_VERIFICATION_SUCCESSFUL + params: + pan_number: string +- name: Bank Account Verification API - Penny Drop + endpoint: + path: / + method: GET + data_selector: RESPONSE_BAV_SUCCESSFUL + params: + account_number: string + ifsc: string + name: string +- name: IFSC Verification API + endpoint: + path: / + method: GET + params: + ifsc: string +- name: UPI Verification API + endpoint: + path: / + method: GET + params: + vpa: string +- name: UPI Advanced Verification API + endpoint: + path: / + method: GET + params: + vpa: string +- name: Mobile To UPI API + endpoint: + path: / + method: GET + params: + mobile_number: string +- name: Name Match API + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: verify_aadhaar + endpoint: + path: /verify/aadhaar + method: GET + params: + aadhaar_number: string +- name: verify_pan + endpoint: + path: /verify/pan + method: GET + params: + pan_number: string +- name: pan_to_father_name + endpoint: + path: /pan/father-name + method: GET + params: + pan_number: string +- name: pan_to_employment_status + endpoint: + path: /pan/employment-status + method: GET + params: + pan_number: string +- name: bank_account_verification + endpoint: + path: /bank/account-verification + method: GET + params: + account_number: string + ifsc: string + name: string +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: POST +- name: IFSC Verification + endpoint: + path: / + method: GET + params: + ifsc: '' +- name: UPI Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: UPI Advanced Verification + endpoint: + path: / + method: GET + params: + vpa: '' +- name: Mobile To UPI + endpoint: + path: / + method: GET + params: + mobile_number: '' +- name: Name Match + endpoint: + path: / + method: GET + params: + name1: '' + name2: '' +- name: Initiate Session + endpoint: + path: /initiate_session + method: POST +- name: Generate OTP + endpoint: + path: /generate_otp + method: POST +- name: Verify OTP + endpoint: + path: /verify_otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload_captcha + method: POST +- name: Bank Aadhaar Seeding - Generate OTP + endpoint: + path: /reference/kyc-apis/bank-adhaar-seeding-status/bank-aadhaar-seeding-generate-otp + method: POST +- name: Bank Aadhaar Seeding - Verify OTP + endpoint: + path: /reference/kyc-apis/bank-adhaar-seeding-status/bank-aadhaar-seeding-verify-otp + method: POST +- name: verify_ifsc + endpoint: + path: / + method: GET + params: + ifsc: Required +- name: verify_upi + endpoint: + path: / + method: GET + params: + vpa: Required + name: Optional +- name: Bank Aadhaar Seeding Status + endpoint: + path: /reference/kyc-apis/bank-adhaar-seeding-status + method: POST +- name: Aadhaar OCR API + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Credit Report + endpoint: + path: /reference/financial-services/credit-bureau/experian/credit-report-api + method: GET +- name: IFSC Verification + endpoint: + path: /kyc-apis/ifsc-verification-api + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Aadhaar Verification + endpoint: + path: /aadhaar/verify + method: GET + params: + aadhaar_number: string +- name: PAN Verification + endpoint: + path: /pan/verify + method: GET + params: + pan_number: string +- name: Bank Account Verification + endpoint: + path: /bank/verify + method: GET + params: + account_number: string + ifsc: string + name: string +- name: Initiate Session + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: verify_ifsc + endpoint: + path: / + method: GET + params: + ifsc: Required +- name: upi_verification + endpoint: + path: / + method: GET + params: + vpa: Required +- name: mobile_to_upi + endpoint: + path: / + method: GET + params: + mobile_number: Required +- name: name_match + endpoint: + path: / + method: GET + params: + name1: string + name2: string +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: Bank Aadhaar Seeding - Generate OTP + endpoint: + path: /reference/kyc-apis/bank-adhaar-seeding-status/bank-aadhaar-seeding-generate-otp + method: POST +- name: Bank Aadhaar Seeding - Verify OTP + endpoint: + path: /reference/kyc-apis/bank-adhaar-seeding-status/bank-aadhaar-seeding-verify-otp + method: POST +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' + name: '{{Name}}' +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: Bank Aadhaar Seeding Status + endpoint: + path: /reference/kyc-apis/bank-adhaar-seeding-status + method: POST +- name: Generate OTP + endpoint: + path: /reference/kyc-apis/bank-adhaar-seeding-status/bank-aadhaar-seeding-generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /reference/kyc-apis/bank-adhaar-seeding-status/bank-aadhaar-seeding-verify-otp + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v2/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: pan_number + aadhaar_number: aadhaar_number +- name: pan-aadhaar-link-status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: '{{PAN Number}}' + aadhaar_number: '{{AADHAAR}}' +- name: pan-to-fathername + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + params: + pan_number: '{{PAN Number}}' +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: '{{PAN Number}}' + aadhaar_number: '{{AADHAAR}}' +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + data_selector: data + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' + name: '{{Name}}' +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: Bank Aadhaar Seeding Status + endpoint: + path: /kyc-apis/bank-adhaar-seeding-status + method: POST +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: UPI Verification + endpoint: + path: /v1/verification/upi + method: GET + data_selector: data + params: + vpa: string + name: string +- name: UPI Advanced Verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + data_selector: data + params: + vpa: string +- name: Mobile to UPI + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + data_selector: data + params: + mobile_number: string +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR_NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + name: NAME +- name: pan_verification_plus + endpoint: + path: /v2/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + aadhaar_number: AADHAAR_NUMBER +- name: pan-aadhaar-link-status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: '{{PAN Number}}' + aadhaar_number: '{{AADHAAR}}' +- name: pan-to-fathername + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + params: + pan_number: '{{PAN Number}}' +- name: pan-aadhaar-link-status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: PAN Number + aadhaar_number: AADHAAR +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR_NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + name: NAME +- name: pan_verification_plus + endpoint: + path: /v2/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + data_selector: data + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + data_selector: data + params: {} +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + data_selector: null + params: + ifsc: '{{IFSC Code}}' +- name: upi_verification + endpoint: + path: /v1/verification/upi + method: GET + params: + vpa: UPI ID + name: Name +- name: upi_advanced_verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + params: + vpa: UPI ID +- name: mobile_to_vpa + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: Mobile Number +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR_NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + name: NAME +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + data_selector: data + params: + file_number: PASSPORT_FILE_NO + dob: YYYY-MM-DD +- name: rc_verification_advanced + endpoint: + path: /v1/verification/rc-advanced + method: GET + data_selector: data + params: + rc_number: RC Number +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + data_selector: data + params: + rc_number: RC Number +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v2/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN Number + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN Number +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + data_selector: data + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + data_selector: data + params: + ifsc: '{{IFSC Code}}' +- name: UPI Verification + endpoint: + path: /verification/ifsc + method: GET + params: + vpa: UPI_ID +- name: pan_verification + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + params: + pan_number: '{{PAN Number}}' +- name: mobile_to_vpa + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: '{{Mobile Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: POST +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + params: + pan_number: '{{PAN Number}}' + name: '{{Name}}' +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + params: + pan_number: '{{PAN Number}}' + aadhaar_number: '{{AADHAAR}}' +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + params: + pan_number: '{{PAN Number}}' +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR_NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER + name: NAME +- name: pan_verification_plus + endpoint: + path: /v2/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + params: + rc_number: '{{RC Number}}' +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: upi_verification + endpoint: + path: /v1/verification/upi + method: GET + params: + vpa: UPI ID + name: Name +- name: upi_advanced_verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + params: + vpa: UPI ID +- name: mobile_to_upi + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: Mobile Number +- name: ifsc_verification + endpoint: + path: /ifsc + method: GET + params: + vpa: required +- name: mobile_to_vpa + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: '{{Mobile Number}}' +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: aadhaar_verification + endpoint: + path: /v1/verification/aadhaar + method: GET + data_selector: data + params: + aadhaar_number: AADHAAR NUMBER +- name: pan_verification_basic + endpoint: + path: /v1/verification/panbasic + method: GET + data_selector: data + params: + pan_number: PAN Number + name: Name +- name: pan_verification_plus + endpoint: + path: /v1/verification/pan-plus + method: GET + data_selector: data + params: + pan_number: PAN-Number +- name: pan_aadhaar_link_status + endpoint: + path: /v1/verification/pan-aadhaar-link-status + method: GET + data_selector: data + params: + pan_number: PAN Number + aadhaar_number: AADHAAR +- name: pan_to_father_name + endpoint: + path: /v1/verification/pan-to-fathername + method: GET + data_selector: data + params: + pan_number: PAN Number +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generateOTP + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST + data_selector: '' + params: {} +- name: pan_to_employment_status + endpoint: + path: /v1/verification/pan-to-employment-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: pan_kra_status + endpoint: + path: /v1/verification/pan-kra-status + method: GET + data_selector: data + params: + pan_number: '{{PAN Number}}' +- name: passport_verification + endpoint: + path: /v1/verification/passport + method: GET + data_selector: data + params: + file_number: '{{PASSPORT_FILE_NO}}' + dob: '{{YYYY-MM-DD}}' +- name: rc_advanced_verification + endpoint: + path: /v1/verification/rc-advanced + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: rc_challan_details + endpoint: + path: /v1/verification/rc-challan-details + method: GET + data_selector: data + params: + rc_number: '{{RC Number}}' +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount + method: GET + params: + account_number: '{{Bank Account Number}}' + ifsc: '{{Bank IFSC code}}' + name: '{{Name}}' +- name: Generate Otp + endpoint: + path: /generate_otp + method: POST + data_selector: otp_response +- name: ifsc_verification + endpoint: + path: /v1/verification/ifsc + method: GET + params: + ifsc: '{{IFSC Code}}' +- name: upi_verification + endpoint: + path: /v1/verification/upi + method: GET + params: + vpa: '{{UPI ID}}' + name: '{{Name}}' +- name: upi_advanced_verification + endpoint: + path: /v1/verification/upi-advanced + method: GET + params: + vpa: '{{UPI ID}}' +- name: mobile_to_upi_verification + endpoint: + path: /v1/verification/mobile-to-vpa + method: GET + params: + mobile_number: '{{Mobile Number}}' +- name: name_match + endpoint: + path: /v1/name/match + method: GET + params: + name1: '{{name1}}' + name2: '{{name2}}' +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET + data_selector: records +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST + data_selector: records +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST + data_selector: records +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET + data_selector: records +- name: Initiate Session + endpoint: + path: /reference/digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /reference/digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /reference/digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /reference/digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /reference/digilocker-api/download-file + method: POST +- name: Aadhaar KYC + endpoint: + path: /offline-aadhaar-ekyc + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST + data_selector: session_data +- name: get_user_access_token + endpoint: + path: /user/access/token + method: POST + data_selector: access_token_data +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET + data_selector: aadhar_xml +- name: get_issued_files + endpoint: + path: /issued/files + method: GET + data_selector: issued_documents +- name: download_file + endpoint: + path: /download/file + method: GET + data_selector: file_data +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: Generate Otp + endpoint: + path: /api/generate_otp + method: POST + data_selector: otp_response +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: sessionData + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: otpData + params: {} +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: aadhaarInfo + params: {} +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST + data_selector: captchaData + params: {} +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Aadhaar OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: PAN OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: Aadhaar OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: PAN OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Driving License OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Voter Id OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Passport OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Bank Cheque OCR + endpoint: + path: /v1/documents/extraction/ind_bank_cheque + method: POST + data_selector: data + params: {} +- name: GSTIN Certificate OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Aadhaar Card OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: PAN Card OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Offline Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Aadhaar OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: PAN OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Driving License OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Voter ID OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Passport OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Bank Cheque OCR + endpoint: + path: /v1/documents/extraction/ind_bank_cheque + method: POST + data_selector: data + params: {} +- name: GSTIN Certificate OCR + endpoint: + path: / + method: POST + data_selector: data + params: {} +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp_response + params: + gstin: string + username: string +- name: ITR Verification + endpoint: + path: /itr_verification + method: GET + data_selector: data + params: {} +- name: MCA Director Master Data + endpoint: + path: /mca/director_master_data + method: GET + data_selector: data + params: {} +- name: MCA Company Master Data + endpoint: + path: /mca/company_master_data + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: ITR Verification + endpoint: + path: /ITR/Verification + method: GET +- name: Director Master Data + endpoint: + path: /MCA/DirectorMasterData + method: GET +- name: Company Master Data + endpoint: + path: /MCA/CompanyMasterData + method: GET +- name: Credit Report + endpoint: + path: /FinancialServices/CreditReport + method: GET +- name: Customer Data Pull + endpoint: + path: /FinancialServices/CustomerDataPull + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generateOTP + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST + data_selector: '' + params: {} +- name: Offline Aadhaar eKYC + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-ekyc-api/verify + method: POST +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan List + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Digital Age + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Vehicle RC + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile Network Details + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Multiple Upi + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: get_user_access_token + endpoint: + path: /api/get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get_issued_files + method: GET +- name: download_file + endpoint: + path: /api/download_file + method: GET +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /tan/verification + method: GET + data_selector: data +- name: Director Master Data + endpoint: + path: /mca/director_master + method: GET + data_selector: data +- name: Company Master Data + endpoint: + path: /mca/company_master + method: GET + data_selector: data +- name: Credit Report + endpoint: + path: /financial_services/credit_report + method: GET + data_selector: data +- name: Customer Data Pull + endpoint: + path: /financial_services/customer_data_pull + method: GET + data_selector: data +- name: UAN Verification + endpoint: + path: /epfo/uan_verification + method: GET + data_selector: data +- name: Bulk Validations + endpoint: + path: /bulk/validations + method: GET + data_selector: data +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /itr_verification + method: GET + data_selector: data + params: {} +- name: Director Master Data + endpoint: + path: /director_master_data + method: GET + data_selector: data + params: {} +- name: Company Master Data + endpoint: + path: /company_master_data + method: GET + data_selector: data + params: {} +- name: Credit Report + endpoint: + path: /credit_report + method: GET + data_selector: data + params: {} +- name: Customer Data Pull + endpoint: + path: /customer_data_pull + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Mobile To Name + endpoint: + path: /mobile_to_name + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: /mobile_to_pan + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: /mobile_to_uan + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan List + endpoint: + path: /mobile_to_uan_list + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Digital Age + endpoint: + path: /mobile_to_digital_age + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Vehicle RC + endpoint: + path: /mobile_to_vehicle_rc + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile Network Details + endpoint: + path: /mobile_network_details + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Multiple Upi + endpoint: + path: /mobile_to_multiple_upi + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /itr_verification + method: GET + data_selector: data + params: {} +- name: MCA Director Master Data + endpoint: + path: /mca/director_master_data + method: GET + data_selector: data + params: {} +- name: MCA Company Master Data + endpoint: + path: /mca/company_master_data + method: GET + data_selector: data + params: {} +- name: ITR Verification + endpoint: + path: /ITR/verification + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /TAN/verification + method: GET + data_selector: data +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: mobile_to_name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /itr_verification + method: GET +- name: MCA Director Master Data + endpoint: + path: /mca/director_master_data + method: GET +- name: MCA Company Master Data + endpoint: + path: /mca/company_master_data + method: GET +- name: Credit Report + endpoint: + path: /financial_services/credit_report + method: GET +- name: Customer Data Pull + endpoint: + path: /financial_services/customer_data_pull + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan List + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Digital Age + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Vehicle RC + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile Network Details + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Multiple Upi + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /ITR/verification + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /TAN/verification + method: GET + data_selector: data +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: {} +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: {} +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data +- name: Director Master Data + endpoint: + path: /mca/director + method: GET + data_selector: data +- name: Company Master Data + endpoint: + path: /mca/company + method: GET + data_selector: data +- name: Credit Report + endpoint: + path: /financial_services/credit_report + method: GET + data_selector: data +- name: Customer Data Pull + endpoint: + path: /financial_services/customer_data_pull + method: GET + data_selector: data +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan List + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Digital Age + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Vehicle RC + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile Network Details + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Multiple Upi + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /ITR/verification + method: GET +- name: Director Master Data + endpoint: + path: /MCA/director-master-data + method: GET +- name: Company Master Data + endpoint: + path: /MCA/company-master-data + method: GET +- name: Credit Report + endpoint: + path: /financial-services/credit-report + method: GET +- name: Customer Data Pull + endpoint: + path: /financial-services/customer-data-pull + method: GET +- name: TAN Verification + endpoint: + path: /taxpayer/tan-verification + method: GET +- name: UAN Verification + endpoint: + path: /EPFO/uan-verification + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: mobile_to_name + endpoint: + path: /mobile_to_name + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verify_otp + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST + data_selector: '' + params: {} +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET + data_selector: data + params: {} +- name: DigiLocker API + endpoint: + path: /reference/digilocker-api + method: POST + data_selector: data + params: {} +- name: mobile_to_name + endpoint: + path: / + method: GET + data_selector: data + params: {} +- name: mobile_to_pan + endpoint: + path: / + method: GET + data_selector: data + params: {} +- name: mobile_to_uan + endpoint: + path: / + method: GET + data_selector: data + params: {} +- name: mobile_to_name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /itr-verification + method: GET + data_selector: data + params: {} +- name: Director Master Data + endpoint: + path: /mca/director-master-data + method: GET + data_selector: data + params: {} +- name: Company Master Data + endpoint: + path: /mca/company-master-data + method: GET + data_selector: data + params: {} +- name: Credit Report + endpoint: + path: /financial-services/credit-report + method: GET + data_selector: data + params: {} +- name: Customer Data Pull + endpoint: + path: /financial-services/customer-data-pull + method: GET + data_selector: data + params: {} +- name: ITR Verification + endpoint: + path: /itr_verification + method: GET + data_selector: data +- name: Director Master Data + endpoint: + path: /mca/director_master_data + method: GET + data_selector: data +- name: Company Master Data + endpoint: + path: /mca/company_master_data + method: GET + data_selector: data +- name: Credit Report + endpoint: + path: /financial_services/credit_report + method: GET + data_selector: data +- name: Customer Data Pull + endpoint: + path: /financial_services/customer_data_pull + method: GET + data_selector: data +- name: Mobile To Name + endpoint: + path: /MobileToName + method: GET + data_selector: data +- name: Mobile To Pan + endpoint: + path: /MobileToPan + method: GET + data_selector: data +- name: Mobile To Uan + endpoint: + path: /MobileToUan + method: GET + data_selector: data +- name: Mobile To Uan List + endpoint: + path: /MobileToUanList + method: GET + data_selector: data +- name: Mobile To Digital Age + endpoint: + path: /MobileToDigitalAge + method: GET + data_selector: data +- name: Mobile To Vehicle RC + endpoint: + path: /MobileToVehicleRC + method: GET + data_selector: data +- name: Mobile Network Details + endpoint: + path: /MobileNetworkDetails + method: GET + data_selector: data +- name: Mobile To Multiple Upi + endpoint: + path: /MobileToMultipleUpi + method: GET + data_selector: data +- name: ITR Verification + endpoint: + path: /itr_verification + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /tan_verification + method: GET + data_selector: data +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan List + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Digital Age + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Vehicle RC + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile Network Details + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Multiple Upi + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /tan/verification + method: GET + data_selector: data +- name: Director Master Data + endpoint: + path: /mca/director-master + method: GET + data_selector: data +- name: Company Master Data + endpoint: + path: /mca/company-master + method: GET + data_selector: data +- name: Credit Report + endpoint: + path: /financial-services/credit-report + method: GET + data_selector: data +- name: Customer Data Pull + endpoint: + path: /financial-services/customer-data-pull + method: GET + data_selector: data +- name: UAN Verification + endpoint: + path: /epfo/uan-verification + method: GET + data_selector: data +- name: Aadhaar OCR API + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR API + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR API + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR API + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR API + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR API + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR API + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: Offline Aadhaar eKYC + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: GET +- name: generate_otp + endpoint: + path: /generateOtp + method: GET +- name: verify_otp + endpoint: + path: /verifyOtp + method: GET +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: GET +- name: mobile_to_name + endpoint: + path: /mobileToName + method: GET + params: + mobile_number: string +- name: mobile_to_pan + endpoint: + path: /mobileToPan + method: GET + params: + mobile_number: string +- name: mobile_to_uan + endpoint: + path: /mobileToUan + method: GET + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data + params: {} +- name: Director Master Data + endpoint: + path: /mca/director_master + method: GET + data_selector: data + params: {} +- name: Company Master Data + endpoint: + path: /mca/company_master + method: GET + data_selector: data + params: {} +- name: Credit Report + endpoint: + path: /financial_services/credit_report + method: GET + data_selector: data + params: {} +- name: Customer Data Pull + endpoint: + path: /financial_services/customer_data_pull + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: Offline Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: mobile_to_name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_uan_list + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_digital_age + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_vehicle_rc + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_network_details + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_multiple_upi + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data + params: {} +- name: TAN Verification + endpoint: + path: /tan/verification + method: GET + data_selector: data + params: {} +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data +- name: MCA Director Master Data + endpoint: + path: /mca/director + method: GET + data_selector: data +- name: MCA Company Master Data + endpoint: + path: /mca/company + method: GET + data_selector: data +- name: Credit Report + endpoint: + path: /financial/credit_report + method: GET + data_selector: data +- name: Customer Data Pull + endpoint: + path: /financial/customer_data_pull + method: GET + data_selector: data +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data +- name: Mobile To Uan List + endpoint: + path: / + method: GET + data_selector: data +- name: Mobile To Digital Age + endpoint: + path: / + method: GET + data_selector: data +- name: Mobile To Vehicle RC + endpoint: + path: / + method: GET + data_selector: data +- name: Mobile Network Details + endpoint: + path: / + method: GET + data_selector: data +- name: Mobile To Multiple Upi + endpoint: + path: / + method: GET + data_selector: data +- name: ITR Verification + endpoint: + path: /itr-verification + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /tan-verification + method: GET + data_selector: data +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /api/initiate-session + method: POST + data_selector: sessionData +- name: Get User Access Token + endpoint: + path: /api/get-user-access-token + method: POST + data_selector: accessTokenData +- name: Download e-Aadhar + endpoint: + path: /api/download-e-aadhar + method: GET + data_selector: aadharData +- name: Get Issued Files + endpoint: + path: /api/get-issued-files + method: GET + data_selector: issuedFiles +- name: Download File + endpoint: + path: /api/download-file + method: GET + data_selector: fileData +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: digilocker_api + endpoint: + path: /digilocker + method: POST +- name: document_ocr + endpoint: + path: /document-ocr + method: POST +- name: mobile_number_intelligence + endpoint: + path: /mobile-number-intelligence + method: GET +- name: mobile_to_name + endpoint: + path: /mobile-to-name + method: GET +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /itr-verification + method: GET + data_selector: data +- name: Director Master Data + endpoint: + path: /mca/director-master + method: GET + data_selector: data +- name: Company Master Data + endpoint: + path: /mca/company-master + method: GET + data_selector: data +- name: Credit Report + endpoint: + path: /financial-services/credit-report + method: GET + data_selector: data +- name: Customer Data Pull + endpoint: + path: /financial-services/customer-data-pull + method: GET + data_selector: data +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /ITR/Verification + method: GET + data_selector: data +- name: Director Master Data + endpoint: + path: /MCA/DirectorMasterData + method: GET + data_selector: data +- name: Company Master Data + endpoint: + path: /MCA/CompanyMasterData + method: GET + data_selector: data +- name: Credit Report + endpoint: + path: /FinancialServices/CreditReport + method: GET + data_selector: data +- name: Customer Data Pull + endpoint: + path: /FinancialServices/CustomerDataPull + method: GET + data_selector: data +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan List + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Digital Age + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Vehicle RC + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile Network Details + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Multiple Upi + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /tan/verification + method: GET + data_selector: data +- name: mobile_to_name + endpoint: + path: /mobile_to_name + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_pan + endpoint: + path: /mobile_to_pan + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_uan + endpoint: + path: /mobile_to_uan + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_uan_list + endpoint: + path: /mobile_to_uan_list + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_digital_age + endpoint: + path: /mobile_to_digital_age + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_vehicle_rc + endpoint: + path: /mobile_to_vehicle_rc + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_network_details + endpoint: + path: /mobile_network_details + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_multiple_upi + endpoint: + path: /mobile_to_multiple_upi + method: GET + data_selector: data + params: + mobile_number: string +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Initiate Session + endpoint: + path: /initiate_session + method: POST +- name: Generate OTP + endpoint: + path: /generate_otp + method: POST +- name: Verify OTP + endpoint: + path: /verify_otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /api/v2/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/v2/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/v2/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/v2/reload_captcha + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: {} +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: {} +- name: mobile_to_digital_age + endpoint: + path: /v1/mobile-intelligence/mobile-to-digital-age + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: ITR Information + endpoint: + path: /itr_information + method: GET + data_selector: ITR Data + params: {} +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_uan + endpoint: + path: /v1/mobile-intelligence/mobile-to-uan + method: GET + data_selector: data + params: + mobile_number: string +- name: mobile_to_vehicle_rc + endpoint: + path: /v1/mobile-intelligence/mobile-to-vehicle-rc + method: GET + data_selector: data + params: + mobile_number: MOBILE_NUMBER +- name: mobile_to_network_details + endpoint: + path: /v1/mobile-intelligence/mobile-to-network-details + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /tan/verification + method: GET + data_selector: data +- name: Mobile To Vehicle RC + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-vehicle-rc + method: GET +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: {} +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: {} +- name: mobile_to_digital_age + endpoint: + path: /v1/mobile-intelligence/mobile-to-digital-age + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: + mobile_number: mobile_number +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: + mobile_number: mobile_number +- name: mobile_to_uan + endpoint: + path: /v1/mobile-intelligence/mobile-to-uan + method: GET + data_selector: data + params: + mobile_number: mobile_number +- name: mobile_to_digital_age + endpoint: + path: /v1/mobile-intelligence/mobile-to-digital-age + method: GET + data_selector: data + params: + mobile_number: mobile_number +- name: mobile_to_vehicle_rc + endpoint: + path: /v1/mobile-intelligence/mobile-to-vehicle-rc + method: GET + data_selector: data + params: + mobile_number: mobile_number +- name: mobile_to_network_details + endpoint: + path: /v1/mobile-intelligence/mobile-to-network-details + method: GET + data_selector: data + params: + mobile_number: mobile_number +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: Mobile To Vehicle RC + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-vehicle-rc + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data +- name: mobile_to_digital_age + endpoint: + path: /v1/mobile-intelligence/mobile-to-digital-age + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data +- name: mobile_to_uan + endpoint: + path: /v1/mobile-intelligence/mobile-to-uan + method: GET + data_selector: data +- name: mobile_to_vehicle_rc + endpoint: + path: /v1/mobile-intelligence/mobile-to-vehicle-rc + method: GET + data_selector: data +- name: mobile_to_network_details + endpoint: + path: /v1/mobile-intelligence/mobile-to-network-details + method: GET + data_selector: data +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: {} +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: {} +- name: mobile_to_digital_age + endpoint: + path: /v1/mobile-intelligence/mobile-to-digital-age + method: GET + data_selector: data + params: + mobile_number: '' +- name: ITR Verification + endpoint: + path: /api/itr_verification + method: GET + data_selector: data +- name: Director Master Data + endpoint: + path: /api/director_master_data + method: GET + data_selector: data +- name: Company Master Data + endpoint: + path: /api/company_master_data + method: GET + data_selector: data +- name: Credit Report + endpoint: + path: /api/credit_report + method: GET + data_selector: data +- name: Customer Data Pull + endpoint: + path: /api/customer_data_pull + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /api/tan_verification + method: GET + data_selector: data +- name: UAN Verification + endpoint: + path: /api/uan_verification + method: GET + data_selector: data +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data +- name: mobile_to_uan + endpoint: + path: /v1/mobile-intelligence/mobile-to-uan + method: GET + data_selector: data +- name: mobile_to_vehicle_rc + endpoint: + path: /v1/mobile-intelligence/mobile-to-vehicle-rc + method: GET + data_selector: data +- name: mobile_to_network_details + endpoint: + path: /v1/mobile-intelligence/mobile-to-network-details + method: GET + data_selector: data +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /tan/verification + method: GET + data_selector: data +- name: Director Master Data + endpoint: + path: /mca/director + method: GET + data_selector: data +- name: Company Master Data + endpoint: + path: /mca/company + method: GET + data_selector: data +- name: Credit Report + endpoint: + path: /financial-services/credit-report + method: GET + data_selector: data +- name: Customer Data Pull + endpoint: + path: /financial-services/customer-data-pull + method: GET + data_selector: data +- name: UAN Verification + endpoint: + path: /epfo/uan-verification + method: GET + data_selector: data +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Generate OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/generate-otp-v2 + method: POST +- name: Verify OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/verify-otp-v2 + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: GET +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: GET +- name: digilocker_initiate_session + endpoint: + path: /digilocker/initiate/session + method: GET +- name: get_user_access_token + endpoint: + path: /digilocker/get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /digilocker/download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /digilocker/get/issued/files + method: GET +- name: download_file + endpoint: + path: /digilocker/download/file + method: GET +- name: mobile_to_name + endpoint: + path: /mobile/to/name + method: GET +- name: mobile_to_pan + endpoint: + path: /mobile/to/pan + method: GET +- name: mobile_to_uan + endpoint: + path: /mobile/to/uan + method: GET +- name: ITR Verification + endpoint: + path: /ITRVerification + method: GET + data_selector: data + params: {} +- name: Director Master Data + endpoint: + path: /DirectorMasterData + method: GET + data_selector: data + params: {} +- name: Company Master Data + endpoint: + path: /CompanyMasterData + method: GET + data_selector: data + params: {} +- name: Credit Report + endpoint: + path: /CreditReport + method: GET + data_selector: data + params: {} +- name: Customer Data Pull + endpoint: + path: /CustomerDataPull + method: GET + data_selector: data + params: {} +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET +- name: MCA Director Master Data + endpoint: + path: /mca/director-master-data + method: GET +- name: MCA Company Master Data + endpoint: + path: /mca/company-master-data + method: GET +- name: Credit Report + endpoint: + path: /financial-services/credit-report + method: GET +- name: Customer Data Pull + endpoint: + path: /financial-services/customer-data-pull + method: GET +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan List + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Digital Age + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Vehicle RC + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile Network Details + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Multiple Upi + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: initiate_session + endpoint: + path: /initiateSession + method: GET +- name: generate_otp + endpoint: + path: /generateOtp + method: GET +- name: verify_otp + endpoint: + path: /verifyOtp + method: GET +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: GET +- name: mobile_to_name + endpoint: + path: /mobileToName + method: GET +- name: mobile_to_pan + endpoint: + path: /mobileToPan + method: GET +- name: mobile_to_uan + endpoint: + path: /mobileToUan + method: GET +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data + params: {} +- name: TAN Verification + endpoint: + path: /tan/verification + method: GET + data_selector: data + params: {} +- name: Mobile To Multiple Upi + endpoint: + path: /mobile-number-intelligence/mobile-to-multiple-upi + method: GET +- name: ITR Verification + endpoint: + path: /itr-verification + method: GET + data_selector: data + params: {} +- name: Director Master Data + endpoint: + path: /mca/director-master-data + method: GET + data_selector: data + params: {} +- name: Company Master Data + endpoint: + path: /mca/company-master-data + method: GET + data_selector: data + params: {} +- name: Credit Report + endpoint: + path: /financial-services/credit-report + method: GET + data_selector: data + params: {} +- name: Customer Data Pull + endpoint: + path: /financial-services/customer-data-pull + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Mobile To Name + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Pan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Uan List + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Digital Age + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Vehicle RC + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile Network Details + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: Mobile To Multiple Upi + endpoint: + path: / + method: GET + data_selector: data + params: + mobile_number: string +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /tan/verification + method: GET + data_selector: data +- name: Mobile To Multiple Upi + endpoint: + path: /mobile-number-intelligence/mobile-to-multiple-upi + method: GET +- name: initiate_session + endpoint: + path: /api/v2/initiateSession + method: POST + data_selector: response + params: {} +- name: generate_otp + endpoint: + path: /api/v2/generateOTP + method: POST + data_selector: response + params: {} +- name: verify_otp + endpoint: + path: /api/v2/verifyOTP + method: POST + data_selector: response + params: {} +- name: reload_captcha + endpoint: + path: /api/v2/reloadCaptcha + method: POST + data_selector: response + params: {} +- name: initiate_session + endpoint: + path: /api/initiate-session + method: POST +- name: generate_otp + endpoint: + path: /api/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: GET +- name: get_user_access_token + endpoint: + path: /get-user-access-token + method: POST +- name: download_e_aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get-issued-files + method: GET +- name: download_file + endpoint: + path: /download-file + method: GET +- name: mobile_to_name + endpoint: + path: /mobile-to-name + method: GET + params: + mobile_number: string +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: + mobile_number: mobile_number +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: + mobile_number: mobile_number +- name: mobile_to_uan + endpoint: + path: /v1/mobile-intelligence/mobile-to-uan + method: GET + data_selector: data + params: + mobile_number: mobile_number +- name: mobile_to_digital_age + endpoint: + path: /v1/mobile-intelligence/mobile-to-digital-age + method: GET + data_selector: data + params: + mobile_number: '' +- name: initiate_session + endpoint: + path: /api/v2/initiateSession + method: POST +- name: generate_otp + endpoint: + path: /api/v2/generateOtp + method: POST +- name: verify_otp + endpoint: + path: /api/v2/verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /api/v2/reloadCaptcha + method: POST +- name: digilocker_initiate_session + endpoint: + path: /api/v2/digilocker/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/v2/digilocker/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/v2/digilocker/downloadEadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/v2/digilocker/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/v2/digilocker/downloadFile + method: GET +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: {} +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: {} +- name: mobile_to_uan + endpoint: + path: /v1/mobile-intelligence/mobile-to-uan + method: GET + data_selector: data + params: {} +- name: mobile_to_digital_age + endpoint: + path: /v1/mobile-intelligence/mobile-to-digital-age + method: GET + data_selector: data + params: {} +- name: mobile_to_vehicle_rc + endpoint: + path: /v1/mobile-intelligence/mobile-to-vehicle-rc + method: GET + data_selector: data + params: {} +- name: mobile_to_network_details + endpoint: + path: /v1/mobile-intelligence/mobile-to-network-details + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: digilocker_initiate_session + endpoint: + path: /digilocker/initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /digilocker/get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /digilocker/download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /digilocker/get/issued/files + method: GET +- name: download_file + endpoint: + path: /digilocker/download/file + method: GET +- name: mobile_to_name + endpoint: + path: /mobile/to/name + method: GET +- name: ITR Verification + endpoint: + path: /path/to/ITR_Verification + method: GET + data_selector: data + params: {} +- name: TAN Verification + endpoint: + path: /path/to/TAN_Verification + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: {} +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: {} +- name: mobile_to_uan + endpoint: + path: /v1/mobile-intelligence/mobile-to-uan + method: GET + data_selector: data + params: {} +- name: mobile_to_digital_age + endpoint: + path: /v1/mobile-intelligence/mobile-to-digital-age + method: GET + data_selector: data +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Get User Access Token + endpoint: + path: /get/user/access/token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get/issued/files + method: GET +- name: Download File + endpoint: + path: /download/file + method: GET +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: {} +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: {} +- name: mobile_to_uan + endpoint: + path: /v1/mobile-intelligence/mobile-to-uan + method: GET + data_selector: data + params: {} +- name: mobile_to_digital_age + endpoint: + path: /v1/mobile-intelligence/mobile-to-digital-age + method: GET + data_selector: data + params: {} +- name: mobile_to_vehicle_rc + endpoint: + path: /v1/mobile-intelligence/mobile-to-vehicle-rc + method: GET + data_selector: data + params: {} +- name: mobile_to_network_details + endpoint: + path: /v1/mobile-intelligence/mobile-to-network-details + method: GET + data_selector: data + params: {} +- name: mobile_to_upi + endpoint: + path: /v1/mobile-intelligence/mobile-to-multiple-upi + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: GET +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: Mobile To Name + endpoint: + path: /mobile-to-name + method: GET +- name: Mobile To Pan + endpoint: + path: /mobile-to-pan + method: GET +- name: Mobile To Uan + endpoint: + path: /mobile-to-uan + method: GET +- name: Mobile To Uan List + endpoint: + path: /mobile-to-uan-list + method: GET +- name: Mobile To Digital Age + endpoint: + path: /mobile-to-digital-age + method: GET +- name: Mobile To Vehicle RC + endpoint: + path: /mobile-to-vehicle-rc + method: GET +- name: Mobile Network Details + endpoint: + path: /mobile-network-details + method: GET +- name: Mobile To Multiple Upi + endpoint: + path: /mobile-to-multiple-upi + method: GET +- name: MNRL Check + endpoint: + path: /mnrl-api + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: {} +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: {} +- name: mobile_to_uan + endpoint: + path: /v1/mobile-intelligence/mobile-to-uan + method: GET + data_selector: data + params: {} +- name: offline_aadhaar_ekyc + endpoint: + path: /offline-aadhaar-ekyc + method: POST + data_selector: data +- name: mobile_to_digital_age + endpoint: + path: /v1/mobile-intelligence/mobile-to-digital-age + method: GET + data_selector: data + params: + mobile_number: '' +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: {} +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: {} +- name: mobile_to_uan + endpoint: + path: /v1/mobile-intelligence/mobile-to-uan + method: GET + data_selector: data + params: {} +- name: mobile_to_vehicle_rc + endpoint: + path: /v1/mobile-intelligence/mobile-to-vehicle-rc + method: GET + data_selector: data + params: {} +- name: mobile_to_network_details + endpoint: + path: /v1/mobile-intelligence/mobile-to-network-details + method: GET + data_selector: data + params: {} +- name: ITR Verification + endpoint: + path: /itr_verification + method: GET + data_selector: data +- name: TAN Verification + endpoint: + path: /tan_verification + method: GET + data_selector: data +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: GST Taxpayer + endpoint: + path: /gst-taxpayer + method: GET + data_selector: data +- name: ledger + endpoint: + path: /ledger + method: GET +- name: returns + endpoint: + path: /returns + method: GET +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: {} +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: {} +- name: mobile_to_digital_age + endpoint: + path: /v1/mobile-intelligence/mobile-to-digital-age + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /initiate_session + method: POST + data_selector: session_data +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: otp_response +- name: verify_otp + endpoint: + path: /verify_otp + method: POST + data_selector: aadhaar_info +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST + data_selector: captcha_data +- name: mobile_to_name + endpoint: + path: /v1/mobile-intelligence/mobile-to-name + method: GET + data_selector: data + params: {} +- name: mobile_to_pan + endpoint: + path: /v1/mobile-intelligence/mobile-to-pan + method: GET + data_selector: data + params: {} +- name: mobile_to_uan + endpoint: + path: /v1/mobile-intelligence/mobile-to-uan + method: GET + data_selector: data + params: {} +- name: mobile_to_vehicle_rc + endpoint: + path: /v1/mobile-intelligence/mobile-to-vehicle-rc + method: GET + data_selector: data + params: {} +- name: mobile_to_network_details + endpoint: + path: /v1/mobile-intelligence/mobile-to-network-details + method: GET + data_selector: data + params: {} +- name: ITR Verification + endpoint: + path: /itr_verification + method: GET + data_selector: records +- name: Director Master Data + endpoint: + path: /director_master_data + method: GET + data_selector: records +- name: Company Master Data + endpoint: + path: /company_master_data + method: GET + data_selector: records +- name: Credit Report + endpoint: + path: /credit_report + method: GET + data_selector: records +- name: Customer Data Pull + endpoint: + path: /customer_data_pull + method: GET + data_selector: records +- name: TAN Verification + endpoint: + path: /tan_verification + method: GET + data_selector: records +- name: UAN Verification + endpoint: + path: /uan_verification + method: GET + data_selector: records +- name: GST Taxpayer + endpoint: + path: /gst-taxpayer + method: GET + data_selector: data +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: session_data +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: otp_data +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: aadhaar_info +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET + data_selector: aadhaar_xml +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET + data_selector: issued_files +- name: Download File + endpoint: + path: /download-file + method: GET + data_selector: file_data +- name: Ledger APIs + endpoint: + path: /ledger + method: GET +- name: Returns APIs + endpoint: + path: /returns + method: GET +- name: Ledger APIs + endpoint: + path: /ledger + method: GET +- name: Returns APIs + endpoint: + path: /returns + method: GET +- name: ledger + endpoint: + path: /ledger + method: GET +- name: returns + endpoint: + path: /returns + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: GST Taxpayer + endpoint: + path: /gst-taxpayer + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Ledger APIs + endpoint: + path: /ledger + method: GET +- name: Returns APIs + endpoint: + path: /returns + method: GET +- name: ledger_apis + endpoint: + path: /ledger + method: GET +- name: returns_apis + endpoint: + path: /returns + method: GET +- name: session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: GST Taxpayer + endpoint: + path: /gst-taxpayer + method: POST + data_selector: data +- name: Taxpayer + endpoint: + path: /taxpayer + method: GET + data_selector: data +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: response + params: {} +- name: generate_otp + endpoint: + path: /generateOTP + method: POST + data_selector: response + params: {} +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST + data_selector: response + params: {} +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST + data_selector: response + params: {} +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST + data_selector: session_data + params: {} +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST + data_selector: otp_data + params: {} +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST + data_selector: aadhaar_info + params: {} +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST + data_selector: captcha_data + params: {} +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST + data_selector: data + params: {} +- name: Face Match API + endpoint: + path: /face-forensics/face-match-api + method: POST +- name: Face Match API - V2 + endpoint: + path: /face-forensics/face-match-api-v2 + method: POST +- name: Liveness Check API + endpoint: + path: /face-forensics/liveness-check-api + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: '' + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: '' + params: {} +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: '' + params: {} +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST + data_selector: '' + params: {} +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST + data_selector: data + params: {} +- name: Face Match + endpoint: + path: /face-forensics/face-match-api + method: POST +- name: Face Match V2 + endpoint: + path: /face-forensics/face-match-api-v2 + method: POST +- name: Liveness Check + endpoint: + path: /face-forensics/liveness-check-api + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: data +- name: ledger_apis + endpoint: + path: /ledger_apis + method: GET + data_selector: data +- name: returns_apis + endpoint: + path: /returns_apis + method: GET + data_selector: data +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: GST Taxpayer + endpoint: + path: /api/taxpayer + method: GET + data_selector: data +- name: Taxpayer + endpoint: + path: /api/taxpayer/verify + method: GET + data_selector: data +- name: initiate_session + endpoint: + path: /api/initiate-session + method: POST +- name: generate_otp + endpoint: + path: /api/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: generate_otp + endpoint: + path: /api/generateOTP + method: POST +- name: verify_otp + endpoint: + path: /api/verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /api/reloadCaptcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate_session + method: POST +- name: Generate OTP + endpoint: + path: /generate_otp + method: POST +- name: Verify OTP + endpoint: + path: /verify_otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload_captcha + method: POST +- name: Get User Access Token + endpoint: + path: /get_user_access_token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get_issued_files + method: GET +- name: Download File + endpoint: + path: /download_file + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: TAN Verification + endpoint: + path: /taxpayer/tan-verification-api + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST +- name: Ledger APIs + endpoint: + path: /ledger + method: GET +- name: Returns APIs + endpoint: + path: /returns + method: GET +- name: GST Taxpayer + endpoint: + path: /api/gst-taxpayer + method: POST + data_selector: data + params: {} +- name: Taxpayer + endpoint: + path: /api/taxpayer + method: GET + data_selector: data + params: {} +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: ledger + endpoint: + path: /ledger + method: GET + data_selector: data +- name: returns + endpoint: + path: /returns + method: GET + data_selector: data +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: Ledger APIs + endpoint: + path: /ledger + method: GET +- name: Returns APIs + endpoint: + path: /returns + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST + data_selector: session_data +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST + data_selector: otp_data +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST + data_selector: verification_data +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: GET + data_selector: captcha_data +- name: Ledger APIs + endpoint: + path: /ledger + method: GET +- name: Returns APIs + endpoint: + path: /returns + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Generate OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/generate-otp-v2 + method: POST +- name: Verify OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/verify-otp-v2 + method: POST +- name: generate_otp + endpoint: + path: /api/generate-otp + method: POST + data_selector: otp + params: {} +- name: verify_otp + endpoint: + path: /api/verify-otp + method: POST + data_selector: verification + params: {} +- name: get_itr_details + endpoint: + path: /api/get-itr-details + method: GET + data_selector: itr_details + params: {} +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST + data_selector: request_id + params: {} +- name: ITR APIs + endpoint: + path: /itr-apis + method: GET + data_selector: ITR information + params: {} +- name: ITR + endpoint: + path: /itr-apis + method: GET + data_selector: records +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Generate Otp + endpoint: + path: /generate-otp + method: GET +- name: Ledger APIs + endpoint: + path: /ledger + method: GET +- name: Returns APIs + endpoint: + path: /returns + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generateOTP + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST + data_selector: '' + params: {} +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Generate OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/generate-otp-v2 + method: POST +- name: Verify OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/verify-otp-v2 + method: POST +- name: Initiate Session Digilocker + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: taxpayer + endpoint: + path: /taxpayer + method: GET + data_selector: data + params: {} +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: {} +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: response + params: {} +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST + data_selector: response + params: {} +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET + data_selector: response + params: {} +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET + data_selector: response + params: {} +- name: Download File + endpoint: + path: /download-file + method: GET + data_selector: response + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Get User Access Token + endpoint: + path: /user/access/token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /issued/files + method: GET +- name: Download File + endpoint: + path: /download/file + method: GET +- name: Initiate Session + endpoint: + path: /api/initiate-session + method: POST + data_selector: session + params: {} +- name: Generate OTP + endpoint: + path: /api/generate-otp + method: POST + data_selector: otp + params: {} +- name: Verify OTP + endpoint: + path: /api/verify-otp + method: POST + data_selector: aadhaar_info + params: {} +- name: Reload Captcha + endpoint: + path: /api/reload-captcha + method: GET + data_selector: captcha + params: {} +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: {} +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: Generate Otp + endpoint: + path: /generate-otp + method: GET +- name: ledger + endpoint: + path: /ledger + method: GET +- name: returns + endpoint: + path: /returns + method: GET +- name: tan_verification + endpoint: + path: /tan-verification + method: GET +- name: Offline Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: Mobile To Name + endpoint: + path: /mobile-number-intelligence/mobile-to-name + method: GET +- name: Mobile To Pan + endpoint: + path: /mobile-number-intelligence/mobile-to-pan + method: GET +- name: Mobile To Uan + endpoint: + path: /mobile-number-intelligence/mobile-to-uan + method: GET +- name: Mobile To Uan List + endpoint: + path: /mobile-number-intelligence/mobile-to-uan-list + method: GET +- name: Mobile To Digital Age + endpoint: + path: /mobile-number-intelligence/mobile-to-digital-age + method: GET +- name: Mobile To Vehicle RC + endpoint: + path: /mobile-number-intelligence/mobile-to-vehicle-rc + method: GET +- name: Mobile Network Details + endpoint: + path: /mobile-number-intelligence/mobile-network-details + method: GET +- name: Mobile To Multiple Upi + endpoint: + path: /mobile-number-intelligence/mobile-to-multiple-upi + method: GET +- name: MNRL Check API + endpoint: + path: /mobile-number-intelligence/mnrl-api + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: GET +- name: vehicle_registration_verification + endpoint: + path: / + method: POST + data_selector: response + params: + rc_number: required +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Get User Access Token + endpoint: + path: /get/user/access/token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get/issued/files + method: GET +- name: Download File + endpoint: + path: /download/file + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Ledger APIs +- name: Returns APIs +- name: TAN Verification +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEaadhaar + method: POST +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: Udyam Aadhaar Verification + endpoint: + path: /v1/verification/async/post-udyam-details + method: POST + params: + udyam_aadhaar_number: '{{Udyam Aadhaar Number}}' +- name: GET Udyam Aadhaar Verification + endpoint: + path: /v1/verification/async/get-udyam-details + method: GET + params: + request_id: '{{request_id}}' +- name: Ledger APIs +- name: Returns APIs +- name: TAN Verification +- name: udyog_details + endpoint: + path: /v1/verification/async/get-udyog-details + method: GET + params: + request_id: '{{Request ID From POST API}}' +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Generate OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/generate-otp-v2 + method: POST +- name: Verify OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/verify-otp-v2 + method: POST +- name: Initiate Session Digilocker + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST + data_selector: session_data + params: {} +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST + data_selector: otp_data + params: {} +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST + data_selector: customer_info + params: {} +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST + data_selector: captcha_data + params: {} +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verify_otp + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST + data_selector: '' + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /api/get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get_issued_files + method: GET +- name: download_file + endpoint: + path: /api/download_file + method: GET +- name: Udyam Aadhaar Verification + endpoint: + path: /udyam-aadhaar-verification + method: POST + params: + udyam_aadhaar_number: string +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /generateOTP + method: POST +- name: Verify OTP + endpoint: + path: /verifyOTP + method: POST +- name: Reload Captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: post_udyam_details + endpoint: + path: /v1/verification/async/post-udyam-details + method: POST + params: + udyam_aadhaar_number: '{{Udyam Aadhaar Number}}' +- name: get_udyam_verification + endpoint: + path: /v1/verification/async/get-udyam-details + method: GET + params: + request_id: '{{request_id}}' +- name: udyog_details + endpoint: + path: /v1/verification/async/get-udyog-details + method: GET + params: + request_id: '{{Request ID From POST API}}' +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Offline Aadhaar eKYC + endpoint: + path: /offline-aadhaar-ekyc + method: POST +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: GSTIN Verification Basic + endpoint: + path: /gstin-verification/basic + method: GET + data_selector: data + params: + gstin_number: string +- name: GSTIN Verification Advanced + endpoint: + path: /gstin-verification/advanced + method: GET + data_selector: data + params: + gstin_number: string +- name: Search GSTIN by PAN + endpoint: + path: /gstin/search-by-pan + method: GET + data_selector: data + params: + pan_number: string +- name: initiate_session + endpoint: + path: /initiate_session + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verify_otp + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST + data_selector: '' + params: {} +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: sessionData + params: {} +- name: generate_otp + endpoint: + path: /generateOTP + method: POST + data_selector: otpData + params: {} +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST + data_selector: aadhaarInfo + params: {} +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST + data_selector: captchaData + params: {} +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: Initiate Session + endpoint: + path: /api/initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /api/get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /api/download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /api/get-issued-files + method: GET +- name: Download File + endpoint: + path: /api/download-file + method: GET +- name: gstin_verification_basic + endpoint: + path: /gstin/verification/basic + method: GET + data_selector: data + params: + gstin_number: required +- name: gstin_verification_advanced + endpoint: + path: /gstin/verification/advanced + method: GET + data_selector: data + params: + gstin_number: optional +- name: search_gstin_by_pan + endpoint: + path: /gstin/search/by/pan + method: GET + data_selector: data + params: + pan_number: required +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: GSTIN Verification API - Basic + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: '' +- name: GSTIN Verification API - Advanced + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: '' +- name: PAN to GSTIN API + endpoint: + path: / + method: GET + data_selector: data + params: + pan_number: '' +- name: TAN Verification + endpoint: + path: /tan-verification + method: GET + data_selector: data +- name: ITR Verification + endpoint: + path: /itr-verification + method: GET + data_selector: data +- name: MSME Verification + endpoint: + path: /msme-verification + method: GET + data_selector: data +- name: EPFO Verification + endpoint: + path: /epfo-verification + method: GET + data_selector: data +- name: Aadhaar eKYC Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session + method: POST +- name: Aadhaar eKYC Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp + method: POST +- name: Aadhaar eKYC Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy + method: GET +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: GSTIN Verification API - Basic + endpoint: + path: /gstin/basic + method: GET + data_selector: data + params: + gstin_number: 15-character alpha-numeric unique identifier +- name: GSTIN Verification API - Advanced + endpoint: + path: /gstin/advanced + method: GET + data_selector: data + params: + gstin_number: GST Identification Number +- name: Search GSTIN by PAN + endpoint: + path: /gstin/search/by_pan + method: GET + data_selector: data + params: + pan_number: PAN number +- name: TAN Verification + endpoint: + path: /api/tan-verification + method: GET + data_selector: data +- name: ITR Verification + endpoint: + path: /api/itr-verification + method: GET + data_selector: data +- name: MSME Verification + endpoint: + path: /api/msme-verification + method: GET + data_selector: data +- name: GSTIN Verification API - Basic + endpoint: + path: /gstin/basic + method: GET + data_selector: data + params: + gstin_number: string +- name: GSTIN Verification API - Advanced + endpoint: + path: /gstin/advanced + method: GET + data_selector: data + params: + gstin_number: string +- name: Search GSTIN by PAN + endpoint: + path: /gstin/search/by-pan + method: GET + data_selector: data + params: + pan_number: string +- name: TAN Verification + endpoint: + path: /taxpayer/tan-verification + method: GET + data_selector: data + params: {} +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET + data_selector: data + params: {} +- name: MSME Verification + endpoint: + path: /msme/verification + method: GET + data_selector: data + params: {} +- name: PAN Verification API - Basic + endpoint: + path: /reference/kyc-apis/pan-verification-api-basic + method: GET +- name: PAN Verification API - Plus + endpoint: + path: /reference/kyc-apis/pan-verification-api-plus + method: GET +- name: PAN Verification API - Plus - V2 + endpoint: + path: /reference/kyc-apis/pan-verification-api-plus-v2 + method: GET +- name: PAN To GSTIN API + endpoint: + path: /reference/gst-apis/pan-to-gstin-api + method: GET +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: PAN to GSTIN + endpoint: + path: /gst-apis/pan-to-gstin-api + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /generateOTP + method: POST +- name: Verify OTP + endpoint: + path: /verifyOTP + method: POST +- name: Reload Captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: GSTIN Verification API - Basic + endpoint: + path: /gstin/basic + method: GET + data_selector: data + params: + gstin_number: '' +- name: GSTIN Verification API - Advanced + endpoint: + path: /gstin/advanced + method: GET + data_selector: data + params: + gstin_number: '' +- name: Search GSTIN API by PAN + endpoint: + path: /gstin/pan + method: GET + data_selector: data + params: + pan_number: '' +- name: PAN to GSTIN + endpoint: + path: /reference/gst-apis/pan-to-gstin-api + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: pan_to_gstin + endpoint: + path: /gst-apis/pan-to-gstin-api + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: GSTIN Verification + endpoint: + path: /v1/verification/gstinlite + method: GET + params: + gstin_number: '{{GSTIN Number}}' +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: gstin_verification + endpoint: + path: /v1/verification/gstin-advanced + method: GET + params: + gstin_number: '{{GSTIN Number}}' +- name: search_gstin_by_pan + endpoint: + path: /v1/search/gstin-by-pan + method: GET + params: + pan_number: '{{PAN Number}}' +- name: TAN Verification + endpoint: + path: /taxpayer/tan-verification + method: GET + data_selector: data +- name: ITR Verification + endpoint: + path: /itr-verification + method: GET + data_selector: data +- name: MSME Verification + endpoint: + path: /msme-verification + method: GET + data_selector: data +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: gstin_verification + endpoint: + path: /v1/verification/gstinlite + method: GET + data_selector: data + params: + gstin_number: '{{GSTIN Number}}' +- name: gstin_verification + endpoint: + path: /v1/verification/gstin-advanced + method: GET + params: + gstin_number: '{{GSTIN Number}}' +- name: search_gstin_by_pan + endpoint: + path: /v1/search/gstin-by-pan + method: GET + params: + pan_number: '{{PAN Number}}' +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: TAN Verification + endpoint: + path: /tan-verification + method: GET + data_selector: data +- name: ITR Verification + endpoint: + path: /itr-verification + method: GET + data_selector: data +- name: MSME Verification + endpoint: + path: /msme-verification + method: GET + data_selector: data +- name: gstin_verification + endpoint: + path: /gstin/verification + method: GET + data_selector: data + params: + gstin_number: string +- name: Aadhaar OCR + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Generate OTP + endpoint: + path: /reference/gst-taxpayer/generate-otp + method: POST +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp + method: POST +- name: GSTIN Verification API - Basic + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: GSTIN Verification API - Advanced + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Search GSTIN API by PAN + endpoint: + path: / + method: GET + data_selector: data + params: + pan_number: string +- name: TAN Verification + endpoint: + path: /taxpayer/tan-verification + method: GET +- name: ITR Verification + endpoint: + path: /itr/verification + method: GET +- name: MSME Verification + endpoint: + path: /msme/verification + method: GET +- name: Initiate Session + endpoint: + path: /api/initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /api/get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /api/download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /api/get-issued-files + method: GET +- name: Download File + endpoint: + path: /api/download-file + method: GET +- name: Cash ITC Balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: Cash Ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: ITC Ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: Generate OTP + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: Session Expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: Refresh Taxpayer Access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: Cash ITC Balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: Cash Ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: ITC Ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: session + params: {} +- name: generate_otp + endpoint: + path: /generateOtp + method: POST + data_selector: otp + params: {} +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST + data_selector: aadhaar_info + params: {} +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST + data_selector: captcha + params: {} +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST + data_selector: session + params: {} +- name: get_user_access_token + endpoint: + path: /api/get_user_access_token + method: POST + data_selector: access_token + params: {} +- name: download_e_aadhar + endpoint: + path: /api/download_e_aadhar + method: GET + data_selector: aadhar_xml + params: {} +- name: get_issued_files + endpoint: + path: /api/get_issued_files + method: GET + data_selector: issued_files + params: {} +- name: download_file + endpoint: + path: /api/download_file + method: GET + data_selector: file + params: {} +- name: GSTIN Verification API - Basic + endpoint: + path: /gstin/verification/basic + method: GET + params: + gstin_number: string +- name: GSTIN Verification API - Advanced + endpoint: + path: /gstin/verification/advanced + method: GET + params: + gstin_number: string +- name: Search GSTIN by PAN + endpoint: + path: /gstin/search/by/pan + method: GET + params: + pan_number: string +- name: TAN Verification + endpoint: + path: /tan-verification + method: GET +- name: ITR Verification + endpoint: + path: /itr-verification + method: GET +- name: MSME Verification + endpoint: + path: /msme-verification + method: GET +- name: UAN Verification + endpoint: + path: /uan-verification + method: GET +- name: Generate OTP + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: Session Expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: Refresh Taxpayer Access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: Cash ITC Balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: Cash Ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: ITC Ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Generate OTP + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: Session Expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: Refresh Taxpayer Access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: Cash ITC Balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: Cash Ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: ITC Ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: generate_otp + endpoint: + path: /v1/gst/tax-payer/generate-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: generate_otp + endpoint: + path: /v1/gst/tax-payer/generate-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' +- name: verify_otp + endpoint: + path: /v1/gst/tax-payer/verify-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' + otp: '{{OTP}}' +- name: session_expiry + endpoint: + path: /v1/gst/tax-payer/session + method: GET + params: + gstin_number: '{{GSTIN Number}}' +- name: ledgers_cash + endpoint: + path: /v1/gst/tax-payer/ledgers/cash + method: GET + params: + gstin_number: '{{GSTIN Number}}' + from_date: '{{DD/MM/YYYY}}' + to_date: '{{DD/MM/YYYY}}' +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: OTP + params: + gstin_number: string + user_name: string +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: generate_otp + endpoint: + path: /v1/gst/tax-payer/generate-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: otp + params: + gstin_number: string + user_name: string +- name: generate_otp + endpoint: + path: /v1/gst/tax-payer/generate-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' +- name: verify_otp + endpoint: + path: /v1/gst/tax-payer/verify-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' + otp: '{{OTP}}' +- name: session_status + endpoint: + path: /v1/gst/tax-payer/session + method: GET + params: + gstin_number: '{{GSTIN Number}}' +- name: ledgers_cash + endpoint: + path: /v1/gst/tax-payer/ledgers/cash + method: GET + params: + gstin_number: '{{GSTIN Number}}' + from_date: '{{DD/MM/YYYY}}' + to_date: '{{DD/MM/YYYY}}' +- name: Generate OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Aadhaar Verification + endpoint: + path: /reference/kyc-apis/aadhaar-verification-api-basic + method: GET + data_selector: records + params: {} +- name: PAN Verification + endpoint: + path: /reference/kyc-apis/pan-verification-api-basic + method: GET + data_selector: records + params: {} +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Generate OTP + endpoint: + path: /generate_otp + method: POST + data_selector: response + params: + gstin_number: string + user_name: string +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp + params: + gstin: string + username: string +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Generate OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: + gstin_number: string + user_name: string +- name: Aadhaar OCR API + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST + data_selector: records + params: {} +- name: Pan OCR API + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST + data_selector: records + params: {} +- name: Driving License OCR API + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST + data_selector: records + params: {} +- name: Voter Id OCR API + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST + data_selector: records + params: {} +- name: Passport OCR API + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST + data_selector: records + params: {} +- name: Bank Cheque OCR API + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST + data_selector: records + params: {} +- name: GSTIN Certificate OCR API + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST + data_selector: records + params: {} +- name: Generate OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-verification + method: POST + data_selector: data +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST + data_selector: data +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST + data_selector: data +- name: Aadhaar eKYC Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Aadhaar eKYC Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Aadhaar eKYC Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Digilocker Initiate Session + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Digilocker Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: Digilocker E-Aadhaar + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Digilocker Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Digilocker Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: generate_otp + endpoint: + path: /api/generateOtp + method: POST + data_selector: otp + params: + gstin: string + username: string +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-verification/initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-verification/generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-verification/verify-otp + method: POST +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp_response + params: + gstin_number: string + user_name: string +- name: initiate_session + endpoint: + path: /api/v1/initiateSession + method: POST + data_selector: session + params: {} +- name: get_user_access_token + endpoint: + path: /api/v1/getUserAccessToken + method: POST + data_selector: accessToken + params: {} +- name: download_e_aadhar + endpoint: + path: /api/v1/downloadEAdhaar + method: GET + data_selector: file + params: {} +- name: get_issued_files + endpoint: + path: /api/v1/getIssuedFiles + method: GET + data_selector: files + params: {} +- name: download_file + endpoint: + path: /api/v1/downloadFile + method: GET + data_selector: file + params: + uri: fileUri +- name: Generate OTP + endpoint: + path: / + method: POST + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + params: + gstin_number: string +- name: Generate OTP + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: Session Expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: Refresh Taxpayer Access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: Cash ITC Balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: Cash Ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: ITC Ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Aadhaar OCR API + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: PAN Verification API - Basic + endpoint: + path: /reference/kyc-apis/pan-verification-api-basic + method: GET +- name: Generate OTP + endpoint: + path: /reference/gst-taxpayer/generate-otp + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: data + params: + gstin_number: string + user_name: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Generate OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Initiate Session + endpoint: + path: /api/initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /api/get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /api/download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /api/get-issued-files + method: GET +- name: Download File + endpoint: + path: /api/download-file + method: GET +- name: initiate_session + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp_details + params: + gstin_number: string + user_name: string +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: get_user_access_token + endpoint: + path: /api/get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /api/download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/get_issued_files + method: GET +- name: download_file + endpoint: + path: /api/download_file + method: GET +- name: Generate OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp_response + params: + gstin_number: string + user_name: string +- name: Aadhaar Verification + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: POST +- name: Generate OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Generate OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: initiate_session + endpoint: + path: /api/initiate-session + method: POST + data_selector: session + params: {} +- name: get_user_access_token + endpoint: + path: /api/get-user-access-token + method: POST + data_selector: access_token + params: {} +- name: download_e_aadhar + endpoint: + path: /api/download-e-aadhar + method: GET + data_selector: e_aadhar + params: {} +- name: get_issued_files + endpoint: + path: /api/get-issued-files + method: GET + data_selector: issued_files + params: {} +- name: download_file + endpoint: + path: /api/download-file + method: GET + data_selector: file + params: {} +- name: initiate_session + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET + data_selector: '' + params: {} +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST + data_selector: '' + params: {} +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST + data_selector: '' + params: {} +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST + data_selector: OTP + params: + gstin_number: string + user_name: string +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST +- name: Generate OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: credit_report + endpoint: + path: /credit_report + method: GET + data_selector: data +- name: uan_verification + endpoint: + path: /uan_verification + method: GET + data_selector: data +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: otp_response + params: + gstin_number: string + user_name: string +- name: Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET +- name: Digilocker API + endpoint: + path: /reference/digilocker-api + method: POST +- name: KYC APIs + endpoint: + path: /reference/kyc-apis + method: GET +- name: Document OCR + endpoint: + path: /reference/document-ocr + method: POST +- name: Mobile Number Intelligence + endpoint: + path: /reference/mobile-number-intelligence + method: GET +- name: Document Forensics + endpoint: + path: /reference/document-forensics + method: POST +- name: Face Forensics + endpoint: + path: /reference/face-forensics + method: POST +- name: Async APIs + endpoint: + path: /reference/async-apis + method: POST +- name: GST APIs + endpoint: + path: /reference/gst-apis + method: GET +- name: Business Compliance + endpoint: + path: /reference/business-compliance + method: GET +- name: Taxpayer + endpoint: + path: /reference/taxpayer + method: GET +- name: ITR APIs + endpoint: + path: /reference/itr-apis + method: POST +- name: MCA APIs + endpoint: + path: /reference/mca-apis + method: GET +- name: MSME APIs + endpoint: + path: /reference/msme-apis + method: GET +- name: Financial Services + endpoint: + path: /reference/financial-services + method: GET +- name: EPFO + endpoint: + path: /reference/epfo + method: GET +- name: Bulk Validations + endpoint: + path: /reference/bulk-validations + method: POST +- name: Reports + endpoint: + path: /reference/reports + method: GET +- name: Generate OTP + endpoint: + path: / + method: POST + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + params: + gstin_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Aadhaar OCR API + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR API + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR API + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR API + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR API + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR API + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR API + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: Generate OTP + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: Session Expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: Refresh Taxpayer Access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: Cash ITC Balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: Cash Ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: ITC Ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Initiate Session + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: OTP + params: + gstin_number: string + user_name: string +- name: Generate OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: + gstin_number: string + user_name: string +- name: Aadhaar Verification + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET +- name: Offline Aadhaar eKYC + endpoint: + path: /offline-aadhaar-ekyc-api + method: GET +- name: Generate OTP + endpoint: + path: / + method: POST + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + params: + gstin_number: string +- name: ITC Ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Authorize + endpoint: + path: /authorize + method: POST + data_selector: access_token + params: {} +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp + params: + gstin_number: string + user_name: string +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Generate OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string +- name: Verify OTP + endpoint: + path: / + method: POST + data_selector: data + params: + gstin_number: string + user_name: string + otp: string +- name: Session Expiry + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Refresh Taxpayer Access + endpoint: + path: / + method: GET + data_selector: data + params: + gstin_number: string +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: otp_response + params: + gstin_number: string + user_name: string +- name: ITC Ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: generate_otp + endpoint: + path: /v1/gst/tax-payer/generate-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' +- name: EPFO + endpoint: + path: /epfo/uan-verification + method: GET +- name: generate_otp + endpoint: + path: /v1/gst/tax-payer/generate-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' +- name: verify_otp + endpoint: + path: /v1/gst/tax-payer/verify-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' + otp: '{{OTP}}' +- name: session_expiry + endpoint: + path: /v1/gst/tax-payer/session + method: GET + params: + gstin_number: '{{GSTIN Number}}' +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: ledger_cash + endpoint: + path: /v1/gst/tax-payer/ledgers/cash + method: GET + params: + gstin_number: '{{GSTIN Number}}' + from_date: '{{DD/MM/YYYY}}' + to_date: '{{DD/MM/YYYY}}' +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-verification + method: POST + data_selector: data + params: {} +- name: Generate OTP + endpoint: + path: /offline-aadhaar-verification/generate-otp + method: POST + data_selector: data + params: {} +- name: Verify OTP + endpoint: + path: /offline-aadhaar-verification/verify-otp + method: POST + data_selector: data + params: {} +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp_response + params: + gstin_number: string + user_name: string +- name: generate_otp + endpoint: + path: /v1/gst/tax-payer/generate-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' +- name: generate_otp + endpoint: + path: /v1/gst/tax-payer/generate-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' +- name: verify_otp + endpoint: + path: /v1/gst/tax-payer/verify-otp + method: POST + params: + gstin_number: '{{GSTIN Number}}' + user_name: '{{User Name}}' + otp: '{{OTP}}' +- name: session_expiry + endpoint: + path: /v1/gst/tax-payer/session + method: GET + params: + gstin_number: '{{GSTIN Number}}' +- name: ledgers_cash + endpoint: + path: /v1/gst/tax-payer/ledgers/cash + method: GET + params: + gstin_number: '{{GSTIN Number}}' + from_date: '{{DD/MM/YYYY}}' + to_date: '{{DD/MM/YYYY}}' +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: Initiate Session + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: FSSAI Verification + endpoint: + path: /fssai/verification + method: GET + params: + fssai_id: string +- name: Shop Establishment Certificate + endpoint: + path: /shop-establishment/verification + method: GET + params: + certificate_number: string + state_code: string +- name: MSME Migration Status + endpoint: + path: /msme/migration-status + method: GET + params: + pan_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: FSSAI Verification + endpoint: + path: /fssai/verification + method: GET + params: + fssai_id: string +- name: Shop Establishment Certificate Verification + endpoint: + path: /shop-establishment/verification + method: GET + params: + certificate_number: string + state_code: string +- name: MSME Migration Status + endpoint: + path: /msme/migration-status + method: GET + params: + pan_number: string +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Initiate Session + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Shop Establishment Certificate + endpoint: + path: /business-compliance/shop-establishment-certificate + method: GET +- name: Initiate Session + endpoint: + path: /api/initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /api/get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /api/download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /api/get-issued-files + method: GET +- name: Download File + endpoint: + path: /api/download-file + method: GET +- name: Credit Bureau + endpoint: + path: /financial-services/credit-bureau + method: GET +- name: Aadhaar eKYC + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: FSSAI Verification + endpoint: + path: /fssai/verification + method: GET + data_selector: data + params: + fssai_id: string +- name: Shop Establishment Certificate + endpoint: + path: /shop/certificate + method: GET + data_selector: data + params: + certificate_number: string + state_code: string +- name: MSME Migration Status + endpoint: + path: /msme/migration/status + method: GET + data_selector: data + params: + pan_number: string +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Shop Establishment Certificate + endpoint: + path: /reference/business-compliance/shop-establishment-certificate + method: GET +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: fssai_verification + endpoint: + path: /v1/business-compliance/fssai-verification + method: GET + data_selector: data + params: + fssai_id: FSSAI-LICENSE-NUMBER +- name: shop_establishment_certificate + endpoint: + path: /v1/business-compliance/shop-establishment-certificate + method: GET + data_selector: data + params: + certificate_number: CERTIFICATE-NUMBER + state_code: STATE-CODE +- name: msme_migration_status + endpoint: + path: /v1/business-compliance/msme-migration-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: din_to_pan + endpoint: + path: /v1/business-compliance/din-to-pan + method: GET + params: + din_number: '{{DIN Number}}' +- name: msme_migration_status + endpoint: + path: /business-compliance/msme-migration-status + method: GET +- name: msme_migration_status + endpoint: + path: /business-compliance/msme-migration-status + method: GET +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Generate OTP + endpoint: + path: /generate/otp + method: POST +- name: Verify OTP + endpoint: + path: /verify/otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: fssai_verification + endpoint: + path: /v1/business-compliance/fssai-verification + method: GET + params: + fssai_id: FSSAI-LICENSE-NUMBER +- name: shop_establishment_certificate + endpoint: + path: /v1/business-compliance/shop-establishment-certificate + method: GET + params: + certificate_number: CERTIFICATE-NUMBER + state_code: STATE-CODE +- name: msme_migration_status + endpoint: + path: /v1/business-compliance/msme-migration-status + method: GET + params: + pan_number: PAN-NUMBER +- name: din_to_pan + endpoint: + path: /v1/business-compliance/din-to-pan + method: GET + params: + din_number: '{{DIN Number}}' +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: MSME Migration Status + endpoint: + path: /business-compliance/msme-migration-status + method: GET +- name: msme_migration_status + endpoint: + path: /business-compliance/msme-migration-status + method: GET + data_selector: records +- name: fssai_verification + endpoint: + path: /v1/business-compliance/fssai-verification + method: GET + params: + fssai_id: FSSAI-LICENSE-NUMBER +- name: shop_establishment_certificate + endpoint: + path: /v1/business-compliance/shop-establishment-certificate + method: GET + params: + certificate_number: CERTIFICATE-NUMBER + state_code: STATE-CODE +- name: msme_migration_status + endpoint: + path: /v1/business-compliance/msme-migration-status + method: GET + params: + pan_number: PAN-NUMBER +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: din_to_pan + endpoint: + path: /v1/business-compliance/din-to-pan + method: GET + params: + din_number: '{{DIN Number}}' +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: PAN To DIN + endpoint: + path: /business-compliance/pan-to-din + method: GET +- name: DIN to PAN + endpoint: + path: /business-compliance/din-to-pan + method: GET +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Get User Access Token + endpoint: + path: /getUserAccessToken + method: POST +- name: Download e-Aadhar + endpoint: + path: /downloadEadhar + method: GET +- name: Get Issued Files + endpoint: + path: /getIssuedFiles + method: GET +- name: Download File + endpoint: + path: /downloadFile + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST + data_selector: data +- name: generate_otp + endpoint: + path: /generate/otp + method: POST + data_selector: data +- name: verify_otp + endpoint: + path: /verify/otp + method: POST + data_selector: data +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST + data_selector: data +- name: fssai_verification + endpoint: + path: /v1/business-compliance/fssai-verification + method: GET + data_selector: data + params: + fssai_id: FSSAI-LICENSE-NUMBER +- name: shop_establishment_certificate + endpoint: + path: /v1/business-compliance/shop-establishment-certificate + method: GET + data_selector: data + params: + certificate_number: CERTIFICATE-NUMBER + state_code: STATE-CODE +- name: msme_migration_status + endpoint: + path: /v1/business-compliance/msme-migration-status + method: GET + data_selector: data + params: + pan_number: PAN_NUMBER +- name: din_to_pan + endpoint: + path: /v1/business-compliance/din-to-pan + method: GET + data_selector: data + params: + din_number: '{{DIN Number}}' +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: session_data +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: otp_data +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: verification_data +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: GET + data_selector: captcha_data +- name: PAN To DIN + endpoint: + path: /business-compliance/pan-to-din + method: GET +- name: Aadhaar To Uan + endpoint: + path: /epfo/aadhaar-to-uan + method: GET +- name: Pan To Uan + endpoint: + path: /epfo/pan-to-uan + method: GET +- name: UAN To Employment History + endpoint: + path: /epfo/uan-to-employment-history + method: GET +- name: UAN To Employment History - V2 + endpoint: + path: /epfo/uan-to-employment-history-v2 + method: GET +- name: fssai_verification + endpoint: + path: /v1/business-compliance/fssai-verification + method: GET + data_selector: data + params: + fssai_id: FSSAI-LICENSE-NUMBER +- name: shop_establishment_certificate + endpoint: + path: /v1/business-compliance/shop-establishment-certificate + method: GET + data_selector: data + params: + certificate_number: CERTIFICATE-NUMBER + state_code: STATE-CODE +- name: msme_migration_status + endpoint: + path: /v1/business-compliance/msme-migration-status + method: GET + data_selector: data + params: + pan_number: PAN-NUMBER +- name: Initiate Session + endpoint: + path: /api/initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /api/generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /api/verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /api/reload-captcha + method: POST +- name: din_to_pan + endpoint: + path: /v1/business-compliance/din-to-pan + method: GET + params: + din_number: '{{DIN Number}}' +- name: Generate Otp + endpoint: + path: /api/generateOtp + method: POST + data_selector: otp + params: + gstin: string + username: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: fssai_verification + endpoint: + path: /v1/business-compliance/fssai-verification + method: GET + data_selector: data + params: + fssai_id: FSSAI-LICENSE-NUMBER +- name: shop_establishment_certificate + endpoint: + path: /v1/business-compliance/shop-establishment-certificate + method: GET + data_selector: data + params: + certificate_number: CERTIFICATE-NUMBER + state_code: STATE-CODE +- name: msme_migration_status + endpoint: + path: /v1/business-compliance/msme-migration-status + method: GET + data_selector: data + params: + pan_number: PAN-NUMBER +- name: Offline Aadhaar eKYC API + endpoint: + path: / + method: POST +- name: din_to_pan + endpoint: + path: /v1/business-compliance/din-to-pan + method: GET + params: + din_number: '{{DIN Number}}' +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Generate OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/generate-otp-v2 + method: POST +- name: Verify OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/verify-otp-v2 + method: POST +- name: Aadhaar Verification + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET + data_selector: records +- name: Credit Report + endpoint: + path: /financial-services/credit-bureau/equifax/download-credit-report + method: GET + data_selector: records +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar/verify + method: POST + data_selector: data + params: {} +- name: Generate OTP + endpoint: + path: /offline-aadhaar/generate-otp + method: POST + data_selector: data + params: {} +- name: Verify OTP + endpoint: + path: /offline-aadhaar/verify-otp + method: POST + data_selector: data + params: {} +- name: Generate OTP + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: Session Expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: Refresh Taxpayer Access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: Cash ITC Balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: Cash Ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: ITC Ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp_response + params: + gstin: required + username: required +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: TAN Verification + endpoint: + path: /tan-verification + method: GET + data_selector: data + params: + tan_number: string +- name: TDS Compliance Check + endpoint: + path: /tds-compliance-check + method: GET + data_selector: data + params: + pan_number: string +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: TAN Verification + endpoint: + path: /taxpayer/tan-verification-api + method: GET +- name: TAN Verification - API - V2 + endpoint: + path: /taxpayer/tan-verification-api-V2 + method: GET +- name: TDS Compliance Check + endpoint: + path: /taxpayer/tds-compliance-check-api-206ab-and-206cca + method: GET +- name: Bulk Aadhaar Verification + endpoint: + path: /bulk-validations/bulk-aadhaar-verification + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /bulk-validations/bulk-pan-verification + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /bulk-validations/bulk-pan-plus-verification + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /bulk-validations/bulk-mobil-to-pan-check + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /bulk-validations/bulk-bank-account-verification + method: POST +- name: Bulk Upi Basic Verification + endpoint: + path: /bulk-validations/bulk-upi-verification + method: POST +- name: Bulk Gstin Basic Verification + endpoint: + path: /bulk-validations/bulk-gstin-verification + method: POST +- name: Bulk Gstin Advanced Verification + endpoint: + path: /bulk-validations/bulk-gstin-advanced-verification + method: POST +- name: Get Bulk Verification Status + endpoint: + path: /bulk-validations/bulk-verification-task-status + method: GET +- name: Bulk Aadhaar Validation + endpoint: + path: /bulk-validations/bulk-aadhaar-verification + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /bulk-validations/bulk-pan-verification + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /bulk-validations/bulk-pan-plus-verification + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /bulk-validations/bulk-mobil-to-pan-check + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /bulk-validations/bulk-bank-account-verification + method: POST +- name: Bulk Upi Basic Verification + endpoint: + path: /bulk-validations/bulk-upi-verification + method: POST +- name: Bulk Gstin Basic Verification + endpoint: + path: /bulk-validations/bulk-gstin-verification + method: POST +- name: Bulk Gstin Advanced Verification + endpoint: + path: /bulk-validations/bulk-gstin-advanced-verification + method: POST +- name: Get Bulk Verification Status + endpoint: + path: /bulk-validations/bulk-verification-task-status + method: GET +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: otp_response + params: + gstin: string + username: string +- name: generate_otp + endpoint: + path: /api/generateOtp + method: POST + data_selector: response + params: + gstin: '' + username: '' +- name: ledger_apis + endpoint: + path: /api/ledger + method: GET + data_selector: ledgerDetails + params: {} +- name: returns_apis + endpoint: + path: /api/returns + method: GET + data_selector: returnSummaries + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: TAN Verification + endpoint: + path: /taxpayer/tan-verification-api + method: GET +- name: TAN Verification V2 + endpoint: + path: /taxpayer/tan-verification-api-V2 + method: GET +- name: tan_verification + endpoint: + path: /v2/verification/tax-payer/tan + method: GET + params: + tan_number: TAN_NUMBER +- name: Aadhaar eKYC + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Generate OTP + endpoint: + path: /api/generateOtp + method: POST + data_selector: response + params: + gstin: required + username: required +- name: Ledger APIs + endpoint: + path: /api/ledger + method: GET + data_selector: ledgerDetails + params: {} +- name: Returns APIs + endpoint: + path: /api/returns + method: GET + data_selector: returnsSummary + params: {} +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp_response + params: + gstin: required + username: required +- name: ledger_apis + endpoint: + path: /ledger + method: GET + data_selector: ledger_data + params: {} +- name: returns_apis + endpoint: + path: /returns + method: GET + data_selector: returns_data + params: {} +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: tan_verification + endpoint: + path: /v2/verification/tax-payer/tan + method: GET + data_selector: data + params: + tan_number: TAN_NUMBER +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /generateOtp + method: POST +- name: Verify OTP + endpoint: + path: /verifyOtp + method: POST +- name: TDS Compliance Check + endpoint: + path: /reference/taxpayer/tds-compliance-check-api-206ab-and-206cca + method: GET +- name: Bulk Aadhaar Validation + endpoint: + path: /bulk-validations/bulk-aadhaar-verification + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /bulk-validations/bulk-pan-verification + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /bulk-validations/bulk-pan-plus-verification + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: response + params: + gstin: '' + username: '' +- name: ledger_apis + endpoint: + path: /ledger + method: GET + data_selector: ledger_records + params: {} +- name: returns_apis + endpoint: + path: /returns + method: GET + data_selector: returns_summary + params: {} +- name: Generate OTP + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: Session Expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: Refresh Taxpayer Access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: Cash ITC Balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: Cash Ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: ITC Ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp + params: + incremental: gstin +- name: ledger + endpoint: + path: /ledger + method: GET + data_selector: ledger_details + params: {} +- name: returns + endpoint: + path: /returns + method: GET + data_selector: returns_summary + params: {} +- name: tan_verification + endpoint: + path: /tan-verification + method: GET + params: + tan_number: string +- name: tds_compliance_check + endpoint: + path: /tds-compliance-check + method: GET + params: + pan_number: string +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Generate OTP + endpoint: + path: /generate/otp + method: POST +- name: Verify OTP + endpoint: + path: /verify/otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload/captcha + method: POST +- name: TDS Compliance Check + endpoint: + path: /reference/taxpayer/tds-compliance-check-api-206ab-and-206cca + method: GET +- name: tan_verification + endpoint: + path: /v2/verification/tax-payer/tan + method: GET + data_selector: data + params: + tan_number: TAN_NUMBER +- name: Bulk Aadhaar Validation + endpoint: + path: /bulk-validations/bulk-aadhaar-verification + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /bulk-validations/bulk-pan-verification + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /bulk-validations/bulk-pan-plus-verification + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /bulk-validations/bulk-mobil-to-pan-check + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /bulk-validations/bulk-bank-account-verification + method: POST +- name: Bulk Upi Basic Verification + endpoint: + path: /bulk-validations/bulk-upi-verification + method: POST +- name: Bulk Search Taxpayer By Pan + endpoint: + path: /bulk-validations/bulk-gstin-to-pan-search + method: POST +- name: Bulk Gstin Basic Verification + endpoint: + path: /bulk-validations/bulk-gstin-verification + method: POST +- name: Bulk Gstin Advanced Verification + endpoint: + path: /bulk-validations/bulk-gstin-advanced-verification + method: POST +- name: Bulk Udyam Verification + endpoint: + path: /bulk-validations/bulk-udyam-verification + method: POST +- name: Bulk Udyog Verification + endpoint: + path: /bulk-validations/bulk-udyog-verification + method: POST +- name: Bulk Cin Verification + endpoint: + path: /bulk-validations/bulk-cin-validation + method: POST +- name: Get Bulk Verification Status + endpoint: + path: /bulk-validations/bulk-verification-task-status + method: GET +- name: offline_aadhaar_ekyc + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: offline_aadhaar_ekyc + endpoint: + path: /offline-aadhaar-ekyc-api + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: generate_otp + endpoint: + path: /gst-taxpayer/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /gst-taxpayer/verify-otp + method: POST +- name: session_expiry + endpoint: + path: /gst-taxpayer/session-expiry + method: GET +- name: refresh_taxpayer_access + endpoint: + path: /gst-taxpayer/refresh-taxpayer-access + method: POST +- name: cash_itc_balance + endpoint: + path: /gst-taxpayer/cash-itc-balance + method: GET +- name: cash_ledger + endpoint: + path: /gst-taxpayer/cash-ledger + method: GET +- name: itc_ledger + endpoint: + path: /gst-taxpayer/itc-ledger + method: GET +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp + params: + gstin: string + username: string +- name: Ledger APIs + endpoint: + path: /ledger + method: GET + data_selector: ledger_data + params: {} +- name: Returns APIs + endpoint: + path: /returns + method: GET + data_selector: returns_data + params: {} +- name: generate_otp + endpoint: + path: /generateOtp + method: POST + data_selector: data + params: + gstin: string + username: string +- name: ledger_apis + endpoint: + path: /ledger + method: GET + data_selector: data + params: {} +- name: returns_apis + endpoint: + path: /returns + method: GET + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: tan_verification + endpoint: + path: /v2/verification/tax-payer/tan + method: GET + data_selector: data + params: + tan_number: TAN_NUMBER +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET +- name: Digilocker API + endpoint: + path: /reference/digilocker-api + method: POST +- name: KYC APIs + endpoint: + path: /reference/kyc-apis + method: GET +- name: Document OCR + endpoint: + path: /reference/document-ocr + method: POST +- name: Mobile Number Intelligence + endpoint: + path: /reference/mobile-number-intelligence + method: GET +- name: Document Forensics + endpoint: + path: /reference/document-forensics + method: POST +- name: Face Forensics + endpoint: + path: /reference/face-forensics + method: POST +- name: Async APIs + endpoint: + path: /reference/async-apis + method: GET +- name: GST APIs + endpoint: + path: /reference/gst-apis + method: GET +- name: GST Taxpayer + endpoint: + path: /reference/gst-taxpayer + method: GET +- name: Business Compliance + endpoint: + path: /reference/business-compliance + method: GET +- name: Taxpayer + endpoint: + path: /reference/taxpayer + method: GET +- name: ITR APIs + endpoint: + path: /reference/itr-apis + method: POST +- name: MCA APIs + endpoint: + path: /reference/mca-apis + method: GET +- name: MSME APIs + endpoint: + path: /reference/msme-apis + method: GET +- name: Financial Services + endpoint: + path: /reference/financial-services + method: GET +- name: EPFO + endpoint: + path: /reference/epfo + method: GET +- name: Bulk Validations + endpoint: + path: /reference/bulk-validations + method: POST +- name: Reports + endpoint: + path: /reference/reports + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Generate Otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp_response + params: + gstin: gstin + username: username +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generateOTP + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST + data_selector: '' + params: {} +- name: Generate Otp + endpoint: + path: /api/generate_otp + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: POST +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Aadhaar OCR + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: generate_otp + endpoint: + path: /api/generateOTP + method: POST +- name: verify_otp + endpoint: + path: /api/verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /api/reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: otp + params: + gstin: string + username: string +- name: ledger_apis + endpoint: + path: /ledger_apis + method: GET + data_selector: ledger_records + params: {} +- name: returns_apis + endpoint: + path: /returns_apis + method: GET + data_selector: returns_summary + params: {} +- name: Generate Otp + endpoint: + path: /api/generateOtp + method: POST + data_selector: response + params: {} +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: document_ocr + endpoint: + path: /document-ocr + method: POST +- name: mobile_number_intelligence + endpoint: + path: /mobile-number-intelligence + method: POST +- name: document_forensics + endpoint: + path: /document-forensics + method: POST +- name: face_forensics + endpoint: + path: /face-forensics + method: POST +- name: async_apis + endpoint: + path: /async-apis + method: POST +- name: gst_taxpayer + endpoint: + path: /gst-taxpayer + method: POST +- name: taxpayer + endpoint: + path: /taxpayer + method: POST +- name: itr + endpoint: + path: /itr + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Aadhaar OCR API + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR API + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR API + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR API + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR API + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR API + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR API + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp + params: + gstin: required + username: required +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp + params: + gstin: string + username: string +- name: ledger_apis + endpoint: + path: /ledger + method: GET + data_selector: ledger_data + params: {} +- name: returns_apis + endpoint: + path: /returns + method: GET + data_selector: returns_data + params: {} +- name: Offline Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: POST +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: POST +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: generate_otp + endpoint: + path: /api/generateOtp + method: POST +- name: verify_otp + endpoint: + path: /api/verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /api/reloadCaptcha + method: POST +- name: ledger + endpoint: + path: /ledger + method: GET + data_selector: ledger_data +- name: returns + endpoint: + path: /returns + method: GET + data_selector: returns_data +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: generate_otp + endpoint: + path: /api/generateOtp + method: POST + data_selector: response + params: {} +- name: ledger_apis + endpoint: + path: /api/ledger + method: GET + data_selector: response + params: {} +- name: returns_apis + endpoint: + path: /api/returns + method: GET + data_selector: response + params: {} +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /generateOtp + method: POST +- name: Verify OTP + endpoint: + path: /verifyOtp + method: POST +- name: Reload Captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Download e-Aadhar + endpoint: + path: /downloadEAadhar + method: POST +- name: Get Issued Files + endpoint: + path: /getIssuedFiles + method: GET +- name: Download File + endpoint: + path: /downloadFile + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp + params: + gstin: required + username: required +- name: ledger_apis + endpoint: + path: /ledger + method: GET + data_selector: ledger_records + params: {} +- name: returns_apis + endpoint: + path: /returns + method: GET + data_selector: returns_records + params: {} +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /api/initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /api/get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /api/download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /api/get-issued-files + method: GET +- name: Download File + endpoint: + path: /api/download-file + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: POST +- name: get_issued_files + endpoint: + path: /get_issued_files + method: POST +- name: download_file + endpoint: + path: /download_file + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: GET +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: CIN Verification + endpoint: + path: /mca-apis/cin-verification-api + method: GET +- name: CIN Verification + endpoint: + path: /mca-apis/cin-verification-api + method: GET + data_selector: records +- name: Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Digilocker API + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST + data_selector: data + params: {} +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: data + params: {} +- name: verify_otp + endpoint: + path: /verify_otp + method: POST + data_selector: data + params: {} +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST + data_selector: data + params: {} +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: CIN Verification + endpoint: + path: /mca-apis/cin-verification-api + method: GET +- name: DIN Verification + endpoint: + path: /mca-apis/din-verification-api + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: GET +- name: get_user_access_token + endpoint: + path: /getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /downloadFile + method: GET +- name: CIN Verification + endpoint: + path: /mca-apis/cin-verification-api + method: GET +- name: DIN Verification + endpoint: + path: /mca-apis/din-verification-api + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generateOTP + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST + data_selector: '' + params: {} +- name: Aadhaar eKYC Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST + data_selector: response + params: {} +- name: Aadhaar eKYC Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST + data_selector: response + params: {} +- name: Aadhaar eKYC Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST + data_selector: response + params: {} +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET + data_selector: response + params: {} +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: session_data +- name: generate_otp + endpoint: + path: /generateOtp + method: POST + data_selector: otp_data +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST + data_selector: verification_data +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: get_user_access_token + endpoint: + path: /get/user/access/token + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: bulk_aadhaar_verification + endpoint: + path: /bulk-validations/bulk-aadhaar-verification + method: POST +- name: bulk_pan_verification + endpoint: + path: /bulk-validations/bulk-pan-verification + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /bulk-validations/bulk-pan-plus-verification + method: POST +- name: bulk_mobile_to_pan_check + endpoint: + path: /bulk-validations/bulk-mobil-to-pan-check + method: POST +- name: bulk_bank_account_verification + endpoint: + path: /bulk-validations/bulk-bank-account-verification + method: POST +- name: bulk_upi_verification + endpoint: + path: /bulk-validations/bulk-upi-verification + method: POST +- name: bulk_gstin_to_pan_search + endpoint: + path: /bulk-validations/bulk-gstin-to-pan-search + method: POST +- name: bulk_gstin_verification + endpoint: + path: /bulk-validations/bulk-gstin-verification + method: POST +- name: bulk_gstin_advanced_verification + endpoint: + path: /bulk-validations/bulk-gstin-advanced-verification + method: POST +- name: bulk_udyam_verification + endpoint: + path: /bulk-validations/bulk-udyam-verification + method: POST +- name: bulk_udyog_verification + endpoint: + path: /bulk-validations/bulk-udyog-verification + method: POST +- name: bulk_cin_validation + endpoint: + path: /bulk-validations/bulk-cin-validation + method: POST +- name: bulk_verification_task_status + endpoint: + path: /bulk-validations/bulk-verification-task-status + method: GET +- name: usage_report + endpoint: + path: /reports/get-usage-report + method: GET +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: authorize + endpoint: + path: /authorize + method: POST + data_selector: access_token +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp_response +- name: verify_otp + endpoint: + path: /verify-otp + method: POST + data_selector: verification_response +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Pan Udyam Msme Status + endpoint: + path: /reference/msme-apis/pan-udyam-msme-status-api + method: GET + data_selector: records + params: {} +- name: Pan Udyam Msme Status + endpoint: + path: /msme-apis/pan-udyam-msme-status-api + method: GET + data_selector: data + params: {} +- name: Aadhaar OCR + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: Mobile To Name + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-name + method: GET +- name: Mobile To Pan + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-pan + method: GET +- name: Mobile To Uan + endpoint: + path: /reference/mobile-number-intelligence/mobile-to-uan + method: GET +- name: Aadhaar To Uan + endpoint: + path: /reference/epfo/aadhaar-to-uan + method: GET +- name: Pan To Uan + endpoint: + path: /reference/epfo/pan-to-uan + method: GET +- name: Aadhaar Verification + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET +- name: Generate OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: UAN Verification + endpoint: + path: / + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Pan Udyam Msme Status + endpoint: + path: /reference/msme-apis/pan-udyam-msme-status-api + method: GET +- name: Pan Udyam Msme Status + endpoint: + path: /reference/msme-apis/pan-udyam-msme-status-api + method: GET +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: session + endpoint: + path: /initiate_session + method: POST +- name: user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: Offline Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: UAN Verification + endpoint: + path: /epfo/uan-verification + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /session/initiate + method: POST +- name: get_user_access_token + endpoint: + path: /user/access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /aadhar/download + method: GET +- name: get_issued_files + endpoint: + path: /files/issued + method: GET +- name: download_file + endpoint: + path: /files/download + method: GET +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET +- name: Digilocker API + endpoint: + path: /reference/digilocker-api + method: POST +- name: KYC APIs + endpoint: + path: /reference/kyc-apis + method: GET +- name: Document OCR + endpoint: + path: /reference/document-ocr + method: POST +- name: Mobile Number Intelligence + endpoint: + path: /reference/mobile-number-intelligence + method: GET +- name: Document Forensics + endpoint: + path: /reference/document-forensics + method: POST +- name: Face Forensics + endpoint: + path: /reference/face-forensics + method: POST +- name: Async APIs + endpoint: + path: /reference/async-apis + method: POST +- name: GST APIs + endpoint: + path: /reference/gst-apis + method: GET +- name: Business Compliance + endpoint: + path: /reference/business-compliance + method: GET +- name: Taxpayer + endpoint: + path: /reference/taxpayer + method: GET +- name: ITR APIs + endpoint: + path: /reference/itr-apis + method: POST +- name: MCA APIs + endpoint: + path: /reference/mca-apis + method: GET +- name: MSME APIs + endpoint: + path: /reference/msme-apis + method: GET +- name: Financial Services + endpoint: + path: /reference/financial-services + method: GET +- name: EPFO + endpoint: + path: /reference/epfo + method: GET +- name: Bulk Validations + endpoint: + path: /reference/bulk-validations + method: POST +- name: Reports + endpoint: + path: /reference/reports + method: GET +- name: Aadhaar eKYC - Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: POST + data_selector: response +- name: Aadhaar eKYC - Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST + data_selector: response +- name: Aadhaar eKYC - Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST + data_selector: response +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET + data_selector: response +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generate/otp + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verify/otp + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST + data_selector: '' + params: {} +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: download_e_aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: get_user_access_token + endpoint: + path: /get-user-access-token + method: POST +- name: get_issued_files + endpoint: + path: /get-issued-files + method: GET +- name: download_file + endpoint: + path: /download-file + method: GET +- name: UAN Verification + endpoint: + path: / + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Aadhaar To Uan + endpoint: + path: /aadhaar-to-uan + method: GET + data_selector: data + params: + aadhaar_number: string +- name: Pan To Uan + endpoint: + path: /pan-to-uan + method: GET + data_selector: data + params: + pan_number: string +- name: UAN To Employment History + endpoint: + path: /uan-to-employment-history + method: GET + data_selector: data + params: + uan_number: string + generate_pdf: boolean +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /reference/offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /reference/offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /reference/offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Aadhaar To Uan + endpoint: + path: /epfo/aadhaar-to-uan + method: GET +- name: Pan To Uan + endpoint: + path: /epfo/pan-to-uan + method: GET +- name: UAN To Employment History + endpoint: + path: /epfo/uan-to-employment-history + method: GET +- name: UAN To Employment History - V2 + endpoint: + path: /epfo/uan-to-employment-history-v2 + method: GET +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEaadhaar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + data_selector: data.employment_history + params: + uan_number: '' +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Get User Access Token + endpoint: + path: /get-user-access-token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download-e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /get-issued-files + method: GET +- name: Download File + endpoint: + path: /download-file + method: GET +- name: Aadhaar To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + aadhaar_number: string +- name: Pan To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + pan_number: string +- name: UAN To Employment History + endpoint: + path: / + method: GET + data_selector: data + params: + uan_number: string + generate_pdf: boolean +- name: bulk_validations + endpoint: + path: / + method: GET +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: Aadhaar To Uan + endpoint: + path: /epfo/aadhaar-to-uan + method: GET +- name: Pan To Uan + endpoint: + path: /epfo/pan-to-uan + method: GET +- name: UAN To Employment History + endpoint: + path: /epfo/uan-to-employment-history + method: GET +- name: UAN To Employment History - V2 + endpoint: + path: /epfo/uan-to-employment-history-v2 + method: GET +- name: uan_to_employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + data_selector: data +- name: employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + data_selector: data.employment_history + params: + uan_number: '' +- name: aadhaar_to_uan + endpoint: + path: /v1/verification/epfo/aadhaar-to-uan + method: GET + data_selector: data + params: {} +- name: pan_to_uan + endpoint: + path: /v1/verification/epfo/pan-to-uan + method: GET + data_selector: data + params: {} +- name: uan_to_employment_history + endpoint: + path: /v1/verification/epfo/uan-to-employment-history + method: GET + data_selector: data + params: + uan_number: '' + generate_pdf: '' +- name: uan_to_employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + params: + uan_number: '' + generate_pdf: '' +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: uan_to_employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + params: + uan_number: '' +- name: initiate_session + endpoint: + path: /initiate_session + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verify_otp + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST + data_selector: '' + params: {} +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: download_e_aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get/issued/files + method: GET +- name: download_file + endpoint: + path: /download/file + method: GET +- name: uan_to_employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + data_selector: data + params: + uan_number: '' + generate_pdf: '' +- name: Aadhaar To Uan + endpoint: + path: /epfo/aadhaar-to-uan + method: GET +- name: Pan To Uan + endpoint: + path: /epfo/pan-to-uan + method: GET +- name: UAN To Employment History + endpoint: + path: /epfo/uan-to-employment-history + method: GET +- name: UAN To Employment History - V2 + endpoint: + path: /epfo/uan-to-employment-history-v2 + method: GET +- name: initiate_session + endpoint: + path: /initiate-session + method: POST + data_selector: session +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: otp +- name: verify_otp + endpoint: + path: /verify-otp + method: POST + data_selector: aadhaar_info +- name: reload_captcha + endpoint: + path: /reload-captcha + method: GET + data_selector: captcha +- name: aadhaar_to_uan + endpoint: + path: /v1/verification/epfo/aadhaar-to-uan + method: GET + data_selector: data + params: + aadhaar_number: string +- name: pan_to_uan + endpoint: + path: /v1/verification/epfo/pan-to-uan + method: GET + data_selector: data + params: + pan_number: string +- name: uan_to_employment_history + endpoint: + path: /v1/verification/epfo/uan-to-employment-history + method: GET + data_selector: data + params: + uan_number: string + generate_pdf: boolean +- name: employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + params: + uan_number: '' + generate_pdf: '' +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: get_user_access_token + endpoint: + path: /get_user_access_token + method: POST +- name: download_e_aadhar + endpoint: + path: /download_e_aadhar + method: GET +- name: get_issued_files + endpoint: + path: /get_issued_files + method: GET +- name: download_file + endpoint: + path: /download_file + method: GET +- name: uan_to_employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + params: + uan_number: '' + generate_pdf: '' +- name: Aadhaar To Uan + endpoint: + path: /reference/epfo/aadhaar-to-uan + method: GET +- name: Pan To Uan + endpoint: + path: /reference/epfo/pan-to-uan + method: GET +- name: UAN To Employment History + endpoint: + path: /reference/epfo/uan-to-employment-history + method: GET +- name: UAN To Employment History - V2 + endpoint: + path: /reference/epfo/uan-to-employment-history-v2 + method: GET +- name: Generate OTP + endpoint: + path: /reference/gst-taxpayer/generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /reference/gst-taxpayer/verify-otp + method: POST +- name: Session Expiry + endpoint: + path: /reference/gst-taxpayer/session-expiry + method: GET +- name: Refresh Taxpayer Access + endpoint: + path: /reference/gst-taxpayer/refresh-taxpayer-access + method: POST +- name: Cash ITC Balance + endpoint: + path: /reference/gst-taxpayer/cash-itc-balance + method: GET +- name: Cash Ledger + endpoint: + path: /reference/gst-taxpayer/cash-ledger + method: GET +- name: ITC Ledger + endpoint: + path: /reference/gst-taxpayer/itc-ledger + method: GET +- name: aadhaar_to_uan + endpoint: + path: /v1/verification/epfo/aadhaar-to-uan + method: GET + data_selector: data + params: + aadhaar_number: string +- name: pan_to_uan + endpoint: + path: /v1/verification/epfo/pan-to-uan + method: GET + data_selector: data + params: + pan_number: string +- name: uan_to_employment_history + endpoint: + path: /v1/verification/epfo/uan-to-employment-history + method: GET + data_selector: data + params: + uan_number: string + generate_pdf: boolean +- name: employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + params: + uan_number: '' + generate_pdf: '' +- name: employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + params: + uan_number: '' +- name: Initiate Session + endpoint: + path: /initiate_session + method: POST +- name: Generate OTP + endpoint: + path: /generate_otp + method: POST +- name: Verify OTP + endpoint: + path: /verify_otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: get_user_access_token + endpoint: + path: /api/getUserAccessToken + method: POST +- name: download_e_aadhar + endpoint: + path: /api/downloadEAadhar + method: GET +- name: get_issued_files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: download_file + endpoint: + path: /api/downloadFile + method: GET +- name: Offline Aadhaar eKYC API + endpoint: + path: /reference/offline-aadhaar-ekyc-api + method: GET +- name: initiate_session + endpoint: + path: /ekyc/initiate + method: POST +- name: generate_otp + endpoint: + path: /ekyc/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /ekyc/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /ekyc/reload_captcha + method: GET +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Generate OTP + endpoint: + path: /generate/otp + method: POST +- name: Verify OTP + endpoint: + path: /verify/otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload/captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: uan_to_employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + params: + uan_number: '' + generate_pdf: '' +- name: Aadhaar To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + aadhaar_number: string +- name: Pan To Uan + endpoint: + path: / + method: GET + data_selector: data + params: + pan_number: string +- name: UAN To Employment History + endpoint: + path: / + method: GET + data_selector: data + params: + uan_number: string + generate_pdf: boolean +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Generate OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/generate-otp-v2 + method: POST +- name: Verify OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/verify-otp-v2 + method: POST +- name: aadhaar_to_uan + endpoint: + path: /v1/verification/epfo/aadhaar-to-uan + method: GET + data_selector: data + params: {} +- name: pan_to_uan + endpoint: + path: /v1/verification/epfo/pan-to-uan + method: GET + data_selector: data + params: {} +- name: employment_history + endpoint: + path: /v2/verification/epfo/uan-to-employment-history + method: GET + params: + uan_number: '' + generate_pdf: '' +- name: Bulk Aadhaar Validation + endpoint: + path: /bulk-validations/bulk-aadhaar-verification + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /bulk-validations/bulk-pan-verification + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /bulk-validations/bulk-pan-plus-verification + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /bulk-validations/bulk-mobil-to-pan-check + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /bulk-validations/bulk-bank-account-verification + method: POST +- name: Bulk Upi Basic Verification + endpoint: + path: /bulk-validations/bulk-upi-verification + method: POST +- name: Bulk Gstin Basic Verification + endpoint: + path: /bulk-validations/bulk-gstin-verification + method: POST +- name: Bulk Gstin Advanced Verification + endpoint: + path: /bulk-validations/bulk-gstin-advanced-verification + method: POST +- name: Get Bulk Verification Status + endpoint: + path: /bulk-validations/bulk-verification-task-status + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /bulk-validations/bulk-aadhaar-verification + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /bulk-validations/bulk-pan-verification + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /bulk-validations/bulk-pan-plus-verification + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /bulk-validations/bulk-mobil-to-pan-check + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /bulk-validations/bulk-bank-account-verification + method: POST +- name: Bulk Upi Basic Verification + endpoint: + path: /bulk-validations/bulk-upi-verification + method: POST +- name: Bulk Gstin Basic Verification + endpoint: + path: /bulk-validations/bulk-gstin-verification + method: POST +- name: Bulk Gstin Advanced Verification + endpoint: + path: /bulk-validations/bulk-gstin-advanced-verification + method: POST +- name: Get Bulk Verification Status + endpoint: + path: /bulk-validations/bulk-verification-task-status + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate/session + method: POST +- name: Get User Access Token + endpoint: + path: /user/access/token + method: POST +- name: Download e-Aadhar + endpoint: + path: /download/e-aadhar + method: GET +- name: Get Issued Files + endpoint: + path: /issued/files + method: GET +- name: Download File + endpoint: + path: /download/file + method: GET +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /generateOtp + method: POST +- name: Verify OTP + endpoint: + path: /verifyOtp + method: POST +- name: Reload Captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: aadhaar_to_uan + endpoint: + path: /aadhaar_to_uan + method: GET + data_selector: data + params: + aadhaar_number: string +- name: pan_to_uan + endpoint: + path: /pan_to_uan + method: GET + data_selector: data + params: + pan_number: string +- name: uan_to_employment_history + endpoint: + path: /uan_to_employment_history + method: GET + data_selector: data + params: + uan_number: string + generate_pdf: boolean +- name: bulk_validations + endpoint: + path: / + method: GET +- name: AadhaarToUan + endpoint: + path: / + method: GET + data_selector: data + params: + aadhaar_number: string +- name: PanToUan + endpoint: + path: / + method: GET + data_selector: data + params: + pan_number: string +- name: UanToEmploymentHistory + endpoint: + path: / + method: GET + data_selector: data + params: + uan_number: string + generate_pdf: boolean +- name: bulk_validations + endpoint: + path: / + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Offline Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: GET +- name: generate_otp + endpoint: + path: /generate_otp + method: GET +- name: verify_otp + endpoint: + path: /verify_otp + method: GET +- name: reload_captcha + endpoint: + path: /reload_captcha + method: GET +- name: Bulk Validations + endpoint: + path: / + method: GET +- name: bulk_verification + endpoint: + path: / + method: POST +- name: bulk_gstin_basic_verification + endpoint: + path: / + method: POST +- name: bulk_gstin_advanced_verification + endpoint: + path: / + method: POST +- name: bulk_udyam_verification + endpoint: + path: / + method: POST +- name: bulk_udyog_verification + endpoint: + path: / + method: POST +- name: bulk_cin_verification + endpoint: + path: / + method: POST +- name: get_bulk_verification_status + endpoint: + path: / + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: bulk_verification + endpoint: + path: / + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /bulk/aadhaar/validation + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /bulk/pan/basic/verification + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /bulk/pan/plus/verification + method: POST +- name: Bulk Gstin Basic Verification + endpoint: + path: / + method: POST +- name: Bulk Gstin Advanced Verification + endpoint: + path: / + method: POST +- name: Bulk Udyam Verification + endpoint: + path: / + method: POST +- name: Bulk Udyog Verification + endpoint: + path: / + method: POST +- name: Bulk Cin Verification + endpoint: + path: / + method: POST +- name: Get Bulk Verification Status + endpoint: + path: / + method: POST +- name: gstin_verification + endpoint: + path: / + method: POST +- name: Aadhaar OCR API + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR API + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR API + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR API + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR API + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR API + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR API + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: bulk_gstin_basic_verification + endpoint: + path: / + method: POST +- name: bulk_gstin_advanced_verification + endpoint: + path: / + method: POST +- name: bulk_udyam_verification + endpoint: + path: / + method: POST +- name: bulk_udyog_verification + endpoint: + path: / + method: POST +- name: bulk_cin_verification + endpoint: + path: / + method: POST +- name: get_bulk_verification_status + endpoint: + path: / + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /reference/bulk-validations/bulk-pan-verification + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: Offline Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api + method: GET +- name: bulk_aadhaar_validation + endpoint: + path: /bulk-aadhaar-validation + method: POST + data_selector: results + params: {} +- name: bulk_verification + endpoint: + path: / + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: batch_processing + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Gstin Basic Verification + endpoint: + path: / + method: POST + data_selector: Object + params: {} +- name: Bulk Gstin Advanced Verification + endpoint: + path: / + method: POST + data_selector: Object + params: {} +- name: Bulk Udyam Verification + endpoint: + path: / + method: POST + data_selector: Object + params: {} +- name: Bulk Udyog Verification + endpoint: + path: / + method: POST + data_selector: Object + params: {} +- name: Bulk Cin Verification + endpoint: + path: / + method: POST + data_selector: Object + params: {} +- name: Get Bulk Verification Status + endpoint: + path: / + method: POST + data_selector: Object + params: {} +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST +- name: cin_verification + endpoint: + path: /v1/verification/cin/batch + method: POST +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + params: + request_id: string +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Plus Verification + endpoint: + path: /reference/bulk-validations/bulk-pan-plus-verification + method: POST + data_selector: records +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_by_pan_verification + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_aadhaar_validation + endpoint: + path: /api/bulk-aadhaar-validation + method: POST + data_selector: results + params: + webhook_url: YOUR_WEBHOOK_URL +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST +- name: cin_verification + endpoint: + path: /v1/verification/async/cin/batch + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch/status + method: GET + data_selector: status + params: + request_id: string +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: success + params: {} +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: success + params: {} +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: success + params: {} +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + data_selector: success + params: {} +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + data_selector: success + params: {} +- name: Bulk Pan Plus Verification + endpoint: + path: /reference/bulk-validations/bulk-pan-plus-verification + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Offline Aadhaar eKYC + endpoint: + path: /offline-aadhaar-ekyc-api + method: GET +- name: Initiate Session + endpoint: + path: /initiate_session + method: POST +- name: Generate OTP + endpoint: + path: /generate_otp + method: POST +- name: Verify OTP + endpoint: + path: /verify_otp + method: POST +- name: Reload Captcha + endpoint: + path: /reload_captcha + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /bulk/aadhaar/validation + method: POST + data_selector: results + params: {} +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: cin_verification + endpoint: + path: /v1/verification/cin/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: verification_batch + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/status + method: GET + params: + request_id: string +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: code + params: {} +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: code + params: {} +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + data_selector: code + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: batch_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: initiate_session + endpoint: + path: /initiate_session + method: POST + data_selector: session_info +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: otp_response +- name: verify_otp + endpoint: + path: /verify_otp + method: POST + data_selector: aadhaar_info +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST + data_selector: captcha_info +- name: Offline Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: Aadhaar Verification + endpoint: + path: /offline-aadhaar-ekyc-api + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstin/bulk + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_aadhaar_validation + endpoint: + path: /bulk/aadhaar/validation + method: POST + data_selector: results + params: {} +- name: bulk_pan_basic_verification + endpoint: + path: /bulk/pan/basic/verification + method: POST + data_selector: results + params: {} +- name: bulk_pan_plus_verification + endpoint: + path: /bulk/pan/plus/verification + method: POST + data_selector: results + params: {} +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification + endpoint: + path: / + method: POST +- name: upi-basic-verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount-verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin-by-pan-verification + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin-basic-verification + endpoint: + path: /v1/verification/gstin/batch + method: POST +- name: gstin-advanced-verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST +- name: udyam-verification + endpoint: + path: /v1/verification/udyam-details/batch + method: POST +- name: udyog-verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST +- name: cin-verification + endpoint: + path: /v1/verification/cin/batch + method: POST +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/status + method: GET + params: + request_id: string +- name: bulk_verification + endpoint: + path: / + method: POST +- name: bulk_verification_status + endpoint: + path: / + method: POST +- name: verification_batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /reference/bulk-validations/bulk-bank-account-verification + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: Initiate Session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: Generate OTP + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: Verify OTP + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: Reload Captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: Generate OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/generate-otp-v2 + method: POST +- name: Verify OTP V2 + endpoint: + path: /offline-aadhaar-ekyc-api-v2/verify-otp-v2 + method: POST +- name: Initiate Session Digilocker + endpoint: + path: /digilocker-api/initiate-session + method: POST +- name: Access Token + endpoint: + path: /digilocker-api/access-token + method: POST +- name: E-Aadhaar API + endpoint: + path: /digilocker-api/e-aadhaar-api + method: POST +- name: Issued Files + endpoint: + path: /digilocker-api/issued-files + method: POST +- name: Download File + endpoint: + path: /digilocker-api/download-file + method: POST +- name: initiate_session + endpoint: + path: /api/initiate-session + method: POST +- name: generate_otp + endpoint: + path: /api/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload-captcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: '' + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: '' + params: {} +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: '' + params: {} +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST + data_selector: '' + params: {} +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: '' + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: '' + params: {} +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: '' + params: {} +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST + data_selector: '' + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /bulk-aadhaar-validation + method: POST + data_selector: results + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_aadhaar_validation + endpoint: + path: /bulk/aadhaar/validation + method: POST +- name: bulk_pan_verification + endpoint: + path: /bulk/pan/verification + method: POST +- name: bulk_mobile_to_pan + endpoint: + path: /bulk/mobile/pan + method: POST +- name: bulk_bank_account_verification + endpoint: + path: /bulk/bank/account/verification + method: POST +- name: bulk_upi_verification + endpoint: + path: /bulk/upi/verification + method: POST +- name: bulk_search_taxpayer_by_pan + endpoint: + path: /bulk/search/taxpayer/by/pan + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Gstin Basic Verification + endpoint: + path: / + method: POST +- name: Bulk Gstin Advanced Verification + endpoint: + path: / + method: POST +- name: Bulk Udyam Verification + endpoint: + path: / + method: POST +- name: Bulk Udyog Verification + endpoint: + path: / + method: POST +- name: Bulk Cin Verification + endpoint: + path: / + method: POST +- name: Get Bulk Verification Status + endpoint: + path: / + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /reference/bulk-validations/bulk-bank-account-verification + method: POST +- name: Get Bulk Verification Status + endpoint: + path: /reference/bulk-validations/bulk-verification-task-status + method: GET +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: verification_batch + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + params: + request_id: string +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Bulk Upi Basic Verification + endpoint: + path: /bulk-validations/bulk-upi-verification + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /bulk-validations/bulk-aadhaar-verification + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /bulk-validations/bulk-pan-verification + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /bulk-validations/bulk-pan-plus-verification + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /bulk-validations/bulk-mobil-to-pan-check + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /bulk-validations/bulk-bank-account-verification + method: POST +- name: Get Bulk Verification Status + endpoint: + path: /bulk-validations/bulk-verification-task-status + method: GET +- name: Usage Report + endpoint: + path: /reports/get-usage-report + method: GET +- name: initiate_session + endpoint: + path: /ekyc/initiate + method: POST +- name: generate_otp + endpoint: + path: /ekyc/generateOtp + method: POST +- name: verify_otp + endpoint: + path: /ekyc/verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /ekyc/reloadCaptcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /bulk/aadhaar/validation + method: POST + data_selector: results + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/panplus/batch + method: POST +- name: Initiate Session + endpoint: + path: /api/initiateSession + method: POST +- name: Generate OTP + endpoint: + path: /api/generateOtp + method: POST +- name: Verify OTP + endpoint: + path: /api/verifyOtp + method: POST +- name: Reload Captcha + endpoint: + path: /api/reloadCaptcha + method: POST +- name: Download e-Aadhar + endpoint: + path: /api/downloadEadhar + method: GET +- name: Get Issued Files + endpoint: + path: /api/getIssuedFiles + method: GET +- name: Download File + endpoint: + path: /api/downloadFile + method: GET +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: batch_upi_basic + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_aadhaar_validation + endpoint: + path: /bulk/aadhaar/validation + method: POST + data_selector: results + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: SUCCESS +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: SUCCESS +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: SUCCESS +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + data_selector: SUCCESS +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + data_selector: SUCCESS +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: code + params: {} +- name: bulk_pan_basic_validation + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: code + params: {} +- name: bulk_pan_plus_validation + endpoint: + path: /v1/verification/panplus/batch + method: POST + data_selector: code + params: {} +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: response + params: {} +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: response + params: {} +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: response + params: {} +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + data_selector: response + params: {} +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + data_selector: response + params: {} +- name: upi_basic_verification_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_batch_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_by_pan_batch_verification + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_by_pan_verification + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: cin_verification + endpoint: + path: /v1/verification/cin/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_batch + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/status + method: GET + data_selector: status + params: + request_id: string +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Upi Basic Verification + endpoint: + path: /bulk-validations/bulk-upi-verification + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /bulk-validations/bulk-aadhaar-verification + method: POST +- name: Get Bulk Verification Status + endpoint: + path: /bulk-validations/bulk-verification-task-status + method: GET +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: verification_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_bankaccount_batch + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_gstin_by_pan_batch + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_gstin_basic_batch + endpoint: + path: /v1/verification/gstinlite/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_udyam_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_udyog_batch + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_cin_batch + endpoint: + path: /v1/verification/async/cin/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + data_selector: status + params: + request_id: string +- name: initiate_session + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-1 + method: GET +- name: generate_otp + endpoint: + path: /offline-aadhaar-ekyc-api/generate-otp-1 + method: POST +- name: verify_otp + endpoint: + path: /offline-aadhaar-ekyc-api/verify-otp-1 + method: POST +- name: reload_captcha + endpoint: + path: /offline-aadhaar-ekyc-api/initiate-session-copy-1 + method: GET +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Bulk Search Taxpayer By Pan + endpoint: + path: /reference/bulk-validations/bulk-gstin-to-pan-search + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /bulk-aadhaar-validation + method: POST + data_selector: results + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generateOtp + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST + data_selector: '' + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: initiate_session + endpoint: + path: /api/v2/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/v2/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/v2/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/v2/reload_captcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: {} +- name: batch_processing + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_aadhaar_validation + endpoint: + path: /bulk/aadhaar/validation + method: POST + data_selector: results + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_by_pan_verification + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_by_pan_verification + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST +- name: cin_verification + endpoint: + path: /v1/verification/cin/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + params: + request_id: string +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: {} +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: {} +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: {} +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + params: {} +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + params: {} +- name: Bulk Search Taxpayer By Pan + endpoint: + path: /reference/bulk-validations/bulk-gstin-to-pan-search + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /api/initiate-session + method: POST +- name: generate_otp + endpoint: + path: /api/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload-captcha + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_by_pan_verification + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: cin_verification + endpoint: + path: /v1/verification/cin/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + params: + request_id: string +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Bulk Gstin Basic Verification + endpoint: + path: /reference/bulk-validations/bulk-gstin-verification + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /bulk-aadhaar-validation + method: POST + data_selector: results + params: {} +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: messages + params: {} +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: messages + params: {} +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + data_selector: messages + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: batch_processing + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: data + params: + webhook_url: YOUR-WEBHOOK-URL +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /bulk/aadhaar/validation + method: POST + data_selector: results + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstin/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: messages + params: {} +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: messages + params: {} +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: messages + params: {} +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + data_selector: messages + params: {} +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + data_selector: messages + params: {} +- name: verification_upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_bankaccount_batch + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_gstin_by_pan_batch + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST +- name: cin_verification + endpoint: + path: /v1/verification/async/cin/batch + method: POST +- name: aadhaar_batch_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: output_batch_file + params: {} +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + data_selector: status + params: + request_id: string +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Bulk Gstin Basic Verification + endpoint: + path: /bulk-validations/bulk-gstin-verification + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: cin_verification + endpoint: + path: /v1/verification/cin/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: aadhaar_batch_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/status + method: GET + params: + request_id: string +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Bulk Gstin Advanced Verification + endpoint: + path: /reference/bulk-validations/bulk-gstin-advanced-verification + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: data +- name: bulk_aadhaar_validation + endpoint: + path: /bulk/aadhaar/validation + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: initiate_session + endpoint: + path: /api/initiate-session + method: POST +- name: generate_otp + endpoint: + path: /api/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload-captcha + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + data_selector: code + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_bankaccount_batch + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_gstin_by_pan_batch + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: messages + params: {} +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: messages + params: {} +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + data_selector: messages + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST +- name: cin_verification + endpoint: + path: /v1/verification/async/cin/batch + method: POST +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + data_selector: status + params: + request_id: string +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Gstin Advanced Verification + endpoint: + path: /reference/bulk-validations/bulk-gstin-advanced-verification + method: POST + data_selector: records +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST +- name: cin_verification + endpoint: + path: /v1/verification/async/cin/batch + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: output_batch_file + params: {} +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + data_selector: status + params: + request_id: string +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: verification_batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Bulk Udyam Verification + endpoint: + path: /reference/bulk-validations/bulk-udyam-verification + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Offline Aadhaar eKYC API + endpoint: + path: /offline-aadhaar-ekyc-api + method: GET +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST + data_selector: session_data + params: {} +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST + data_selector: otp_data + params: {} +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST + data_selector: customer_info + params: {} +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST + data_selector: captcha_data + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: response + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: response + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + data_selector: response + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/panplus/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: verification_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_batch + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_by_pan_batch + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_by_pan_verification + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_validation + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_validation + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + data_selector: messages + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: cin_verification + endpoint: + path: /v1/verification/async/cin/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_upi_basic + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_bankaccount + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_gstin_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_gstin_basic + endpoint: + path: /v1/verification/gstinlite/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_gstin_advanced + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_udyam + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_udyog + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_cin + endpoint: + path: /v1/verification/cin/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: output_batch_file + params: {} +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/status + method: GET + data_selector: status + params: + request_id: string +- name: verification_batch + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + params: + request_id: string +- name: verification_batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: Bulk Udyog Verification + endpoint: + path: /reference/bulk-validations/bulk-udyog-verification + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: Bulk Udyam Verification + endpoint: + path: /reference/bulk-validations/bulk-udyam-verification + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /reference/bulk-validations/bulk-aadhaar-verification + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /reference/bulk-validations/bulk-pan-verification + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /reference/bulk-validations/bulk-pan-plus-verification + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /reference/bulk-validations/bulk-mobil-to-pan-check + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /reference/bulk-validations/bulk-bank-account-verification + method: POST +- name: Bulk Upi Basic Verification + endpoint: + path: /reference/bulk-validations/bulk-upi-verification + method: POST +- name: Bulk Gstin Basic Verification + endpoint: + path: /reference/bulk-validations/bulk-gstin-verification + method: POST +- name: Bulk Gstin Advanced Verification + endpoint: + path: /reference/bulk-validations/bulk-gstin-advanced-verification + method: POST +- name: Get Bulk Verification Status + endpoint: + path: /reference/bulk-validations/bulk-verification-task-status + method: GET +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: generate_otp + endpoint: + path: /api/generateOTP + method: POST +- name: verify_otp + endpoint: + path: /api/verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /api/reloadCaptcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /initiate/session + method: POST +- name: generate_otp + endpoint: + path: /generate/otp + method: POST +- name: verify_otp + endpoint: + path: /verify/otp + method: POST +- name: reload_captcha + endpoint: + path: /reload/captcha + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /bulk/aadhaar/validation + method: POST + data_selector: results + params: + webhook_url: '' +- name: Bulk Aadhaar Validation + endpoint: + path: /bulk/aadhaar/validation + method: POST + data_selector: results + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/panplus/batch + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: results + params: {} +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: results + params: {} +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + data_selector: results + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: batch_processing + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: success + params: {} +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: success + params: {} +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: success + params: {} +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + data_selector: success + params: {} +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + data_selector: success + params: {} +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_by_pan_verification + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: cin_verification + endpoint: + path: /v1/verification/cin/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST +- name: cin_verification + endpoint: + path: /v1/verification/cin/batch + method: POST +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + params: + request_id: string +- name: aadhaar_verification_batch + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + params: + request_id: string +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Bulk Udyog Verification + endpoint: + path: /reference/bulk-validations/bulk-udyog-verification + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /reference/bulk-validations/bulk-aadhaar-verification + method: POST +- name: bulk_cin_verification + endpoint: + path: /bulk-validations/bulk-cin-validation + method: POST +- name: get_bulk_verification_status + endpoint: + path: /bulk-validations/bulk-verification-task-status + method: GET +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /api/initiate-session + method: POST +- name: generate_otp + endpoint: + path: /api/generate-otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload-captcha + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /v2/initiateSession + method: POST + data_selector: sessionData + params: {} +- name: generate_otp + endpoint: + path: /v2/generateOTP + method: POST + data_selector: otpData + params: {} +- name: verify_otp + endpoint: + path: /v2/verifyOTP + method: POST + data_selector: aadhaarInfo + params: {} +- name: reload_captcha + endpoint: + path: /v2/reloadCaptcha + method: POST + data_selector: captchaData + params: {} +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /initiate_session + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generate_otp + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verify_otp + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reload_captcha + method: GET + data_selector: '' + params: {} +- name: Bulk Aadhaar Validation + endpoint: + path: /bulk/aadhaar/validation + method: POST + data_selector: results + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: {} +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: {} +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstin/batch + method: POST +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: {} +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + data_selector: data + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST +- name: cin_verification + endpoint: + path: /v1/verification/async/cin/batch + method: POST +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + params: + request_id: string +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: result + params: {} +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: result + params: {} +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: result + params: {} +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: result + params: {} +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: result + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Bulk Cin Verification + endpoint: + path: /reference/bulk-validations/bulk-cin-validation + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST +- name: cin_verification + endpoint: + path: /v1/verification/async/cin/batch + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + data_selector: status + params: + request_id: string +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: batch_verification_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: bulk_verification_status + endpoint: + path: /reference/bulk-validations/bulk-verification-task-status + method: GET + data_selector: records + params: {} +- name: initiate_session + endpoint: + path: /initiate-session + method: POST +- name: generate_otp + endpoint: + path: /generate-otp + method: POST +- name: verify_otp + endpoint: + path: /verify-otp + method: POST +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST +- name: bulk_verification_status + endpoint: + path: /bulk-validations/bulk-verification-task-status + method: GET + data_selector: data +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST + data_selector: sessionData +- name: generate_otp + endpoint: + path: /generateOTP + method: POST + data_selector: otpData +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST + data_selector: customerInfo +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST + data_selector: captchaData +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: code + params: {} +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: code + params: {} +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + data_selector: code + params: {} +- name: bulk_aadhaar_validation + endpoint: + path: /bulk/aadhaar/validation + method: POST + data_selector: results + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: messages + params: {} +- name: Bulk PAN Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: messages + params: {} +- name: Bulk PAN Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: messages + params: {} +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + data_selector: messages + params: {} +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + data_selector: messages + params: {} +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstin/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: SUCCESS +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + data_selector: SUCCESS +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + data_selector: SUCCESS +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + data_selector: SUCCESS +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + data_selector: SUCCESS +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: {} +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: {} +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: {} +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + params: {} +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + params: {} +- name: verification_upi_basic_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_bankaccount_batch + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_gstin_by_pan_batch + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: verification_batch + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_batch + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_by_pan_batch + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_batch + endpoint: + path: /v1/verification/gstinlite/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyam_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyog_batch + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: cin_batch + endpoint: + path: /v1/verification/cin/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/status + method: GET + params: + request_id: string +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: Bulk Verification Status + endpoint: + path: /reference/bulk-validations/bulk-verification-task-status + method: GET +- name: bulk_verification_status + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token + params: {} +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: cin_verification + endpoint: + path: /v1/verification/async/cin/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Authorize + endpoint: + path: /v1/authorize + method: POST +- name: Initiate Session + endpoint: + path: /api/initiate_session + method: POST +- name: Generate OTP + endpoint: + path: /api/generate_otp + method: POST +- name: Verify OTP + endpoint: + path: /api/verify_otp + method: POST +- name: Reload Captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: batch_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + params: + request_id: string +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: Aadhaar OCR API + endpoint: + path: /reference/document-ocr/india/aadhaar-ocr-api + method: POST +- name: Pan OCR API + endpoint: + path: /reference/document-ocr/india/pan-ocr-api + method: POST +- name: Driving License OCR API + endpoint: + path: /reference/document-ocr/india/driving-license-ocr-api + method: POST +- name: Voter Id OCR API + endpoint: + path: /reference/document-ocr/india/voter-id-ocr-api + method: POST +- name: Passport OCR API + endpoint: + path: /reference/document-ocr/india/passport-ocr + method: POST +- name: Bank Cheque OCR API + endpoint: + path: /reference/document-ocr/india/bank-cheque-ocr-api + method: POST +- name: GSTIN Certificate OCR API + endpoint: + path: /reference/document-ocr/india/gstin-certificate-ocr-api + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + since_date: '2025-05-10' + until_date: '2025-05-16' +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + since_date: '2025-05-10' + until_date: '2025-05-16' + generate_excel: '' +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + request_id: Request Id +- name: initiate_session + endpoint: + path: /initiate-session + method: POST + data_selector: '' + params: {} +- name: generate_otp + endpoint: + path: /generate-otp + method: POST + data_selector: '' + params: {} +- name: verify_otp + endpoint: + path: /verify-otp + method: POST + data_selector: '' + params: {} +- name: reload_captcha + endpoint: + path: /reload-captcha + method: POST + data_selector: '' + params: {} +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + params: {} +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST + params: {} +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/panplus/batch + method: POST + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + since_date: '2025-05-10' + until_date: '2025-05-16' +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: Usage Report + endpoint: + path: /reference/reports/get-usage-report + method: GET +- name: Bulk Aadhaar Validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: Bulk Pan Basic Verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: Bulk Pan Plus Verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Mobile To Pan Batch + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: Bulk Bank Account Verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + since_date: '2025-05-10' + until_date: '2025-05-16' +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + data_selector: data + params: + since_date: '2025-05-10' + until_date: '2025-05-16' +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST +- name: bankaccount_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST +- name: gstin_by_pan_verification + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstin/batch + method: POST +- name: Initiate Session + endpoint: + path: /initiate-session + method: POST + data_selector: '' + params: {} +- name: Generate OTP + endpoint: + path: /generate-otp + method: POST + data_selector: '' + params: {} +- name: Verify OTP + endpoint: + path: /verify-otp + method: POST + data_selector: '' + params: {} +- name: Reload Captcha + endpoint: + path: /reload-captcha + method: POST + data_selector: '' + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: udyam_details_batch + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + params: + webhook_url: YOUR-WEBHOOK-URL +- name: Bulk Verification Status + endpoint: + path: /v1/authorize + method: POST +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOtp + method: POST +- name: verify_otp + endpoint: + path: /verifyOtp + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: bulk_aadhaar_validation + endpoint: + path: /v1/verification/aadhaar/batch + method: POST +- name: bulk_pan_basic_verification + endpoint: + path: /v1/verification/panbasic/batch + method: POST +- name: bulk_pan_plus_verification + endpoint: + path: /v1/verification/pan-plus/batch + method: POST +- name: bulk_mobile_to_pan_batch + endpoint: + path: /v1/verification/mobile-to-pan/batch + method: POST +- name: bulk_bank_account_verification + endpoint: + path: /v1/verification/bank-account/batch + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + since_date: '2025-05-10' + until_date: '2025-05-16' +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: upi_basic_verification + endpoint: + path: /v1/verification/upi-basic/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bank_account_verification + endpoint: + path: /v1/verification/bankaccount/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_search_by_pan + endpoint: + path: /v1/verification/gstin/gstin-by-pan/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_basic_verification + endpoint: + path: /v1/verification/gstinlite/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: gstin_advanced_verification + endpoint: + path: /v1/verification/gstin-advanced/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyam_verification + endpoint: + path: /v1/verification/async/udyam-details/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: udyog_verification + endpoint: + path: /v1/verification/async/udyog-details/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: cin_verification + endpoint: + path: /v1/verification/cin/batch + method: POST + data_selector: Object + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification + endpoint: + path: /v1/verification/aadhaar/batch + method: POST + data_selector: output_batch_file + params: + webhook_url: YOUR-WEBHOOK-URL +- name: bulk_verification_status + endpoint: + path: /v1/verification/aadhaar/batch + method: GET + data_selector: request_id + params: {} +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + request_id: Request Id +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + since_date: '2025-05-10' + until_date: '2025-05-16' +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + since_date: '2025-05-10' + until_date: '2025-05-16' +- name: initiate_session + endpoint: + path: /initiate_session + method: POST +- name: generate_otp + endpoint: + path: /generate_otp + method: POST +- name: verify_otp + endpoint: + path: /verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /reload_captcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiate_session + method: POST +- name: generate_otp + endpoint: + path: /api/generate_otp + method: POST +- name: verify_otp + endpoint: + path: /api/verify_otp + method: POST +- name: reload_captcha + endpoint: + path: /api/reload_captcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + since_date: '2025-05-10' + until_date: '2025-05-16' +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: usage_report + endpoint: + path: /reports/get-usage-report + method: GET +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + since_date: '2025-05-10' + until_date: '2025-05-16' + generate_excel: '' +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + since_date: '2025-05-10' + until_date: '2025-05-16' +- name: authorize + endpoint: + path: /v1/authorize + method: POST +- name: authorize + endpoint: + path: /v1/authorize + method: POST + data_selector: access_token +- name: initiate_session + endpoint: + path: /initiateSession + method: POST +- name: generate_otp + endpoint: + path: /generateOTP + method: POST +- name: verify_otp + endpoint: + path: /verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /reloadCaptcha + method: POST +- name: initiate_session + endpoint: + path: /api/initiateSession + method: POST +- name: generate_otp + endpoint: + path: /api/generateOTP + method: POST +- name: verify_otp + endpoint: + path: /api/verifyOTP + method: POST +- name: reload_captcha + endpoint: + path: /api/reloadCaptcha + method: POST +- name: batch_processing_status + endpoint: + path: /v1/verification/batch-processing-status + method: GET + params: + since_date: '2025-05-10' + until_date: '2025-05-16' +- name: authorize + endpoint: + path: /v1/authorize + method: POST +notes: +- As per the compliances by UIDAI on sharing and storage of Aadhaar number is not + allowed. +- Consent should be mandatorily stored at the company end to proceed with verification. +- The taxpayer must enable API access on the GST Portal account. +- OTP sent will be valid for 10 minutes. +- Authorization Token will be valid for only 24 hours from the time of generating + the token +- After 24 hours, you need to refresh the token by using the Authorize API Endpoint. +- Service Providers shall not share, publish or display either Share Code or XML file + or its contents with anyone else. +- After 24 hours, you need to refresh the token by using the Authorize API Endpoint +- After 24 hours, you need to refresh the token +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- The GST taxpayer is authenticated using OTP Verification. +- Authorization Token will be valid for only 24 hours from the time of generating + the token. +- No Captcha Required – A frictionless experience with reduced user input. +- You need to refresh the token by using the Authorize API Endpoint after 24 hours. +- No Captcha Required +- No Captcha Required — A frictionless experience with reduced user input. +- No Captcha Required — frictionless experience with reduced user input. +- The OTP sent will be valid for 10 minutes. +- No Captcha Required — a frictionless experience with reduced user input. +- Higher Success Rates – Enhanced backend optimizations for improved reliability. +- Improved Error Handling – Clear, customer-centric responses with detailed sub_code + for seamless backend integration. +- The taxpayer must enable API access on their GST Portal account. +- Real-time UAN Verification API to extract employment details of employees and verify + EPFO details. +- Set of APIs to perform bulk operations for different checks. +- As per UIDAI compliances, sharing of Aadhaar number is not allowed. +- You need to refresh the token after 24 hours +- UIDAI on sharing and storage of Aadhaar number is not allowed. +- All API requests must be made over HTTPS. +- As per UIDAI compliance, sharing of Aadhaar number is prohibited. +- Service Providers shall not share, publish or display either Share Code or XML file + or its contents. +- As per the compliances by UIDAI on sharing and storage of Aadhaar number is not + allowed. Service Providers shall not share, publish or display either Share Code + or XML file or its contents with anyone else. +- Service Providers shall not share or display Aadhaar number or its contents. +- As per UIDAI regulations, sharing of Aadhaar number is not allowed. +- Keep your keys safe by following best practices +- As per UIDAI regulations, sharing and storage of Aadhaar number is not allowed. +- No Captcha Required. +- Compliance with UIDAI regulations is mandatory. +- Sensitive data should be handled with care. +- Higher Success Rates — Enhanced backend optimizations for improved reliability. +- UIDAI compliance requires consent storage. +- Do not share Aadhaar number or related information. +- All API requests must be made over HTTPS +- No Captcha Required for V2 +- API requests without authentication will also fail. +- As per the compliances by UIDAI, sharing and storage of Aadhaar number is not allowed. +- After 24 hours, you need to refresh the token. +- As per UIDAI regulations, sharing and storage of Aadhaar numbers is not allowed. +- UIDAI compliance requires that the Aadhaar number is not stored or shared. +- No Captcha Required - A frictionless experience with reduced user input. +- Enhanced backend optimizations for improved reliability. +- API requests without authentication will also fail +- UIDAI compliance on sharing and storage of Aadhaar number is strictly enforced. +- Service Providers must not share Aadhaar number as per UIDAI regulations. +- OTP is valid for 10 minutes. +- No captcha required in v2 for a frictionless experience. +- v2 of Deepvue’s Aadhaar eKYC APIs brings faster verifications, higher success rates, + and improved integration capabilities. +- APIs help verify vendors, customers & employees using TAN. +- APIs provide publicly available data such as name, address, and contact details. +- APIs help fetch various financial services data. +- After 24 hours, you need to refresh the token using the Authorize API Endpoint. +- No Captcha required — frictionless experience with reduced user input. +- ITR APIs helps businesses download ITR information, such as ITR ID, Filing Year, + Acknowledgement Number, ITR Form, Filing Date, ITR status, etc. +- Taxpayer APIs help businesses verify their vendors, customers & employees using + TAN. +- Higher Success Rates — enhanced backend optimizations for improved reliability. +- Improved Error Handling — clear, customer-centric responses with detailed sub_code + for seamless backend integration. +- Automated PDF Generation — instant Aadhaar eKYC PDFs for easy record-keeping and + compliance. +- As per the compliances by UIDAI, sharing or storage of Aadhaar number is not allowed. +- APIs help businesses download ITR information. +- APIs provide publicly available data for verification. +- No Captcha Required — A frictionless experience with reduced user input +- Higher Success Rates — Enhanced backend optimizations for improved reliability +- APIs help businesses download ITR information such as ITR ID, Filing Year, Acknowledgement + Number, ITR Form, Filing Date, ITR status. +- Improved Error Handling — clear, customer-centric responses with detailed sub_code. +- Automated PDF Generation – Instant Aadhaar eKYC PDFs for easy record-keeping and + compliance. +- You need to refresh the token by using the Authorize API Endpoint after 24 hours +- OTP is valid for 10 minutes +- Sharing and storage of Aadhaar number is not allowed as per UIDAI compliance. +- Requires setup of connected app in API +- The taxpayer is authenticated using OTP Verification. +- Improved Error Handling — Clear, customer-centric responses with detailed sub_code + for seamless backend integration. +- Automated PDF Generation — Instant Aadhaar eKYC PDFs for easy record-keeping and + compliance. +- OTP sent will be valid for 10 minutes +- After successful authentication, the GST Taxpayer APIs can be accessed. +- Once the taxpayer has enabled API access onto GST Portal, the OTP verification can + be carried out. +- No Captcha Required — frictionless experience +- No Captcha required — a frictionless experience with reduced user input. +- We’re excited to introduce v2 of Deepvue’s Aadhaar eKYC APIs, bringing faster verifications, + higher success rates, and improved integration capabilities. +- Any non-compliance of sharing or storing Aadhaar number may lead to actions under + relevant regulations. +- APIs also provide publicly available data such as name, address, and contact details + that can be verified against physical documents. +- Set of APIs that help with MSME Registered business verification and onboarding. +- Authorization Token will be valid for only 24 hours from the time of generating + the token. After 24 hours, you need to refresh the token. +- Sharing and storage of Aadhaar number is not allowed. +- Use API keys to Authenticate API requests. +- Session expires after 6 hours and needs refreshing. +- As per the compliances by UIDAI on sharing and storage of Aadhaar number is not + allowed. Service Providers shall not share, publish or display either Share Code + or XML file or its contents with anyone else. Any non-compliance of these actions + shall invite actions under Sections 17 and 25 of The Aadhaar (Authentication) Regulation, + 2016, Sections 4 and 6 of The Aadhaar (Sharing of Information) Regulation, 2016 + and Sections 29(2), 29 (3), and 37 of The Aadhaar Act, 2016. Consent should be mandatorily + stored at the company end to proceed with verification. +- Offline Aadhaar KYC, or OKYC, is a legally compliant KYC method as per UIDAI guidelines. +- No Captcha Required — reduces user input. +- Taxpayer must enable API access on their GST Portal account for OTP verification. +- Consent should be mandatorily stored at the company end to proceed with verification +- The taxpayer must enable API access on their GST Portal Account for OTP verification. +- First, Generate One Time Password API is called. +- The taxpayer has to allow access to the GST Portal and enable it on his own GST + Portal Account. +- The taxpayer has to allow access to the GST Portal before OTP verification. +- The taxpayer must enable API access on their GST Portal account before using the + API. +- First generate OTP for authentication before accessing the APIs. +- API access must be enabled on GST Portal account. +- If a request doesn’t include a valid key, Deepvue returns an invalid request error. +- Keep your API keys safe by following best practices +- Secure redirection flow designed to ensure explicit user consent +- As per the compliances by UIDAI sharing and storage of Aadhaar number is not allowed. +- Ensure compliance with UIDAI guidelines regarding Aadhaar data. +- UIDAI regulations prohibit sharing or displaying Aadhaar numbers. +- Consent must be stored at the company end for verification. +- Higher Success Rates +- Improved Error Handling +- Automated PDF Generation +- No Captcha Required — a frictionless experience with reduced user input +- Authorization Token will be valid for only 24 hours. +errors: +- '401: Invalid request due to invalid API key' +- '403: Authentication error due to deleted or expired key' +- '401: Invalid request' +- '403: Authentication error' +- '422: Validation error' +- '500: Server error' +- '401 Unauthorized: Invalid or expired token' +- '403 Forbidden: Access denied' +- '422 Unprocessable Entity: Validation errors' +- '500 Internal Server Error: Server error' +- '400: Bad Request' +- '401: Unauthorized' +- '403: Forbidden' +- '422: Unprocessable Entity' +- '500: Internal Server Error' +- '400: detailstring' +- '401: detailstring' +- '403: detailstring' +- '422: codenumber, timestampnumber, transaction_idstring, sub_codestring, messagestring' +- '500: codenumber, timestampnumber, transaction_idstring, sub_codestring, messagestring' +- '401: Unauthorized - Invalid credentials' +- '403: Forbidden - Access denied' +- '422: Unprocessable Entity - Validation errors' +- '500: Internal Server Error - Server issue' +- '500: Internal server error' +- '401: Unauthorized - Invalid client_id or client_secret' +- '422: Unprocessable Entity - Validation error' +- '500: Internal Server Error - Unexpected condition encountered' +- '400: RESPONSE_INVALID_AADHAAR_NUMBER' +- '400: RESPONSE_CAPTCHA_MISMATCH' +- '400: RESPONSE_AADHAAR_MOBILE_NOT_LINKED' +- '503: Service Unavailable' +- '401: Unauthorized - Invalid API key' +- '500: Internal Server Error - Unexpected error occurred' +- '401: Authentication error if key is invalid or expired' +- '403: Access denied' +- '401: Invalid request due to missing or invalid API key' +- '403: Forbidden access' +- '422: Unprocessable entity' +- '400: detail' +- '401: detail' +- '403: detail' +- '422: detail' +- '500: detail' +- '503: code, timestamp, transaction_id, message' +- '400: Invalid request' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'INVALID_REQUEST: Ensure a valid API key is included' +- 'AUTHENTICATION_ERROR: Check if the client_id and client_secret are correct' +- '503: codenumber, timestamp, transaction_id, message' +- 'RESPONSE_INVALID_AADHAAR_NUMBER: Invalid Aadhaar number.' +- 'RESPONSE_CAPTCHA_MISMATCH: Captcha does not match.' +- 'RESPONSE_AADHAAR_MOBILE_NOT_LINKED: Aadhaar mobile not linked.' +- 'RESPONSE_INVALID_SESSION: Invalid session.' +- 'RESPONSE_INVALID_OTP: Invalid OTP.' +- RESPONSE_INVALID_AADHAAR_NUMBER +- RESPONSE_CAPTCHA_MISMATCH +- RESPONSE_AADHAAR_MOBILE_NOT_LINKED +- RESPONSE_INVALID_SESSION +- RESPONSE_INVALID_OTP +- '401: Invalid API key or token expired' +- '403: Access forbidden' +- '503: detail' +- '401: Unauthorized access - Recheck your API key.' +- '403: Forbidden - Check your permissions.' +- '422: Unprocessable Entity - Check the request parameters.' +- '401 Unauthorized: Invalid API key or expired token' +- '422: detailarray' +- '500: detailstring' +- '503: codenumber' +- '401: Unauthorized - Recheck API key or token expiration' +- '403: Forbidden - Check permissions or access rights' +- '422: Unprocessable Entity - Verify request parameters' +- '422: Unprocessable Entity - Invalid request parameters' +- '500: Internal Server Error - Try again later' +- '401: Authentication error' +- '403: Permission denied' +- '401: Invalid request error for missing valid key' +- '403: Authentication error for deleted or expired key' +- '401: Invalid request or authentication error' +- '401: Invalid client_id or client_secret' +- RESPONSE_INVALID_AADHAAR +- AADHAAR_MOBILE_NOT_LINKED +- INVALID_CLIENTID_OR_API_KEY +- AUTHENTICATION_FAILURE +- VERIFICATION_PENDING +- INVALID_AADHAAR_PATTERN +- SOURCE_FAILURE +- '401 Unauthorized: Invalid API key' +- '500 Internal Server Error: An unexpected error occurred' +- '401: Invalid API key' +- '401: Invalid request error if a request doesn’t include a valid key' +- '403: Authentication error if a request includes a deleted or expired key' +- '401: Invalid API Key' +- '403: Forbidden - Access Denied' +- '422: Unprocessable Entity - Validation Errors' +- '200: RESPONSE_OTP_GENERATION_SUCCESSFUL' +- '400: RESPONSE_INVALID_AADHAAR' +- '400: AADHAAR_MOBILE_NOT_LINKED' +- '401: INVALID_CLIENTID_OR_API_KEY' +- '401: AUTHENTICATION_FAILURE' +- '409: VERIFICATION_PENDING' +- '422: INVALID_AADHAAR_PATTERN' +- '500: SOURCE_FAILURE' +- '422: Validation error due to incorrect parameters' +- '401: Unauthorized error - check client_id and client_secret' +- '403: Forbidden error - check your permissions' +- '422: Unprocessable entity - check the request parameters' +- '500: Internal server error - server issue' +- '400: DIGILOCKER_BAD_REQUEST' +- '401: RESPONSE_UNAUTHENTICATED_ACCESS' +- '403: RESPONSE_TOKEN_EXPIRED' +- '422: detail array' +- '500: detail string' +- '401 Unauthorized: Recheck OTP verification' +- '400 Bad Request: Check input parameters' +- '401: Invalid request due to authentication errors' +- '401: Invalid request - API key is missing or invalid' +- '403: Authentication error - The API key is deleted or expired' +- 'DIGILOCKER_BAD_REQUEST: Check request parameters' +- 'DIGILOCKER_SESSION_EXPIRED: Re-authenticate the session' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Ensure valid credentials' +- '401 Unauthorized: OTP verification failed or expired' +- '401: Invalid request error due to missing or invalid API key' +- '403: Authentication error due to a deleted or expired key' +- '422: Request failed due to invalid parameters' +- '422: Invalid parameters' +- '401: DIGILOCKER_SESSION_EXPIRED' +- '403: RESPONSE_UNAUTHENTICATED_ACCESS' +- '401 Unauthorized: Recheck OTP validity' +- '403: Access Forbidden' +- '401 Unauthorized: Check your client_id and client_secret' +- '422 Unprocessable Entity: Check your request parameters' +- '403: Unauthorized access' +- '401 Unauthorized: Recheck OTP verification or session expiration' +- '401: Unauthorized access, check your API key.' +- '403: Forbidden access, you do not have permission.' +- '422: Unprocessable entity, check your request parameters.' +- '401: DIGILOCKER_UNAUTHENTICATED_ACCESS' +- 'RESPONSE_DIGILOCKER_SESSION_EXPIRED: Session has expired' +- 'RESPONSE_DIGILOCKER_INVALID_URI: Invalid URI provided' +- 'RESPONSE_DIGILOCKER_BAD_REQUEST: Bad request made to the server' +- RESPONSE_DIGILOCKER_INVALID_URI +- RESPONSE_DIGILOCKER_BAD_REQUEST +- RESPONSE_DIGILOCKER_SESSION_EXPIRED +- '401: Invalid request error' +- '401 Unauthorized: Recheck OTP validity or GST registration.' +- 'DIGILOCKER_BAD_REQUEST: Invalid request format' +- 'DIGILOCKER_SESSION_EXPIRED: Session token is expired' +- 'DIGILOCKER_UNAUTHENTICATED_ACCESS: Invalid client credentials' +- 'DIGILOCKER_INVALID_CLIENT: Client ID is not valid' +- 'DIGILOCKER_INVALID_CREDENTIALS: Credentials do not match' +- '401: Unauthorized - Invalid request or expired key' +- '500: Internal Server Error - Server issues' +- '401: Invalid request - Check your API key' +- '403: Authentication error - Ensure your key is active' +- '401: Authentication error.' +- '403: Forbidden access.' +- '422: Unprocessable entity.' +- '401 Unauthorized: Recheck OTP or session expiration' +- 'DIGILOCKER_BAD_REQUEST: Check the request parameters.' +- 'DIGILOCKER_SESSION_EXPIRED: Re-initiate the session.' +- 'DIGILOCKER_INVALID_CLIENT: Verify client credentials.' +- 'DIGILOCKER_UNAUTHENTICATED_ACCESS: Ensure proper authentication.' +- '401 Unauthorized: Verify OTP or check API access settings.' +- '403: Forbidden - API key is not allowed to access this resource' +- '422: Invalid Aadhaar Pattern' +- '422: RESPONSE_INVALID_PAN_PATTERN' +- '401 Unauthorized: Verify OTP or API access settings' +- '400: Invalid request parameters' +- '401: Unauthorized access' +- '401: Invalid or expired API key' +- '422: Detail array' +- '422: RESPONSE_INVALID_AADHAAR_PATTERN' +- '403: Forbidden access to the requested resource' +- '422: Unprocessable entity due to validation errors' +- '422: Invalid PAN pattern' +- '401 Unauthorized: Recheck API key validity or expiration' +- '403 Forbidden: Ensure you have the necessary permissions' +- '422 Unprocessable Entity: Check the request parameters' +- '422: Invalid Aadhaar pattern' +- '503: Service unavailable' +- '403: Access denied due to insufficient permissions' +- '422: Validation error with provided parameters' +- '503: Service temporarily unavailable' +- RESPONSE_INVALID_PAN +- RESPONSE_UNAUTHENTICATED_ACCESS +- RESPONSE_INVALID_CLIENT +- RESPONSE_INVALID_CREDENTIALS +- RESPONSE_AUTHORIZATION_FAILURE +- RESPONSE_TOKEN_EXPIRED +- RESPONSE_ACCESS_FORBIDDEN +- RESPONSE_INTERNAL_SERVER_ERROR +- RESPONSE_SOURCE_FAILURE +- '401: Invalid request - If a request doesn’t include a valid key' +- '403: Authentication error - If a request includes a deleted or expired key' +- 'Unauthorized: Recheck ACCESS_TOKEN or CLIENT_SECRET' +- 'Invalid Request: Check the provided parameters' +- '422: pascode, timestamp, transaction_id, message' +- '422: Invalid input pattern' +- '422 Unprocessable Entity: Validation error' +- '500 Internal Server Error: Something went wrong' +- RESPONSE_INVALID_AADHAAR_PATTERN +- '403: Authentication error due to expired or deleted API key' +- '401: Authentication error if the request doesn’t include a valid key.' +- '403: Forbidden access if a deleted or expired key is used.' +- '403 Forbidden: Access denied for the requested resource' +- '401 Unauthorized: Recheck API key validity' +- '403 Forbidden: Ensure correct permissions on API key' +- '422 Unprocessable Entity: Check request parameters' +- 'Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Invalid request' +- '422 Unprocessable Entity: Request validation failed' +- '403: Forbidden, check your permissions.' +- '400: Invalid Request' +- '400: Bad Request - Check the request parameters.' +- '401: Unauthorized - Ensure ACCESS_TOKEN is valid.' +- '403: Forbidden - Ensure the API access is allowed.' +- '422: Unprocessable Entity - Check the validity of the input data.' +- Non-compliance of sharing Aadhaar number invites actions under The Aadhaar Act, + 2016. +- '400: Invalid parameters' +- '422: Invalid request format' +- '403: Forbidden - Check permissions and API access.' +- '401: Unauthorized - Verify ACCESS_TOKEN validity.' +- '401: Invalid request error - if request doesn’t include a valid key' +- '403: Authentication error - if request includes a deleted or expired key' +- '401: Invalid request - invalid key' +- '403: Authentication error - deleted or expired key' +- '401: Unauthorized - Invalid API key or missing authentication.' +- '403: Forbidden - Access denied.' +- '422: Unprocessable Entity - Validation errors.' +- '403 Forbidden: Check API key and permissions' +- '503: codenumber timestamp number transaction_id string messagestring' +- '403 Forbidden: Access denied due to insufficient permissions' +- RESPONSE_NO_CHALLAN_FOUND +- 'Invalid request error: Request doesn’t include a valid key.' +- 'Authentication error: Request includes a deleted or expired key.' +- '401: Invalid request due to missing or invalid key' +- '403 Forbidden: Check API access permissions' +- '401: Unauthorized - Invalid or expired API key' +- '422: Invalid PAN Pattern' +- '422: codenumber' +- '401: Invalid request if a request doesn’t include a valid key' +- '400: Bad Request - Invalid parameters' +- '401: Unauthorized - Invalid or expired access token' +- '403: Forbidden - Insufficient permissions' +- '503: codenumber, timestampnumber, transaction_idstring, messagestring' +- '401 Unauthorized: Invalid API key or token' +- RESPONSE_INVALID_PAN_PATTERN +- '403: Authentication error due to deleted or expired API key' +- '422: Invalid Request' +- '401 Unauthorized: Access token required or invalid.' +- '403 Forbidden: Access denied.' +- '422 Unprocessable Entity: Invalid request parameters.' +- '503: detailstring' +- '401: Invalid request, check if API key is valid' +- '403: Authentication error, check client_id/client_secret' +- '422: Validation error, check provided parameters' +- '401 Unauthorized: If a request doesn’t include a valid key.' +- '403 Forbidden: If a request includes a deleted or expired key.' +- '401: Object with detail string' +- '403: Object with detail string' +- '422: Object with detail array' +- '500: Object with detail string' +- '401 Unauthorized: Recheck API key or token expiration' +- '403 Forbidden: Check your permissions for this API' +- '422: Invalid Parameter' +- '401: Invalid request due to an invalid API key' +- '401: Invalid request error if a request doesn’t include a valid key.' +- '403: Authentication error if a request includes a deleted or expired key.' +- '401 Unauthorized: Invalid request or expired key' +- '422 Unprocessable Entity: Invalid input' +- '422: pascodenumber, timestampnumber, transaction_idstring, messagestring' +- '401: Unauthorized - Check if the API key is valid' +- '403: Forbidden - Check your permissions' +- '422: Unprocessable Entity - Check the request parameters' +- '401 Unauthorized: detailstring' +- '403 Forbidden: detailstring' +- '422 Unprocessable Entity: codenumber' +- 'Unauthorized: Recheck OAuth scopes or token expiration.' +- '400 Bad Request: Invalid input parameters' +- '500 Internal Server Error: Something went wrong on the server' +- RESPONSE_INVALID_ACCTNO_OR_IFSC +- RESPONSE_ACCT_BLOCKED +- RESPONSE_INVALID_IFSC +- RESPONSE_NRE_ACCT +- RESPONSE_SOURCE_BANK_DECLINED +- '422: Detailed validation error' +- 'INVALID_INPUT: Invalid Pan Pattern.' +- '422: Invalid Pan Pattern.' +- '403: Access forbidden due to insufficient permissions' +- '200: Bank Account details verified successfully.' +- '400: Invalid account number or IFSC' +- '200: Success' +- '422: Invalid Pattern' +- '200: RESPONSE_VALID_UPI' +- '422: RESPONSE_INVALID_VPA_PATTERN' +- '401: Invalid access token' +- '403: Authentication failed' +- '422: Invalid request data' +- 'RESPONSE_INVALID_PAN_PATTERN: Invalid Pan Pattern.' +- '200: Pan Verified Successfully.' +- '400: Detail' +- '401: Detail' +- '403: Detail' +- '500: Detail' +- '503: Detail' +- '422: Invalid request parameters' +- RESPONSE_BENEFICIARY_BANK_OFFLINE +- RESPONSE_IMPS_MODE_FAIL +- RESPONSE_NPCI_UNAVAILABLE +- 'RESPONSE_INVALID_PAN_PATTERN: Invalid PAN pattern supplied.' +- '200' +- '400' +- '401' +- '403' +- '422' +- '500' +- '503' +- '400: Invalid input' +- '422: Invalid IFSC' +- '422: codenumber, timestamp, transaction_id, sub_code, messagestring' +- '503: codenumber, timestamp, transaction_id, messagestring' +- '422: INVALID_INPUT - Invalid Pan Pattern.' +- '422: Invalid VPA pattern' +- detail +- '400: Invalid IFSC' +- '401 Unauthorized: Invalid client_id or client_secret' +- '422 Unprocessable Entity: Invalid request' +- '403 Forbidden: Access is denied' +- '422 Unprocessable Entity: Validation failed' +- '500 Internal Server Error: An error occurred on the server' +- '422: Invalid input format' +- '422: Invalid input' +- '403: Access forbidden, check your API key' +- '422: Validation error, check request parameters' +- 'Unauthorized: Check ACCESS_TOKEN validity' +- 'Invalid Request: Ensure all required parameters are provided' +- '401 Unauthorized: If a request doesn’t include a valid key' +- '403 Forbidden: If a request includes a deleted or expired key' +- '422: Detail array error' +- '400 Bad Request: Check if required parameters are missing or incorrect' +- '500 Internal Server Error: Try again later' +- '400: Detail string' +- '401: Detail string' +- '403: Detail string' +- '500: Detail string' +- '503: Detail string' +- 'INVALID_AADHAAR: Check if the Aadhaar number is valid.' +- 'OTP_EXPIRED: Request a new OTP.' +- 'SESSION_NOT_FOUND: Restart the session.' +- '401: Invalid request - API key is missing or invalid.' +- '403: Access denied - Insufficient permissions.' +- '422: Unprocessable entity - Validation failed.' +- '401: Invalid request due to missing or incorrect API key' +- '403: Access forbidden, check your API key permissions' +- '422: Validation error, check the request parameters' +- '422: Request validation error' +- '422: Invalid format' +- '401: Invalid request error if the request doesn’t include a valid key' +- '500 Internal Server Error: Server encountered an error' +- '422: Validation error with request parameters' +- '401: Unauthorized - Recheck token.' +- '500: Internal Server Error - Check server status.' +- '422: pascode, timestamp, transaction_id, messages' +- '422: Invalid pattern' +- '400: Invalid request — Check request parameters.' +- '401: Unauthorized — Recheck OAuth scopes or token expiration.' +- '500: Internal Server Error — Contact support.' +- '200: Aadhaar Verified Successfully.' +- '401: Unauthorized - Invalid API key or token' +- '422: Unprocessable entity - Validation errors' +- '422: INVALID_INPUT: Invalid Pan Pattern.' +- REQUEST_LIMIT_EXCEEDED +- QUERY_TIMEOUT +- '401: Unauthorized - Check ACCESS_TOKEN or CLIENT_SECRET' +- '200: SUCCESS' +- '422: codenumber, timestampnumber, transaction_id, sub_code, messagestring' +- '503: codenumber, timestampnumber, transaction_id, messagestring' +- '401 Unauthorized: Invalid or expired API key' +- '422: INVALID_INPUT' +- '400: Invalid input parameters' +- '401: Invalid request due to missing or expired key' +- '403: Authentication error due to deleted or invalid key' +- '422: Invalid Pan Pattern' +- 'INVALID_INPUT: Invalid input parameters provided.' +- 'RESPONSE_INVALID_PAN_PATTERN: The provided PAN number does not match the expected + format.' +- '422: Invalid Input' +- '501: Not implemented' +- '401: Unauthorized - Invalid client_id or client_secret.' +- '422: Unprocessable Entity - Invalid request parameters.' +- '400: Invalid Input' +- '401 Unauthorized: Check ACCESS_TOKEN validity' +- '403 Forbidden: Ensure proper permissions' +- '422 Unprocessable Entity: Validate input parameters' +- '401 Unauthorized: Recheck ACCESS_TOKEN or CLIENT_SECRET' +- '400 Bad Request: Check your request parameters' +- '401: Invalid request error if the request doesn’t include a valid key.' +- '403: Authentication error if the request includes a deleted or expired key.' +- '404: Not Found' +- '401: Unauthorized - Invalid API key or token has expired.' +- '422: Unprocessable Entity - Invalid input' +- '422: Error with detail array' +- '500: Error with detail string' +- '403 Forbidden: Access denied to the requested resource' +- '401 Unauthorized: Recheck API keys' +- '403 Forbidden: Check permissions' +- '422 Unprocessable Entity: Verify request parameters' +- '400: Bad Request - Invalid parameters provided.' +- '401: Unauthorized - Access token is invalid or expired.' +- '500: Internal Server Error - An unexpected error occurred.' +- '403: Access forbidden - You do not have permission to access this resource' +- '422: Unprocessable entity - Validation failed for the provided input' +- '400 Invalid Request: Check query parameters' +- '401 Unauthorized: Invalid access token' +- '422: codenumber, timestampnumber, transaction_idstring, messagestring' +- '401 Unauthorized: Provide valid API key' +- '422 Unprocessable Entity: Invalid request parameters' +- '403 Forbidden: Check access rights' +- '500 Internal Server Error: Check server status' +- '400: Invalid Aadhaar number' +- '403: Access forbidden if the request includes a deleted or expired key.' +- '422 Unprocessable Entity: Validation errors on input data' +- '500 Internal Server Error: There was an error processing the request' +- 'Invalid Aadhaar number: Please check and re-enter the Aadhaar number.' +- '401: Authentication error if request doesn’t include a valid key' +- '500: Detail string error' +- '422: Unprocessable Entity - Validation failed' +- '403: Forbidden access - check permissions' +- '422: Unprocessable entity - check request parameters' +- 401 Unauthorized +- 403 Forbidden +- 422 Unprocessable Entity +- 500 Internal Server Error +- 503 Service Unavailable +- '422: pascode, timestamp, transaction_id, messagestring' +- '422: Detail error' +- '503 Service Unavailable: Check service status or try again later' +- '401 Unauthorized: Invalid API key.' +- '401: Invalid request, if a request doesn’t include a valid key' +- '403: Authentication error, if a request includes a deleted or expired key' +- Non-compliance of actions shall invite actions under UIDAI regulations. +- '401: Unauthorized - Check your client_id and client_secret' +- '422: Unprocessable Entity - Check your request parameters' +- '401: Invalid request - check if the API key is valid' +- '403: Authentication error - check if the API key is deleted or expired' +- '403 Forbidden: Check if access is allowed' +- '400: Bad Request - Check your request parameters.' +- '401: Unauthorized - Check your access token.' +- '403: Forbidden - You do not have permission to perform this action.' +- '500: Internal Server Error - Try again later.' +- '401: Invalid request due to missing or incorrect authentication' +- '403: Forbidden due to insufficient permissions' +- '400 Bad Request: Check the request parameters' +- '422 Unprocessable Entity: Invalid input format' +- RESPONSE_INVALID_PAN_PLUS +- '401: Object detail' +- '403: Object detail' +- '422: Object detail array' +- '500: Object detail' +- '401: Unauthorized - Recheck client_id or client_secret' +- '403: Forbidden - You do not have permission to access this resource' +- 'Unauthorized: Recheck ACCESS_TOKEN validity' +- 'Invalid Aadhaar number pattern: Ensure correct format' +- 'Internal Server Error: Retry the request later' +- '500: Detail error' +- '422: codenumber, timestamp, transaction_id, messagestring' +- '403 Forbidden: Access denied due to lack of proper authentication' +- '500 Internal Server Error: Unexpected error occurred on the server' +- '403 Forbidden: Access denied - check permissions' +- '401: Invalid request due to invalid or missing API key' +- '422 Unprocessable Entity: Invalid input data' +- '403 Forbidden: Check API key permissions' +- '500 Internal Server Error: Retry the request' +- '500 Internal Server Error: Server encountered an unexpected condition' +- '400: Invalid Aadhaar Number' +- '400: Invalid Aadhaar number format.' +- '401: Unauthorized access.' +- '422: Invalid Aadhaar pattern.' +- '500: Internal server error.' +- '401: Unauthorized - Check ACCESS_TOKEN' +- '403: Forbidden - Check permissions' +- '422: Unprocessable Entity - Validate input data' +- '401: Invalid request due to invalid or expired API key' +- 'RESPONSE_INVALID_AADHAAR_PATTERN: Invalid Aadhaar pattern.' +- 'RESPONSE_INVALID_PAN: Invalid PAN number.' +- 'RESPONSE_INVALID_PAN_PATTERN: Invalid PAN pattern.' +- '200: Successful response' +- '501' +- '422: Invalid VPA Pattern' +- 'RESPONSE_INVALID_AADHAAR_PATTERN: Invalid Aadhaar Pattern.' +- 'INVALID_RC_NUMBER: Invalid RC number provided' +- '400: Bad request, check your input' +- '401: Unauthorized access, check token' +- '200: Successfully verified' +- 'RESPONSE_INVALID_PAN: Invalid PAN.' +- 'RESPONSE_INVALID_PAN_PATTERN: Invalid PAN Pattern.' +- '200: OTP Sent Successfully' +- '401: Invalid request due to missing or expired API key' +- '403: Authentication error due to invalid API key' +- '403: Forbidden - Access denied to the requested resource' +- '401: Authentication error if a request includes a deleted or expired key.' +- '403: Forbidden access due to invalid or insufficient permissions.' +- '422: Unprocessable entity if the request parameters are incorrect.' +- '422: transaction_id, code, message' +- '401: Invalid request error if API key is not included' +- '403: Authentication error if key is deleted or expired' +- '422: transaction_id, codenumber, messagestring' +- '401: Unauthorized - Invalid or expired token' +- '500: Internal Server Error - Unexpected error' +- '422: sub_codestring' +- '500: sub_codestring' +- '503: messagestring' +- '400: Bad Request - Invalid parameters.' +- '401: Unauthorized - Invalid or expired API key.' +- '500: Internal Server Error - Something went wrong.' +- '503: Service Unavailable - The service is temporarily unavailable.' +- '500: codenumber, timestamp, transaction_id, sub_code, messagestring' +- '503: codestring, timestamp, transaction_id, messagestring' +- '422: Unprocessable entity due to invalid parameters' +- '401: Invalid request - request doesn’t include a valid key' +- '403: Authentication error - request includes a deleted or expired key' +- Non-compliance actions may invite penalties under relevant Aadhaar regulations. +- '500: Internal Server Error - Unexpected condition' +- '422: codenumber, timestamp, transaction_id, sub_code, message' +- '500: codenumber, timestamp, transaction_id, sub_code, message' +- '401 Unauthorized: Invalid API key or token.' +- '422: Validation error for request parameters' +- Non-compliance may invite actions under relevant Aadhaar regulations. +- DETAILS_NOT_FOUND +- '401: Invalid request due to authentication error' +- '422: Request validation failed' +- '422: sub_code, messages' +- '500: sub_code, messages' +- '503: messages' +- '403 Forbidden: Insufficient permissions' +- '403: Forbidden access, check permissions' +- '422: Validation errors in request body' +- '500: Internal Server Error - An error occurred' +- Non-compliance of sharing Aadhaar number may invite actions under the Aadhaar Act. +- '401: Invalid request error for missing key' +- Non-compliance of actions shall invite actions under Sections 17 and 25 of The Aadhaar + (Authentication) Regulation, 2016. +- '401: Invalid request - invalid API key or request without authentication will fail.' +- '403: Authentication error - deleted or expired key.' +- '422: Unprocessable entity - check request parameters.' +- '401 Unauthorized: Recheck client_id or client_secret' +- '403 Forbidden: Check your API key or permissions' +- '401: Authentication error - invalid request' +- '403: Forbidden - access denied' +- '422: Unprocessable entity - validation error' +- '401: Invalid request due to missing or expired authentication' +- '403: Forbidden access due to invalid permissions' +- '422: codenumber, transaction_id, sub_code, messagestring' +- '500: codenumber, transaction_id, sub_code, messagestring' +- '503: codestring, transaction_id, messagestring' +- '200: Details fetched successfully' +- 'Invalid Aadhaar Number: Check the format of the Aadhaar number.' +- 'OTP Generation Failed: Ensure the mobile number is linked to the Aadhaar.' +- 'DETAILS_NOT_FOUND: No data found for the provided mobile number.' +- '400: Bad Request - Invalid input parameters.' +- '401: Unauthorized - Invalid access token.' +- '403: Forbidden - Insufficient permissions.' +- '400: Bad Request - Check your parameters' +- '401: Unauthorized - Recheck API Key or token' +- '403: Forbidden - Access denied for the requested resource' +- '422: Unprocessable Entity - Validation failed on input' +- '503: Service Unavailable - Service is temporarily unavailable' +- '401: Unauthorized access, check credentials' +- '422: Unprocessable entity, check request parameters' +- 'DETAILS_NOT_FOUND: No details found for the provided mobile number' +- '401: Invalid request error when a valid key is not included' +- '403: Authentication error when a deleted or expired key is used' +- Non-compliance of actions shall invite actions under sections of The Aadhaar Act, + 2016. +- '401: Authentication error for invalid API key' +- '422: Validation error on request parameters' +- '401: Invalid request due to missing or invalid API key.' +- '403: Authentication error due to deleted or expired key.' +- '401: Unauthorized access - Check client_id and client_secret' +- '403: Forbidden - Access is denied' +- '401: Unauthorized - Missing or invalid authentication.' +- '403: Forbidden - You do not have permission to access this resource.' +- '500: Internal Server Error - Something went wrong on the server.' +- '400: Bad Request — Check query parameters.' +- '401: Unauthorized — Check API key.' +- '403: Forbidden — Access denied.' +- '422: Unprocessable Entity — Verify request format.' +- '500: Internal Server Error — Try again later.' +- '503: Service Unavailable — Service is temporarily down.' +- '401 Unauthorized: detail' +- '403 Forbidden: detail' +- '422 Unprocessable Entity: codenumber, timestamp, transaction_id, sub_code, message' +- '500 Internal Server Error: codenumber, timestamp, transaction_id, sub_code, message' +- '503 Service Unavailable: code, timestamp, transaction_id, message' +- '401: Unauthorized - Check your client_id and client_secret.' +- '422: Unprocessable Entity - validation errors' +- '500 Internal Server Error: Unexpected error' +- 'DETAILS_NOT_FOUND: No details found for the specified mobile number' +- '400: Bad request - Invalid parameters' +- '401: Unauthorized - Invalid access token' +- '422: Unprocessable entity - Validation error' +- '401: Unauthorized - Invalid credentials provided' +- '401: Invalid request when API key is missing or invalid' +- '422: RESPONSE_INVALID_URL' +- '422: RESPONSE_INVALID_BASE64' +- '400: Invalid request details' +- '422: Response invalid URL' +- '401 Unauthorized: Recheck API key' +- '401: Authentication error if the API key is invalid or expired' +- '403: Forbidden if access to the resource is denied' +- '422: Unprocessable Entity for validation errors' +- '401: Invalid request - ensure valid API key' +- '403: Access forbidden - check permissions' +- '500: Server error - try again later' +- '401: Invalid credentials' +- '422: Invalid URL' +- '401: Unauthorized - Invalid API key or expired token' +- '422: Unprocessable Entity - Invalid parameters' +- '401: Invalid request when a request doesn’t include a valid key.' +- '403: Authentication error when a request includes a deleted or expired key.' +- '422: Unprocessable Entity - Invalid input data' +- '500 Internal Server Error: Unexpected error occurred' +- '401: Authentication error if a request doesn’t include a valid key' +- '500: Internal Server Error - Something went wrong' +- '400: Bad Request - detail' +- '401: Unauthorized - detail' +- '403: Forbidden - detail' +- '422: Unprocessable Entity - detail' +- '500: Internal Server Error - detail' +- '503: Service Unavailable - code, timestamp, transaction_id, message' +- '422: Validation error for the request' +- 'Unauthorized: Recheck authorization token or API key.' +- '422: Request parameters validation error' +- Any non-compliance of these actions shall invite actions under Sections 17 and 25 + of The Aadhaar (Authentication) Regulation, 2016. +- '401: Invalid request — check your API key' +- '403: Authentication failed — check your credentials' +- '422: Unprocessable entity — check your request parameters' +- '202: Object' +- '422: Detail' +- '503: Code, Timestamp, Transaction ID, Message' +- '400: Bad Request - Check request parameters' +- '503: Service Unavailable - Try again later' +- '400: BAD_REQUEST' +- '422 Unprocessable Entity: Validate request parameters' +- 'Invalid Aadhaar number: Check the format of the Aadhaar number.' +- 'OTP generation failed: Ensure the mobile number is linked to the Aadhaar.' +- '400: BAD_REQUEST: Please enter a valid UAM number' +- '500: Internal Server Error - Please try again later' +- '401: Authentication error if the request does not include a valid key' +- '403: Forbidden error if the request includes a deleted or expired key' +- '422: Invalid GSTIN Pattern' +- '422: codenumber, messagestring, timestampnumber, transaction_idstring' +- '422: Details in response attributes' +- '401: Invalid request — check API keys' +- '403: Forbidden — check permissions' +- '422: Unprocessable Entity — check required parameters' +- '401: Invalid request error if no valid key is included' +- '403: Authentication error if a deleted or expired key is used' +- '422: Invalid GSTIN pattern' +- '422: codenumber, message, timestamp, transaction_id' +- '403: Authentication failed - check your API key.' +- '422: Invalid parameters - ensure all required fields are included.' +- 'INVALID_AADHAAR_NUMBER: Check the Aadhaar number format.' +- 'OTP_EXPIRED: Regenerate OTP.' +- 'SESSION_NOT_FOUND: Initiate a new session.' +- RESPONSE_INVALID_GSTIN_PATTERN +- '422: RESPONSE_INVALID_GSTIN_PATTERN' +- 'RESPONSE_INVALID_GSTIN_PATTERN: Invalid GSTIN format' +- Non-compliance of sharing Aadhaar number may invite actions under UIDAI regulations. +- '422: Validation error in request parameters' +- '422: Request failed' +- 'invalid request error: If a request doesn’t include a valid key' +- 'authentication error: If a request includes a deleted or expired key' +- 'REQUEST_DENIED: Ensure proper consent is stored' +- 'INVALID_AADHAAR: Verify Aadhaar number format' +- 'OTP_EXPIRED: Regenerate OTP for valid session' +- 'INVALID_REQUEST: Check the parameters passed in the request.' +- 'UNAUTHORIZED: Ensure valid access token is provided.' +- 'FORBIDDEN: Verify user permissions for the requested operation.' +- 'Invalid request error: A request without a valid key.' +- 'Authentication error: A request with a deleted or expired key.' +- '401 Unauthorized: Invalid request due to missing or invalid API key' +- '403 Forbidden: Access denied for the request' +- '422 Unprocessable Entity: Request was well-formed but unable to be followed due + to semantic errors' +- 'Invalid GSTIN: Ensure that the GSTIN is a 15-character alpha-numeric unique identifier.' +- 'Unauthorized: Check the authorization credentials.' +- '422: Validation errors in the request' +- '401 Unauthorized: Recheck API access settings.' +- '401 Unauthorized: Recheck API key or authorization' +- 'invalid_request: Request doesn’t include a valid key.' +- 'authentication_error: Request includes a deleted or expired key.' +- '401: Invalid request error if API key is not valid' +- '403: Authentication error if API key is deleted or expired' +- '422 Unprocessable Entity: Invalid request format' +- 'Unauthorized: Invalid or expired token' +- 'Bad Request: Invalid parameters provided' +- 'INVALID_GSTIN: Check the GSTIN format.' +- 'USER_NOT_FOUND: Ensure username matches the GST portal.' +- '401 Unauthorized: Recheck the authorization parameters.' +- '401: Unauthorized access - Invalid token or expired token' +- '401: Invalid request due to missing or invalid key.' +- '401 Unauthorized: Recheck API access configuration.' +- 'Invalid GSTIN: Verify the GSTIN number provided.' +- 'Unauthorized access: Check API key and authorization.' +- 400 Bad Request +- '401: Unauthorized - Check your API key or client secret' +- '422: Unprocessable Entity - Check the parameters you provided' +- '403: Authentication error due to expired or deleted key' +- '403: Forbidden access due to insufficient permissions' +- RESPONSE_INVALID_STATE_CODE +- RESPONSE_VERIFICATION_FAILED +- RESPONSE_INVALID_INPUT +- '403: Authentication error due to unauthorized access' +- '401: Invalid request error if no valid key provided' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: detail' +- 'RESPONSE_INVALID_CLIENT: detail' +- 'RESPONSE_INVALID_CREDENTIALS: detail' +- 'RESPONSE_AUTHORIZATION_FAILURE: detail' +- 'RESPONSE_TOKEN_EXPIRED: detail' +- 'RESPONSE_ACCESS_FORBIDDEN: detail' +- 'RESPONSE_INVALID_STATE_CODE: codenumber, timestamp, transaction_id, sub_code, message' +- 'RESPONSE_VERIFICATION_FAILED: codenumber, timestamp, transaction_id, sub_code, + message' +- 'RESPONSE_INTERNAL_SERVER_ERROR: detail' +- 'RESPONSE_SOURCE_FAILURE: codenumber, timestamp, transaction_id, sub_code, message' +- '422 Invalid Input: codenumber, timestampnumber, transaction_idstring, sub_codestring, + messagestring' +- '500 Internal Server Error: detailstring' +- '401: RESPONSE_INVALID_CLIENT' +- '401: RESPONSE_INVALID_CREDENTIALS' +- '401: RESPONSE_AUTHORIZATION_FAILURE' +- '403: RESPONSE_ACCESS_FORBIDDEN' +- '422: RESPONSE_INVALID_INPUT' +- '500: RESPONSE_INTERNAL_SERVER_ERROR' +- '500: RESPONSE_SOURCE_FAILURE' +- '403: Forbidden - Access to the requested resource is denied' +- '422: Unprocessable Entity - Validation errors occurred' +- '401: Unauthorized access, check your API key' +- 'Invalid OTP: Ensure the OTP is correct and not expired.' +- 'Session Timeout: Restart the session.' +- 'Unauthorized: Check your access token.' +- '403: Access Denied' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Check your access token' +- 'RESPONSE_INVALID_CLIENT: Verify client credentials' +- 'RESPONSE_INVALID_CREDENTIALS: Ensure correct credentials are used' +- 'RESPONSE_AUTHORIZATION_FAILURE: Check access permissions' +- 'RESPONSE_TOKEN_EXPIRED: Refresh your access token' +- 'RESPONSE_ACCESS_FORBIDDEN: Verify your access rights' +- 'RESPONSE_INVALID_STATE_CODE: Ensure valid state code' +- 'RESPONSE_VERIFICATION_FAILED: Check provided information' +- 'RESPONSE_INTERNAL_SERVER_ERROR: Retry the request' +- 'RESPONSE_SOURCE_FAILURE: Contact support' +- '200: PAN details fetched successfully.' +- '401: Unauthenticated access' +- '422: RESPONSE_INVALID_STATE_CODE' +- '401: Unauthorized - Check client_id and client_secret' +- '422: Unprocessable Entity - Invalid request' +- '403: Token expired' +- '422 Invalid: Check query parameters' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: detailstring' +- 'RESPONSE_INVALID_CLIENT: detailstring' +- 'RESPONSE_INVALID_CREDENTIALS: detailstring' +- 'RESPONSE_AUTHORIZATION_FAILURE: detailstring' +- 'RESPONSE_TOKEN_EXPIRED: detailstring' +- 'RESPONSE_ACCESS_FORBIDDEN: detailstring' +- 'RESPONSE_INVALID_INPUT: codenumber, timestampnumber, transaction_idstring, sub_codestring, + messagestring' +- 'RESPONSE_INTERNAL_SERVER_ERROR: detailstring' +- 'RESPONSE_SOURCE_FAILURE: codenumber, timestampnumber, transaction_idstring, sub_codestring, + messagestring' +- '403: Authentication error for deleted or expired key.' +- non-compliance of actions shall invite actions under Sections 17 and 25 of The Aadhaar + (Authentication) Regulation, 2016. +- '401: Invalid key or authentication error' +- '403: Forbidden - Check API permissions' +- '422: Unprocessable Entity - Check request parameters' +- '401: Invalid request error if API key is not included or is invalid' +- 'Unauthorized: Recheck your access token or API key.' +- 'Bad Request: Check your request parameters.' +- 'Session expired: Restart the session to generate a new captcha.' +- 'Unauthorized: Access token is invalid or expired.' +- '401: Authentication error if the request doesn’t include a valid key' +- '401: Authentication error if request does not include a valid key or includes a + deleted or expired key.' +- '401: Invalid or expired token' +- '200: TAN Verified Successfully' +- '400: Invalid TAN' +- '422: Invalid TAN Pattern' +- '401 Unauthorized: Ensure correct gstin and username are provided.' +- Non-compliance of actions shall invite actions under Sections 17 and 25 of The Aadhaar + Act. +- Authentication error if a request includes a deleted or expired key +- '422: Invalid TAN pattern' +- '401: Unauthorized - Check your API key' +- '401: Invalid request - Check API key' +- '403: Access denied - Check permissions' +- '422: Unprocessable entity - Check request parameters' +- '422: Details of the error' +- '403: Forbidden - Invalid API key' +- 'INVALID_OTP: Ensure the OTP is correct and within the validity period' +- 'AUTH_ERROR: Check if API access is enabled on the GST Portal' +- 'OTP_EXPIRED: OTP is no longer valid, please generate a new one.' +- 'INVALID_GSTIN: The provided GSTIN is invalid.' +- 'INVALID_OTP: The OTP provided is invalid or expired.' +- 'AUTHENTICATION_FAILED: Ensure OTP verification is completed successfully.' +- Non-compliance actions under Sections 17 and 25 of The Aadhaar (Authentication) + Regulation, 2016. +- '422: Unprocessable Entity - Verify your request parameters' +- '401: Invalid request — request doesn’t include a valid key' +- '403: Authentication error — deleted or expired key' +- '422: Validation error — check request parameters' +- '500: Internal server error — unexpected error occurred' +- '401: Unauthorized - Invalid request due to missing or invalid API key' +- '403: Forbidden - You don''t have permission to access the requested resource' +- '422: Unprocessable Entity - Validation errors in the request' +- Non-compliance of actions shall invite actions under Sections 4 and 6 of The Aadhaar + (Sharing of Information) Regulation, 2016. +- Non-compliance of actions shall invite actions under Sections 29(2), 29 (3), and + 37 of The Aadhaar Act, 2016. +- 'Invalid OTP: Ensure the OTP is correct and has not expired.' +- 'Session Expired: Restart the session and generate a new captcha.' +- '422: Unprocessable Entity - invalid request parameters' +- '403 Forbidden: Check permissions or account status' +- '422: Validation error for body parameters' +- '500 Internal Server Error: Server error occurred' +- 'Invalid OTP: Check the OTP sent to the user.' +- 'Session Expired: Generate a new session.' +- 'Unauthorized Access: Verify API key.' +- '422 Unprocessable Entity: Invalid input parameters' +- '403: Authentication error due to expired or revoked API key' +- '422: Validation error with details in the response' +- '422: Validation error detailing the issue.' +- 'invalid_request: If a request doesn’t include a valid key' +- 'authentication_error: If a request includes a deleted or expired key' +- '403: Authentication error with a deleted or expired key' +- '422: Detail array of validation errors' +- '422: INCORRECT_PAYLOAD' +- '422: INCORRECT_FILE_PASSWORD' +- '422: INCORRECT_PAYLOAD_ENTTYPE' +- '422: INCORRECT_PAYLOAD_ACCNO' +- '422: INCORRECT_PAYLOAD_ACCTYPE' +- '422: INCORRECT_PAYLOAD_BANKCD' +- '422: INVALID_INPUT_ACCTYPE_NOT_FOUND' +- '422: INVALID_INPUT_ENTNAME_NOT_FOUND' +- '422: INVALID_INPUT_ACCNO_NOT_FOUND' +- '422: INVALID_INPUT_FILE_FORMAT' +- '422: INVALID_INPUT_UNABLE_TO_PROCESS' +- '422: INVALID_INPUT_FILE_MODIFIED' +- '503: INTERNAL_SERVER_ERROR' +- '504: detail' +- '400: Bad Request - Check the request parameters' +- '422: Validation error for request parameters.' +- Non-compliance may invite actions under relevant sections of The Aadhaar Act. +- '401: Invalid API key or key has expired' +- INVALID_UAN_NUMBER_PATTERN +- 'INVALID_REQUEST: Invalid request error due to missing or invalid API key' +- 'AUTHENTICATION_ERROR: Authentication error due to deleted or expired key' +- 'DETAILS_NOT_FOUND: Object not found' +- 'INVALID_UAN_NUMBER_PATTERN: Invalid UAN number' +- 'SOURCE_FAILURE: Source failure' +- 'DETAILS_NOT_FOUND: The requested details were not found' +- 'INVALID_UAN_NUMBER_PATTERN: The UAN number pattern is invalid' +- 'SOURCE_FAILURE: There was a failure in the source' +- '403: Authentication error - Check your API key status' +- '422: Invalid input - Check request parameters' +- '200: Employment History fetched successfully' +- 'DETAILS_NOT_FOUND: Details could not be found' +- '422: Validation error with details provided' +- Invalid request error if a request doesn’t include a valid key +- 'Invalid Aadhaar number: Ensure the Aadhaar number is correct' +- 'OTP Expired: Generate a new OTP' +- 'Session Timeout: Restart the session' +- '422: INVALID_UAN_NUMBER_PATTERN' +- 'Invalid OTP: Ensure OTP is correct and not expired.' +- 'Session Timeout: Restart the session to initiate a new captcha.' +- 'DETAILS_NOT_FOUND: No details found for the provided UAN number' +- 'INVALID_UAN_NUMBER_PATTERN: The provided UAN number does not match the expected + pattern' +- 'SOURCE_FAILURE: An error occurred while processing the request' +- 'DETAILS_NOT_FOUND: Check the details provided' +- 'INVALID_UAN_NUMBER_PATTERN: Verify the UAN number format' +- 'DETAILS_NOT_FOUND: Check the provided details for accuracy.' +- 'INVALID_UAN_NUMBER_PATTERN: Ensure the UAN number follows the correct format.' +- 'SOURCE_FAILURE: Verify the backend service status.' +- '401: Unauthorized - Invalid token or expired token.' +- 'DETAILS_NOT_FOUND: Details not found' +- 'INVALID_UAN_NUMBER_PATTERN: Invalid UAN number pattern' +- '401 Unauthorized: Recheck API key or token' +- 'DETAILS_NOT_FOUND: Ensure the correct details are provided.' +- 'INVALID_UAN_NUMBER_PATTERN: Check the format of the UAN number.' +- 'SOURCE_FAILURE: Verify the source of the request.' +- '401: Authentication error for invalid or expired key' +- '403: Forbidden access - insufficient permissions' +- '422: Validation errors' +- '401: Invalid request - check API key' +- '403: Forbidden - check permissions' +- '401: Invalid request if API key is not valid' +- 'INVALID_REQUEST: If a request doesn’t include a valid key' +- 'AUTHENTICATION_ERROR: If a request includes a deleted or expired key' +- 'DETAILS_NOT_FOUND: detailstring' +- 'INVALID_UAN_NUMBER_PATTERN: codenumber, timestampnumber, transaction_idstring, + sub_codestring, messagestring' +- 'SOURCE_FAILURE: codenumber, timestampnumber, transaction_idstring, sub_codestring, + messagestring' +- '422: INVALID_REQUEST_ID' +- Non-compliance of sharing Aadhaar data may invite actions under UIDAI regulations. +- 'DETAILS_NOT_FOUND: The specified details were not found.' +- 'INVALID_UAN_NUMBER_PATTERN: The provided UAN number does not match the expected + pattern.' +- 'SOURCE_FAILURE: An error occurred in the source system.' +- '401: Invalid request, check your API key' +- '403: Access denied, insufficient permissions' +- '422: Unprocessable entity, check request body' +- 'INVALID_REQUEST_ID: codenumber, timestamp, transaction_id, sub_codestring, messagestring' +- RESPONSE_INACTIVE_CLIENT +- RESPONSE_BAD_REQUEST +- RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED +- RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED +- RESPONSE_INVALID_INPUT_FILE_STRUCTURE +- 'RESPONSE_INACTIVE_CLIENT: detailstring' +- 'RESPONSE_BAD_REQUEST: detailstring' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: codenumber, timestampnumber, transaction_idstring, + sub_codestring, messagestring' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: codenumber, timestampnumber, transaction_idstring, + messagestring, sub_codestring' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: codenumber, timestampnumber, transaction_idstring, + messagestring, sub_codestring' +- 'INVALID_REQUEST_ID: Invalid request error' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Recheck API key' +- '401: Unauthorized: Recheck OAuth scopes or token expiration' +- '422: Invalid request ID' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: detailstring' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: detailstring' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: detailstring' +- 'INVALID_REQUEST_ID: codenumber, timestampnumber, transaction_idstring, sub_codestring, + messagestring' +- 'INVALID_REQUEST_ID: Check the request format' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Verify your API key' +- 'RESPONSE_INVALID_CLIENT: Confirm your client ID and secret' +- 'RESPONSE_INVALID_CREDENTIALS: Ensure your API key is valid' +- 'RESPONSE_AUTHORIZATION_FAILURE: Check your access permissions' +- 'RESPONSE_INTERNAL_SERVER_ERROR: Try again later' +- 'INVALID_REQUEST_ID: codenumber, timestamp, transaction_id, sub_codes, messages' +- 'RESPONSE_INACTIVE_CLIENT: detail' +- 'RESPONSE_BAD_REQUEST: detail' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: codenumber, timestamp, transaction_id, + sub_code, messages' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: codenumber, timestamp, transaction_id, + messages, sub_code' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: codenumber, timestamp, transaction_id, messages, + sub_code' +- '403 Forbidden: Access denied due to invalid credentials' +- '422: Validation error with detail on the response' +- 'RESPONSE_INACTIVE_CLIENT: The client is inactive.' +- 'RESPONSE_BAD_REQUEST: There was a bad request.' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Unauthenticated access.' +- 'RESPONSE_INVALID_CLIENT: The client ID is invalid.' +- 'RESPONSE_INVALID_CREDENTIALS: The credentials provided are invalid.' +- 'RESPONSE_AUTHORIZATION_FAILURE: Authorization failed.' +- 'RESPONSE_TOKEN_EXPIRED: The token has expired.' +- 'RESPONSE_ACCESS_FORBIDDEN: Access is forbidden.' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: The batch file format is not supported.' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: The batch verification limit has been + exceeded.' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: The input file structure is invalid.' +- 'RESPONSE_INTERNAL_SERVER_ERROR: An internal server error occurred.' +- '403 Object: RESPONSE_TOKEN_EXPIRED' +- '500 Object: RESPONSE_INTERNAL_SERVER_ERROR' +- 'RESPONSE_INACTIVE_CLIENT: Check if the client is inactive' +- 'RESPONSE_BAD_REQUEST: Verify request parameters' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Ensure valid access token' +- 'RESPONSE_INVALID_CLIENT: Confirm client credentials are correct' +- 'RESPONSE_INVALID_CREDENTIALS: Check client credentials' +- 'RESPONSE_AUTHORIZATION_FAILURE: Recheck authorization details' +- 'RESPONSE_TOKEN_EXPIRED: Refresh the access token' +- 'RESPONSE_ACCESS_FORBIDDEN: Ensure the client has permission' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Verify the input file format' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: Check batch size limits' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Confirm input file structure' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: codenumber' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: codenumber' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: codenumber' +- '403: Forbidden - You don''t have permission to access this resource' +- '422: Unprocessable Entity - check request parameters' +- 'RESPONSE_INACTIVE_CLIENT: Detail about the error.' +- 'RESPONSE_BAD_REQUEST: Detail about the error.' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Detail about the error.' +- 'RESPONSE_INVALID_CLIENT: Detail about the error.' +- 'RESPONSE_INVALID_CREDENTIALS: Detail about the error.' +- 'RESPONSE_AUTHORIZATION_FAILURE: Detail about the error.' +- 'RESPONSE_TOKEN_EXPIRED: Detail about the error.' +- 'RESPONSE_ACCESS_FORBIDDEN: Detail about the error.' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Detail about the error.' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: Detail about the error.' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Detail about the error.' +- 'RESPONSE_INTERNAL_SERVER_ERROR: Detail about the error.' +- '401 Unauthorized: RESPONSE_UNAUTHENTICATED_ACCESS' +- 'INVALID_REQUEST_ID: codenumber, timestamp, transaction_id, sub_code, message' +- 'RESPONSE_INACTIVE_CLIENT: Client is inactive' +- 'RESPONSE_BAD_REQUEST: Check your request parameters' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Invalid access token' +- 'RESPONSE_INVALID_CLIENT: Client credentials are invalid' +- 'RESPONSE_INVALID_CREDENTIALS: Invalid username or password' +- 'RESPONSE_AUTHORIZATION_FAILURE: Authorization failed' +- 'RESPONSE_TOKEN_EXPIRED: Access token has expired' +- 'RESPONSE_ACCESS_FORBIDDEN: Access is forbidden' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Unsupported file format' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: Verification limit exceeded' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Incorrect input file structure' +- 'RESPONSE_INTERNAL_SERVER_ERROR: An internal server error occurred' +- 'INVALID_REQUEST_ID: detailstring' +- 'RESPONSE_INACTIVE_CLIENT: Check client status' +- 'RESPONSE_BAD_REQUEST: Validate input parameters' +- 'RESPONSE_INVALID_CREDENTIALS: Check provided credentials' +- 'RESPONSE_AUTHORIZATION_FAILURE: Confirm authorization for access' +- 'RESPONSE_TOKEN_EXPIRED: Refresh token' +- 'RESPONSE_ACCESS_FORBIDDEN: Check permissions' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Ensure correct file format' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: Review batch size' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Validate file structure' +- 'RESPONSE_INTERNAL_SERVER_ERROR: Contact support' +- 'RESPONSE_BAD_REQUEST: Check request format' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Check access token' +- 'RESPONSE_INVALID_CLIENT: Check client credentials' +- 'RESPONSE_INVALID_CREDENTIALS: Check access token validity' +- 'RESPONSE_AUTHORIZATION_FAILURE: Verify authorization settings' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Check file format' +- '400: RESPONSE_INACTIVE_CLIENT' +- '400: RESPONSE_BAD_REQUEST' +- '422: RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED' +- '422: RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED' +- '422: RESPONSE_INVALID_INPUT_FILE_STRUCTURE' +- '403: RESPONSE_AUTHORIZATION_FAILURE' +- '403 Forbidden: Invalid client_id or client_secret' +- '422 Unprocessable Entity: Check the provided Aadhaar number' +- '403 RESPONSE_TOKEN_EXPIRED: detailstring' +- '422 INVALID_REQUEST_ID: codenumber' +- '201: SUCCESS' +- 'INVALID_REQUEST_ID: invalid request id' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: unauthorized access' +- 'RESPONSE_INVALID_CLIENT: invalid client' +- 'RESPONSE_INVALID_CREDENTIALS: invalid credentials' +- 'RESPONSE_AUTHORIZATION_FAILURE: authorization failure' +- 'RESPONSE_TOKEN_EXPIRED: token expired' +- 'RESPONSE_INTERNAL_SERVER_ERROR: internal server error' +- '422 INVALID_REQUEST_ID: codenumber, timestampnumber, transaction_idstring, sub_codestring, + messagestring' +- '500 RESPONSE_INTERNAL_SERVER_ERROR: detailstring' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: detail' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: detail' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: detail' +- 'RESPONSE_BAD_REQUEST: Validate request parameters' +- 'RESPONSE_INVALID_CREDENTIALS: Recheck provided credentials' +- 'RESPONSE_AUTHORIZATION_FAILURE: Check authorization permissions' +- 'RESPONSE_TOKEN_EXPIRED: Refresh access token' +- 'RESPONSE_ACCESS_FORBIDDEN: Confirm API access rights' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Check upload file format' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: Reduce batch size' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Correct input file format' +- 'RESPONSE_INTERNAL_SERVER_ERROR: Retry the request later' +- 'INVALID_REQUEST_ID: The request could not be processed due to a bad request' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Authentication failed, check API key' +- 'RESPONSE_INVALID_CLIENT: The client ID provided is invalid' +- '403 RESPONSE_TOKEN_EXPIRED: Token has expired' +- '422 INVALID_REQUEST_ID: Check the request ID provided' +- '500 RESPONSE_INTERNAL_SERVER_ERROR: An internal error occurred' +- '401: Invalid request due to lack of valid key' +- '401 Unauthorized: Recheck access token or client secret' +- 422 RESPONSE_INVALID_INPUT_FILE_STRUCTURE +- 500 RESPONSE_INTERNAL_SERVER_ERROR +- '403: Authorization failure' +- '422: Invalid request' +- '403: RESPONSE_TOKEN_EXPIRED: detail' +- '500: RESPONSE_INTERNAL_SERVER_ERROR: detail' +- INVALID_REQUEST_ID +- 'Invalid_Aadhaar_Number: Ensure the Aadhaar number is valid.' +- 'OTP_Expired: Generate a new OTP.' +- 'Session_Expired: Restart the session.' +- 'Invalid Aadhaar Number: Ensure the Aadhaar number format is correct.' +- 'Unauthorized: Check if the access token is valid and has not expired.' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Verify access token' +- 'RESPONSE_INVALID_CREDENTIALS: Verify credentials' +- 'RESPONSE_AUTHORIZATION_FAILURE: Recheck authorization' +- 'RESPONSE_TOKEN_EXPIRED: Renew access token' +- 'RESPONSE_ACCESS_FORBIDDEN: Check access rights' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Validate input file' +- '401: Invalid request - check your API key' +- '403: Authentication error - ensure your key is active' +- '422: Unprocessable entity - verify request parameters' +- '500: Internal Server Error - try again later' +- '401 RESPONSE_UNAUTHENTICATED_ACCESS: detailstring' +- '401 RESPONSE_INVALID_CLIENT: detailstring' +- '401 RESPONSE_INVALID_CREDENTIALS: detailstring' +- '401 RESPONSE_AUTHORIZATION_FAILURE: detailstring' +- '400 Bad Request: Check the request parameters.' +- '401 Unauthorized: Recheck your ACCESS_TOKEN.' +- '403 Forbidden: Ensure you have the required permissions.' +- '422 Unprocessable Entity: codenumber, timestamp, transaction_id, sub_codestring, + messagestring' +- '500 Internal Server Error: detail' +- 403 RESPONSE_TOKEN_EXPIRED +- 422 INVALID_REQUEST_ID +- 'INVALID_AADHAAR_NUMBER: The provided Aadhaar number is invalid.' +- 'UNAUTHORIZED_ACCESS: Access token is invalid or expired.' +- 'BATCH_PROCESSING_FAILED: An error occurred while processing the batch request.' +- 'RESPONSE_INACTIVE_CLIENT: Details about the error.' +- 'RESPONSE_BAD_REQUEST: Details about the error.' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Details about the error.' +- 'RESPONSE_INVALID_CLIENT: Details about the error.' +- 'RESPONSE_INVALID_CREDENTIALS: Details about the error.' +- 'RESPONSE_AUTHORIZATION_FAILURE: Details about the error.' +- 'RESPONSE_TOKEN_EXPIRED: Details about the error.' +- 'RESPONSE_ACCESS_FORBIDDEN: Details about the error.' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Details about the error.' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: Details about the error.' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Details about the error.' +- 'RESPONSE_INTERNAL_SERVER_ERROR: Details about the error.' +- '500: Internal Server Error - An unexpected error occurred' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: codenumber, timestampnumber, transaction_idstring, + messagestring' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: codenumber, timestampnumber, transaction_idstring, + messagestring' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Verify credentials' +- 'RESPONSE_INVALID_CLIENT: Confirm client ID' +- 'RESPONSE_INVALID_CREDENTIALS: Recheck credentials' +- 'RESPONSE_AUTHORIZATION_FAILURE: Ensure proper permissions' +- 'RESPONSE_TOKEN_EXPIRED: Refresh the token' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Adjust file format' +- 'RESPONSE_INTERNAL_SERVER_ERROR: Retry request later' +- 'RESPONSE_INACTIVE_CLIENT: Check client activation status' +- 'RESPONSE_BAD_REQUEST: Verify input structure' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Check authorization token' +- 'RESPONSE_INVALID_CLIENT: Validate client credentials' +- 'RESPONSE_INVALID_CREDENTIALS: Ensure correct authentication details' +- 'RESPONSE_AUTHORIZATION_FAILURE: Review access permissions' +- 'RESPONSE_TOKEN_EXPIRED: Renew authorization token' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Check input file structure' +- 'RESPONSE_INTERNAL_SERVER_ERROR: Contact support for assistance' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Check your credentials' +- 'RESPONSE_INVALID_CLIENT: Verify client ID and secret' +- 'RESPONSE_INVALID_CREDENTIALS: Recheck your access token' +- 'INVALID_REQUEST_ID: codenumber, timestampnumber, transaction_id, sub_codestring, + messagestring' +- 'RESPONSE_INACTIVE_CLIENT: Client is inactive.' +- 'RESPONSE_BAD_REQUEST: The request was invalid.' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Access token is missing.' +- 'RESPONSE_INVALID_CLIENT: Client credentials are invalid.' +- 'RESPONSE_INVALID_CREDENTIALS: Credentials are incorrect.' +- 'RESPONSE_TOKEN_EXPIRED: Access token has expired.' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: The file format is not supported.' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: The limit for verification has been + exceeded.' +- '401: Invalid request - check client_id and client_secret' +- '403: Access denied - check permissions' +- '422: Validation error - check request parameters' +- '500: Internal server error - try again later' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: codenumber, timestampnumber, transaction_id, + sub_code, messagestring' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: codenumber, timestampnumber, transaction_id, + messagestring, sub_code' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: codenumber, timestampnumber, transaction_id, + messagestring, sub_code' +- '500 Internal Server Error: Server issues' +- 401 RESPONSE_UNAUTHENTICATED_ACCESS +- 401 RESPONSE_INVALID_CLIENT +- 401 RESPONSE_INVALID_CREDENTIALS +- 401 RESPONSE_AUTHORIZATION_FAILURE +- '422: Unprocessable Entity - Validation error in request' +- 'Invalid Aadhaar Number: Ensure the Aadhaar number is valid.' +- 'OTP Generation Failed: Check the linked mobile number.' +- 'Session Expired: Restart the session to generate a new captcha.' +- '401 Unauthenticated Access: detail' +- '401 Invalid Client: detail' +- '401 Invalid Credentials: detail' +- '401 Authorization Failure: detail' +- '403 Token Expired: detail' +- '422 Invalid Request ID: codenumber, timestampnumber, transaction_idstring, sub_codestring, + messagestring' +- '401 RESPONSE_UNAUTHENTICATED_ACCESS: detail' +- '401 RESPONSE_INVALID_CLIENT: detail' +- '401 RESPONSE_INVALID_CREDENTIALS: detail' +- '401 RESPONSE_AUTHORIZATION_FAILURE: detail' +- '403 RESPONSE_TOKEN_EXPIRED: detail' +- '422 INVALID_REQUEST_ID: codenumber, timestampnumber, transaction_id, sub_codestring, + messagestring' +- '500 RESPONSE_INTERNAL_SERVER_ERROR: detail' +- 'RESPONSE_INACTIVE_CLIENT: Check if the client is active' +- 'RESPONSE_AUTHORIZATION_FAILURE: Validate authorization scopes' +- 'RESPONSE_ACCESS_FORBIDDEN: Check permissions for the resource' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Validate file format' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: Reduce the batch size' +- '201: batch processing in progress' +- 'INVALID_INPUT_FILE_STRUCTURE: Check the input file format' +- 'INTERNAL_SERVER_ERROR: Retry the request after some time' +- 'RESPONSE_BAD_REQUEST: Review request parameters' +- 'RESPONSE_INVALID_CLIENT: Validate client ID' +- 'RESPONSE_AUTHORIZATION_FAILURE: Verify authorization' +- 'RESPONSE_ACCESS_FORBIDDEN: Check API access rights' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Verify file format' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Check file structure' +- 'RESPONSE_INVALID_CLIENT: Check client ID' +- 'RESPONSE_AUTHORIZATION_FAILURE: Verify scopes' +- 'RESPONSE_TOKEN_EXPIRED: Refresh your token' +- '422 INVALID_REQUEST_ID: codenumber, timestamp, transaction_id, sub_code, message' +- '401 Unauthorized: RESPONSE_INVALID_CLIENT' +- '401 Unauthorized: RESPONSE_INVALID_CREDENTIALS' +- '401 Unauthorized: RESPONSE_AUTHORIZATION_FAILURE' +- '403 Forbidden: RESPONSE_TOKEN_EXPIRED' +- '422 Unprocessable Entity: INVALID_REQUEST_ID' +- '500 Internal Server Error: RESPONSE_INTERNAL_SERVER_ERROR' +- 'RESPONSE_INVALID_CREDENTIALS: Validate user credentials' +- 'RESPONSE_AUTHORIZATION_FAILURE: Confirm authorization settings' +- 'RESPONSE_TOKEN_EXPIRED: Refresh token and try again' +- 'RESPONSE_BAD_REQUEST: Validate request format' +- 'RESPONSE_INVALID_CLIENT: Confirm client credentials' +- 'RESPONSE_INVALID_CREDENTIALS: Verify provided credentials' +- 'RESPONSE_AUTHORIZATION_FAILURE: Check authorization settings' +- 'RESPONSE_ACCESS_FORBIDDEN: Check permission settings' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Confirm file structure' +- 'RESPONSE_BAD_REQUEST: Invalid request' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Access is not authenticated' +- 'RESPONSE_INVALID_CREDENTIALS: Credentials are incorrect' +- 'RESPONSE_TOKEN_EXPIRED: The token has expired' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Batch file format is not supported' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Input file structure is invalid' +- 'RESPONSE_INACTIVE_CLIENT: Detail' +- 'RESPONSE_BAD_REQUEST: Detail' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Detail' +- 'RESPONSE_INVALID_CLIENT: Detail' +- 'RESPONSE_INVALID_CREDENTIALS: Detail' +- 'RESPONSE_AUTHORIZATION_FAILURE: Detail' +- 'RESPONSE_TOKEN_EXPIRED: Detail' +- 'RESPONSE_ACCESS_FORBIDDEN: Detail' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Code, Timestamp, Transaction ID, Sub + Code, Message' +- 'RESPONSE_BATCH_VERIFICATION_LIMIT_EXCEEDED: Code, Timestamp, Transaction ID, Message, + Sub Code' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Code, Timestamp, Transaction ID, Message, + Sub Code' +- 'RESPONSE_INTERNAL_SERVER_ERROR: Detail' +- 'RESPONSE_ACCESS_FORBIDDEN: Check API permissions' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Review file format' +- 'INVALID_REQUEST_ID: Invalid request id' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Invalid API key' +- 'RESPONSE_INVALID_CLIENT: Invalid client' +- 'RESPONSE_INVALID_CREDENTIALS: Invalid credentials' +- 'RESPONSE_AUTHORIZATION_FAILURE: Authorization failure' +- 'RESPONSE_TOKEN_EXPIRED: Token expired' +- 'RESPONSE_INTERNAL_SERVER_ERROR: Internal server error' +- '422: Request error' +- 'RESPONSE_BAD_REQUEST: Bad request parameters' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Unauthorized access' +- 'RESPONSE_INVALID_CLIENT: Invalid client credentials' +- 'RESPONSE_ACCESS_FORBIDDEN: Access forbidden' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Invalid input file structure' +- 'RESPONSE_INACTIVE_CLIENT: Check client activation' +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Verify authentication' +- 'RESPONSE_INVALID_CREDENTIALS: Check API credentials' +- 'RESPONSE_AUTHORIZATION_FAILURE: Review authorization scopes' +- 'RESPONSE_ACCESS_FORBIDDEN: Ensure correct permissions' +- 'RESPONSE_INVALID_INPUT_FILE_STRUCTURE: Validate input file structure' +- 'RESPONSE_INTERNAL_SERVER_ERROR: Retry request' +- '500 Internal Server Error: Server issue' +- 400 RESPONSE_DATE_RANGE_EXCEED +- 400 INACTIVE_CLIENT +- '400: Invalid request error for missing API key.' +- '401: Authentication error for deleted or expired key.' +- RESPONSE_DATE_RANGE_EXCEED +- INACTIVE_CLEINT +- 'RESPONSE_UNAUTHENTICATED_ACCESS: Check authentication' +- 'RESPONSE_AUTHORIZATION_FAILURE: Review authorization' +- 'RESPONSE_ACCESS_FORBIDDEN: Check access permissions' +- '400: RESPONSE_DATE_RANGE_EXCEED' +- '400: INACTIVE_CLEINT' +- 'RESPONSE_INVALID_CREDENTIALS: Recheck authentication details' +- 'RESPONSE_BATCH_FILE_FORMAT_NOT_SUPPORTED: Confirm file format' +- 'RESPONSE_TOKEN_EXPIRED: Refresh token or reauthorize' +- '400: INACTIVE_CLIENT' +auth_info: + mentioned_objects: + - client_id + - client_secret + - OauthToken + - AuthProvider + - NamedCredential + - CLIENT_SECRET + - CLIENT_ID + - access_token + - ACCESS_TOKEN + - Authorization + - x-api-key + - token_type + - expiry +client: + base_url: https://production.deepvue.tech + auth: + type: apikey + client_id: '{{ dlt.secrets[''client_id''] }}' + client_secret: '{{ dlt.secrets[''client_secret''] }}' + location: header + header_name: x-api-key +source_metadata: null diff --git a/definitive_healthcare/definitive-healthcare-docs.md b/definitive_healthcare/definitive-healthcare-docs.md new file mode 100644 index 00000000..59fad905 --- /dev/null +++ b/definitive_healthcare/definitive-healthcare-docs.md @@ -0,0 +1,156 @@ +In this guide, we'll set up a complete Definitive Healthcare data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def definitive_healthcare_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.defhc.com/v4/odata-v4", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "NewsItems", "Executives" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='definitive_healthcare_pipeline', + destination='duckdb', + dataset_name='definitive_healthcare_data', + ) + # Load the data + load_info = pipeline.run(definitive_healthcare_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from definitive_healthcare’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Authentication Endpoint**: + - `/v4/token`: Used for obtaining an access token for authentication purposes. + +- **Hospital Data Endpoints**: + - `/v4/odata-v4/Hospitals`: Provides a list of hospitals. + - `/v4/odata-v4/Hospitals?$expand=Executives`: Retrieves a list of hospitals along with their associated executives. + +- **Executive Data Endpoint**: + - `/v4/odata-v4/Executives`: Provides information about executives. + +- **News Items Endpoint**: + - `/v4/odata-v4/NewsItems`: Accesses news items related to the organization or hospitals. + +You will then debug the Definitive Healthcare pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Definitive Healthcare support. + ```shell + dlt init dlthub:definitive_healthcare duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Definitive Healthcare API, as specified in @definitive_healthcare-docs.yaml + Start with endpoints NewsItems and Executives and skip incremental loading for now. + Place the code in definitive_healthcare_pipeline.py and name the pipeline definitive_healthcare_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python definitive_healthcare_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + To access the Definitive Healthcare API, you are required to authenticate through the OpenID process by sending a POST request to the token URL https://api.defhc.com/v4/token with your username, password, and grant type set to "password" to obtain an access token, which is mandatory for API access. + + To get the appropriate API keys, please visit the original source at https://api.defhc.com/v4/Documentation. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python definitive_healthcare_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline definitive_healthcare load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset definitive_healthcare_data + The duckdb destination used duckdb:/definitive_healthcare.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline definitive_healthcare_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("definitive_healthcare_pipeline").dataset() + # get "NewsItems" table as Pandas frame + data."NewsItems".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/definitive_healthcare/definitive-healthcare-docs.yaml b/definitive_healthcare/definitive-healthcare-docs.yaml new file mode 100644 index 00000000..ea792d5b --- /dev/null +++ b/definitive_healthcare/definitive-healthcare-docs.yaml @@ -0,0 +1,14 @@ +client: + auth: To access the Definitive Healthcare API, you are required to authenticate + through the OpenID process by sending a POST request to the token URL https://api.defhc.com/v4/token + with your username, password, and grant type set to "password" to obtain an access + token, which is mandatory for API access. + most_recurring_base_url: https://api.defhc.com + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://api.defhc.com/v4/Documentation': + - /v4/token + - /v4/odata-v4/Hospitals + - /v4/odata-v4/Hospitals?$expand=Executives + - /v4/odata-v4/Executives + - /v4/odata-v4/NewsItems diff --git a/dickson_one/dickson-one-docs.md b/dickson_one/dickson-one-docs.md new file mode 100644 index 00000000..1b61eb0f --- /dev/null +++ b/dickson_one/dickson-one-docs.md @@ -0,0 +1,154 @@ +In this guide, we'll set up a complete DicksonOne data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def dicksonone_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.dicksonone.com/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + user,,alerts,,events + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='dicksonone_migration_pipeline', + destination='duckdb', + dataset_name='dicksonone_migration_data', + ) + # Load the data + load_info = pipeline.run(dicksonone_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from dicksonone_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- User Management: Manage user accounts and related settings. +- Alerts: Create, read, update, and delete alerts within the system. +- Events: Retrieve and manage events related to devices and alerts. +- Devices: Access and manage device information. +- Account: Handle account-related information and settings. +- Locations: Manage information related to specific locations. + +You will then debug the DicksonOne pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with DicksonOne support. + ```shell + dlt init dlthub:dicksonone_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for DicksonOne API, as specified in @dicksonone_migration-docs.yaml + Start with endpoints user and and skip incremental loading for now. + Place the code in dicksonone_migration_pipeline.py and name the pipeline dicksonone_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python dicksonone_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + This source uses API key authentication, specifically requiring the key to be sent in the request header under the name 'Authorization'. + + To get the appropriate API keys, please visit the original source at https://www.dicksonone.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python dicksonone_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline dicksonone_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset dicksonone_migration_data + The duckdb destination used duckdb:/dicksonone_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline dicksonone_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("dicksonone_migration_pipeline").dataset() + # get se table as Pandas frame + data.se.df().head() + ``` + +## Running into errors? + +Be aware that the V2 API will be deprecated in the future, so transitioning to the new REST API is encouraged. Also, the API can experience request limits and potential timeouts if queries are too broad or not selective enough. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/dickson_one/dickson-one-docs.yaml b/dickson_one/dickson-one-docs.yaml new file mode 100644 index 00000000..ab13fb54 --- /dev/null +++ b/dickson_one/dickson-one-docs.yaml @@ -0,0 +1,201 @@ +resources: +- name: data_loggers + endpoint: + path: /api/rest/devices + method: GET + data_selector: records +- name: data_loggers_by_location + endpoint: + path: /api/rest/locations/:location_id/devices + method: GET + data_selector: records +- name: annotations_for_data_logger + endpoint: + path: /api/rest/devices/:token/annotations + method: GET + data_selector: records +- name: alerts + endpoint: + path: /api/rest/alerts + method: GET + data_selector: records + params: + search[tokens]: '' + search[severity]: excursion + search[started_after]: '2024-02-02T13:37:17Z' +- name: alerts_summary + endpoint: + path: /api/rest/alerts/summary + method: GET + data_selector: records + params: + search[tokens]: '' + search[severity]: warning + search[started_after]: '2024-02-02T13:37:19Z' +- name: locations + endpoint: + path: /api/rest/locations + method: GET + data_selector: records + params: + search[name]: '' + search[ids]: '' +- name: registrations + endpoint: + path: /api/rest/registrations + method: GET + data_selector: records +- name: device_registrations + endpoint: + path: /api/rest/devices/:token/registrations + method: POST + data_selector: records + params: + device[name]: My Newly-Registered Logger + device[service_name]: test.dicksonone.com + device[location_id]: 57 +- name: searches + endpoint: + path: /api/rest/searches + method: GET + data_selector: records + params: + search[query]: '' +- name: channel_annotations + endpoint: + path: /api/rest/channels/:channel_id/annotations + method: POST + data_selector: records + params: + annotation[content]: Minus commodi sed. Sed nulla rerum. Sed et laborum. + annotation[at]: '2024-01-26T16:37:33Z' +- name: channels + endpoint: + path: /channels + method: GET + data_selector: records + params: {} +- name: events + endpoint: + path: /events + method: GET + data_selector: records + params: {} +- name: user + endpoint: + path: /user + method: GET + data_selector: null + params: {} +- name: account + endpoint: + path: /account + method: GET + data_selector: null + params: {} +- name: locations + endpoint: + path: /locations + method: GET + data_selector: null + params: {} +- name: devices + endpoint: + path: /devices + method: GET + data_selector: null + params: {} +- name: alarm_events + endpoint: + path: /alarm_events + method: GET + data_selector: null + params: {} +- name: audit_logs + endpoint: + path: /audit_logs + method: GET + data_selector: null + params: {} +- name: data_loggers + endpoint: + path: /api/rest/devices + method: GET + data_selector: records + params: {} +- name: data_loggers_by_location + endpoint: + path: /api/rest/locations/:location_id/devices + method: GET + data_selector: records + params: {} +- name: annotations_for_data_logger + endpoint: + path: /api/rest/devices/:token/annotations + method: GET + data_selector: records + params: {} +- name: alerts + endpoint: + path: /alerts + method: GET + params: + search[severity]: excursion + search[started_after]: '2024-02-02T13:37:17Z' +- name: alerts_summary + endpoint: + path: /alerts/summary + method: GET + params: + search[severity]: warning + search[started_after]: '2024-02-02T13:37:19Z' +- name: locations + endpoint: + path: /locations + method: GET +- name: registrations + endpoint: + path: /registrations + method: GET +- name: channel_annotations + endpoint: + path: /channels/:channel_id/annotations + method: POST +notes: +- Uses OAuth2 with refresh token — requires setup of connected app in DicksonOne +- Uses OAuth2 with refresh token — requires setup of connected app in api +- 'Effective Date: September 30, 2024' +- The V2 API will be deprecated at some point in the future, so we encourage you to + move your integration to the new REST API. +errors: +- '301: The request was made via HTTP, rather than HTTPS.' +- '400: The request’s format was invalid.' +- '401: No API token was supplied, or the supplied API token was invalid.' +- '403: The user authenticated by the API token is not permitted to perform the requested + action.' +- '404: The requested record wasn’t found.' +- '409: Your request caused a conflict with existing data.' +- '422: The requested change was rejected due to validation errors.' +- '500: A hard-error occurred on DicksonOne’s servers.' +- '503: DicksonOne is experiencing a service outage.' +- The requested type (Other) is not supported. +- '400 Bad Request: The requested type (Other) is not supported.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://www.dicksonone.com + auth: + type: apikey + location: header + header_name: Authorization + paginator: + type: page + page_size_param: page[size] + default_page_size: 25 +source_metadata: null diff --git a/dixit_api/dixit-api-docs.md b/dixit_api/dixit-api-docs.md new file mode 100644 index 00000000..14e53370 --- /dev/null +++ b/dixit_api/dixit-api-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Dixit data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def dixit_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.dixit.com/en/become-a-customer#api/", + "auth": { + "type": "oauth2", + "token": access_token, + }, + }, + "resources": [ + createText,,getBalance,,getLanguages + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='dixit_migration_pipeline', + destination='duckdb', + dataset_name='dixit_migration_data', + ) + # Load the data + load_info = pipeline.run(dixit_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from dixit_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Text Management: Create and manage text content. +- Balance Management: Retrieve account balance information. +- Language Services: Access supported languages and language details. +- Translation Services: Manage translations and related information. + +You will then debug the Dixit pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Dixit support. + ```shell + dlt init dlthub:dixit_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Dixit API, as specified in @dixit_migration-docs.yaml + Start with endpoints createText and and skip incremental loading for now. + Place the code in dixit_migration_pipeline.py and name the pipeline dixit_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python dixit_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The Dixit API uses OAuth2 for authentication, requiring users to provide login credentials and an API key. + + To get the appropriate API keys, please visit the original source at https://www.dixit.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python dixit_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline dixit_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset dixit_migration_data + The duckdb destination used duckdb:/dixit_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline dixit_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("dixit_migration_pipeline").dataset() + # get reateTex table as Pandas frame + data.reateTex.df().head() + ``` + +## Running into errors? + +Users must enter their Dixit account login details and API key for access. Clients need to register on the platform, and the registration can be canceled within 14 days. The API does not ensure the accuracy of the information, and clients can be blocked for rule violations. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/dixit_api/dixit-api-docs.yaml b/dixit_api/dixit-api-docs.yaml new file mode 100644 index 00000000..1d284f9f --- /dev/null +++ b/dixit_api/dixit-api-docs.yaml @@ -0,0 +1,95 @@ +resources: +- name: openApiConnection + endpoint: + path: /openApiConnection + method: POST + data_selector: return + params: {} +- name: getTranslationInfo + endpoint: + path: /getTranslationInfo + method: POST + data_selector: getTranslationInfoReturn + params: {} +- name: getTextInfo + endpoint: + path: /getTextInfo + method: POST + data_selector: getTextInfoReturn + params: {} +- name: createText + endpoint: + path: /createText + method: POST + data_selector: createTextReturn + params: {} +- name: createTranslation + endpoint: + path: /createTranslation + method: POST + data_selector: createTranslationReturn + params: {} +- name: getBalance + endpoint: + path: /getBalance + method: POST + data_selector: total_credits + params: {} +- name: getTextDetail + endpoint: + path: /getTextDetail + method: POST + data_selector: textDetail + params: {} +- name: createTextMulti + endpoint: + path: /createTextMulti + method: POST + data_selector: createTextMultiReturn + params: {} +- name: getTranslationMultiInfo + endpoint: + path: /getTranslationMultiInfo + method: POST + data_selector: getTranslationInfoReturn + params: {} +- name: getCategories + endpoint: + path: /getCategories + method: POST + data_selector: getCategoriesReturn + params: {} +- name: getLanguages + endpoint: + path: /getLanguages + method: POST + data_selector: getLanguagesReturn + params: {} +- name: getWordCount + endpoint: + path: /getWordCount + method: POST + data_selector: getWordCountReturn + params: {} +notes: +- To use the Dixit API, you must enter the login details for your Dixit account (email + and password), along with your API key. +- The connection token is used by all the other functions. +- Clients must register on Dixit before being able to post a project for translation + on the platform. +- Registration on the platform is valid for an undetermined period and can be cancelled + by the client within a period of 14 days. +- Dixit does not guarantee the accuracy, completeness, or usefulness of any information + on the website. +- The translator must maintain secret all account information (login, password, translator + ID). +errors: +- If the client violates one or more of the basic rules, Dixit reserves all rights + to block the client’s access to the platform. +auth_info: + mentioned_objects: [] +client: + base_url: https://www.dixit.com/en/become-a-customer#api + auth: + type: oauth2 +source_metadata: null diff --git a/dotfile_api/dotfile-api-docs.md b/dotfile_api/dotfile-api-docs.md new file mode 100644 index 00000000..2e177d5b --- /dev/null +++ b/dotfile_api/dotfile-api-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Dotfile data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def dotfile_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.dotfile.com/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + ping,,tags,,users + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='dotfile_migrations_pipeline', + destination='duckdb', + dataset_name='dotfile_migrations_data', + ) + # Load the data + load_info = pipeline.run(dotfile_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from dotfile_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Basic Endpoints: General health check and user management functionalities. +- Case Management: Operations related to cases, including creation and status updates. +- User Management: Endpoints for managing user information and permissions. +- Tag Management: Endpoints for managing tags associated with various entities. +- Document Management: Operations for handling documents and files. + +You will then debug the Dotfile pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Dotfile support. + ```shell + dlt init dlthub:dotfile_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Dotfile API, as specified in @dotfile_migrations-docs.yaml + Start with endpoints ping and and skip incremental loading for now. + Place the code in dotfile_migrations_pipeline.py and name the pipeline dotfile_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python dotfile_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Dotfile utilizes OAuth2 for authentication, specifically through a refresh token flow. To access the API, you need to set up a connected app that provides the client ID, client secret, and refresh token. Authentication headers must include the bearer token in the Authorization header. + + To get the appropriate API keys, please visit the original source at https://www.dotfile.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python dotfile_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline dotfile_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset dotfile_migrations_data + The duckdb destination used duckdb:/dotfile_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline dotfile_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("dotfile_migrations_pipeline").dataset() + # get in table as Pandas frame + data.in.df().head() + ``` + +## Running into errors? + +When using the Dotfile API, it's essential to ensure that all requests are made over HTTPS. Be aware of the rate limits, which allow for a maximum of 300 requests per minute and bursts of 100 requests per second. Additionally, if you encounter a 401 Unauthorized error, double-check your OAuth setup and token validity. Some nested fields may return null values, which could affect data integrity. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/dotfile_api/dotfile-api-docs.yaml b/dotfile_api/dotfile-api-docs.yaml new file mode 100644 index 00000000..649280cf --- /dev/null +++ b/dotfile_api/dotfile-api-docs.yaml @@ -0,0 +1,4428 @@ +resources: +- name: cases + endpoint: + path: /cases + method: GET +- name: companies + endpoint: + path: /companies + method: GET +- name: individuals + endpoint: + path: /individuals + method: GET +- name: checks + endpoint: + path: /checks + method: GET +- name: documents + endpoint: + path: /documents + method: GET +- name: templates + endpoint: + path: /templates + method: GET +- name: users + endpoint: + path: /users + method: GET +- name: webhooks + endpoint: + path: /webhooks + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: aml_check + endpoint: + path: /v1/checks/aml + method: POST +- name: retrieve_aml_check + endpoint: + path: /v1/checks/aml/{id} + method: GET +- name: review_aml_hits + endpoint: + path: /v1/checks/aml/{id}/hits/review + method: PATCH +- name: review_aml_check + endpoint: + path: /v1/checks/aml/{id}/review + method: PATCH +- name: update_aml_check_monitoring + endpoint: + path: /v1/checks/aml/{id}/monitoring + method: PATCH +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: case + endpoint: + path: /cases + method: GET + data_selector: cases +- name: individual + endpoint: + path: /individuals + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: suspended_users + endpoint: + path: /suspended_users + method: GET + data_selector: users + params: + include_suspended: 'true' +- name: custom_email_domains + endpoint: + path: /docs/outbound-communications-configurations + method: GET +- name: automated_communications + endpoint: + path: /docs/automated-communications + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Risk Engine + endpoint: + path: /risk-engine + method: GET + data_selector: records + params: {} +- name: Tables + endpoint: + path: /tables + method: POST + data_selector: records + params: {} +- name: case + endpoint: + path: /cases + method: GET + data_selector: records +- name: suspended_users + endpoint: + path: /suspended_users + method: GET + data_selector: users + params: + include_suspended: 'true' +- name: Analytics Dashboard + endpoint: + path: /analytics/dashboard + method: GET + data_selector: data + params: {} +- name: Delegator individual + endpoint: + path: /delegator/individual + method: GET + data_selector: data + params: {} +- name: Kyckr company data + endpoint: + path: /company/data/kyckr + method: GET + data_selector: data + params: {} +- name: VideoAuto + endpoint: + path: /videoauto + method: GET +- name: VideoCertified + endpoint: + path: /videocertified + method: GET +- name: VideoExpert + endpoint: + path: /videoexpert + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: case_document + endpoint: + path: /reference/case-get-document + method: GET +- name: case_generate_report + endpoint: + path: /reference/case-generate-report + method: GET +- name: activities + endpoint: + path: /reference/activity-get-many + method: GET + data_selector: activities + params: {} +- name: case_graph + endpoint: + path: /case-graph + method: GET + data_selector: entities +- name: custom_properties + endpoint: + path: /docs/custom-properties + method: GET + data_selector: records +- name: id_document_data_comparison + endpoint: + path: /docs/id-document-data-comparison + method: GET + data_selector: records +- name: case_last_activity + endpoint: + path: /docs/case-last-activity + method: GET + data_selector: records +- name: case_report + endpoint: + path: /reference/case-generate-report + method: GET +- name: Retrieve Case Documents + endpoint: + path: /reference/case-get-document + method: GET +- name: Document Review + endpoint: + path: /reference/document-review + method: POST +- name: AML Review + endpoint: + path: /reference/aml-review + method: POST +- name: ID Document Review + endpoint: + path: /reference/id-document-review + method: POST +- name: Identity Verification + endpoint: + path: /reference/id-verification-review + method: POST +- name: AML Review Hits + endpoint: + path: /reference/aml-review-hits + method: POST +- name: Case Tags + endpoint: + path: /reference/case-tag-create-case-tags + method: POST +- name: activities + endpoint: + path: /reference/activity-get-many + method: GET + data_selector: activities +- name: case_graph + endpoint: + path: /reference/cases-guide#case-relation + method: GET +- name: ID Verification + endpoint: + path: /docs/identity-verification + method: GET + data_selector: results + params: {} +- name: identity_verification + endpoint: + path: /api/v1/identity-verification + method: POST + data_selector: results +- name: identity_document_check + endpoint: + path: /api/v1/identity-document-check + method: POST + data_selector: results +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: company_monitoring + endpoint: + path: /company/monitoring + method: POST + data_selector: data + params: {} +- name: document_analysis + endpoint: + path: /reference/document-create-one + method: GET + data_selector: records + params: {} +- name: document_templates + endpoint: + path: /document-templates + method: POST + data_selector: data + params: {} +- name: electronic_signature_check + endpoint: + path: /electronic-signature-check + method: POST + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: internal_documents + endpoint: + path: /internal/documents + method: GET + data_selector: records + params: {} +- name: client_portal_steps + endpoint: + path: /api/v1/client_portal/steps + method: GET + data_selector: steps +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: collaboration_settings + endpoint: + path: /api/collaboration/settings + method: GET + data_selector: settings +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: query_parameters + endpoint: + path: /[ClientPortal_ID]/forms + method: GET + data_selector: parameters + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: notification_events + endpoint: + path: /settings/communications + method: GET +- name: Sender Configuration + endpoint: + path: /settings/communications/sender-configuration + method: GET + data_selector: sender_config + params: {} +- name: auto_assignment + endpoint: + path: /settings/users/auto_assignment_rules + method: GET +- name: KYC Portal + endpoint: + path: /client-portals/kyc + method: GET + data_selector: records +- name: KYB Portal + endpoint: + path: /client-portals/kyb + method: GET + data_selector: records +- name: case_notes + endpoint: + path: /case_notes + method: GET + data_selector: notes + params: {} +- name: individual_import + endpoint: + path: /import/individuals + method: POST + data_selector: records + params: {} +- name: company_import + endpoint: + path: /import/companies + method: POST + data_selector: records + params: {} +- name: case_report + endpoint: + path: /reference/case-generate-report + method: GET +- name: document_export + endpoint: + path: /reference/case-get-document + method: GET +- name: notification_events + endpoint: + path: /settings/communications + method: GET +- name: reminders + endpoint: + path: /settings/communications/reminders + method: POST +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: case + endpoint: + path: /services/data/vXX.X/sobjects/Case + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: case_report + endpoint: + path: /reference/case-generate-report + method: GET + data_selector: case_report_data +- name: document_export + endpoint: + path: /reference/case-get-document + method: GET + data_selector: document_export_data +- name: Plan Details + endpoint: + path: /docs/billing/plan-details + method: GET + data_selector: records +- name: Ongoing Consumption + endpoint: + path: /docs/billing/ongoing-consumption + method: GET + data_selector: records +- name: Next Billing Date + endpoint: + path: /docs/billing/next-billing-date + method: GET + data_selector: records +- name: Invoice History + endpoint: + path: /docs/billing/invoice-history + method: GET + data_selector: records +- name: Payment Method + endpoint: + path: /docs/billing/payment-method + method: GET + data_selector: records +- name: Billing Address + endpoint: + path: /docs/billing/billing-address + method: GET + data_selector: records +- name: Billing Contact + endpoint: + path: /docs/billing/billing-contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: cases + endpoint: + path: /cases + method: GET + data_selector: records +- name: companies + endpoint: + path: /companies + method: GET + data_selector: records +- name: individuals + endpoint: + path: /individuals + method: GET + data_selector: records +- name: checks + endpoint: + path: /checks + method: GET + data_selector: records +- name: case + endpoint: + path: /services/data/vXX.X/sobjects/Case + method: GET + data_selector: records + params: + incremental: updated_at +- name: create_case + endpoint: + path: /case-create-one + method: POST +- name: company_search + endpoint: + path: /company-data-search + method: GET +- name: fetch_company + endpoint: + path: /company-data-fetch + method: GET +- name: create_company + endpoint: + path: /companies-guide + method: POST +- name: create_individual + endpoint: + path: /individuals-guide + method: POST +- name: check_results + endpoint: + path: /checks-guide + method: GET +- name: cases + endpoint: + path: /reference/case-create-one + method: POST +- name: individuals + endpoint: + path: /reference/individual-create-one + method: POST +- name: checks + endpoint: + path: /reference/checks + method: POST +- name: case_review + endpoint: + path: /reference/case-review-create-one + method: POST +- name: approve_reject_case + endpoint: + path: /reference/case-approve-reject + method: POST +- name: webhook + endpoint: + path: /webhooks + method: GET + data_selector: webhooks + params: {} +- name: logs + endpoint: + path: /webhooks/logs + method: GET + data_selector: logs + params: {} +- name: cases + endpoint: + path: /v1/cases + method: GET + data_selector: records +- name: companies + endpoint: + path: /v1/companies + method: GET + data_selector: records +- name: individuals + endpoint: + path: /v1/individuals + method: GET + data_selector: records +- name: checks + endpoint: + path: /v1/checks + method: GET + data_selector: records +- name: documents + endpoint: + path: /v1/checks/document + method: POST + data_selector: records +- name: cases + endpoint: + path: /cases + method: GET + data_selector: records +- name: companies + endpoint: + path: /companies + method: GET + data_selector: records +- name: individuals + endpoint: + path: /individuals + method: GET + data_selector: records +- name: ping + endpoint: + path: /v1/ping + method: GET +- name: case + endpoint: + path: /cases + method: GET + data_selector: cases +- name: case_review + endpoint: + path: /case/review + method: POST + data_selector: review +- name: case_relation + endpoint: + path: /case/relation + method: POST + data_selector: relation +- name: company + endpoint: + path: /companies + method: POST +- name: individual + endpoint: + path: /individuals + method: POST +- name: relation + endpoint: + path: /case-relation-create-one + method: POST +- name: create_case + endpoint: + path: /case-create-one + method: POST +- name: company_search + endpoint: + path: /company-data-search + method: GET +- name: fetch_company + endpoint: + path: /company-data-fetch + method: GET +- name: create_company + endpoint: + path: /companies-guide + method: POST +- name: create_individual + endpoint: + path: /individuals-guide + method: POST +- name: cases + endpoint: + path: /v1/cases + method: GET + data_selector: records + params: + limit: 20 +- name: case + endpoint: + path: /reference/case-create-one + method: POST +- name: individual + endpoint: + path: /reference/individual-create-one + method: POST +- name: check + endpoint: + path: /reference/check-create-one + method: POST +- name: cases + endpoint: + path: /cases + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: checks + endpoint: + path: /v1/checks + method: GET + data_selector: records + params: {} +- name: document_check + endpoint: + path: /v1/checks/document + method: POST + data_selector: check + params: {} +- name: custom_document_types + endpoint: + path: /v1/custom_document_types + method: GET + data_selector: types + params: {} +- name: document_types + endpoint: + path: /v1/document_types + method: GET + data_selector: types + params: {} +- name: create_case + endpoint: + path: /v1/cases + method: POST +- name: cases + endpoint: + path: /cases + method: POST + data_selector: response + params: {} +- name: cases + endpoint: + path: /reference/case-get-many + method: GET +- name: companies + endpoint: + path: /reference/company-get-many + method: GET +- name: individuals + endpoint: + path: /reference/individual-get-many + method: GET +- name: ping + endpoint: + path: /v1/ping + method: GET +- name: cases + endpoint: + path: /v1/cases/id + method: GET + params: + include_not_relevant: 'false' + exclude_internal_checks: 'false' +- name: cases + endpoint: + path: /v1/cases/{id} + method: PATCH + data_selector: null +- name: case + endpoint: + path: /case + method: GET + data_selector: records + params: {} +- name: create_case + endpoint: + path: /case/create + method: POST + data_selector: record + params: {} +- name: update_case + endpoint: + path: /case/update + method: PATCH + data_selector: record + params: {} +- name: delete_case + endpoint: + path: /case/delete + method: DELETE + data_selector: record + params: {} +- name: retrieve_case_notes + endpoint: + path: /case/notes + method: GET + data_selector: records + params: {} +- name: retrieve_case_documents + endpoint: + path: /case/documents + method: GET + data_selector: records + params: {} +- name: delete_case + endpoint: + path: /v1/cases/{id} + method: DELETE +- name: company + endpoint: + path: /companies + method: POST +- name: individual + endpoint: + path: /individuals + method: POST +- name: relation + endpoint: + path: /case-relation-create-one + method: POST +- name: update_relation + endpoint: + path: /case-relation-update-one + method: PATCH +- name: delete_relation + endpoint: + path: /case-relation-delete-one + method: DEL +- name: case_notes + endpoint: + path: /v1/cases/{id}/notes + method: GET + data_selector: notes + params: + created_at: '' + updated_at: '' + sort: created_at + page: 1 + limit: 20 +- name: cases + endpoint: + path: /v1/cases + method: GET + data_selector: records + params: + limit: 20 +- name: notes + endpoint: + path: /v1/cases/id/notes + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: cases + endpoint: + path: /cases + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: case_documents + endpoint: + path: /v1/cases/{id}/documents + method: GET + data_selector: documents + params: {} +- name: create_case + endpoint: + path: /v1/cases + method: POST +- name: cases + endpoint: + path: /cases/id/documents + method: GET + data_selector: data +- name: cases + endpoint: + path: /cases + method: GET + data_selector: cases +- name: case + endpoint: + path: /v1/cases/{id} + method: GET + data_selector: case + params: {} +- name: cases + endpoint: + path: /v1/cases/id + method: GET + params: + include_not_relevant: 'false' + exclude_internal_checks: 'false' +- name: automatic_risk + endpoint: + path: /v1/cases/{id}/risks + method: POST +- name: risk + endpoint: + path: /cases/id/risks + method: POST + data_selector: object +- name: case + endpoint: + path: /reference/cases + method: GET +- name: company_data + endpoint: + path: /reference/company-data + method: GET +- name: individual + endpoint: + path: /reference/individuals + method: GET +- name: check + endpoint: + path: /reference/checks + method: GET +- name: document + endpoint: + path: /reference/document + method: GET +- name: tag + endpoint: + path: /reference/tags + method: GET +- name: file + endpoint: + path: /reference/files + method: GET +- name: template + endpoint: + path: /reference/templates + method: GET +- name: client_portal + endpoint: + path: /reference/client-portal + method: GET +- name: user + endpoint: + path: /reference/users + method: GET +- name: webhook + endpoint: + path: /reference/webhooks + method: GET +- name: create_relation + endpoint: + path: /v1/cases/{caseId}/relations + method: POST +- name: update_case + endpoint: + path: /v1/cases/{id} + method: PATCH +- name: update_relation + endpoint: + path: /v1/cases/{caseId}/relations/{caseRelationId} + method: PATCH +- name: case + endpoint: + path: /v1/cases/{id} + method: DELETE +- name: delete_relation + endpoint: + path: /v1/cases/{caseId}/relations/{caseRelationId} + method: DELETE +- name: case_notes + endpoint: + path: /v1/cases/{id}/notes + method: GET + data_selector: notes + params: + created_at: created_at.{operator} + updated_at: updated_at.{operator} + sort: created_at + page: 1 + limit: 20 +- name: countries + endpoint: + path: /company-data-countries + method: GET + data_selector: countries + params: {} +- name: company_search + endpoint: + path: /company-data-search + method: GET + data_selector: companies + params: {} +- name: company_data + endpoint: + path: /company-data-fetch + method: GET + data_selector: company_data + params: {} +- name: available_documents + endpoint: + path: /company-data-get-available-documents + method: GET + data_selector: documents + params: {} +- name: document_order + endpoint: + path: /company-data-document-order-create-one + method: POST + data_selector: order_response + params: {} +- name: notes + endpoint: + path: /cases/id/notes + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: countries + endpoint: + path: /company-data/countries + method: GET + data_selector: countries + params: {} +- name: cases + endpoint: + path: /cases/id/documents + method: GET +- name: countries + endpoint: + path: /company-data/countries + method: GET + data_selector: data +- name: entity_legal_forms + endpoint: + path: /v1/company-data/entity-legal-forms + method: GET + data_selector: records + params: {} +- name: case_review + endpoint: + path: /v1/cases/{id}/reviews + method: POST +- name: entity_legal_forms + endpoint: + path: /company-data/entity-legal-forms + method: GET + data_selector: data +- name: case_review + endpoint: + path: /cases/id/reviews + method: POST + data_selector: object + params: {} +- name: search_companies + endpoint: + path: /v1/company-data/search + method: GET + data_selector: companies + params: + country: required + name: '' + registration_number: '' +- name: automatic_risk + endpoint: + path: /v1/cases/{id}/risks + method: POST +- name: company_data_search + endpoint: + path: /company-data/search + method: GET + data_selector: data +- name: fetch_company_data + endpoint: + path: /company-data/fetch + method: GET + data_selector: data +- name: risk + endpoint: + path: /cases/id/risks + method: POST + data_selector: object + params: {} +- name: company_data + endpoint: + path: /company-data/fetch/{search_ref} + method: GET +- name: company_data + endpoint: + path: /v1/company-data/fetch/search_ref + method: GET + data_selector: object + params: {} +- name: create_relation + endpoint: + path: /v1/cases/{caseId}/relations + method: POST +- name: available_documents + endpoint: + path: /v1/company-data/available-documents + method: GET + params: + company_id: '' + country: '' + registration_number: '' +- name: update_relation + endpoint: + path: /v1/cases/{caseId}/relations/{caseRelationId} + method: PATCH +- name: delete_relation + endpoint: + path: /v1/cases/{caseId}/relations/{caseRelationId} + method: DELETE +- name: document_orders + endpoint: + path: /company-data/document-orders + method: POST +- name: available_documents + endpoint: + path: /company-data/get-available-documents + method: GET +- name: countries + endpoint: + path: /company-data-countries + method: GET +- name: company_search + endpoint: + path: /company-data-search + method: GET +- name: company_data + endpoint: + path: /company-data-fetch + method: GET +- name: available_documents + endpoint: + path: /company-data-get-available-documents + method: GET +- name: document_order + endpoint: + path: /company-data-document-order-create-one + method: POST +- name: companies + endpoint: + path: /companies + method: GET + data_selector: records + params: + sort: created_at + page: 1 + limit: 20 +- name: companies + endpoint: + path: /companies + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: countries + endpoint: + path: /company-data/countries + method: GET + data_selector: countries + params: {} +- name: countries + endpoint: + path: /company-data/countries + method: GET + data_selector: data + params: + include_none: 'false' +- name: create_company + endpoint: + path: /v1/companies + method: POST +- name: entity_legal_forms + endpoint: + path: /v1/company-data/entity-legal-forms + method: GET + data_selector: records + params: {} +- name: entity_legal_forms + endpoint: + path: /entity-legal-forms + method: GET + data_selector: data + params: {} +- name: company + endpoint: + path: /v1/companies/{id} + method: GET + params: + exclude_internal_checks: 'false' +- name: search_companies + endpoint: + path: /v1/company-data/search + method: GET + data_selector: companies + params: + country: ISO 3166-1 alpha-2 country code +- name: companies + endpoint: + path: /companies/id + method: GET + params: + exclude_internal_checks: 'false' +- name: company_data_search + endpoint: + path: /company-data/search + method: GET + data_selector: data +- name: update_company + endpoint: + path: /v1/companies/{id} + method: PATCH +- name: company_data + endpoint: + path: /company-data/fetch/{search_ref} + method: GET +- name: company_vendor_data + endpoint: + path: /v1/companies/{id}/vendor-data + method: GET + data_selector: vendor_data + params: + id: uuid + name: string + fetched_at: string + sort: string + page: number + limit: number +- name: company_data_search + endpoint: + path: /v1/company-data/fetch/search_ref + method: GET + data_selector: object + params: {} +- name: available_documents + endpoint: + path: /v1/company-data/available-documents + method: GET + params: + company_id: '' + country: '' + registration_number: '' +- name: vendor_data + endpoint: + path: /companies/id/vendor-data + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: document_order + endpoint: + path: /company-data/document-orders + method: POST +- name: set_company_relevance + endpoint: + path: /v1/companies/{id}/set-relevant + method: POST +- name: document_order + endpoint: + path: /company-data/document-orders + method: POST +- name: available_documents + endpoint: + path: /company-data/get-available-documents + method: GET +- name: companies + endpoint: + path: /companies + method: GET + data_selector: companies + params: + page: 1 + limit: 20 +- name: individuals + endpoint: + path: /v1/individuals + method: GET + data_selector: records + params: + sort: created_at + page: 1 + limit: 20 +- name: individuals + endpoint: + path: /individuals + method: GET + params: + sort: created_at + page: 1 + limit: 20 +- name: companies + endpoint: + path: /companies + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: individual + endpoint: + path: /v1/individuals + method: POST +- name: company + endpoint: + path: /v1/companies + method: POST +- name: company + endpoint: + path: /v1/companies/{id} + method: GET + data_selector: company + params: + exclude_internal_checks: 'false' +- name: individual + endpoint: + path: /v1/individuals/{id} + method: GET + data_selector: individual + params: + exclude_internal_checks: 'false' +- name: company + endpoint: + path: /companies/id + method: GET + data_selector: object +- name: individual + endpoint: + path: /individuals/id + method: GET +- name: update_company + endpoint: + path: /v1/companies/{id} + method: PATCH +- name: individual + endpoint: + path: /v1/individuals/{id} + method: PATCH +- name: individual_relevance + endpoint: + path: /v1/individuals/{id}/set-relevant + method: POST +- name: company_vendor_data + endpoint: + path: /v1/companies/{id}/vendor-data + method: GET + data_selector: vendor_data + params: + id: uuid + name: string + fetched_at: string + sort: string + page: number + limit: number +- name: checks + endpoint: + path: /reference/check-get-many + method: GET + data_selector: records + params: {} +- name: company_vendor_data + endpoint: + path: /companies/id/vendor-data + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: checks + endpoint: + path: /v1/checks + method: GET + data_selector: records + params: {} +- name: set_company_relevance + endpoint: + path: /v1/companies/{id}/set-relevant + method: POST +- name: company_vendor_data + endpoint: + path: /companies/id/set-relevant + method: POST + data_selector: null + params: {} +- name: checks + endpoint: + path: /checks + method: GET + data_selector: data + params: + sort: updated_at + page: 1 + limit: 20 +- name: individual + endpoint: + path: /individuals + method: GET + data_selector: records + params: {} +- name: company_monitoring_check + endpoint: + path: /v1/checks/company-monitoring/{id} + method: GET +- name: individuals + endpoint: + path: /individuals + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: company_monitoring + endpoint: + path: /checks/company-monitoring/id + method: GET +- name: individual + endpoint: + path: /v1/individuals + method: POST +- name: individual + endpoint: + path: /v1/individuals/{id} + method: GET + data_selector: '' + params: + exclude_internal_checks: 'false' +- name: electronic_signature + endpoint: + path: /checks/electronic_signature + method: POST + data_selector: result + params: {} +- name: individual + endpoint: + path: /individuals/id + method: GET + params: + exclude_internal_checks: 'false' +- name: electronic_signature_check + endpoint: + path: /v1/checks/electronic_signature/{id} + method: GET +- name: individual + endpoint: + path: /v1/individuals/{id} + method: PATCH +- name: electronic_signature + endpoint: + path: /checks/electronic_signature/id + method: GET +- name: electronic_signature_check + endpoint: + path: /v1/checks/electronic_signature/{id}/review + method: PATCH +- name: set_individual_relevance + endpoint: + path: /v1/individuals/{id}/set-relevant + method: POST +- name: electronic_signature_check + endpoint: + path: /v1/checks/electronic_signature + method: GET + data_selector: object +- name: ID Document check + endpoint: + path: /id-document-checks-guide + method: POST + data_selector: results + params: {} +- name: Review ID Document check + endpoint: + path: /id-document-review + method: PATCH + data_selector: results + params: {} +- name: checks + endpoint: + path: /v1/checks + method: GET + data_selector: records + params: {} +- name: checks + endpoint: + path: /checks + method: GET + data_selector: data + params: + sort: updated_at + page: 1 + limit: 20 +- name: id_document_check + endpoint: + path: /v1/checks/id_document + method: POST +- name: id_document_check + endpoint: + path: /v1/checks/id_document + method: POST + data_selector: data +- name: company_monitoring_check + endpoint: + path: /v1/checks/company-monitoring/{id} + method: GET +- name: company_monitoring + endpoint: + path: /checks/company-monitoring/id + method: GET + data_selector: object +- name: id_document_check + endpoint: + path: /checks/id_document/{id} + method: GET + data_selector: object + params: {} +- name: electronic_signature_check + endpoint: + path: /v1/checks/electronic_signature + method: POST +- name: add_files + endpoint: + path: /v1/checks/id_document/{id}/add_files + method: POST +- name: id_document_check + endpoint: + path: /checks/id_document + method: POST +- name: electronic_signature + endpoint: + path: /v1/checks/electronic_signature + method: POST + data_selector: object +- name: id_document_check + endpoint: + path: /v1/checks/id_document/{id}/review + method: PATCH +- name: electronic_signature_check + endpoint: + path: /v1/checks/electronic_signature/{id} + method: GET +- name: id_document_check + endpoint: + path: /v1/checks/id_document/{id} + method: GET + data_selector: object + params: {} +- name: electronic_signature_check + endpoint: + path: /checks/electronic_signature/id + method: GET +- name: id_verification_check + endpoint: + path: /id-verification-checks + method: POST + data_selector: check_results +- name: electronic_signature_review + endpoint: + path: /v1/checks/electronic_signature/{id}/review + method: PATCH +- name: webhook + endpoint: + path: /webhooks + method: GET +- name: ping + endpoint: + path: /ping + method: GET +- name: check + endpoint: + path: /checks + method: GET +- name: retrieve_electronic_signature_check + endpoint: + path: /v1/checks/electronic_signature/id/review + method: PATCH + data_selector: object + params: {} +- name: ID Verification check + endpoint: + path: /v1/checks/id_verification + method: POST +- name: id_document_check + endpoint: + path: /id-document-checks + method: POST + data_selector: result +- name: review_id_document_check + endpoint: + path: /id-document-review + method: PATCH + data_selector: result +- name: id_verification_check + endpoint: + path: /v1/checks/id_verification + method: POST + data_selector: object + params: {} +- name: id_document_check + endpoint: + path: /v1/checks/id_document + method: POST +- name: id_verification + endpoint: + path: /checks/id_verification/id + method: GET + data_selector: object + params: {} +- name: id_document_check + endpoint: + path: /v1/checks/id_document + method: POST + data_selector: data + params: {} +- name: ID Verification check + endpoint: + path: /v1/checks/id_verification/{id}/review + method: PATCH +- name: id_verification_check + endpoint: + path: /v1/checks/id_verification + method: GET + data_selector: object +- name: id_document_check + endpoint: + path: /checks/id_document/id + method: GET + data_selector: result + params: {} +- name: id_verification_refresh_url + endpoint: + path: /v1/checks/id_verification/{id}/refresh_url + method: POST +- name: add_files + endpoint: + path: /v1/checks/id_document/{id}/add_files + method: POST +- name: id_verification_check + endpoint: + path: /v1/checks/id_verification + method: GET + data_selector: object + params: {} +- name: id_document_check + endpoint: + path: /checks/id_document + method: POST + data_selector: result + params: {} +- name: AML check + endpoint: + path: /aml-create-one + method: POST + data_selector: records +- name: Review AML check + endpoint: + path: /aml-review + method: POST + data_selector: review_result +- name: id_document_check_review + endpoint: + path: /v1/checks/id_document/{id}/review + method: PATCH +- name: aml_check + endpoint: + path: /v1/checks/aml + method: POST +- name: id_document_check + endpoint: + path: /v1/checks/id_document + method: GET + data_selector: object + params: {} +- name: ID Verification check + endpoint: + path: /id-verification-checks + method: POST + data_selector: results +- name: aml_check + endpoint: + path: /checks/aml + method: POST + data_selector: object + params: {} +- name: webhook_events + endpoint: + path: /webhooks + method: GET +- name: id_document_check + endpoint: + path: /id-document-check + method: POST +- name: id_verification_check + endpoint: + path: /id-verification-check + method: POST +- name: aml_check + endpoint: + path: /v1/checks/aml/{id} + method: GET +- name: id_verification_check + endpoint: + path: /v1/checks/id_verification + method: POST +- name: aml_check + endpoint: + path: /checks/aml/id + method: GET + data_selector: object +- name: id_verification_check + endpoint: + path: /v1/checks/id_verification + method: POST + data_selector: object +- name: aml_review_hits + endpoint: + path: /v1/checks/aml/{id}/hits/review + method: PATCH +- name: id_verification_check + endpoint: + path: /v1/checks/id_verification/{id} + method: GET +- name: id_verification_check + endpoint: + path: /checks/id_verification/id + method: GET +- name: aml_check + endpoint: + path: /checks/aml + method: GET + data_selector: object + params: {} +- name: id_verification_check_review + endpoint: + path: /v1/checks/id_verification/{id}/review + method: PATCH +- name: aml_check_review + endpoint: + path: /v1/checks/aml/{id}/review + method: PATCH +- name: id_verification_check + endpoint: + path: /checks/id_verification + method: GET + data_selector: result + params: {} +- name: aml_check + endpoint: + path: /v1/checks/aml/id/review + method: PATCH + data_selector: result + params: {} +- name: id_verification_refresh_url + endpoint: + path: /v1/checks/id_verification/{id}/refresh_url + method: POST +- name: AML check monitoring + endpoint: + path: /v1/checks/aml/{id}/monitoring + method: PATCH +- name: id_verification_check + endpoint: + path: /checks/id_verification + method: POST +- name: aml_check + endpoint: + path: /aml-create-one + method: POST + data_selector: records + params: {} +- name: document_check + endpoint: + path: /document-checks + method: POST + data_selector: check + params: {} +- name: custom_document_types + endpoint: + path: /custom-document/get-many + method: GET + data_selector: custom_documents + params: {} +- name: review_aml_check + endpoint: + path: /aml-review + method: POST + data_selector: check_data + params: {} +- name: aml_check + endpoint: + path: /v1/checks/aml + method: POST +- name: review_check_result + endpoint: + path: /document-review + method: PATCH + data_selector: action + params: {} +- name: document_check + endpoint: + path: /checks/document + method: POST + data_selector: data + params: {} +- name: aml_check + endpoint: + path: /v1/checks/aml + method: POST + data_selector: object + params: {} +- name: document_check_add_files + endpoint: + path: /v1/checks/document/{id}/add_files + method: POST +- name: aml_check + endpoint: + path: /v1/checks/aml/{id} + method: GET +- name: document_check + endpoint: + path: /v1/checks/document + method: POST + data_selector: object + params: {} +- name: aml_check + endpoint: + path: /v1/checks/aml/id + method: GET + data_selector: object +- name: aml_review_hits + endpoint: + path: /v1/checks/aml/{id}/hits/review + method: PATCH +- name: force_review + endpoint: + path: /v1/checks/document/{id}/force_review + method: POST +- name: aml_check_review + endpoint: + path: /v1/checks/aml/{id}/review + method: PATCH +- name: document_check + endpoint: + path: /checks/document + method: GET + data_selector: data + params: {} +- name: aml_check + endpoint: + path: /checks/aml/{id} + method: PATCH + data_selector: data +- name: document_check + endpoint: + path: /v1/checks/document/{id}/review + method: PATCH +- name: update_aml_check_monitoring + endpoint: + path: /v1/checks/aml/{id}/monitoring + method: PATCH +- name: document_check + endpoint: + path: /v1/checks/document + method: GET + data_selector: result + params: {} +- name: aml_check + endpoint: + path: /v1/checks/aml + method: GET + data_selector: results +- name: custom_document_types + endpoint: + path: /v1/custom_document_types + method: GET + params: + include_archived: false + sort: created_at.desc + page: 1 + limit: 20 +- name: document_check + endpoint: + path: /document-checks + method: POST + data_selector: data + params: {} +- name: document_types + endpoint: + path: /custom-document-get-many + method: GET + data_selector: document_types + params: {} +- name: custom_document_types + endpoint: + path: /custom_document_types + method: GET + data_selector: data + params: + sort: created_at.desc + page: 1 + limit: 20 +- name: review_document_check + endpoint: + path: /document-review + method: PATCH + data_selector: review_check_result + params: {} +- name: create_document_check + endpoint: + path: /document-create-one + method: POST + data_selector: create_check_response + params: {} +- name: document_types + endpoint: + path: /v1/document_types + method: GET + data_selector: records + params: {} +- name: document_check + endpoint: + path: /checks/document + method: POST + data_selector: settings + params: {} +- name: document_types + endpoint: + path: /v1/document_types + method: GET + data_selector: data +- name: add_files + endpoint: + path: /v1/checks/document/{id}/add_files + method: POST +- name: online_reputation_check + endpoint: + path: /v1/checks/online_reputation + method: POST +- name: document_check + endpoint: + path: /v1/checks/document + method: POST + data_selector: object + params: {} +- name: online_reputation_check + endpoint: + path: /checks/online_reputation + method: POST + data_selector: object +- name: document_check + endpoint: + path: /v1/checks/document/{id} + method: GET +- name: online_reputation_check + endpoint: + path: /v1/checks/online_reputation/{id} + method: GET +- name: document_check + endpoint: + path: /checks/document + method: GET +- name: force_review + endpoint: + path: /v1/checks/document/{id}/force_review + method: POST +- name: online_reputation + endpoint: + path: /checks/online_reputation/id + method: GET + data_selector: result + params: {} +- name: online_reputation_check + endpoint: + path: /v1/checks/online_reputation/{id}/review + method: PATCH +- name: document_check + endpoint: + path: /checks/document + method: GET + data_selector: data + params: {} +- name: online_reputation + endpoint: + path: /checks/online_reputation/id/review + method: PATCH + data_selector: data + params: {} +- name: note + endpoint: + path: /v1/notes + method: POST +- name: document_check_review + endpoint: + path: /v1/checks/document/{id}/review + method: PATCH +- name: note + endpoint: + path: /v1/notes + method: POST + data_selector: object + params: {} +- name: document_check + endpoint: + path: /v1/checks/document + method: PATCH + data_selector: result + params: {} +- name: note_comment + endpoint: + path: /v1/notes/{id}/comments + method: POST +- name: custom_document_types + endpoint: + path: /v1/custom_document_types + method: GET + params: + include_archived: false + sort: created_at.desc + page: 1 + limit: 20 +- name: custom_document_types + endpoint: + path: /v1/custom_document_types + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: activities + endpoint: + path: /activities + method: GET + data_selector: activities + params: + case_id: '' + individual_id: '' + company_id: '' + type: '' + author_id: '' + sort: created_at + page: 1 + limit: 20 +- name: document_types + endpoint: + path: /v1/document_types + method: GET + data_selector: document_types +- name: activities + endpoint: + path: /activities + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: document_types + endpoint: + path: /document_types + method: GET + data_selector: data + params: + sort: created_at.desc + page: 1 + limit: 20 +- name: tags + endpoint: + path: /v1/cases/{id}/tags + method: POST +- name: online_reputation_check + endpoint: + path: /v1/checks/online_reputation + method: POST + data_selector: '' +- name: case_tags + endpoint: + path: /v1/cases/{id}/tags + method: GET + data_selector: tags + params: {} +- name: online_reputation_check + endpoint: + path: /v1/checks/online_reputation + method: POST + data_selector: object + params: {} +- name: delete_case_tags + endpoint: + path: /v1/cases/{id}/tags + method: DELETE + data_selector: tags +- name: online_reputation_check + endpoint: + path: /v1/checks/online_reputation/{id} + method: GET +- name: online_reputation_check + endpoint: + path: /checks/online_reputation/id + method: GET + data_selector: object + params: {} +- name: tags + endpoint: + path: /v1/tags + method: GET + data_selector: tags + params: + page: 1 + limit: 20 +- name: online_reputation_check + endpoint: + path: /v1/checks/online_reputation/{id}/review + method: PATCH +- name: tags + endpoint: + path: /tags + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: online_reputation + endpoint: + path: /v1/checks/online_reputation + method: GET + data_selector: object + params: {} +- name: review_online_reputation + endpoint: + path: /v1/checks/online_reputation/id/review + method: PATCH + data_selector: object + params: {} +- name: tag + endpoint: + path: /tags + method: POST + data_selector: object + params: {} +- name: tag + endpoint: + path: /v1/tags/{id} + method: GET + data_selector: object +- name: note + endpoint: + path: /v1/notes + method: POST + data_selector: note + params: + case_id: uuid + content: string +- name: tags + endpoint: + path: /v1/tags/{id} + method: PATCH + data_selector: object +- name: notes + endpoint: + path: /v1/notes + method: POST + data_selector: object + params: {} +- name: files + endpoint: + path: /v1/files + method: GET +- name: upload_file + endpoint: + path: /file-upload-file + method: POST +- name: download_file + endpoint: + path: /v1/files/{file.id} + method: GET +- name: activities + endpoint: + path: /v1/activities + method: GET + data_selector: activities + params: + case_id: '' + individual_id: '' + company_id: '' + type: '' + author_id: '' + sort: created_at + page: 1 + limit: 20 +- name: Upload a file + endpoint: + path: /file-upload-file + method: POST +- name: Download a File + endpoint: + path: /file-get-file + method: GET +- name: activities + endpoint: + path: /activities + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: upload_file + endpoint: + path: /v1/files/upload + method: POST +- name: case_tag + endpoint: + path: /v1/cases/{id}/tags + method: POST +- name: case_tags + endpoint: + path: /v1/cases/{id}/tags + method: GET + data_selector: tags +- name: file + endpoint: + path: /files/{id} + method: GET + data_selector: file +- name: delete_case_tags + endpoint: + path: /v1/cases/{id}/tags + method: DELETE +- name: templates + endpoint: + path: /templates + method: GET + data_selector: templates +- name: run_template + endpoint: + path: /templates/run + method: POST + data_selector: result +- name: tags + endpoint: + path: /v1/tags + method: GET + data_selector: tags + params: + page: 1 + limit: 20 +- name: templates + endpoint: + path: /v1/templates + method: GET + data_selector: results + params: + sort: updated_at + page: 1 + limit: 20 +- name: tags + endpoint: + path: /tags + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: templates + endpoint: + path: /templates + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: tags + endpoint: + path: /tags + method: POST +- name: template + endpoint: + path: /templates/{id} + method: GET + data_selector: object + params: {} +- name: tag + endpoint: + path: /v1/tags/{id} + method: GET + data_selector: object + params: {} +- name: run_template + endpoint: + path: /v1/templates/run + method: POST +- name: tags + endpoint: + path: /v1/tags/{id} + method: PATCH +- name: share_client_portal_link + endpoint: + path: /v1/cases/{id}/share-client-portal-link + method: POST +- name: client_portal + endpoint: + path: /v1/client-portals + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: files + endpoint: + path: /v1/files + method: GET +- name: upload_file + endpoint: + path: /file-upload-file + method: POST +- name: download_file + endpoint: + path: /v1/files/{file_id} + method: GET +- name: client_portals + endpoint: + path: /client-portals + method: GET + data_selector: data +- name: upload_file + endpoint: + path: /file-upload-file + method: POST +- name: download_file + endpoint: + path: /file-get-file + method: GET +- name: complete_client_portal_wait_step + endpoint: + path: /v1/cases/{id}/complete-client-portal-wait-step + method: POST +- name: upload_file + endpoint: + path: /v1/files/upload + method: POST +- name: tables + endpoint: + path: /tables + method: GET + data_selector: data +- name: files + endpoint: + path: /files/{id} + method: GET + data_selector: file + params: {} +- name: tables + endpoint: + path: /tables/{id} + method: GET + data_selector: object +- name: templates + endpoint: + path: /templates/run + method: POST +- name: custom_properties + endpoint: + path: /v1/custom-properties/{target_entity} + method: GET + data_selector: custom_properties +- name: templates + endpoint: + path: /v1/templates + method: GET + data_selector: records + params: {} +- name: custom_properties + endpoint: + path: /v1/custom-properties/case + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: custom_property + endpoint: + path: /custom-properties/{target_entity}/{key} + method: GET +- name: templates + endpoint: + path: /templates + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: template + endpoint: + path: /templates/{id} + method: GET +- name: users + endpoint: + path: /v1/users + method: GET + data_selector: users + params: + include_suspended: 'false' + page: '1' + limit: '20' +- name: run_template + endpoint: + path: /v1/templates/run + method: POST +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: share_client_portal_link + endpoint: + path: /v1/cases/{id}/share-client-portal-link + method: POST +- name: user + endpoint: + path: /users/{id} + method: GET + data_selector: object + params: {} +- name: webhook + endpoint: + path: /webhook-create-one + method: POST + data_selector: payload +- name: client_portal + endpoint: + path: /v1/client-portals + method: GET + data_selector: records + params: {} +- name: client_portals + endpoint: + path: /client-portals + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: webhooks + endpoint: + path: /v1/webhooks + method: GET + data_selector: webhooks + params: {} +- name: complete_client_portal_wait_step + endpoint: + path: /v1/cases/{id}/complete-client-portal-wait-step + method: POST + data_selector: completed_wait_step_keys + params: {} +- name: webhooks + endpoint: + path: /v1/webhooks + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: tables + endpoint: + path: /reference/table-get-many + method: GET + data_selector: tables +- name: tables + endpoint: + path: /tables + method: GET + data_selector: data + params: {} +- name: webhook + endpoint: + path: /v1/webhooks + method: POST + data_selector: null + params: {} +- name: webhook + endpoint: + path: /v1/webhooks + method: POST + data_selector: object + params: {} +- name: table + endpoint: + path: /tables/{id} + method: GET + data_selector: object + params: {} +- name: webhook + endpoint: + path: /v1/webhooks/{id} + method: GET +- name: custom_properties + endpoint: + path: /v1/custom-properties/{target_entity} + method: GET + data_selector: custom_properties + params: {} +- name: webhook + endpoint: + path: /webhooks/id + method: GET + data_selector: object + params: {} +- name: custom_properties + endpoint: + path: /custom-properties/case + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: webhook + endpoint: + path: /v1/webhooks + method: GET + data_selector: object + params: {} +- name: custom_property + endpoint: + path: /custom-properties/{target_entity}/{key} + method: GET + data_selector: 200 Detailed custom property + params: {} +- name: webhook + endpoint: + path: /v1/webhooks/{id} + method: DELETE + data_selector: null + params: + id: uuid +- name: users + endpoint: + path: /users + method: GET + data_selector: '' +- name: cases + endpoint: + path: /reference/cases + method: GET +- name: companies + endpoint: + path: /reference/companies + method: GET +- name: individuals + endpoint: + path: /reference/individuals + method: GET +- name: checks + endpoint: + path: /reference/checks + method: GET +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: cases + endpoint: + params: + filter: name.eq=john + sort: status,updated_at.desc +- name: webhooks + endpoint: + params: + filter: type.eq=user + sort: created_at +- name: user + endpoint: + path: /users/{id} + method: GET + data_selector: object + params: {} +- name: ping + endpoint: + path: /v1/ping + method: GET +- name: webhook + endpoint: + path: /webhooks + method: POST + data_selector: payload + params: {} +- name: case + endpoint: + path: /cases + method: GET + data_selector: cases +- name: case_review + endpoint: + path: /case/review + method: POST + data_selector: review +- name: case_relation + endpoint: + path: /case/relation + method: POST + data_selector: relation +- name: create_company + endpoint: + path: /companies + method: POST +- name: create_individual + endpoint: + path: /individuals + method: POST +- name: create_relation + endpoint: + path: /case-relation-create-one + method: POST +- name: update_relation + endpoint: + path: /case-relation-update-one + method: PATCH +- name: delete_relation + endpoint: + path: /case-relation-delete-one + method: DELETE +- name: webhooks + endpoint: + path: /v1/webhooks + method: GET + data_selector: webhooks +- name: webhook + endpoint: + path: /v1/webhooks + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: countries + endpoint: + path: /reference/company-data-countries + method: GET + data_selector: countries +- name: companies + endpoint: + path: /reference/company-get-many + method: GET + data_selector: companies +- name: search_companies + endpoint: + path: /reference/company-data-search + method: GET + data_selector: companies +- name: fetch_company_data + endpoint: + path: /reference/company-data-fetch + method: GET + data_selector: company_data +- name: available_documents + endpoint: + path: /reference/company-data-get-available-documents + method: GET + data_selector: documents +- name: create_document_order + endpoint: + path: /reference/company-data-document-order-create-one + method: POST + data_selector: order_confirmation +- name: create_webhook + endpoint: + path: /v1/webhooks + method: POST +- name: webhook + endpoint: + path: /v1/webhooks + method: POST + data_selector: events + params: {} +- name: countries + endpoint: + path: /reference/company-data-countries + method: GET +- name: company_data + endpoint: + path: /reference/company-data-fetch + method: GET +- name: search_companies + endpoint: + path: /reference/company-data-search + method: GET +- name: webhook + endpoint: + path: /v1/webhooks/{id} + method: GET +- name: webhook + endpoint: + path: /v1/webhooks/id + method: GET + data_selector: object + params: {} +- name: companies + endpoint: + path: /v1/companies + method: GET + data_selector: companies + params: + sort: created_at + page: 1 + limit: 20 +- name: update_webhook + endpoint: + path: /v1/webhooks/{id} + method: PATCH +- name: webhook + endpoint: + path: /v1/webhooks/id + method: PATCH + data_selector: data + params: {} +- name: companies + endpoint: + path: /companies + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: individuals + endpoint: + path: /individuals + method: GET + data_selector: records + params: + limit: '20' +- name: individuals + endpoint: + path: /individuals + method: GET + params: + sort: created_at + page: 1 + limit: 20 +- name: cases + endpoint: + path: /cases + method: GET + params: + limit: '50' + page: '23' +- name: webhooks + endpoint: + path: /webhooks + method: GET + params: + page: '42' +- name: checks + endpoint: + path: /reference/check-get-many + method: GET + data_selector: records + params: {} +- name: create_check + endpoint: + path: /reference/check-create-one + method: POST + data_selector: records + params: {} +- name: delete_check + endpoint: + path: /reference/check-delete-one + method: DELETE + data_selector: records + params: {} +- name: company_monitoring + endpoint: + path: /checks/company-monitoring/id + method: GET +- name: ping + endpoint: + path: /ping + method: GET +- name: case + endpoint: + path: /cases + method: GET + data_selector: cases +- name: company + endpoint: + path: /companies + method: POST +- name: individual + endpoint: + path: /individuals + method: POST +- name: relation + endpoint: + path: /case-relation-create-one + method: POST +- name: electronic_signature + endpoint: + path: /checks/electronic_signature + method: POST + data_selector: object + params: {} +- name: id_document_check + endpoint: + path: /id-document-checks + method: POST + data_selector: check_result +- name: review_id_document_check + endpoint: + path: /id-document-review + method: PATCH + data_selector: review_result +- name: countries + endpoint: + path: /reference/company-data-countries + method: GET + data_selector: countries +- name: company_search + endpoint: + path: /reference/company-data-search + method: GET + data_selector: companies +- name: company_data + endpoint: + path: /reference/company-data-fetch + method: GET + data_selector: company_data +- name: available_documents + endpoint: + path: /reference/company-data-get-available-documents + method: GET + data_selector: documents +- name: document_order + endpoint: + path: /reference/company-data-document-order-create-one + method: POST + data_selector: order_response +- name: countries + endpoint: + path: /reference/company-data-countries + method: GET +- name: company + endpoint: + path: /reference/company-data-fetch + method: GET +- name: individuals + endpoint: + path: /reference/individuals + method: GET +- name: ID Verification check + endpoint: + path: /id-verification-checks + method: POST + data_selector: results + params: {} +- name: Review ID Verification check + endpoint: + path: /id-verification-review + method: PATCH + data_selector: results + params: {} +- name: companies + endpoint: + path: /companies + method: GET + data_selector: companies + params: + page: 1 + limit: 20 +- name: webhook + endpoint: + path: /webhooks + method: GET + data_selector: webhooks + params: {} +- name: companies + endpoint: + path: /companies + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: AML check + endpoint: + path: /aml-create-one + method: POST + data_selector: records +- name: Review AML hits + endpoint: + path: /aml-review-hits + method: PATCH + data_selector: records +- name: individuals + endpoint: + path: /individuals + method: GET + data_selector: records + params: + incremental: updated_at +- name: AML check + endpoint: + path: /aml-review + method: POST + data_selector: check data review object +- name: individuals + endpoint: + path: /individuals + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: document_check + endpoint: + path: /document-checks + method: POST + data_selector: check + params: {} +- name: list_custom_document_types + endpoint: + path: /custom-document-get-many + method: GET + data_selector: document_types + params: {} +- name: review_check_result + endpoint: + path: /document-review + method: POST + data_selector: '' + params: {} +- name: company_monitoring_check + endpoint: + path: /v1/checks/company-monitoring/{id} + method: GET + data_selector: response_data + params: + id: uuid +- name: online_reputation + endpoint: + path: /v1/checks/online_reputation + method: POST + data_selector: object + params: {} +- name: company_monitoring + endpoint: + path: /checks/company-monitoring + method: GET + data_selector: data + params: {} +- name: note + endpoint: + path: /v1/notes + method: POST +- name: electronic_signature + endpoint: + path: /checks/electronic_signature + method: POST + data_selector: object + params: {} +- name: notes + endpoint: + path: /v1/notes + method: POST + data_selector: object + params: {} +- name: activities + endpoint: + path: /v1/activities + method: GET + data_selector: activities +- name: ID Document check + endpoint: + path: /id-document-checks-guide + method: POST + data_selector: data + params: {} +- name: Review ID Document check + endpoint: + path: /id-document-review + method: PATCH + data_selector: data + params: {} +- name: activities + endpoint: + path: /activities + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: identity_verification_check + endpoint: + path: /id-verification-checks + method: post + data_selector: results + params: {} +- name: review_id_verification_check + endpoint: + path: /id-verification-review + method: patch + data_selector: results + params: {} +- name: tags + endpoint: + path: /v1/cases/{id}/tags + method: POST +- name: case + endpoint: + path: /reference/cases + method: GET + data_selector: records +- name: company + endpoint: + path: /reference/companies + method: GET + data_selector: records +- name: individual + endpoint: + path: /reference/individuals + method: GET + data_selector: records +- name: check + endpoint: + path: /reference/checks + method: GET + data_selector: records +- name: document + endpoint: + path: /reference/documents + method: GET + data_selector: records +- name: files + endpoint: + path: /v1/files + method: GET +- name: upload_file + endpoint: + path: /file-upload-file + method: POST +- name: download_file + endpoint: + path: /v1/files/{file_id} + method: GET +- name: aml_check + endpoint: + path: /aml-create-one + method: POST + data_selector: check + params: {} +- name: upload_file + endpoint: + path: /file-upload-file + method: POST +- name: download_file + endpoint: + path: /file-get-file + method: GET +- name: AML check + endpoint: + path: /aml-review + method: POST + data_selector: review_check_result + params: {} +- name: templates + endpoint: + path: /templates + method: GET +- name: run_template + endpoint: + path: /templates/run + method: POST +- name: document_check + endpoint: + path: /document-checks + method: POST + data_selector: document_check + params: {} +- name: review_check + endpoint: + path: /document-review + method: PATCH + data_selector: review_result + params: {} +- name: share_client_portal_link + endpoint: + path: /v1/cases/{id}/share-client-portal-link + method: POST +- name: online_reputation_check + endpoint: + path: /checks/online_reputation + method: POST +- name: note + endpoint: + path: /v1/notes + method: POST +- name: note + endpoint: + path: /v1/notes + method: POST + data_selector: object + params: {} +- name: custom_properties + endpoint: + path: /v1/custom-properties/{target_entity} + method: GET + data_selector: custom_properties + params: + sort: created_at +- name: custom_properties + endpoint: + path: /custom-properties + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: activities + endpoint: + path: /v1/activities + method: GET + data_selector: activities + params: + limit: 20 +- name: activities + endpoint: + path: /activities + method: GET + data_selector: data + params: + sort: created_at + page: 1 + limit: 20 +- name: users + endpoint: + path: /users + method: GET + data_selector: users + params: + include_suspended: 'false' + page: 1 + limit: 20 +- name: users + endpoint: + path: /v1/users + method: GET + data_selector: data + params: + page: 1 + limit: 20 +- name: add_tags_to_case + endpoint: + path: /v1/cases/{id}/tags + method: POST +- name: webhooks + endpoint: + path: /webhooks + method: POST + data_selector: payload +- name: files + endpoint: + path: /v1/files + method: GET +- name: upload_file + endpoint: + path: /file-upload-file + method: POST +- name: download_file + endpoint: + path: /v1/files/{file.id} + method: GET +- name: upload_file + endpoint: + path: /file-upload-file + method: POST +- name: download_file + endpoint: + path: /file-get-file + method: GET +- name: templates + endpoint: + path: /templates + method: GET +- name: run_template + endpoint: + path: /templates/run + method: POST +- name: share_client_portal_link + endpoint: + path: /v1/cases/{id}/share-client-portal-link + method: POST +- name: case + endpoint: + path: /v1/cases + method: GET + data_selector: cases + params: {} +- name: case_notes + endpoint: + path: /v1/cases/{id}/notes + method: GET + data_selector: notes + params: {} +- name: case_documents + endpoint: + path: /v1/cases/{id}/documents + method: GET + data_selector: documents + params: {} +- name: tables + endpoint: + path: /reference/table-get-many + method: GET + data_selector: records +- name: custom_properties + endpoint: + path: /custom-properties/{target_entity} + method: GET + data_selector: custom_properties + params: {} +- name: case + endpoint: + path: /v1/cases/{id} + method: GET + data_selector: '' + params: + id: '' +- name: case_review + endpoint: + path: /v1/cases/{id}/reviews + method: POST + data_selector: '' + params: + id: '' +- name: risk + endpoint: + path: /v1/cases/{id}/risks + method: POST + data_selector: '' + params: + id: '' +- name: case_relation + endpoint: + path: /v1/cases/{caseId}/relations + method: POST + data_selector: '' + params: + caseId: '' +- name: update_case_relation + endpoint: + path: /v1/cases/{caseId}/relations/{caseRelationId} + method: PATCH + data_selector: '' + params: + caseId: '' + caseRelationId: '' +- name: delete_case_relation + endpoint: + path: /v1/cases/{caseId}/relations/{caseRelationId} + method: DELETE + data_selector: '' + params: + caseId: '' + caseRelationId: '' +- name: countries + endpoint: + path: /v1/company-data/countries + method: GET + data_selector: '' + params: {} +- name: entity_legal_forms + endpoint: + path: /v1/company-data/entity-legal-forms + method: GET + data_selector: '' + params: {} +- name: company_search + endpoint: + path: /v1/company-data/search + method: GET + data_selector: '' + params: {} +- name: company_data_fetch + endpoint: + path: /v1/company-data/fetch/{search_ref} + method: GET + data_selector: '' + params: + search_ref: '' +- name: available_documents + endpoint: + path: /v1/company-data/available-documents + method: GET + data_selector: '' + params: {} +- name: document_order + endpoint: + path: /v1/company-data/document-orders + method: POST + data_selector: '' + params: {} +- name: list_companies + endpoint: + path: /v1/companies + method: GET + data_selector: '' + params: {} +- name: custom_properties + endpoint: + path: /custom-properties/case + method: GET + params: + sort: created_at + page: 1 + limit: 20 +- name: users + endpoint: + path: /v1/users + method: GET + params: + include_suspended: 'false' + page: 1 + limit: 20 +- name: company + endpoint: + path: /v1/companies/{id} + method: GET + data_selector: companies + params: {} +- name: individual + endpoint: + path: /v1/individuals + method: GET + data_selector: individuals + params: {} +- name: check + endpoint: + path: /v1/checks + method: GET + data_selector: checks + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: + page: '1' + limit: '20' +- name: checks + endpoint: + path: /v1/checks + method: GET + data_selector: checks + params: + page: 1 + limit: 20 + sort: updated_at +- name: webhook + endpoint: + path: /webhook + method: POST + data_selector: payload +- name: id_verification_check + endpoint: + path: /v1/checks/id_verification/{id} + method: GET + data_selector: payload +- name: aml_check + endpoint: + path: /v1/checks/aml + method: POST + data_selector: payload +- name: document_check + endpoint: + path: /v1/checks/document + method: POST + data_selector: payload +- name: cases + endpoint: + path: /v1/cases + method: GET + data_selector: cases +- name: case_notes + endpoint: + path: /v1/cases/{id}/notes + method: GET + data_selector: notes +- name: case_documents + endpoint: + path: /v1/cases/{id}/documents + method: GET + data_selector: documents +- name: online_reputation_check + endpoint: + path: /v1/checks/online_reputation + method: POST +- name: online_reputation_get_one + endpoint: + path: /v1/checks/online_reputation/{id} + method: GET +- name: online_reputation_review + endpoint: + path: /v1/checks/online_reputation/{id}/review + method: PATCH +- name: note_create_one_note + endpoint: + path: /v1/notes + method: POST +- name: note_create_one_note_comment + endpoint: + path: /v1/notes/{id}/comments + method: POST +- name: activity_get_many + endpoint: + path: /v1/activities + method: GET +- name: case_review + endpoint: + path: /v1/cases/{id}/reviews + method: POST + data_selector: '201' + params: + id: + required: true +- name: case_risk + endpoint: + path: /v1/cases/{id}/risks + method: POST + data_selector: '201' + params: + id: + required: true +- name: case_relation + endpoint: + path: /v1/cases/{caseId}/relations + method: POST + data_selector: '201' + params: + caseId: + required: true +- name: case_relation_update + endpoint: + path: /v1/cases/{caseId}/relations/{caseRelationId} + method: PATCH + data_selector: '200' + params: + caseId: + required: true + caseRelationId: + required: true +- name: case_relation_delete + endpoint: + path: /v1/cases/{caseId}/relations/{caseRelationId} + method: DELETE + data_selector: '204' + params: + caseId: + required: true + caseRelationId: + required: true +- name: company_data_countries + endpoint: + path: /v1/company-data/countries + method: GET + data_selector: '200' + params: {} +- name: company_data_entity_legal_forms + endpoint: + path: /v1/company-data/entity-legal-forms + method: GET + data_selector: '200' + params: {} +- name: company_data_search + endpoint: + path: /v1/company-data/search + method: GET + data_selector: '200' + params: + country: + required: true +- name: company_data_fetch + endpoint: + path: /v1/company-data/fetch/{search_ref} + method: GET + data_selector: '200' + params: + search_ref: + required: true +- name: company_data_available_documents + endpoint: + path: /v1/company-data/available-documents + method: GET + data_selector: '200' + params: {} +- name: company_data_document_order + endpoint: + path: /v1/company-data/document-orders + method: POST + data_selector: '201' + params: {} +- name: company_get_many + endpoint: + path: /v1/companies + method: GET + data_selector: '200' + params: {} +- name: case_tags + endpoint: + path: /v1/cases/{id}/tags + method: POST + data_selector: tags + params: + id: required +- name: tag + endpoint: + path: /v1/tags + method: GET + data_selector: tags + params: {} +- name: file_upload + endpoint: + path: /v1/files/upload + method: POST + data_selector: uploadedFile + params: {} +- name: file_download + endpoint: + path: /v1/files/{id} + method: GET + data_selector: file + params: + id: required +- name: company + endpoint: + path: /v1/companies/{id} + method: GET +- name: individual + endpoint: + path: /v1/individuals + method: GET +- name: check + endpoint: + path: /v1/checks + method: GET +- name: template + endpoint: + path: /v1/templates/{id} + method: GET +- name: client_portal + endpoint: + path: /v1/cases/{id}/share-client-portal-link + method: POST +- name: check + endpoint: + path: /v1/checks + method: GET + data_selector: checks + params: {} +- name: company_monitoring_check + endpoint: + path: /v1/checks/company-monitoring/{id} + method: GET + data_selector: check + params: {} +- name: electronic_signature_check + endpoint: + path: /v1/checks/electronic_signature + method: POST + data_selector: check + params: {} +- name: id_document_check + endpoint: + path: /v1/checks/id_document + method: POST + data_selector: check + params: {} +- name: id_verification_check + endpoint: + path: /v1/checks/id_verification + method: POST + data_selector: check + params: {} +- name: updated_at + endpoint: + params: + updated_at: + required: false + in: query + description: Filter items by the `updated_at.{operator}` field. +- name: status + endpoint: + params: + status: + required: false + in: query + description: Filter items by the `status.{operator}` field. +- name: type + endpoint: + params: + type: + required: false + in: query + description: Filter items by the `type.{operator}` field. +- name: url + endpoint: + params: + url: + required: false + in: query + description: Filter items by the `url.{operator}` field. +- name: events + endpoint: + params: + events: + required: false + in: query + description: Filter items by the `events.{operator}` field. +- name: sort + endpoint: + params: + sort: + required: false + in: query + description: Use this parameter to sort query results. +- name: page + endpoint: + params: + page: + required: false + in: query + description: Query response is paginated. +- name: limit + endpoint: + params: + limit: + required: false + in: query + description: Query response is paginated. +- name: id_verification + endpoint: + path: /v1/checks/id_verification/{id} + method: POST + data_selector: data + params: + id: + required: true +- name: aml_check + endpoint: + path: /v1/checks/aml + method: POST + data_selector: data + params: {} +- name: document_check + endpoint: + path: /v1/checks/document + method: POST + data_selector: data + params: {} +- name: webhook + endpoint: + path: /webhooks + method: POST + data_selector: webhook + params: {} +- name: webhook + endpoint: + path: /v1/webhooks/{id} + method: GET + data_selector: webhook + params: {} +- name: webhook_update + endpoint: + path: /v1/webhooks/{id} + method: PATCH + data_selector: webhook + params: {} +- name: webhook_delete + endpoint: + path: /v1/webhooks/{id} + method: DELETE + data_selector: webhook + params: {} +- name: activities + endpoint: + path: /v1/activities + method: GET + data_selector: activities + params: + limit: 20 +- name: case-tags + endpoint: + path: /v1/cases/{id}/tags + method: post + data_selector: content + params: + id: + required: true + in: path + description: Id of the case +- name: tag + endpoint: + path: /v1/tags + method: get + data_selector: content + params: {} +- name: upload-file + endpoint: + path: /v1/files/upload + method: post + data_selector: content + params: {} +- name: CompanySearch + endpoint: + path: /company-search + method: GET + data_selector: data + params: {} +- name: CompanyData + endpoint: + path: /company-data + method: GET + data_selector: data + params: {} +- name: CompanyList + endpoint: + path: /company/list + method: GET + data_selector: data + params: {} +- name: PaginatedCompanyList + endpoint: + path: /company/paginated + method: GET + data_selector: data + params: {} +- name: template + endpoint: + path: /v1/templates + method: GET + data_selector: templates +- name: template_detail + endpoint: + path: /v1/templates/{id} + method: GET + data_selector: template +- name: run_template + endpoint: + path: /v1/templates/run + method: POST + data_selector: execution +- name: client_portal_link + endpoint: + path: /v1/cases/{id}/share-client-portal-link + method: POST + data_selector: clientPortalLink +- name: complete_wait_step + endpoint: + path: /v1/cases/{id}/complete-client-portal-wait-step + method: POST + data_selector: completedWaitStep +- name: client_portals + endpoint: + path: /v1/client-portals + method: GET + data_selector: clientPortals +- name: tables + endpoint: + path: /v1/tables + method: GET + data_selector: tables +- name: table_detail + endpoint: + path: /v1/tables/{id} + method: GET + data_selector: table +- name: custom_properties + endpoint: + path: /v1/custom-properties/{target_entity} + method: GET + data_selector: customProperties +- name: custom_property_detail + endpoint: + path: /v1/custom-properties/{target_entity}/{key} + method: GET + data_selector: customProperty +- name: users + endpoint: + path: /v1/users + method: GET + data_selector: users +- name: user_detail + endpoint: + path: /v1/users/{id} + method: GET + data_selector: user +- name: webhooks + endpoint: + path: /v1/webhooks + method: GET + data_selector: webhooks +- name: webhooks + endpoint: + params: + updated_at: '' + status: '' + type: '' + url: '' + events: '' + sort: updated_at + page: 1 + limit: 20 +- name: IdVerificationCheckData + endpoint: + path: /id-verification/check + method: POST + data_selector: data +- name: IdVerificationCheck + endpoint: + path: /id-verification/checks + method: GET + data_selector: checks +- name: webhook-create-one + endpoint: + path: /webhook-create-one + method: POST + data_selector: webhook + params: {} +- name: webhook + endpoint: + path: /v1/webhooks/{id} + method: GET + data_selector: webhook + params: + id: '' +- name: webhook_update + endpoint: + path: /v1/webhooks/{id} + method: PATCH + data_selector: webhook + params: + id: '' +- name: webhook_delete + endpoint: + path: /v1/webhooks/{id} + method: DELETE + data_selector: '' + params: + id: '' +- name: Activity + endpoint: + path: /api/activity + method: GET + data_selector: data + params: {} +- name: CompanySearch + endpoint: + path: /company/search + method: GET + data_selector: data + params: {} +- name: CompanyData + endpoint: + path: /company/data + method: GET + data_selector: data + params: {} +- name: company_list + endpoint: + path: /companies + method: GET + data_selector: data + params: {} +- name: company_create + endpoint: + path: /companies/create + method: POST + data_selector: data + params: {} +- name: IdVerificationCheck + endpoint: + path: /api/id_verification_check + method: POST + data_selector: data +- name: aml_check + endpoint: + path: /aml/check + method: POST + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: WebhookCreate + endpoint: + path: /webhooks/create + method: POST + data_selector: data + params: {} +- name: WebhookUpdate + endpoint: + path: /webhooks/update + method: PUT + data_selector: data + params: {} +- name: WebhookList + endpoint: + path: /webhooks + method: GET + data_selector: data + params: {} +- name: CheckDeletedWebhook + endpoint: + path: /webhooks/check-deleted + method: POST + data_selector: data + params: {} +notes: +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Dotfile is an End-to-End Business Verification platform that allows you to verify + your customers anywhere in the world. +- A significant advantage of Dotfile is its flexibility. You can opt to do information + collection through your own product or front-end. +- Two-factor authentication (2FA) adds an additional step to logging in for increased + security. +- 2FA can be enabled by all user types and is recommended for security. +- Cases have a Unique ID, a Name, and a Status - Draft, Open, Approved, or Rejected. +- The Case status can be changed manually at any time or can be set to switch to Approved + automatically once all the Checks - on all the Entities in the Case - are Approved + themselves. +- Individuals can be marked as 'not relevant' without losing historical data. +- Custom properties allow you to extend the data model of the Case, Company, and Individual + entities. +- Custom properties allow you to extend the data model of the Case, Company, and Individual + entities if you need to save specific information that is not part of the default + properties of these entities. +- World-Check One integration needs to be activated for your workspace. +- Export any custom view’s data in just a few clicks (async via notification) +- Download in CSV or XLSX format—perfect for reporting, analysis, and compliance +- 'Smart selection: Select multiple items using checkboxes or select all on filtered + or paginated views.' +- 'Contextual actions: A Bulk Actions menu shows only what’s relevant for the entity + type.' +- IDnow is now a provider for automated ID document checks, offering a solid alternative + to Veriff. +- We’ve also updated how verification results are displayed for improved clarity. +- To use Dotfile's integration, you must have an active World-Check One account including + API access. +- Filters in your check view are now more precise. You can narrow results by AML hit + types, vendor type, specific document type, and more. +- If you already have an existing contract with INPI (or any of our company data providers), + you can use your own credentials through Dotfile for seamless access. +- Low-code interface for risk assessment rules +- 'Important: use this feature in combination with the new Draft Case Status.' +- Country registration number and country are now optional. +- Check expiration has been disabled for ID verifications and ID document checks. +- Introducing a new 'Draft' status for the Case object in Dotfile. +- End users can now edit Client Portal information after reaching the final 'Check' + step. +- Suspended users will remain visible in the console and activity logs but will no + longer have access to the workspace. +- Workflows allow you to define with JavaScript which Templates or Checks will be + run when a user submit an application through the Client Portal. +- Custom wordings allow you to personalize the labels and descriptions of each check + on the last page of the Client Portal. +- You can now mark individuals as 'Not Relevant'. This might be useful for instance + for previous UBOs or Legal Representatives who are not active in the company anymore. +- We also introduced a new Case status, 'Closed'​, that in principle behaves similarly + to the 'Rejected' status - hides checks from tasks. +- Check expiration feature for ID verifications has been disabled. +- Empty strings are considered as null +- Better handle date and date-time +- Filter operators are now consistent and documented +- AI Document Analysis can be added directly to the Client Portal or used through + our API. +- We also introduced a new Case status, 'Closed' that in principle behaves similarly + to the 'Rejected' status - hides checks from tasks. +- You can now use the in-app interface to create the webhooks you want instead of + relying on the API only. +- You can also view logs and retry webhooks as well as easily switch from online to + offline. +- Logging into Dotfile just got easier. We've introduced Google SSO to Dotfile, allowing + you to log in with your Google account. +- New endpoint for retrieving case documents. +- Ability to approve or reject checks via API. +- The system captures video footage and images of the ID and the face, which are then + analyzed through several layers of verification. +- To enable Veriff, navigate to your settings and select Veriff as your verification + provider. +- The automated ID document check consists of analyzing the ID file provided by the + user through a series of verifications. +- Logging into Dotfile just got easier. We've introduced Google SSO to Dotfile. +- This section explains how the client portal addresses data mismatches during the + ID verification process, helping to streamline the user experience and reduce inconclusive + checks in the Dotfile workspace. +- The goal is to improve the success rate of ID verification, reduce the need for + manual interventions by analysts, and prevent users from being stuck in repetitive + rejection loops caused by issues such as typographical errors in the questionnaire + or mismatches in document data. +- Checks can be initiated via API. +- Status of check can be 'Processing', 'Approved', or 'Rejected'. +- AI Document Analysis can be added directly to the Onboarding Flow or used through + our API. +- 'Global Coverage: Supports a wide range of identity documents from numerous countries, + making it accessible to a broad user base.' +- 'Document Verification: Uses AI to authenticate passports, driver’s licenses, and + ID cards while detecting fraud attempts.' +- 'Biometric Verification: Matches users’ selfies or live video recordings with their + submitted documents to confirm identity.' +- 'Detailed Check Results: Provides granular insights into verification outcomes, + helping businesses make informed decisions.' +- Document Forensics adds an advanced layer of control to Dotfile’s document review + automation. +- If any forensics indicator flags a document as high risk, Dotfile overrides automatic + approval and routes the check for manual review. +- Dotfile leverages Large Langue Models (LLM) to streamline decision-making on AML + screening hits. +- Monitoring is available to receive alerts if new potential matches emerge. +- Documents are exclusively stored in AWS/s3 (EU) regardless of the chosen LLM provider. +- The Electronic signature Check requires Document Templates configuration to define + the content of the document to sign. +- This check requires OpenAI to be configured in Dotfile AI vendor preference +- World-Check integration needs to be activated for your workspace. +- Once a user has reached the Check Page, they cannot go back. +- Over 90% of hits are pre-qualified by artificial intelligence +- Human reviewers retain ultimate control +- The Electronic signature Check requires Document Templates configuration to define + the content of the document to sign by adding static content, dynamic fields from + the case or the individual and the position of the signature anchor in the document. +- Progress is auto-saved every time the end user clicks Next on the form. +- It may take some time for the SSL certificate to be generated and for the DNS to + fully propagate. +- 'Your client portal custom domain can be a top-level domain, but it must be a dedicated + one (ex: dedicated-domain.com).' +- 'Otherwise, it should be a subdomain of your existing top-level domain (ex: onboarding.mydomain.com).' +- To order documents, navigate to the Company Profile and access the Document Store. +- Custom wordings allow you to personalize the labels of each check on the last page + of the Client Portal. +- Client Portals are customer-facing pages that allow you to collect information and + documents from your counterparties. +- If Sender Name is left blank, the default sender name will be the Workspace name. +- By default, Sender User will be set to communication-hub. +- Automated risk via API allows managing risk assessment on your side. +- Support and Services for Risk Engine Deployment are available from the Dotfile team. +- You can choose between two types of portals and define the default language. +- Interactive Visualizations +- Real-Time Data Updates +- Filtering Options +- Comprehensive Cases Overview +- Dedicated Tabs for Different Checks and Risk Scoring +- Downloadable data +- You can cancel a running bulk action. Items not yet started are marked as canceled; + processing stops as soon as cancellation is detected. +- You can retry failed items from a completed job (disabled if there is an ongoing + bulk action in the workspace). +- Automated risk via API allows for managing risk assessment on your side. +- Support and Services for Risk Engine Deployment is available from the Dotfile team. +- Some objects like Case may return nulls in deeply nested fields +- 'For individuals, you need to have at least the following columns for the import + to be successful: first_name, last_name, is_beneficial_owner, is_business_contact. + The other columns you can add to your import are: email (required if is_business_contact + is set to true), birthdate, birth_country or residence_country.' +- 'Be aware that country names must follow ISO 3166-1 alpha-2 standard (e.g: FR, DE, + NL) and that dates need to be formatted like yyyy-mm-dd.' +- The export is performed asynchronously. +- If the export exceeds 10,000 rows, the download will be a ZIP archive containing + multiple CSV or XLSX files, each file limited to 10,000 rows. +- Google Sheets has a limit of 10,000,000 cells. If this limit is reached, synchronization + will fail and the file will be empty. +- Never write directly in the Google Sheet tabs where the data is imported, otherwise + the synchronization will break. +- API requests must be made over HTTPS. API requests made over plain HTTP will fail. +- API requests without authentication will also fail. +- Created webhooks are online by default, but can be turned offline. +- Webhooks can shut down after 50 errors in 24 hours. +- The status field in case request bodies will no longer accept "approved" and "rejected" + values. +- Values "approved" or "rejected" will return an HTTP response 400 BAD REQUEST. +- Dotfile is the all-in-one platform for customer verification. +- This endpoint allows you to test your API key. +- All API requests must be made over HTTPS. API requests made over plain HTTP will + fail. +- Cases can be created via the Console or API +- External ID must be unique +- Query response is paginated. +- Use the 'page' parameter to choose which page you want to display. +- The `status` field in case request bodies will no longer accept "approved" and "rejected" + values. +- Update case properties. +- Case can be created via the Console or via the API. +- Query response is paginated. Use page parameter to choose which page you want to + display. +- Query response is paginated +- Redirect URL can be configured after the identification flow is completed. +- Currently only ID card and Passport documents are supported. +- Check status `expired` is deprecated and will be removed Q1'25. It will be replaced + with an expired flag. +- Webhook notifications for check results are available. +- Can attach at most 5 files per document check +- 'In request body, you must specify the action: approve or reject' +- Force the manual review of a Document check in status `in_progress` with files. +- You must review all AML hits before reviewing the AML check. +- 'Deprecated: use List all document types instead.' +- Query response is paginated. Page index starts at 1. +- Allowed tags are `p`, `b`, `i`, `em`, `strong`, `a` with attributes `href`, `target` + and `rel`, `li`, `ul`, `span` with attributes `data-type`, `data-id` and `data-label`, + `br` and `hr`. +- Invalid tag or attribute will be stripped out. +- URL will be transformed into link. `target` and `rel` will be automatically set. +- Line break `\n` will be replaced by `
`. +- A `

` will be added if the content doesn't start with a `

` or a `

    ` tag. +- You can mention an user with ``. + `data-label` and inner text will be automatically set and the user will receive + a notification. +- Ignoring html tag, the content must be at most `3000`. +- Use case_id, individual_id, company_id, type, and author_id to filter results. +- Maximum file size is at most 20Mo but may vary depending on the usage afterward. +- The upload_ref is valid for about 1 day. +- If your individual has multiple roles, it will merge the checks with the same type. +- If you add a check to an auto-approved case, you will need to manually re-open the + case. Approval on these newly added checks will trigger the auto-approval automation + again. +- Query response is paginated. Use 'page' and 'limit' parameters for pagination. +- Dotfile sends POST requests with a raw JSON payload to your designated endpoint. +- We support securing webhooks through content hashing with a signature. +- A SHA256 HMAC signature is calculated for the content and delivered in the `Dotfile-Signature` + header, which can be used for comparison. +- We also support secret rotation with no downtime. +- If you rotate your secret, we will provide a second header `Dotfile-Old-Signature` + for you to validate against your old secret. +- To verify a webhook, calculate the signature from the request body using the webhook + secret. +- It is recommended to use the raw request body content for hashing, as using JSON + parsing may alter it. +- Webhook automatically set offline if your webhook has more than **50 calls in error + within a rolling window of 24h**. +- You can promote a webhook to LIVE to keep it online even when there is a high amount + of error. +- By default, only active users are returned. +- To include suspended users, set the include_suspended query parameter to 'true'. +- The request is either malformed or contain invalid parameters. +- Paginated queries return a pagination metadata object alongside the returned items. +- Rate limit allows up to an average of 300 requests per minute and a burst of 100 + requests per second per workspace API key. +- Any request over the limit will return a 429 Too Many Requests error. +- Cases can be created via the Console or API. +- A SHA256 HMAC signature is calculated for the content and delivered in the `Dotfile-Signature` + header. +- Webhook events are delivered asynchronously; ordering is not guaranteed. +- To mitigate issues caused by out-of-order events, retrieve the latest state using + API calls and track the case's `last_activity_at` field. +- Expect a `2XX` response code from your endpoint or we will retry the webhook with + an exponential backoff. +- 'We will retry 4 times after the initial call: 1 hour, 4 hours, 13 hours, and 40 + hours after each failure.' +- If your webhook has more than 50 calls in error within a rolling window of 24h, + it will automatically be set offline. +- Use query parameters to filter and sort results. +- 'A check can be in different status: in_progress, processing, need_review, approved, + rejected, expired.' +- Rate limiting allows up to an average of 300 requests per minute and a burst of + 100 requests per second per workspace API key. +- The check status can be updated to Need review if an error occurs. +- AML Listings included are Sanctions, PEP, Warnings, Fitness and probity. +- Document Check status updates to Need review after upload +- You can attach at most 5 files per document check. +- Defaults to created_at for sorting. +- API requests require valid OAuth2 credentials. +- Filtering parameters may cause requests to fail if not properly formatted. +- Requires API keys for authentication +- Pagination is supported in some endpoints +- Limit defaults to 20, maximum value is 100. +- The API supports filtering, sorting, and pagination for cases. +- Maximum file size is at most 20Mo. +- Ensure UUIDs are valid when making requests. +- Ensure the id parameter is a valid UUID for all checks. +- For custom property `url`, maxLength=2000 +- For custom property `date`, date in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + (`yyyy-MM-dd` eg `2023-01-31`) +- For custom property `phone_number`, phone number in [E.164](https://en.wikipedia.org/wiki/E.164) + format (eg `+33123456789`) +- For custom property `boolean` +- For custom property `numeric`, actual minimum and maximum will depend on the property + settings but will be within -9007199254740991 and 9007199254740991 +- For custom property `choices`, contains the `key` of the options +- For custom property `countries`, contains the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) + country code (eg `FR`) +- When there are no value for this custom property on the company +- Maximum file size is at most **20Mo** but may vary depending on the usage afterward. +- Some objects may return nulls in deeply nested fields +- Actual minimum and maximum for custom property `numeric` will be within -9007199254740991 + and 9007199254740991 +- The URL has a 15 min validity +- Only applies to ComplyAdvantage vendor. +- Some objects like Activity may return nulls in deeply nested fields +- Ensure the API keys are kept secure. +- Data may vary based on region and legal form. +- Requires OAuth2 authentication. +- Rate limits apply. +- Check status `expired` is deprecated and will be removed Q1'25. +- Settings are optional and if not set it will use your workspace default settings. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Recheck API key' +- '400 Bad Request: Check query parameters for validity.' +- '401 Unauthorized: Ensure proper authentication setup.' +- '404 Not Found: Verify endpoint path.' +- '400: The request is either malformed or contain invalid parameters.' +- '400 BAD REQUEST: When using "approved" or "rejected" values in request body for + the `status`.' +- '404: No case can be found.' +- '400: The request is either malformed or contain invalid parameters. Make sure the + body payload matches the expected schema' +- '404: No case, company or individual can be found.' +- Limit reached. Contact us at support@dotfile.com to lift all limits. +- '400: The request is either malformed or contain invalid parameters. Make sure the + identifier specified in the URL is a valid UUID. Make sure the body payload matches + the expected schema. A case must have a `main` company to create relation in it. + Relation from a given individual or company to another company must be unique.' +- '404: No company can be found.' +- '400: The request is either malformed or contain invalid parameters. Make sure the + identifier specified in the URL is a valid UUID.' +- '404: No individual can be found.' +- '404: No check can be found.' +- '404: No Company Monitoring check can be found.' +- '404: No Electronic Signature check can be found.' +- '404: No ID Document check can be found.' +- 'Error: No result returned or Error status.' +- '404: No ID Verification check can be found.' +- '404: No AML check can be found.' +- '404: No Document check can be found.' +- '404: No Online Reputation check can be found.' +- '404: No note can be found.' +- '404: Case not found or tags not found on case.' +- '404: Case not found' +- '404: Case not found or tags not found on case' +- '404: No tag can be found.' +- 'Request limit exceeded: Throttle API calls or reduce frequency.' +- 'Query timeout: Break down filters or add selectivity.' +- '413: File too large, maximum file size is 20Mo.' +- '415: File type not supported.' +- '404: No file can be found.' +- '404: No template can be found.' +- '404: No case, client portal or business contact can be found.' +- '404: No table can be found.' +- '404: No user can be found.' +- '400: Invalid signature' +- '404: No webhook can be found.' +- '400 - Bad Request: The request could not be accepted, due to missing or incorrect + parameters.' +- '401 - Unauthorized: No valid API key or no API key was provided.' +- '404 - Not Found: The requested resource could be not found.' +- '409 - Conflict: The request failed due to the current state of the resource.' +- '429 - Too Many Requests: Too many requests were received. We recommend spacing + requests increasing.' +- '500 - Internal Server Error: The Dotfile API experienced an internal server error.' +- '429 Too Many Requests: Throttle API calls or reduce frequency' +- '400 Bad Request: Check the payload structure.' +- '401 Unauthorized: Verify your authentication credentials.' +- '404 Not Found: Ensure the endpoint is correctly set up.' +- '400 Invalid signature: Signature verification failed' +- 'Webhook automatically set offline: More than 50 calls in error within a rolling + window of 24h' +- '401 - Unauthorized: No valid API key or no API key was provided' +- '413 - Payload Too Large: The request payload is too large. Use for file upload + (max 10Mo).' +- '500 - Internal Server Error: The Dotfile API experienced an internal server error. + Our team has been notified and is working to fix it.' +- '429 Too Many Requests: Request over the limit' +- 'Error: Check status updated to Need review' +- '400 Bad Request: Check the request structure and required fields' +- '404 Not Found: Ensure the endpoint exists and is correct' +- '400: The request is either malformed or contain invalid parameters. Make sure the + identifier specified in the URL is a valid UUID. Make sure the body payload matches + the expected schema. Maximum items reached (default: 25). Contact us at support@dotfile.com + if you need more items.' +- 'Invalid signature: The signature calculated does not match the provided signatures.' +- '400: The request is either malformed or contains invalid parameters.' +- '400 Bad Request: Invalid parameters provided' +- '404 Not Found: Requested resource was not found' +- '204 No Content: Successful deletion, but no content to return' +- Invalid signature +- '413: File too large, maximum file size is **20Mo**.' +- '400 Bad Request: Check the input parameters' +- '401 Unauthorized: Validate your authentication credentials' +- '404 Not Found: Ensure the endpoint is correct' +- '403 Forbidden: Check your API key and permissions' +- '404 Not Found: The requested resource does not exist' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://api.dotfile.com + auth: + type: oauth2 + flow: refresh_token + token_url: https://api.dotfile.com/oauth2/token + client_id: '{{ dlt.secrets[''api_client_id''] }}' + client_secret: '{{ dlt.secrets[''api_client_secret''] }}' + refresh_token: '{{ dlt.secrets[''api_refresh_token''] }}' + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/dovetail_games/dovetail-games-docs.md b/dovetail_games/dovetail-games-docs.md new file mode 100644 index 00000000..d8c6220b --- /dev/null +++ b/dovetail_games/dovetail-games-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Dovetail Games data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def dovetail_games_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://live.dovetailgames.com/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + media,,forums,,members + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='dovetail_games_migration_pipeline', + destination='duckdb', + dataset_name='dovetail_games_migration_data', + ) + # Load the data + load_info = pipeline.run(dovetail_games_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from dovetail_games_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Media: Access media resources. +- Forums: Interact with community forums. +- Members: Manage member-related information. +- Threads: Engage with discussion threads. + +You will then debug the Dovetail Games pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Dovetail Games support. + ```shell + dlt init dlthub:dovetail_games_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Dovetail Games API, as specified in @dovetail_games_migration-docs.yaml + Start with endpoints media and and skip incremental loading for now. + Place the code in dovetail_games_migration_pipeline.py and name the pipeline dovetail_games_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python dovetail_games_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The Dovetail Games API uses OAuth2 with a refresh token flow, which necessitates the setup of a connected application for authentication. + + To get the appropriate API keys, please visit the original source at https://www.dovetailgames.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python dovetail_games_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline dovetail_games_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset dovetail_games_migration_data + The duckdb destination used duckdb:/dovetail_games_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline dovetail_games_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("dovetail_games_migration_pipeline").dataset() + # get edi table as Pandas frame + data.edi.df().head() + ``` + +## Running into errors? + +It's crucial to implement appropriate throttling as the API has a limit on request frequency. Additionally, some responses may include null values in deeply nested fields, which could affect data handling. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/dovetail_games/dovetail-games-docs.yaml b/dovetail_games/dovetail-games-docs.yaml new file mode 100644 index 00000000..2e6a9a23 --- /dev/null +++ b/dovetail_games/dovetail-games-docs.yaml @@ -0,0 +1,47 @@ +resources: +- name: media + endpoint: + path: /media/ + method: GET + data_selector: media + params: {} +- name: notable_members + endpoint: + path: /members/ + method: GET + data_selector: members + params: {} +- name: members + endpoint: + path: /members/ + method: GET + data_selector: members + params: {} +- name: threads + endpoint: + path: /threads + method: GET + data_selector: threads +- name: members + endpoint: + path: /members + method: GET + data_selector: members +- name: forums + endpoint: + path: /forums + method: GET + data_selector: forums +notes: +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects may return nulls in deeply nested fields +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +auth_info: + mentioned_objects: [] +client: + base_url: https://live.dovetailgames.com + auth: + type: oauth2 + flow: refresh_token +source_metadata: null diff --git a/eiti/eiti-docs.md b/eiti/eiti-docs.md new file mode 100644 index 00000000..130b23c3 --- /dev/null +++ b/eiti/eiti-docs.md @@ -0,0 +1,155 @@ +In this guide, we'll set up a complete EITI data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def eiti_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://eiti.org/api/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + news,,events,,people + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='eiti_migrations_pipeline', + destination='duckdb', + dataset_name='eiti_migrations_data', + ) + # Load the data + load_info = pipeline.run(eiti_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from eiti_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- News: Provides updates and news articles related to the EITI. +- Events: Lists upcoming events associated with the EITI. +- People: Contains information about individuals involved in the EITI. +- Topics: Covers various topics relevant to EITI and its implementation. +- Impact: Details the impact of EITI initiatives and projects. +- Countries: Provides information on countries participating in EITI. +- Reports: Accesses various reports and data related to EITI. + +You will then debug the EITI pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with EITI support. + ```shell + dlt init dlthub:eiti_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for EITI API, as specified in @eiti_migrations-docs.yaml + Start with endpoints news and and skip incremental loading for now. + Place the code in eiti_migrations_pipeline.py and name the pipeline eiti_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python eiti_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The API does not require authentication, making it accessible for public use. + + To get the appropriate API keys, please visit the original source at https://www.eiti.org/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python eiti_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline eiti_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset eiti_migrations_data + The duckdb destination used duckdb:/eiti_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline eiti_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("eiti_migrations_pipeline").dataset() + # get ew table as Pandas frame + data.ew.df().head() + ``` + +## Running into errors? + +While the API is open and does not require authentication, users may experience rate limiting if requests exceed the allowed threshold. Additionally, ensure that endpoint paths are correct to avoid 404 errors. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/eiti/eiti-docs.yaml b/eiti/eiti-docs.yaml new file mode 100644 index 00000000..65a16343 --- /dev/null +++ b/eiti/eiti-docs.yaml @@ -0,0 +1,1952 @@ +resources: +- name: country_status + endpoint: + path: /api/v2.0/country_status + method: GET + data_selector: records +- name: gfs_code + endpoint: + path: /api/v2.0/gfs_code + method: GET + data_selector: records +- name: implementing_country + endpoint: + path: /api/v2.0/implementing_country + method: GET + data_selector: records +- name: indicator + endpoint: + path: /api/v2.0/indicator + method: GET + data_selector: records +- name: indicator_value + endpoint: + path: /api/v2.0/indicator_value + method: GET + data_selector: records +- name: organisation + endpoint: + path: /api/v2.0/organisation + method: GET + data_selector: records +- name: revenue + endpoint: + path: /api/v2.0/revenue + method: GET + data_selector: records +- name: summary_data + endpoint: + path: /api/v2.0/summary_data + method: GET + data_selector: records +- name: validation_data + endpoint: + path: /api/v2.0/validation_data + method: GET + data_selector: records +- name: Validation scores + endpoint: + path: /validation/scores + method: GET + data_selector: records +- name: Requirement scores + endpoint: + path: /requirement/scores + method: GET + data_selector: records +- name: Component and overall score + endpoint: + path: /component/overall/score + method: GET + data_selector: records +- name: Extra points for effectiveness and sustainability + endpoint: + path: /extra/points + method: GET + data_selector: records +- name: Frequency and consequences of Validation + endpoint: + path: /frequency/consequences + method: GET + data_selector: records +- name: Mid-term monitoring + endpoint: + path: /mid-term/monitoring + method: GET + data_selector: records +- name: Stakeholder engagement + endpoint: + path: /stakeholder/engagement + method: GET + data_selector: records +- name: summary_data + endpoint: + path: /api/summary-data + method: GET + data_selector: data + params: {} +- name: country_reports + endpoint: + path: /api/country-reports + method: GET + data_selector: reports + params: {} +- name: soe_database + endpoint: + path: /api/soe-database + method: GET + data_selector: soe_data + params: {} +- name: publications + endpoint: + path: /publications + method: GET + data_selector: records +- name: commodity_trading + endpoint: + path: /api/commodity-trading + method: GET + data_selector: records + params: {} +- name: energy_transition + endpoint: + path: /energy-transition + method: GET + data_selector: data + params: {} +- name: news + endpoint: + path: /news + method: GET + data_selector: records +- name: blog_post + endpoint: + path: /blog-post + method: GET + data_selector: records +- name: EITI Principles + endpoint: + path: /documents/eiti-principles + method: GET + data_selector: records +- name: EITI country reports + endpoint: + path: /eiti-country-reports + method: GET + data_selector: records +- name: EITI reporting + endpoint: + path: /eiti-reporting + method: GET + data_selector: records +- name: Zambia 2023-2024 EITI Report + endpoint: + path: /documents/zambia-2023-2024-eiti-report + method: GET + data_selector: records +- name: Albania oil industry assessment report + endpoint: + path: /documents/albania-oil-industry-assessment-report + method: GET + data_selector: records +- name: Papua New Guinea 2023 EITI Report + endpoint: + path: /documents/papua-new-guinea-2023-eiti-report + method: GET + data_selector: records +- name: Uganda 2022-2023 EITI Report + endpoint: + path: /documents/uganda-2022-2023-eiti-report + method: GET + data_selector: records +- name: EITI application + endpoint: + path: /eiti-application + method: GET + data_selector: application_data + params: {} +- name: EITI Principles + endpoint: + path: /documents/eiti-principles + method: GET +- name: EITI Standard + endpoint: + path: /eiti-standard + method: GET +- name: EITI country reports + endpoint: + path: /eiti-country-reports + method: GET +- name: API + endpoint: + path: /api + method: GET +- name: EITI Requirements + endpoint: + path: /eiti-requirements + method: GET + data_selector: requirements + params: {} +- name: EITI application process + endpoint: + path: /guidance-notes/how-become-eiti-implementing-country + method: GET + data_selector: application_process + params: {} +- name: requirements + endpoint: + path: /api/requirements + method: GET + data_selector: data + params: {} +- name: EITI Expectations + endpoint: + path: /documents/expectations-eiti-supporting-companies + method: GET + data_selector: records + params: {} +- name: multi_stakeholder_group + endpoint: + path: /guidance-notes/establishment-and-governance-multi-stakeholder-groups + method: GET + data_selector: requirements + params: {} +- name: work_plan_monitoring_review + endpoint: + path: /guidance-notes/work-planning-monitoring-and-reviewing-impactful-eiti-implementation + method: GET + data_selector: requirements + params: {} +- name: legal_institutional_framework + endpoint: + path: /guidance-notes/legal-institutional-framework + method: GET + data_selector: requirements + params: {} +- name: EITI country report + endpoint: + path: /documents/zambia-2023-2024-eiti-report + method: GET +- name: Albania oil industry assessment report + endpoint: + path: /documents/albania-oil-industry-assessment-report + method: GET +- name: Papua New Guinea 2023 EITI Report + endpoint: + path: /documents/papua-new-guinea-2023-eiti-report + method: GET +- name: Uganda 2022-2023 EITI Report + endpoint: + path: /documents/uganda-2022-2023-eiti-report + method: GET +- name: beneficial_ownership + endpoint: + path: /guidance-notes/beneficial-ownership + method: GET + data_selector: records +- name: state_participation + endpoint: + path: /guidance-notes/state-participation-and-state-owned-enterprises + method: GET + data_selector: records +- name: exploration_and_production + endpoint: + path: /guidance-notes/exploration-activities-and-reserves + method: GET + data_selector: records +- name: revenue_collection + endpoint: + path: /guidance-notes/defining-materiality-reporting-thresholds-and-reporting-entities + method: GET + data_selector: records +- name: EITI country reports + endpoint: + path: /eiti-country-reports + method: GET + data_selector: records + params: {} +- name: EITI reporting + endpoint: + path: /eiti-reporting + method: GET + data_selector: records + params: {} +- name: subnational_payments + endpoint: + path: /guidance-notes/subnational-payments-and-transfers + method: GET + data_selector: records + params: {} +- name: level_of_disaggregation + endpoint: + path: /guidance-notes/project-level-reporting + method: GET + data_selector: records + params: {} +- name: data_timeliness + endpoint: + path: /guidance-notes/data-timeliness + method: GET + data_selector: records + params: {} +- name: data_quality_and_assurance + endpoint: + path: /guidance-notes/data-quality-and-assurance + method: GET + data_selector: records + params: {} +- name: project_costs + endpoint: + path: /guidance-notes/project-costs + method: GET + data_selector: records + params: {} +- name: revenue_management_and_distribution + endpoint: + path: /guidance-notes/revenue-management-and-distribution + method: GET + data_selector: records + params: {} +- name: social_and_economic_spending + endpoint: + path: /guidance-notes/social-and-economic-spending + method: GET + data_selector: records + params: {} +- name: outcomes_and_impact + endpoint: + path: /guidance-notes/outcomes-and-impact + method: GET + data_selector: records + params: {} +- name: EITI Articles + endpoint: + path: /documents/eiti-articles-association + method: GET + data_selector: articles +- name: EITI Standard + endpoint: + path: /eiti-standard + method: GET + data_selector: standard +- name: EITI supporting companies expectations + endpoint: + path: /documents/expectations-eiti-supporting-companies + method: GET + data_selector: records +- name: EITI Standard + endpoint: + path: /api/eiti-standard + method: GET + data_selector: records +- name: EITI country reports + endpoint: + path: /api/eiti-country-reports + method: GET + data_selector: records +- name: EITI Document + endpoint: + path: /documents/protocol-participation-civil-society + method: GET + data_selector: records +- name: summary_data + endpoint: + path: /api/summary_data + method: GET + data_selector: data + params: {} +- name: country_reports + endpoint: + path: /api/country_reports + method: GET + data_selector: reports + params: {} +- name: EITI Board oversight + endpoint: + path: /eiti-board-oversight-eiti-implementation + method: GET + data_selector: data + params: {} +- name: octrois_de_licences + endpoint: + path: /fr/data-use-case/mali-delais-doctroi-de-licences + method: GET + data_selector: data + params: {} +- name: contracts + endpoint: + path: /fr/blog-post/sicomines-comment-litie-en-rdc-aide-obtenir-4-milliards-de-revenus-supplementaires + method: GET + data_selector: data + params: {} +- name: lutte_contre_la_corruption + endpoint: + path: /fr/data-use-case/burkina-faso-quantification-des-flux-financiers-illicites-dans-le-secteur-minier + method: GET + data_selector: data + params: {} +- name: projections_ventes_petrole_recettes + endpoint: + path: /fr/data-use-case/republique-du-congo-projections-des-revenus-petroliers + method: GET + data_selector: data + params: {} +- name: production_exportations + endpoint: + path: /fr/data-use-case/republique-du-congo-projections-des-revenus-petroliers + method: GET + data_selector: data + params: {} +- name: comprendre_entreprises_etat + endpoint: + path: /fr/data-use-case/cote-divoire-echanges-de-petrole-brut-contre-du-gaz-naturel + method: GET + data_selector: data + params: {} +- name: partage_recettes + endpoint: + path: /fr/node/27730 + method: GET + data_selector: data + params: {} +- name: EITI Global Conference + endpoint: + path: /api/global-conference + method: GET + data_selector: conference + params: {} +- name: EITI Members’ Meeting + endpoint: + path: /api/members-meeting + method: GET + data_selector: members + params: {} +- name: EITI Standard + endpoint: + path: /eiti-standard + method: GET + data_selector: records +- name: Open data + endpoint: + path: /open-data + method: GET + data_selector: records +- name: armenie + endpoint: + path: /fr/node/27569 + method: GET + data_selector: data + params: {} +- name: burkina_faso + endpoint: + path: /fr/data-use-case/burkina-faso-quantification-des-flux-financiers-illicites-dans-le-secteur-minier + method: GET + data_selector: data + params: {} +- name: mozambique + endpoint: + path: /fr/countries/mozambique + method: GET + data_selector: data + params: {} +- name: togo + endpoint: + path: /fr/blog-post/devoiler-linvisible-lutter-contre-la-corruption-dans-le-secteur-extractif-du-togo + method: GET + data_selector: data + params: {} +- name: data_portal + endpoint: + path: /api/data + method: GET + data_selector: records + params: {} +- name: reports + endpoint: + path: /api/reports + method: GET + data_selector: records + params: {} +- name: beneficial_ownership + endpoint: + path: /api/beneficial-ownership + method: GET + data_selector: data + params: {} +- name: données résumées + endpoint: + path: /fr/comment-nous-recueillons-et-publions-les-donnees-resumees-de-litie + method: GET + data_selector: records +- name: base de données des entreprises d’État + endpoint: + path: /fr/pays + method: GET + data_selector: records +- name: commodity_trading + endpoint: + path: /api/commodity-trading + method: GET + data_selector: records +- name: licensing_delays + endpoint: + path: /fr/data-use-case/mali-delais-doctroi-de-licences + method: GET + data_selector: data +- name: contracts + endpoint: + path: /fr/blog-post/sicomines-comment-litie-en-rdc-aide-obtenir-4-milliards-de-revenus-supplementaires + method: GET + data_selector: data +- name: corruption_fluids + endpoint: + path: /fr/data-use-case/burkina-faso-quantification-des-flux-financiers-illicites-dans-le-secteur-minier + method: GET + data_selector: data +- name: oil_revenue_forecasting + endpoint: + path: /fr/data-use-case/republique-du-congo-projections-des-revenus-petroliers + method: GET + data_selector: data +- name: state_companies + endpoint: + path: /fr/data-use-case/cote-divoire-echanges-de-petrole-brut-contre-du-gaz-naturel + method: GET + data_selector: data +- name: revenue_sharing + endpoint: + path: /fr/node/27730 + method: GET + data_selector: data +- name: minéraux de transition + endpoint: + path: /fr/documents/mission-critique + method: GET + data_selector: data + params: {} +- name: inclure les communautés dans une transition juste + endpoint: + path: /fr/inclure-les-communautes-dans-une-transition-juste + method: GET + data_selector: data + params: {} +- name: gouvernance des énergies renouvelables + endpoint: + path: /fr/gouvernance-des-energies-renouvelables + method: GET + data_selector: data + params: {} +- name: subventions aux combustibles fossiles + endpoint: + path: /fr/node/22017 + method: GET + data_selector: data + params: {} +- name: utilisation des données pour éclairer les voies vers la transition énergétique + endpoint: + path: /fr/transition-energetique + method: GET + data_selector: data + params: {} +- name: Allemagne + endpoint: + path: /fr/node/22041 + method: GET + data_selector: data + params: {} +- name: Trinité-et-Tobago + endpoint: + path: /fr/node/22047 + method: GET + data_selector: data + params: {} +- name: Mongolie + endpoint: + path: /fr/node/22037 + method: GET + data_selector: data + params: {} +- name: anti_corruption_data + endpoint: + path: /api/anti-corruption + method: GET + data_selector: data + params: {} +- name: beneficial_ownership + endpoint: + path: /api/beneficial-ownership + method: GET + data_selector: records +- name: Kazakhstan + endpoint: + path: /fr/pays/kazakhstan + method: GET + data_selector: data + params: {} +- name: Mexique + endpoint: + path: /fr/pays/mexique + method: GET + data_selector: data + params: {} +- name: Royaume-Uni + endpoint: + path: /fr/pays/royaume-uni + method: GET + data_selector: data + params: {} +- name: news + endpoint: + path: /fr/nouvelles + method: GET + data_selector: records +- name: commodity_trading + endpoint: + path: /api/commodity-trading + method: GET + data_selector: data + params: {} +- name: api + endpoint: + path: /api + method: GET + data_selector: data + params: {} +- name: country_reports + endpoint: + path: /eiti-country-reports + method: GET + data_selector: reports + params: {} +- name: transition_energy + endpoint: + path: /api/transition-energy + method: GET + data_selector: data +- name: minerals_transition + endpoint: + path: /api/minerals-transition + method: GET + data_selector: data +- name: community_inclusion + endpoint: + path: /api/community-inclusion + method: GET + data_selector: data +- name: renewable_governance + endpoint: + path: /api/renewable-governance + method: GET + data_selector: data +- name: fossil_fuel_subsidies + endpoint: + path: /api/fossil-fuel-subsidies + method: GET + data_selector: data +- name: anti-corruption + endpoint: + path: /api/anti-corruption + method: GET + data_selector: data + params: {} +- name: beneficial-ownership + endpoint: + path: /api/beneficial-ownership + method: GET + data_selector: data + params: {} +- name: contract-transparency + endpoint: + path: /api/contract-transparency + method: GET + data_selector: data + params: {} +- name: Kazakhstan + endpoint: + path: /api/kazakhstan + method: GET + data_selector: data + params: {} +- name: Mexico + endpoint: + path: /api/mexico + method: GET + data_selector: data + params: {} +- name: United Kingdom + endpoint: + path: /api/united-kingdom + method: GET + data_selector: data + params: {} +- name: anticorruption + endpoint: + path: /api/anticorruption + method: GET + data_selector: data + params: {} +- name: news + endpoint: + path: /fr/nouvelles + method: GET + data_selector: records +- name: study_on_illicit_financial_flows + endpoint: + path: /documents/study-illicit-financial-flows-burkina-fasos-extractive-sector + method: GET + data_selector: records +- name: event + endpoint: + path: /events/eiti-lme-week-2025 + method: GET + data_selector: data + params: {} +- name: country_report + endpoint: + path: /fr/node/27518 + method: GET + data_selector: data + params: {} +- name: annual_progress_report + endpoint: + path: /fr/node/27949 + method: GET + data_selector: data + params: {} +- name: work_plan + endpoint: + path: /fr/node/27110 + method: GET + data_selector: data + params: {} +- name: EITI country report + endpoint: + path: /documents/mozambique-2022-eiti-report + method: GET + data_selector: report +- name: EITI validation report + endpoint: + path: /documents/mozambique-2022-validation-report + method: GET + data_selector: validation_report +- name: anti-corruption + endpoint: + path: /api/anti-corruption + method: GET + data_selector: records + params: {} +- name: validation_assessment + endpoint: + path: /api/validation_assessment + method: GET + data_selector: assessments + params: {} +- name: anticorrupción_en_accion + endpoint: + path: /es/anticorrupcion + method: GET + data_selector: content +- name: transparencia_titularidad + endpoint: + path: /es/transparencia-sobre-la-titularidad-de-los-beneficiarios-reales + method: GET + data_selector: content +- name: transparencia_contratos + endpoint: + path: /es/transparencia-de-los-contratos + method: GET + data_selector: content +- name: beneficial_ownership_register + endpoint: + path: /open-data + method: GET + data_selector: records +- name: exploration_data + endpoint: + path: /services/data/vXX.X/sobjects/ExplorationData + method: GET + data_selector: records + params: {} +- name: contribution_to_economy + endpoint: + path: /services/data/vXX.X/sobjects/ContributionToEconomy + method: GET + data_selector: records + params: {} +- name: legal_framework + endpoint: + path: /services/data/vXX.X/sobjects/LegalFramework + method: GET + data_selector: records + params: {} +- name: contracts + endpoint: + path: /services/data/vXX.X/sobjects/Contracts + method: GET + data_selector: records + params: {} +- name: environmental_impact + endpoint: + path: /services/data/vXX.X/sobjects/EnvironmentalImpact + method: GET + data_selector: records + params: {} +- name: licenses + endpoint: + path: /services/data/vXX.X/sobjects/Licenses + method: GET + data_selector: records + params: {} +- name: beneficial_ownership + endpoint: + path: /services/data/vXX.X/sobjects/BeneficialOwnership + method: GET + data_selector: records + params: {} +- name: state_participation + endpoint: + path: /services/data/vXX.X/sobjects/StateParticipation + method: GET + data_selector: records + params: {} +- name: in_kind_revenues + endpoint: + path: /services/data/vXX.X/sobjects/InKindRevenues + method: GET + data_selector: records + params: {} +- name: study_illicit_financial_flows + endpoint: + path: /documents/study-illicit-financial-flows-burkina-fasos-extractive-sector + method: GET + data_selector: records + params: {} +- name: togo_anti_corruption_report + endpoint: + path: /documents/togo-anti-corruption-report + method: GET + data_selector: report + params: {} +- name: togo_eiti_report_2022 + endpoint: + path: /documents/togo-2022-eiti-report + method: GET + data_selector: report + params: {} +- name: togo_eiti_annual_progress_report_2022 + endpoint: + path: /documents/togo-2022-eiti-annual-progress-report + method: GET + data_selector: report + params: {} +- name: togo_eiti_annual_progress_report_2021 + endpoint: + path: /documents/togo-2021-eiti-annual-progress-report + method: GET + data_selector: report + params: {} +- name: togo_eiti_report_2021 + endpoint: + path: /documents/togo-2021-eiti-report + method: GET + data_selector: report + params: {} +- name: guidance_notes + endpoint: + path: /guidance-notes/addressing-corruption-risks-through-eiti-implementation + method: GET + data_selector: records +- name: togo_anti_corruption_report + endpoint: + path: /documents/togo-anti-corruption-report + method: GET + data_selector: records +- name: togo_eiti_reports + endpoint: + path: /eiti-country-reports + method: GET + data_selector: records +- name: EITI country report + endpoint: + path: /documents/cameroon-2022-eiti-report + method: GET + data_selector: records +- name: EITI country document + endpoint: + path: /documents/study-illicit-financial-flows-burkina-fasos-extractive-sector + method: GET + data_selector: records +- name: EITI country report + endpoint: + path: /documents/cameroon-2022-eiti-report + method: GET + data_selector: documents + params: {} +- name: EITI country report + endpoint: + path: /documents/gabon-2022-eiti-report + method: GET + data_selector: documents + params: {} +- name: Study on illicit financial flows in Burkina Faso's extractive sector + endpoint: + path: /documents/study-illicit-financial-flows-burkina-fasos-extractive-sector + method: GET + data_selector: documents + params: {} +- name: Report on the assessment of impact of the Albania beneficial ownership law + in the context of the extractive industry + endpoint: + path: /documents/report-assessment-impact-albania-beneficial-ownership-law-context-extractive-industry + method: GET + data_selector: documents + params: {} +- name: transition_minerals_reserves + endpoint: + path: /document/21528 + method: GET + data_selector: data +- name: transition_minerals_production + endpoint: + path: /document/21529 + method: GET + data_selector: data +- name: refinery_production + endpoint: + path: /document/21530 + method: GET + data_selector: data +- name: trade_flows + endpoint: + path: /document/21531 + method: GET + data_selector: data +- name: projects_in_conservation_areas + endpoint: + path: /document/21532 + method: GET + data_selector: data +- name: transition_minerals_reserves + endpoint: + path: /document/21528 + method: GET +- name: transition_minerals_production + endpoint: + path: /document/21529 + method: GET +- name: refinery_production + endpoint: + path: /document/21530 + method: GET +- name: trade_flows + endpoint: + path: /document/21531 + method: GET +- name: projects_in_land_connected_areas + endpoint: + path: /document/21532 + method: GET +- name: beneficial_ownership_data + endpoint: + path: /api/beneficial-ownership + method: GET + data_selector: data + params: {} +- name: license_applications + endpoint: + path: /api/license-applications + method: GET + data_selector: data + params: {} +- name: beneficial_ownership + endpoint: + path: /data/beneficial-ownership + method: GET + data_selector: data +- name: validation + endpoint: + path: /documents/philippines-2022-eiti-report + method: GET + data_selector: report + params: {} +- name: extractive_sectors + endpoint: + path: /open-data + method: GET + data_selector: data + params: {} +- name: validation_assessment + endpoint: + path: /validation/assessment + method: GET + data_selector: records + params: {} +- name: EITI Report + endpoint: + path: /documents/philippines-2022-eiti-report + method: GET + data_selector: data + params: {} +- name: Validation Report + endpoint: + path: /documents/philippines-2021-validation-report + method: GET + data_selector: data + params: {} +- name: Targeted Assessment Report + endpoint: + path: /documents/philippines-targeted-assessment-report-2024-stakeholder-engagement + method: GET + data_selector: data + params: {} +- name: beneficial_ownership + endpoint: + path: /beneficial-ownership + method: GET + data_selector: data + params: {} +- name: state_participation + endpoint: + path: /state-participation + method: GET + data_selector: data + params: {} +- name: production_data + endpoint: + path: /production-data + method: GET + data_selector: data + params: {} +- name: export_data + endpoint: + path: /export-data + method: GET + data_selector: data + params: {} +- name: revenue_collection + endpoint: + path: /revenue-collection + method: GET + data_selector: data + params: {} +- name: subnational_contributions + endpoint: + path: /subnational-contributions + method: GET + data_selector: data + params: {} +- name: social_environmental_expenditures + endpoint: + path: /social-environmental-expenditures + method: GET + data_selector: data + params: {} +- name: beneficial_ownership + endpoint: + path: /beneficial_ownership + method: GET + data_selector: data + params: {} +- name: state_participation + endpoint: + path: /state_participation + method: GET + data_selector: data + params: {} +- name: production_data + endpoint: + path: /production_data + method: GET + data_selector: data + params: {} +- name: export_data + endpoint: + path: /export_data + method: GET + data_selector: data + params: {} +- name: revenue_collection + endpoint: + path: /revenue_collection + method: GET + data_selector: data + params: {} +- name: subnational_contributions + endpoint: + path: /subnational_contributions + method: GET + data_selector: data + params: {} +- name: conference + endpoint: + path: /global-conference + method: GET + data_selector: event_details + params: {} +- name: eiti_report + endpoint: + path: /philippines-2022-eiti-report + method: GET + data_selector: report_details + params: {} +- name: news + endpoint: + path: /news/government-philippines-host-2026-eiti-global-conference + method: GET + data_selector: records + params: {} +- name: conference + endpoint: + path: /events/2026-eiti-global-conference + method: GET + data_selector: records + params: {} +- name: events + endpoint: + path: /events/eiti-lme-week-2025 + method: GET +- name: countries + endpoint: + path: /countries + method: GET +- name: data_and_reports + endpoint: + path: /open-data + method: GET +- name: api + endpoint: + path: /api + method: GET +- name: news + endpoint: + path: /news + method: GET + data_selector: articles +- name: countries + endpoint: + path: /countries + method: GET + data_selector: country_list +- name: data + endpoint: + path: /open-data + method: GET + data_selector: data_records +- name: countries + endpoint: + path: /countries + method: GET + data_selector: data +- name: data_and_reports + endpoint: + path: /open-data + method: GET + data_selector: data +- name: eiti_standard + endpoint: + path: /eiti-standard + method: GET + data_selector: data +- name: country_report + endpoint: + path: /eiti-country-reports + method: GET + data_selector: reports + params: {} +- name: data_use_cases + endpoint: + path: /data-use-cases + method: GET + data_selector: use_cases + params: {} +- name: EITI Standard + endpoint: + path: /api/eiti-standard + method: GET + data_selector: data + params: {} +- name: Chile EITI candidature application + endpoint: + path: /api/chile-eiti-candidature + method: GET + data_selector: data + params: {} +- name: EITI_country_data + endpoint: + path: /api/countries/chile + method: GET + data_selector: data + params: {} +- name: data_reports + endpoint: + path: /datos-e-informes + method: GET + data_selector: reports +- name: country_reports + endpoint: + path: /eiti-country-reports + method: GET + data_selector: countryReports +- name: chile_eiti_candidature_application + endpoint: + path: /documents/chile-eiti-candidature-application + method: GET + data_selector: records +- name: candidature_application + endpoint: + path: /documents/chile-eiti-candidature-application + method: GET + data_selector: application_data + params: {} +- name: events + endpoint: + path: /events + method: GET + data_selector: data + params: {} +- name: topics + endpoint: + path: /topics + method: GET + data_selector: data + params: {} +- name: event + endpoint: + path: /events/eiti-climate-week-nyc-2025 + method: GET + data_selector: records +- name: reporting + endpoint: + path: /eiti-reporting + method: GET + data_selector: records +- name: events + endpoint: + path: /api/events + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/reports + method: GET + data_selector: data + params: {} +- name: people + endpoint: + path: /people + method: GET + data_selector: data + params: {} +- name: blog_posts + endpoint: + path: /blog-post + method: GET + data_selector: posts + params: {} +- name: community_stories + endpoint: + path: /blog-post/communities-crossroads-engaging-communities-just-energy-transition + method: GET + data_selector: records +- name: energy_transition + endpoint: + path: /energy-transition + method: GET + data_selector: records +- name: energy_transition_documents + endpoint: + path: /api/energy-transition/documents + method: GET + data_selector: documents +- name: energy_transition_reports + endpoint: + path: /api/energy-transition/reports + method: GET + data_selector: reports +- name: engaging_communities_report + endpoint: + path: /documents/engaging-communities-just-transition + method: GET +- name: blog_post_navigating_energy_transition + endpoint: + path: /blog-post/navigating-energy-transition-new-eiti-standard + method: GET +- name: blog_post_engaging_communities_crossroads + endpoint: + path: /blog-post/communities-crossroads-engaging-communities-just-energy-transition + method: GET +- name: guidance_document_engaging_communities_factsheet + endpoint: + path: /documents/engaging-communities-just-transition-factsheet + method: GET +- name: engaging_communities + endpoint: + path: /documents/engaging-communities-just-transition + method: GET +- name: eiti_standard + endpoint: + path: /eiti-standard + method: GET +- name: country_status + endpoint: + path: /api/v2.0/country_status + method: GET + data_selector: records +- name: gfs_code + endpoint: + path: /api/v2.0/gfs_code + method: GET + data_selector: records +- name: implementing_country + endpoint: + path: /api/v2.0/implementing_country + method: GET + data_selector: records +- name: indicator + endpoint: + path: /api/v2.0/indicator + method: GET + data_selector: records +- name: indicator_value + endpoint: + path: /api/v2.0/indicator_value + method: GET + data_selector: records +- name: organisation + endpoint: + path: /api/v2.0/organisation + method: GET + data_selector: records +- name: revenue + endpoint: + path: /api/v2.0/revenue + method: GET + data_selector: records +- name: summary_data + endpoint: + path: /api/v2.0/summary_data + method: GET + data_selector: records +- name: validation_data + endpoint: + path: /api/v2.0/validation_data + method: GET + data_selector: records +- name: country_status + endpoint: + path: /api/v2.0/country_status + method: GET +- name: country_status_id + endpoint: + path: /api/v2.0/country_status/{id} + method: GET +- name: gfs_code + endpoint: + path: /api/v2.0/gfs_code + method: GET +- name: gfs_code_id + endpoint: + path: /api/v2.0/gfs_code/{id} + method: GET +- name: implementing_country + endpoint: + path: /api/v2.0/implementing_country + method: GET +- name: implementing_country_id + endpoint: + path: /api/v2.0/implementing_country/{id} + method: GET +- name: indicator + endpoint: + path: /api/v2.0/indicator + method: GET +- name: indicator_id + endpoint: + path: /api/v2.0/indicator/{id} + method: GET +- name: indicator_value + endpoint: + path: /api/v2.0/indicator_value + method: GET +- name: indicator_value_id + endpoint: + path: /api/v2.0/indicator_value/{id} + method: GET +- name: organisation + endpoint: + path: /api/v2.0/organisation + method: GET +- name: organisation_id + endpoint: + path: /api/v2.0/organisation/{id} + method: GET +- name: revenue + endpoint: + path: /api/v2.0/revenue + method: GET +- name: revenue_id + endpoint: + path: /api/v2.0/revenue/{id} + method: GET +- name: summary_data + endpoint: + path: /api/v2.0/summary_data + method: GET +- name: summary_data_id + endpoint: + path: /api/v2.0/summary_data/{id} + method: GET +- name: validation_data + endpoint: + path: /api/v2.0/validation_data + method: GET +- name: validation_data_id + endpoint: + path: /api/v2.0/validation_data/{id} + method: GET +- name: country_status + endpoint: + path: /api/v2.0/country_status + method: GET + data_selector: records +- name: gfs_code + endpoint: + path: /api/v2.0/gfs_code + method: GET + data_selector: records +- name: implementing_country + endpoint: + path: /api/v2.0/implementing_country + method: GET + data_selector: records +- name: indicator + endpoint: + path: /api/v2.0/indicator + method: GET + data_selector: records +- name: indicator_value + endpoint: + path: /api/v2.0/indicator_value + method: GET + data_selector: records +- name: organisation + endpoint: + path: /api/v2.0/organisation + method: GET + data_selector: records +- name: revenue + endpoint: + path: /api/v2.0/revenue + method: GET + data_selector: records +- name: summary_data + endpoint: + path: /api/v2.0/summary_data + method: GET + data_selector: records +- name: validation_data + endpoint: + path: /api/v2.0/validation_data + method: GET + data_selector: records +- name: country_status + endpoint: + path: /api/v2.0/country_status + method: GET +- name: gfs_code + endpoint: + path: /api/v2.0/gfs_code + method: GET +- name: implementing_country + endpoint: + path: /api/v2.0/implementing_country + method: GET +- name: indicator + endpoint: + path: /api/v2.0/indicator + method: GET +- name: indicator_value + endpoint: + path: /api/v2.0/indicator_value + method: GET +- name: organisation + endpoint: + path: /api/v2.0/organisation + method: GET +- name: revenue + endpoint: + path: /api/v2.0/revenue + method: GET +- name: summary_data + endpoint: + path: /api/v2.0/summary_data + method: GET +- name: validation_data + endpoint: + path: /api/v2.0/validation_data + method: GET +- name: board_decisions + endpoint: + path: /ru/reestr-resheniy-pravleniya + method: GET + data_selector: decisions + params: {} +- name: реестр решений Правления + endpoint: + path: /ru/reestr-resheniy-pravleniya + method: GET +- name: impact + endpoint: + path: /impact + method: GET + data_selector: results + params: {} +- name: data_reports + endpoint: + path: /data-reports + method: GET + data_selector: reports + params: {} +- name: data_portal + endpoint: + path: /ru/otkrytye-dannye + method: GET + data_selector: data + params: {} +- name: country_reports + endpoint: + path: /eiti-country-reports + method: GET + data_selector: reports + params: {} +- name: progress_reports + endpoint: + path: /eiti-progress-reports + method: GET + data_selector: reports + params: {} +- name: publications + endpoint: + path: /ru/publikacii + method: GET + data_selector: publications + params: {} +- name: country_status + endpoint: + path: /api/v2.0/country_status + method: GET +- name: gfs_code + endpoint: + path: /api/v2.0/gfs_code + method: GET +- name: implementing_country + endpoint: + path: /api/v2.0/implementing_country + method: GET +- name: indicator + endpoint: + path: /api/v2.0/indicator + method: GET +- name: indicator_value + endpoint: + path: /api/v2.0/indicator_value + method: GET +- name: organisation + endpoint: + path: /api/v2.0/organisation + method: GET +- name: revenue + endpoint: + path: /api/v2.0/revenue + method: GET +- name: summary_data + endpoint: + path: /api/v2.0/summary_data + method: GET +- name: validation_data + endpoint: + path: /api/v2.0/validation_data + method: GET +- name: summary_data + endpoint: + path: /api + method: GET + data_selector: data + params: {} +- name: Торговля сырьевыми товарами + endpoint: + path: /api/commodity-trading + method: GET + data_selector: data +- name: country_status + endpoint: + path: /api/v2.0/country_status + method: GET +- name: country_status_id + endpoint: + path: /api/v2.0/country_status/{id} + method: GET +- name: gfs_code + endpoint: + path: /api/v2.0/gfs_code + method: GET +- name: gfs_code_id + endpoint: + path: /api/v2.0/gfs_code/{id} + method: GET +- name: implementing_country + endpoint: + path: /api/v2.0/implementing_country + method: GET +- name: implementing_country_id + endpoint: + path: /api/v2.0/implementing_country/{id} + method: GET +- name: indicator + endpoint: + path: /api/v2.0/indicator + method: GET +- name: indicator_id + endpoint: + path: /api/v2.0/indicator/{id} + method: GET +- name: indicator_value + endpoint: + path: /api/v2.0/indicator_value + method: GET +- name: indicator_value_id + endpoint: + path: /api/v2.0/indicator_value/{id} + method: GET +- name: organisation + endpoint: + path: /api/v2.0/organisation + method: GET +- name: organisation_id + endpoint: + path: /api/v2.0/organisation/{id} + method: GET +- name: revenue + endpoint: + path: /api/v2.0/revenue + method: GET +- name: revenue_id + endpoint: + path: /api/v2.0/revenue/{id} + method: GET +- name: summary_data + endpoint: + path: /api/v2.0/summary_data + method: GET +- name: summary_data_id + endpoint: + path: /api/v2.0/summary_data/{id} + method: GET +- name: validation_data + endpoint: + path: /api/v2.0/validation_data + method: GET +- name: validation_data_id + endpoint: + path: /api/v2.0/validation_data/{id} + method: GET +- name: critical_minerals_supply_chain + endpoint: + path: /ru/chain-supply-critical-minerals + method: GET + data_selector: data +- name: community_engagement + endpoint: + path: /ru/community-engagement-just-transition + method: GET + data_selector: data +- name: renewable_energy_management + endpoint: + path: /ru/renewable-energy-management + method: GET + data_selector: data +- name: fossil_fuel_subsidies + endpoint: + path: /ru/fossil-fuel-subsidies + method: GET + data_selector: data +- name: data_support_energy_transition + endpoint: + path: /ru/data-support-energy-transition + method: GET + data_selector: data +- name: germany + endpoint: + path: /ru/germany + method: GET + data_selector: data +- name: summary_data + endpoint: + path: /api/summary-data + method: GET + data_selector: data + params: {} +- name: country_reports + endpoint: + path: /api/country-reports + method: GET + data_selector: reports + params: {} +- name: sovereign_wealth_fund + endpoint: + path: /api/sovereign-wealth-fund + method: GET + data_selector: funds + params: {} +- name: data_portal + endpoint: + path: /api/data + method: GET + data_selector: data_records +- name: country_reports + endpoint: + path: /api/country_reports + method: GET + data_selector: reports +- name: data_portal + endpoint: + path: /api + method: GET + data_selector: data +- name: country_reports + endpoint: + path: /eiti-country-reports + method: GET + data_selector: reports +- name: информация о продажах нефти + endpoint: + path: /api/information/o-sales + method: GET + data_selector: sales_data + params: {} +- name: отчеты ИПДО + endpoint: + path: /api/reports/eiti + method: GET + data_selector: eiti_reports + params: {} +- name: data_portal + endpoint: + path: /api + method: GET + data_selector: data + params: {} +- name: country_reports + endpoint: + path: /eiti-country-reports + method: GET + data_selector: reports + params: {} +- name: annual_reports + endpoint: + path: /eiti-progress-reports + method: GET + data_selector: reports + params: {} +- name: data_reports + endpoint: + path: /api/data-reports + method: GET + data_selector: reports + params: {} +- name: country_reports + endpoint: + path: /api/country-reports + method: GET + data_selector: reports + params: {} +- name: data_portal + endpoint: + path: /api + method: GET +- name: country_reports + endpoint: + path: /eiti-country-reports + method: GET +- name: annual_reports + endpoint: + path: /eiti-progress-reports + method: GET +notes: +- The EITI holds all implementing countries to the same global standard. +- Validation promotes learning and dialogue, providing countries with an opportunity + to communicate progress. +- Data is accessible through various formats including an API. +- Pagination is available on the publications endpoint. +- The 2023 EITI Standard supports countries in identifying and mitigating corruption + by exposing governance practices vulnerable to abuse. +- Disclosures related to commodity trading are covered by EITI Requirements 3.3 and + 4.2. +- The energy transition presents a significant opportunity for countries to use EITI + data. +- Implementation is funded by the countries themselves. +- Countries preparing to join the EITI are encouraged to identify potential barriers + to systematic disclosures. +- Countries preparing to join the EITI are encouraged to identify potential barriers + to systematic disclosures from the outset. +- The EITI Board aims to process applications within eight weeks of receiving the + application. +- Supporting companies are encouraged to participate in multi-stakeholder groups and + to actively engage in the EITI process in implementing countries. +- The multi-stakeholder group must include adequate representation of key stakeholders. +- The multi-stakeholder group is required to agree clear public Terms of Reference + (ToRs) for its work. +- Implementing countries are encouraged to disclose beneficial owners’ national identity + number, date of birth, residential or service address, and contact information. +- Publicly listed companies are required to disclose the name of the stock exchange + and include a link to the stock exchange filings where they are listed. +- The API provides access to various EITI documents and reports. +- Encourages systematic disclosure of EITI data. +- Recommends publishing open data for EITI implementing countries. +- This document presents the current procedures for EITI Board oversight under the + 2023 EITI Standard. +- Multi-stakeholder group must ensure material transfers are disclosed. +- Disclosure of cost and tax audit reports is required. +- The EITI Articles of Association govern the EITI Association. +- Updated at the EITI Members’ Meeting on 12-13 June 2023. +- The EITI Standard includes several new and refined provisions. +- The participation of civil society is fundamental to achieving the objectives of + EITI. +- EITI encourages routine disclosure from the reporting entities in open formats at + the national level. +- Document presents the current procedures for EITI Board oversight under the 2023 + EITI Standard. +- For assessments conducted under the 2019 EITI Standard, refer to the 2019 version + of this document. +- The EITI Articles of Association were updated at the EITI Members’ Meeting on 12-13 + June 2023. +- The EITI Standard promotes good governance by enhancing transparency. +- The EITI standard promotes transparency and accountability in the extractive sectors. +- The EITI Standard requires countries to disclose beneficial ownership information + from January 1, 2020. +- Les données ouvertes sont au cœur de la mission de l’ITIE, qui consiste à promouvoir + la gestion transparente et responsable des ressources naturelles. +- Transparency of commodity trading is critical to prevent corruption. +- The ITIE requires disclosure of beneficial ownership since 2020. +- The EITI requires countries to disclose beneficial ownership information from January + 1, 2020. +- La divulgation systématique constitue une attente par défaut pour le rapportage + ITIE. +- Les pays peuvent demander l’approbation du Conseil d’administration de l’ITIE afin + de divulguer systématiquement des données sans la réconciliation préalable. +- Focus on transparency in commodity trading practices. +- Uses EITI data for governance and anti-corruption discussions +- Corruption remains a significant challenge in many resource-rich countries, undermining + development and eroding public trust. +- The extractive sector is particularly vulnerable due to the high value of resources, + complex value chains and the involvement of political elites. +- The transition to renewable energy requires a transparent and responsible extractive + sector. +- Requires connected app setup for data access. +- The study is available on the ITIE-BF website. +- EITI is focused on enhancing transparency and data in mineral supply chains. +- The next Validation is expected to commence in January 2027. +- Uses open data to combat corruption in the extractive sector +- El EITI aborda los riesgos de corrupción mediante requisitos sólidos de divulgación + y un enfoque multipartícipe. +- La corrupción sigue siendo un reto importante en muchos países ricos en recursos + naturales. +- Public access to basic company and beneficial ownership information via the State + Registry. +- Some objects may return nulls in deeply nested fields +- The study is also available on the ITIE-BF website +- Mozambique has used the EITI process to improve transparency in the management of + state-owned enterprises. +- This guidance note aims to support MSGs by providing an approach for defining the + EITI’s role in mitigating corruption at the country level. +- The time needed for this step depends on MSG capacity, priorities and resources. +- To undertake this step, the MSG could consider conducting an anti-corruption workshop + (1-2 days). +- Undertaking a detailed assessment, using tools such as the MACRA/NRGI frameworks + could take up to three months. +- Where feasible, the MSG could consider establishing a dedicated anti-corruption + working group to further sustain efforts. +- Guidance note for addressing corruption risks through EITI implementation +- The time needed for this step depends on MSG capacity and resources. Some activities + may take a single day (e.g. during an MSG meeting), while others may span months + or years, depending on complexity. +- The time needed for activities depends on MSG capacity and resources. +- Routine monitoring should be conducted at least annually. +- The purpose is to catalyse discussion on the contribution and limitations of the + EITI in fighting corruption. +- This study provides an overview of global value chains of transition minerals. +- Increased demand for transition minerals may bring about risks for stakeholders. +- Strengthening governance of mineral value chains for the energy transition +- The register is expected to be fully functional by 2026. +- Ghana's commitment to beneficial ownership transparency is significant. +- The digital register is expected to be fully functional by 2026. +- Philippines achieved a moderate overall score in EITI implementation. +- Corrective actions relating to 'Stakeholder Engagement' was set to be reviewed in + January 2024. +- The plan has an overall budget, but individual activities are not costed. +- Due to budget cuts, activities will be undertaken online without separate funds + allocated. +- Philippines achieved a moderate overall score (80 points) in implementing the 2019 + EITI Standard +- Corrective actions relating to 'Stakeholder Engagement' was set to be reviewed in + January 2024 +- The Philippines has established appropriate data quality assurances for BO disclosures. +- Transparency in state participation is an area where SOE disclosures have been mainstreamed + from the start. +- The MSG has published an assessment of the comprehensiveness and reliability of + disclosures to date. +- The MSG has worked with companies to conclude waivers allowing for the publication + of BO data. +- There are regulatory constraints hindering the publication of BO data. +- The conference will be held in Manila in June 2026. +- The conference will be held in Manila in June 2026 +- EITI roundtable on responsible mineral supply chains at LME Week +- Chile's first EITI disclosures are expected within 18 months of admission. +- Chile's first EITI disclosures are expected within 18 months of admission +- Chile is the 55th country to implement the EITI Standard. +- EITI aims to enhance transparency in the extractive sector. +- Se espera que Chile realice sus primeras divulgaciones vinculadas al EITI dentro + de los 18 meses posteriores a su admisión. +- Chile's candidature application was received by the EITI International Secretariat + on 14 August 2025. +- The annual Climate Week NYC, hosted from 21 to 28 September 2025 in New York City, + USA. +- Annual Climate Week NYC hosted from 21 to 28 September 2025. +- Data is available via a REST API. +- API does not require authentication. +- Report on community engagement in the energy transition, based on findings from + Colombia, Ghana and Indonesia. +- ИПДО является глобальным стандартом прозрачности и подотчетности в нефтяном, газовом + и горнодобывающем секторах. +- Независимое и проверенное коллегами исследование продемонстрировало, как это может + способствовать достижению национальных результатов. +- Прозрачность торговли сырьевыми товарами обеспечивает понимание всеми сторонами + условий, на которых происходят сделки. +- Provides data in open format, including summary data and country reports +- Data is available in machine-readable format from the online platform. +- Требования ИПДО 3.3 и 4.2 касаются раскрытия информации о доходах от продажи полезных + ископаемых. +- Data usage supports public discussions and decision-making about energy transition + paths. +- Data is available in machine-readable format. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '404 Not Found: Check the endpoint path for correctness' +- '403 Forbidden: Verify access permissions for the requested resource' +- 'DATA_NOT_FOUND: Ensure correct endpoint path.' +- 'INVALID_PARAMETER: Check query parameters.' +- '404 Not Found: Check the endpoint path.' +- '500 Internal Server Error: Retry the request.' +- '401 Unauthorized: Check API key or access permissions.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- Data not available upon request from SEC Express +- '404 Not Found: Check the endpoint path' +- '500 Internal Server Error: Try again later' +- '403 Forbidden: Check API access permissions.' +- '404 Not Found: Verify the endpoint path.' +auth_info: + mentioned_objects: [] +client: + base_url: https://eiti.org/api +source_metadata: null diff --git a/elebase/elebase-docs.md b/elebase/elebase-docs.md new file mode 100644 index 00000000..f19d0346 --- /dev/null +++ b/elebase/elebase-docs.md @@ -0,0 +1,147 @@ +In this guide, we'll set up a complete Elebase data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def elebase_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://cdn.elebase.io/", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "{project.id", "15880s9-1b12-41ed-9f78-7b5d093d1786" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='elebase_pipeline', + destination='duckdb', + dataset_name='elebase_data', + ) + # Load the data + load_info = pipeline.run(elebase_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from elebase’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Entries Endpoint**: `/15880s9-1b12-41ed-9f78-7b5d093d1786/v1/entries` - This endpoint likely handles requests related to entries within a specific project. +- **Project ID Endpoint**: `/{project.id` - This endpoint may be used to access or manipulate project data, indicated by the project ID parameter. +- **Project ID Endpoint (Alternative)**: `/{project.id` - Similar to the previous endpoint, this one also references project data through the project ID parameter but may differ in functionality or structure. + +You will then debug the Elebase pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Elebase support. + ```shell + dlt init dlthub:elebase duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Elebase API, as specified in @elebase-docs.yaml + Start with endpoints {project.id and 15880s9-1b12-41ed-9f78-7b5d093d1786 and skip incremental loading for now. + Place the code in elebase_pipeline.py and name the pipeline elebase_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python elebase_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + A token is required and should be included in the `Authorization` header; refer to the authentication guide for details on obtaining the token. + + To get the appropriate API keys, please visit the original source at https://elebase.io/learn/api. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python elebase_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline elebase load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset elebase_data + The duckdb destination used duckdb:/elebase.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline elebase_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("elebase_pipeline").dataset() + # get "{project.id" table as Pandas frame + data."{project.id".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/elebase/elebase-docs.yaml b/elebase/elebase-docs.yaml new file mode 100644 index 00000000..322dba3a --- /dev/null +++ b/elebase/elebase-docs.yaml @@ -0,0 +1,11 @@ +client: + auth: A token is required and should be included in the `Authorization` header; + refer to the authentication guide for details on obtaining the token. + most_recurring_base_url: https://cdn.elebase.io + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://elebase.io/learn/api': + - /15880s9-1b12-41ed-9f78-7b5d093d1786/v1/entries` + - /{project.id +- 'endpoints source: https://elebase.io/learn/api/authentication': + - /{project.id diff --git a/emma_api/emma-api-docs.md b/emma_api/emma-api-docs.md new file mode 100644 index 00000000..5eefc791 --- /dev/null +++ b/emma_api/emma-api-docs.md @@ -0,0 +1,156 @@ +In this guide, we'll set up a complete Emma data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def emma_cloud_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.emma.ms/external/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + blog,,vms,,volumes + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='emma_cloud_migration_pipeline', + destination='duckdb', + dataset_name='emma_cloud_migration_data', + ) + # Load the data + load_info = pipeline.run(emma_cloud_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from emma_cloud_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Blog: Access blog posts and updates. +- VMs: Manage virtual machines and their configurations. +- Volumes: Handle storage volume configurations. +- Data Centers: Retrieve information about data center locations. +- Locations: Access details about various geographical locations of services. +- Providers: Get information about cloud service providers. +- Community: Access community resources and support. +- Events: Retrieve API events related to usage and updates. + +You will then debug the Emma pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Emma support. + ```shell + dlt init dlthub:emma_cloud_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Emma API, as specified in @emma_cloud_migration-docs.yaml + Start with endpoints blog and and skip incremental loading for now. + Place the code in emma_cloud_migration_pipeline.py and name the pipeline emma_cloud_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python emma_cloud_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Emma uses OAuth2 authentication, specifically the refresh token flow, for secure access to its API. It requires the client ID, client secret, and refresh token to obtain an access token which is then used for API requests. + + To get the appropriate API keys, please visit the original source at https://www.emma.ms/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python emma_cloud_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline emma_cloud_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset emma_cloud_migration_data + The duckdb destination used duckdb:/emma_cloud_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline emma_cloud_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("emma_cloud_migration_pipeline").dataset() + # get lo table as Pandas frame + data.lo.df().head() + ``` + +## Running into errors? + +It is important to note that the access token expires in 10 minutes, requiring proper handling for refreshing tokens. Additionally, some API endpoints may have rate limits, and sensitive data should be managed with care. Configuration of the connected app in Emma is necessary for proper integration, and users should be aware of the potential for null values in deeply nested fields. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/emma_api/emma-api-docs.yaml b/emma_api/emma-api-docs.yaml new file mode 100644 index 00000000..b01b21a0 --- /dev/null +++ b/emma_api/emma-api-docs.yaml @@ -0,0 +1,619 @@ +resources: +- name: locations + endpoint: + path: /v1/locations + method: GET + data_selector: locations +- name: issue_token + endpoint: + path: /v1/issue-token + method: POST + data_selector: token +- name: refresh_token + endpoint: + path: /v1/refresh-token + method: POST + data_selector: refresh_token +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET +- name: vms_configs + endpoint: + path: /v1/vms-configs + method: GET +- name: vms_resize_configs + endpoint: + path: /vms-resize-configs + method: GET + data_selector: content + params: {} +- name: system_volumes_configs + endpoint: + path: /system-volumes-configs + method: GET + data_selector: content + params: {} +- name: spots_configs + endpoint: + path: /spots-configs + method: GET + data_selector: content + params: {} +- name: kubernetes_configs + endpoint: + path: /kubernetes-configs + method: GET + data_selector: content + params: {} +- name: data_centers + endpoint: + path: /data-centers + method: GET + data_selector: content + params: {} +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content + params: {} +- name: kubernetes_clusters + endpoint: + path: /v1/kubernetes + method: GET + data_selector: content + params: {} +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content +- name: kubernetes + endpoint: + path: /v1/kubernetes/{kubernetesId} + method: DELETE +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content +- name: locations + endpoint: + path: /v1/locations + method: GET + data_selector: content +- name: operating_systems + endpoint: + path: /v1/operating-systems + method: GET + data_selector: content +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET +- name: providers + endpoint: + path: /v1/providers + method: GET +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content + params: {} +- name: security_groups + endpoint: + path: /v1/security-groups + method: GET + data_selector: content + params: {} +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content +- name: security_groups_instances + endpoint: + path: /v1/security-groups/{securityGroupId}/instances + method: GET + data_selector: content +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content + params: {} +- name: spot_instances + endpoint: + path: /v1/spot-instances + method: GET + data_selector: content + params: {} +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content + params: {} +- name: spot_instances + endpoint: + path: /v1/spot-instances/{spotInstanceId} + method: GET + data_selector: content + params: {} +- name: spot_instance_actions + endpoint: + path: /v1/spot-instances/{spotInstanceId}/actions + method: POST + data_selector: content + params: {} +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content + params: {} +- name: ssh_keys + endpoint: + path: /v1/ssh-keys + method: GET + data_selector: content + params: {} +- name: ssh_key_by_id + endpoint: + path: /v1/ssh-keys/{sshKeyId} + method: GET + data_selector: content + params: {} +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content +- name: statistics_retrieve + endpoint: + path: /v1/statistics/retrieve + method: POST + data_selector: content +- name: system_volumes_configs + endpoint: + path: /external/v1/system-volumes-configs + method: GET + data_selector: content + params: {} +- name: subnetworks + endpoint: + path: /external/v1/subnetworks + method: GET + data_selector: content + params: {} +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content + params: {} +- name: virtual_machines + endpoint: + path: /v1/vms + method: GET + data_selector: content + params: {} +- name: system_volumes_configs + endpoint: + path: /system-volumes-configs + method: GET + data_selector: content + params: {} +- name: vms + endpoint: + path: /vms/{vmId} + method: GET + data_selector: content + params: {} +- name: delete_vm + endpoint: + path: /vms/{vmId} + method: DELETE + data_selector: content + params: {} +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content +- name: volumes + endpoint: + path: /v1/volumes + method: GET + data_selector: content +- name: create_volume + endpoint: + path: /v1/volumes + method: POST + data_selector: '' + params: {} +- name: system_volumes_configs + endpoint: + path: /v1/system-volumes-configs + method: GET + data_selector: content + params: {} +- name: volumes_actions + endpoint: + path: /v1/volumes/{volumeId}/actions + method: POST + data_selector: '' + params: {} +- name: system_volumes_configs + endpoint: + path: /system-volumes-configs + method: GET + data_selector: content +- name: volume_configs + endpoint: + path: /volume-configs + method: GET + data_selector: content +- name: cloud_resources + endpoint: + path: /api/v1/cloud_resources + method: GET + data_selector: data + params: {} +- name: cloud_management + endpoint: + path: /v1/cloud-management + method: GET + data_selector: resources + params: {} +- name: backup + endpoint: + path: /api/v1/backup + method: GET + data_selector: records +- name: security + endpoint: + path: /api/v1/security + method: GET + data_selector: records +- name: cloud_management + endpoint: + path: /products/cloud-management-platform + method: GET + data_selector: data + params: {} +- name: cloud_infrastructure + endpoint: + path: /products/deploy-cloud-infrastructure + method: GET + data_selector: data + params: {} +- name: cloud_optimization + endpoint: + path: /products/cloud-optimization + method: GET + data_selector: data + params: {} +- name: kubernetes + endpoint: + path: /products/kubernetes + method: GET + data_selector: data + params: {} +- name: virtual_machines + endpoint: + path: /products/virtual-machines + method: GET + data_selector: data +- name: virtual_machines + endpoint: + path: /v1/virtual_machines + method: GET + data_selector: data + params: {} +- name: spot_instances + endpoint: + path: /v1/spot_instances + method: GET + data_selector: data + params: {} +- name: kubernetes + endpoint: + path: /v1/kubernetes + method: GET + data_selector: data + params: {} +- name: virtual_machines + endpoint: + path: /products/virtual-machines + method: GET +- name: cloud_management_platform + endpoint: + path: /products/cloud-management-platform + method: GET +- name: spot_instances + endpoint: + path: /products/spot-instances + method: GET + data_selector: records +- name: cloud_management + endpoint: + path: /products/manage-cloud-resources + method: GET + data_selector: records +- name: cloud_optimization + endpoint: + path: /products/cloud-optimization + method: GET + data_selector: records +- name: spot_instances + endpoint: + path: /products/spot-instances + method: GET + data_selector: instances + params: {} +- name: cloud_management + endpoint: + path: /products/manage-cloud-resources + method: GET + data_selector: resources + params: {} +- name: managed_kubernetes_services + endpoint: + path: /products/kubernetes + method: GET +- name: resource_usage + endpoint: + path: /api/resource_usage + method: GET + data_selector: data + params: {} +- name: cost_management + endpoint: + path: /api/cost_management + method: GET + data_selector: data + params: {} +- name: events + endpoint: + path: /api/v1/events + method: GET + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: white_papers + endpoint: + path: /resources/white-papers + method: GET + data_selector: papers + params: {} +- name: articles + endpoint: + path: /blog + method: GET + data_selector: articles + params: {} +- name: events + endpoint: + path: /resources/events + method: GET + data_selector: records + params: {} +- name: cloud_management_platform + endpoint: + path: /api/cloud_management + method: GET + data_selector: data +- name: cloud_cost_management + endpoint: + path: /api/cloud_cost + method: GET + data_selector: data +- name: cloud_resources + endpoint: + path: /resources/cloud + method: GET + data_selector: resources +- name: cloud_cost_management + endpoint: + path: /api/v1/cloud-cost-management + method: GET + data_selector: data + params: {} +- name: contact + endpoint: + path: /resources/api + method: GET + data_selector: records + params: {} +- name: cloud_cost_management + endpoint: + path: /cloud-cost-management + method: GET + data_selector: cost_records +- name: cloud_credits + endpoint: + path: /api/cloud/credits + method: GET + data_selector: records +- name: community + endpoint: + path: /api/community + method: GET + data_selector: records +- name: api + endpoint: + path: /resources/api + method: GET + data_selector: records +- name: cookies + endpoint: + path: /cookie-policy + method: GET + data_selector: cookies + params: {} +- name: privacy_policy + endpoint: + path: /privacy-policy + method: GET + data_selector: privacy_policy + params: {} +- name: cookies + endpoint: + path: /cookie-policy + method: GET + data_selector: cookies +- name: privacy_policy + endpoint: + path: /privacy-policy + method: GET + data_selector: privacy +- name: cloud_management + endpoint: + path: /api/cloud_management + method: GET + data_selector: records + params: {} +- name: cloud_operations + endpoint: + path: /api/cloud_operations + method: GET + data_selector: records + params: {} +notes: +- Access token expires in 10 minutes. +- To retrieve available configurations for DigitalOcean system volumes, use the GET + v1/vms-configs method. +- To retrieve available configurations for DigitalOcean system volumes, use the `GET + v1/vms-configs` method +- Cookies do not typically contain any information that personally identifies a user. +- API requires OAuth2 authentication. +- Utilizes OAuth2 with refresh token — requires configuration of the connected app + in emma. +- Some objects may return nulls in deeply nested fields +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Integrating Terraform with emma simplifies workflows by automating cloud resource + management, letting developers focus on coding instead of infrastructure. +- Automated infrastructure deployment and management reduce human errors, boosting + deployment reliability and stability. +- Uses OAuth2 with refresh token — requires setup of connected app in emma +- Some responses may contain sensitive data, handle accordingly. +- Requires setup of OAuth2 for integration +- Requires constant monitoring and real-time adjustments for spot instances. +- emma utilizes artificial intelligence (AI) to optimize resource utilization and + manage costs effectively across various cloud environments. +- Spot instances can be challenging as they require constant monitoring and real-time + adjustments. +- Automate service management via API. All processes run through one system. +- emma enables rapid onboarding of new cloud providers by offering integrations with + multiple cloud platforms beyond Azure. +- emma provides hybrid cloud management, enabling MSPs to integrate their own cloud + with hyperscalers like AWS, Azure, and Google Cloud. +- Utilizes AI for optimizing resource utilization and managing costs. +- Your data will be protected, never sold. +- Some events may have limited availability. +- Requires setup of connected app in emma +- Some objects like Contact may return nulls in deeply nested fields +- Contact our team for a personalized consultation and exclusive offers +- Data is protected and never sold. +- Some API endpoints may have rate limits +- Avoid vendor lock-in to achieve greater flexibility and innovation power. +- Ensure to follow best practices for token storage and management. +- Some endpoints may have rate limits +- Emma provides a cloud-agnostic solution to seamlessly work across various cloud + services and regions. +- Users can avoid vendor lock-in to achieve greater flexibility and innovation power. +- Enlist a private AI-powered connectivity network and slash public Internet egress + costs by 80%. +- Cut public Internet egress costs with private AI-powered networks and free up your + budget for other critical investments. +- Yes, we provide a robust API to allow for seamless integration with your existing + systems. +- Real-time cost tracking may vary depending on cloud provider APIs. +- Easily migrate applications between public clouds like Azure, GCP, and AWS with + a secure, efficient, and automated solution. +- Minimize effort, reduce downtime, and enhance security while ensuring a smooth transition + with end-to-end migration services. +- Gain visibility into migrated workloads and applications across public clouds like + Azure, GCP, and AWS. +- Offers up to $100,000 in cloud credits for startups. +- Community support available through Slack. +- Enjoy a session with one of our cloud engineers who will guide you through the onboarding + process, and answer any questions you may have. +- Enjoy a 50% discount on technical support services fees. +- Cookies are used to track activity on the Service and store information. +- We do not sell personal information as the term sell is commonly understood. +- Our platform is in line with the GDPR regulations. +- We utilize anonymous tokens to eliminate the need for sharing passwords over the + internet. +- All processes are certified under ISO 27001, SOC, and HIPAA. +- We conduct regular penetration tests and network audits. +- Our platform is secured with advanced, industry-leading security tools. +- We use military-grade AES-256-XTS encryption. +- This Privacy Policy describes Our policies and procedures on the collection, use + and disclosure of Your information when You use the Service. +errors: +- '400: Bad request' +- '401: Unauthorized' +- '403: Forbidden - Access is denied' +- 401 Unauthorized +- 403 Forbidden +- 404 Not found +- 400 Bad request +- 422 Unprocessable entity +- '404: Not found' +- '422: Unprocessable Content' +- '403: Forbidden' +- 403 Forbidden - Access is denied +- '401 Unauthorized: Check credentials and token validity.' +- '429 Too Many Requests: Slow down request rate.' +- '401 Unauthorized: Check OAuth scopes or token expiration.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Check your OAuth2 credentials' +- '404 Not Found: Verify the endpoint path' +- '500 Internal Server Error: Retry after some time' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity.' +- '401 Unauthorized: Check OAuth token or permissions' +- '401 Unauthorized: Check your token and permissions.' +- '404 Not Found: The requested resource does not exist.' +- '403 Forbidden: Check your permissions or API key.' +- '404 Not Found: Verify the endpoint path.' +- '400 Bad Request: Check your query parameters and request format.' +- '403 Forbidden: Ensure you have the right permissions.' +- '401 Unauthorized: Check if the access token is valid.' +- '403 Forbidden: Ensure the user has the necessary permissions.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential + - OAuthToken +client: + base_url: https://api.emma.ms/external + auth: + type: oauth2 + flow: refresh_token + token_url: https://api.emma.ms/external/v1/issue-token + client_id: YOUR-CLIENT-ID + client_secret: YOUR-CLIENT-SECRET + refresh_token: YOUR-REFRESH-TOKEN + location: header + header_name: Authorization +source_metadata: null diff --git a/essential_data_api_documentation/essential-data-api-documentation-docs.md b/essential_data_api_documentation/essential-data-api-documentation-docs.md new file mode 100644 index 00000000..dce88319 --- /dev/null +++ b/essential_data_api_documentation/essential-data-api-documentation-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Essential Data data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def essential_data_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://essentialdata.com/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + clients/cdc,,clients/adobe,,knowledge_transfer + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='essential_data_migration_pipeline', + destination='duckdb', + dataset_name='essential_data_migration_data', + ) + # Load the data + load_info = pipeline.run(essential_data_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from essential_data_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Base: General access to the API +- Clients: Information related to various clients +- Manuals: Access to different types of manuals and guides +- Services: Data and operational services + +You will then debug the Essential Data pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Essential Data support. + ```shell + dlt init dlthub:essential_data_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Essential Data API, as specified in @essential_data_migration-docs.yaml + Start with endpoints clients/cdc and and skip incremental loading for now. + Place the code in essential_data_migration_pipeline.py and name the pipeline essential_data_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python essential_data_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The API uses an API key for authentication, which should be included in the headers of requests to ensure access to its resources. + + To get the appropriate API keys, please visit the original source at https://www.essentialdata.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python essential_data_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline essential_data_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset essential_data_migration_data + The duckdb destination used duckdb:/essential_data_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline essential_data_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("essential_data_migration_pipeline").dataset() + # get lients/cd table as Pandas frame + data.lients/cd.df().head() + ``` + +## Running into errors? + +Be aware of potential fines for non-compliance and request limits that may throttle API calls. You may also encounter errors like '404 Not Found' or '500 Internal Server Error,' necessitating checks on endpoint paths or retries. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/essential_data_api_documentation/essential-data-api-documentation-docs.yaml b/essential_data_api_documentation/essential-data-api-documentation-docs.yaml new file mode 100644 index 00000000..52d5ce5c --- /dev/null +++ b/essential_data_api_documentation/essential-data-api-documentation-docs.yaml @@ -0,0 +1,958 @@ +resources: +- name: technical_writing_services + endpoint: + path: /service/technical-writing-documentation-services/ + method: GET + data_selector: services +- name: case_studies + endpoint: + path: /case-study/ + method: GET + data_selector: case_studies +- name: Adobe, Inc. + endpoint: + path: /clients/adobe + method: GET + data_selector: testimonials + params: {} +- name: Roche Sequencing & Life Science + endpoint: + path: /clients/roche + method: GET + data_selector: testimonials + params: {} +- name: The World Bank + endpoint: + path: /clients/world_bank + method: GET + data_selector: testimonials + params: {} +- name: Trinity Robotics Automation + endpoint: + path: /clients/trinity_robotics + method: GET + data_selector: testimonials + params: {} +- name: Verizon Communications, Inc. + endpoint: + path: /clients/verizon + method: GET + data_selector: testimonials + params: {} +- name: Unqork, Computer Software Company + endpoint: + path: /clients/unqork + method: GET + data_selector: testimonials + params: {} +- name: Metropolitan Atlanta Rapid Transit Authority + endpoint: + path: /clients/marta + method: GET + data_selector: testimonials + params: {} +- name: Centers for Disease Control and Prevention + endpoint: + path: /clients/cdc + method: GET + data_selector: testimonials + params: {} +- name: Wall Street Journal article + endpoint: + path: /the-forgotten-workers/ + method: GET +- name: EDC Honored by Inc 500 + endpoint: + path: /essential-data-honored/ + method: GET +- name: Sales Diva from CT Business Magazine + endpoint: + path: /sales-diva/ + method: GET +- name: With a Woman at the helm + endpoint: + path: /with-a-woman-at-the-helm/ + method: GET +- name: MARTHA STEWART Living well + endpoint: + path: /martha-stewart-living-well/ + method: GET +- name: Connecticut’s Appetite for Talent, Fed With Flexibility + endpoint: + path: /connecticut-appetite-for-talent-fed-with-flexibility-2/ + method: GET +- name: The Norwalk Hour Oct 2009 + endpoint: + path: /the-norwalk-hour-oct-2009/ + method: GET +- name: assembly_manual + endpoint: + path: /service/assembly-manual-writing/ + method: GET + data_selector: manuals + params: {} +- name: Employee Benefits Guide + endpoint: + path: /service/employee-benefits-guide-writing/ + method: GET +- name: Policy Development + endpoint: + path: /service/information-security-policy-writing/ + method: GET + data_selector: services +- name: Policy Review and Enhancement + endpoint: + path: /service/information-security-policy-writing/ + method: GET + data_selector: services +- name: Policy Training + endpoint: + path: /service/information-security-policy-writing/ + method: GET + data_selector: services +- name: Regulatory Writing Services + endpoint: + path: /service/regulatory-writing/ + method: GET + data_selector: documents + params: {} +- name: Educational Writing Services + endpoint: + path: /service/educational-writing/ + method: GET + data_selector: documents + params: {} +- name: Device Manual Writing Services + endpoint: + path: /service/device-manual-writing/ + method: GET + data_selector: documents + params: {} +- name: Manuscript Writing Services + endpoint: + path: /service/manuscript-writing/ + method: GET + data_selector: documents + params: {} +- name: Communications, Promotional, and Public-Facing Writing Services + endpoint: + path: /service/public-facing-writing/ + method: GET + data_selector: documents + params: {} +- name: White Paper Writing Services + endpoint: + path: /service/white-paper-writing/ + method: GET + data_selector: documents + params: {} +- name: Grant Applications + endpoint: + path: /service/grant-applications/ + method: GET + data_selector: documents + params: {} +- name: Workflow Documents + endpoint: + path: /service/workflow-documents/ + method: GET + data_selector: documents + params: {} +- name: Operations Manual Writing + endpoint: + path: /service/operations-manual-writing/ + method: GET + data_selector: services +- name: policy_manual_writing + endpoint: + path: /service/policy-manual-writing/ + method: GET +- name: product_manual + endpoint: + path: /service/product-manual-writing + method: GET + data_selector: manuals +- name: technical_writing_services + endpoint: + path: /service/technical-writing-documentation-services/ + method: GET +- name: acceptable_use_policy_writing + endpoint: + path: /service/acceptable-use-policy-writing/ + method: GET +- name: assembly_manual_writing + endpoint: + path: /service/assembly-manual-writing/ + method: GET +- name: company_policy_writing + endpoint: + path: /service/company-policy-writing/ + method: GET +- name: content_writing + endpoint: + path: /service/content-writing/ + method: GET +- name: employee_benefits_guide_writing + endpoint: + path: /service/employee-benefits-guide-writing/ + method: GET +- name: information_security_policy_writing + endpoint: + path: /service/information-security-policy-writing/ + method: GET +- name: instruction_manual_writing + endpoint: + path: /service/instruction-manual-writing/ + method: GET +- name: medical_writing + endpoint: + path: /service/medical-writing/ + method: GET +- name: operating_manual_writing + endpoint: + path: /service/operating-manual-writing/ + method: GET +- name: operations_manual_writing + endpoint: + path: /service/operations-manual-writing/ + method: GET +- name: policy_manual_writing + endpoint: + path: /service/policy-manual-writing/ + method: GET +- name: product_manual_writing + endpoint: + path: /service/product-manual-writing/ + method: GET +- name: proposal_writing + endpoint: + path: /service/proposal-writing/ + method: GET +- name: regulatory_writing + endpoint: + path: /service/regulatory-writing/ + method: GET +- name: scientific_writing + endpoint: + path: /service/scientific-writing/ + method: GET +- name: sop_writing + endpoint: + path: /service/sop-writing/ + method: GET +- name: service_manual_writing + endpoint: + path: /service/service-manual-writing/ + method: GET +- name: technical_business_writing + endpoint: + path: /service/technical-business-writing/ + method: GET +- name: technical_manual_writing + endpoint: + path: /service/technical-manual-writing/ + method: GET +- name: training_manual_writing + endpoint: + path: /service/training-manual-writing/ + method: GET +- name: user_manual_writing + endpoint: + path: /service/user-manual-writing/ + method: GET +- name: white_paper_writing + endpoint: + path: /service/white-paper-writing/ + method: GET +- name: Policy Manual Writing + endpoint: + path: /service/policy-manual-writing/ + method: GET + data_selector: records +- name: Service Manual Writing + endpoint: + path: /service/service-manual-writing/ + method: GET + data_selector: service_manuals + params: {} +- name: API Documentation + endpoint: + path: /documentation-services/api-documentation/ + method: GET +- name: Technical Writing + endpoint: + path: /service/technical-writing-documentation-services/ + method: GET +- name: Business Documentation + endpoint: + path: /documentation-services/business-documentation/ + method: GET +- name: User Manual Writing + endpoint: + path: /service/user-manual-writing + method: GET +- name: Technical Writing + endpoint: + path: /service/technical-writing + method: GET +- name: process_maps + endpoint: + path: /blockchain/process/maps + method: GET + data_selector: process_maps + params: {} +- name: documentation_templates + endpoint: + path: /blockchain/documentation/templates + method: GET + data_selector: documentation_templates + params: {} +- name: audit_reviews + endpoint: + path: /blockchain/audit/reviews + method: GET + data_selector: audit_reviews + params: {} +- name: business_documentation + endpoint: + path: /documentation/business + method: GET + data_selector: services + params: {} +- name: Business Process Documentation + endpoint: + path: /documentation-services/business-process-documentation/ + method: GET + data_selector: records +- name: Process Documentation + endpoint: + path: /documentation-services/process-documentation/ + method: GET + data_selector: records +- name: Business Proposals + endpoint: + path: /service/proposal-writing/ + method: GET +- name: Business Requirements Documentation + endpoint: + path: / + method: GET +- name: Business Continuity Plans + endpoint: + path: / + method: GET +- name: Process Documentation + endpoint: + path: /documentation-services/process-documentation/ + method: GET +- name: Regulatory Compliance Documentation + endpoint: + path: /service/regulatory-writing/ + method: GET +- name: clinical_documentation + endpoint: + path: /documentation-services/clinical-documentation/ + method: GET + data_selector: records +- name: regulatory_compliance_documentation + endpoint: + path: /documentation/regulatory-compliance + method: GET + data_selector: records +- name: compliance_audit_documentation + endpoint: + path: /documentation/compliance-audit + method: GET + data_selector: records +- name: Regulatory Compliance Documentation + endpoint: + path: /documentation/regulatory-compliance + method: GET + data_selector: documents + params: {} +- name: Compliance Audit Documentation + endpoint: + path: /documentation/compliance-audit + method: GET + data_selector: audit_reports + params: {} +- name: process_documentation + endpoint: + path: /documentation/services/process + method: GET + data_selector: processes + params: {} +- name: documentation + endpoint: + path: /documentation-services/product-requirements-documentation/ + method: GET + data_selector: services + params: {} +- name: Proposal Documentation + endpoint: + path: /documentation/proposal + method: GET + data_selector: documents + params: {} +- name: Product Requirements Documentation + endpoint: + path: /documentation-services/product-requirements-documentation/ + method: GET + data_selector: specifications +- name: Proposal Documentation + endpoint: + path: /documentation/proposal + method: GET + data_selector: documents + params: {} +- name: technical_writing + endpoint: + path: /service/technical-writing-documentation-services/ + method: GET +- name: api_documentation + endpoint: + path: /documentation-services/api-documentation/ + method: GET +- name: Compliance Plans + endpoint: + path: /services/data/compliance/plans + method: GET +- name: SOPs + endpoint: + path: /services/data/sops + method: GET +- name: Policy Documentation + endpoint: + path: /services/data/policy/documentation + method: GET +- name: Compliance Reports + endpoint: + path: /services/data/compliance/reports + method: GET +- name: Compliance Plans + endpoint: + path: /services/data/compliance/plans + method: GET + data_selector: documents + params: {} +- name: SOPs + endpoint: + path: /services/data/sops + method: GET + data_selector: documents + params: {} +- name: Policy Documentation + endpoint: + path: /services/data/policy/documentation + method: GET + data_selector: documents + params: {} +- name: Compliance Reports + endpoint: + path: /services/data/compliance/reports + method: GET + data_selector: documents + params: {} +- name: medical_writing_services + endpoint: + path: /service/medical-writers/ + method: GET + data_selector: documents +- name: medical_documentation + endpoint: + path: /documentation-services/medical-documentation/ + method: GET + data_selector: documents +- name: medical_writing_services + endpoint: + path: /service/medical-writers/ + method: GET +- name: api_documentation_services + endpoint: + path: /documentation-services/api-documentation/ + method: GET +- name: clinical_documentation_services + endpoint: + path: /documentation-services/clinical-documentation/ + method: GET +- name: Artificial Intelligence (AI) Writers +- name: Alternative Reality and Virtual Reality Writers +- name: Big Data Writers +- name: Blockchain Technology in FinTech Writers +- name: Cloud Computing Technology Writers +- name: Cloud-based Data Analytics Writers +- name: Cybersecurity Writers +- name: Data Analytics and Data Science Writers +- name: Electric Vehicles (EVs) Writers +- name: Green Energy and Renewable Energy Writers +- name: Information Security (InfoSec) Writers +- name: Internet of Things (IoT) Writers +- name: Machine Learning and Data Science Writers +- name: Medical Device Writers +- name: Renewable Energy Writers +- name: Robotics Writers +- name: Rocket Systems and Data Administrator Writers +- name: Space Exploration Technologies Writers +- name: Sustainability Writers +- name: Virtual Reality and Augmented Reality Writers +- name: Wearable Technology Writers +- name: user_guide + endpoint: + path: /service/user-manual-writing/ + method: GET + data_selector: records +- name: O&M Manual + endpoint: + path: /om-manuals + method: GET + data_selector: records +- name: IETM Features + endpoint: + path: /IETM/features + method: GET + data_selector: features + params: {} +- name: IETM Benefits + endpoint: + path: /IETM/benefits + method: GET + data_selector: benefits + params: {} +- name: knowledge_transfer + endpoint: + path: /knowledge_transfer + method: GET + data_selector: knowledge_transfer_data +- name: compliance_documentation + endpoint: + path: /regulatory/compliance + method: GET + data_selector: records +- name: operations_and_maintenance_manual + endpoint: + path: /operations_and_maintenance_manual + method: GET + data_selector: manual_content +- name: safety_procedure_documents + endpoint: + path: /safety/procedures + method: GET + data_selector: documents +- name: SOPs + endpoint: + path: /standard-operating-procedures-sops/ + method: GET + data_selector: procedures + params: {} +- name: Acceptable Use Policy + endpoint: + path: /acceptable-use-policy + method: GET +- name: Access Control Policy + endpoint: + path: /access-control-policy + method: GET +- name: Change Management Policy + endpoint: + path: /change-management-policy + method: GET +- name: Information Security Policy + endpoint: + path: /information-security-policy + method: GET +- name: Incident Response Policy + endpoint: + path: /incident-response-policy + method: GET +- name: Remote Access Policy + endpoint: + path: /remote-access-policy + method: GET +- name: Email and Communication Policy + endpoint: + path: /email-communication-policy + method: GET +- name: Disaster Recovery Policy + endpoint: + path: /disaster-recovery-policy + method: GET +- name: Business Continuity Plan + endpoint: + path: /business-continuity-plan + method: GET +- name: product_documentation + endpoint: + path: /documentation/product + method: GET + data_selector: documents + params: {} +- name: process_documentation + endpoint: + path: /documentation/process + method: GET + data_selector: documents + params: {} +- name: acceptable_use_policy + endpoint: + path: /acceptable-use-policy + method: GET + data_selector: records +- name: access_control_policy + endpoint: + path: /access-control-policy + method: GET + data_selector: records +- name: change_management_policy + endpoint: + path: /change-management-policy + method: GET + data_selector: records +- name: information_security_policy + endpoint: + path: /information-security-policy + method: GET + data_selector: records +- name: incident_response_policy + endpoint: + path: /incident-response-policy + method: GET + data_selector: records +- name: remote_access_policy + endpoint: + path: /remote-access-policy + method: GET + data_selector: records +- name: email_and_communication_policy + endpoint: + path: /email-and-communication-policy + method: GET + data_selector: records +- name: disaster_recovery_policy + endpoint: + path: /disaster-recovery-policy + method: GET + data_selector: records +- name: business_continuity_plan + endpoint: + path: /business-continuity-plan + method: GET + data_selector: records +- name: OEM Manuals + endpoint: + path: /services/data/vXX.X/sobjects/OEMManual + method: GET + data_selector: records +- name: Quality Manuals + endpoint: + path: /services/data/vXX.X/sobjects/QualityManual + method: GET + data_selector: records +- name: Environmental Manuals + endpoint: + path: /services/data/vXX.X/sobjects/EnvironmentalManual + method: GET + data_selector: records +- name: Financial Reporting Manuals + endpoint: + path: /services/data/vXX.X/sobjects/FinancialReportingManual + method: GET + data_selector: records +- name: Aircraft Maintenance Manuals + endpoint: + path: /services/data/vXX.X/sobjects/AircraftMaintenanceManual + method: GET + data_selector: records +- name: Field Manuals + endpoint: + path: /services/data/vXX.X/sobjects/FieldManual + method: GET + data_selector: records +- name: Technical Manual Testing + endpoint: + path: /services/data/vXX.X/sobjects/TechnicalManualTesting + method: GET + data_selector: records +- name: Instructions for Use Manuals + endpoint: + path: /services/data/vXX.X/sobjects/InstructionsForUseManual + method: GET + data_selector: records +- name: Job / Training Instructional Manuals + endpoint: + path: /services/data/vXX.X/sobjects/JobTrainingInstructionalManual + method: GET + data_selector: records +- name: OEM Manuals + endpoint: + path: /api/oem/manuals + method: GET + data_selector: records +- name: Quality Manuals + endpoint: + path: /api/quality/manuals + method: GET + data_selector: records +- name: Environmental Manuals + endpoint: + path: /api/environmental/manuals + method: GET + data_selector: records +- name: Financial Reporting Manuals + endpoint: + path: /api/financial/reporting/manuals + method: GET + data_selector: records +- name: Aircraft Maintenance Manuals + endpoint: + path: /api/aircraft/maintenance/manuals + method: GET + data_selector: records +- name: Field Manuals + endpoint: + path: /api/field/manuals + method: GET + data_selector: records +- name: Technical Manual Testing + endpoint: + path: /api/manual/testing + method: GET + data_selector: records +- name: Instructions for Use Manuals + endpoint: + path: /api/instructions/for/use/manuals + method: GET + data_selector: records +- name: Job Training Instructional Manuals + endpoint: + path: /api/job/training/manuals + method: GET + data_selector: records +notes: +- Technical writing in healthcare is extremely important, so having a properly trained + medical technical writer is paramount. +- Acceptable use policy writing services help organizations navigate the complexities + of policy creation and ensure that their AUPs are not only legally sound but also + practical and effective in promoting responsible and secure digital behavior. +- Assembly manuals typically include detailed written instructions, diagrams, and + sometimes visual aids. +- Clear and concise language is used in assembly manuals to ensure that users can + easily follow the instructions. +- Company policies serve as the guiding principles that shape an organization’s positive + and safe culture. +- Technical writers can enhance a company’s workplace culture by providing a company + policy that is visually appealing and professional. +- Content writing services provide powerful tools for building and maintaining an + online presence, engaging with your audience, and achieving marketing and business + goals. +- Technical writers can tailor policies to the specific needs and culture of the organization. +- Instruction manual writing services are vital to the success of any company that + creates or provides products or services. +- Clear and user-centric instruction manuals can significantly reduce the volume of + customer support requests and inquiries. +- Operating manuals are crucial for various industries, including manufacturing, healthcare, + automotive, and technology, where precise and safe operation is paramount. +- Operations manuals cover a wide range of topics, including employee roles, workflows, + safety procedures, troubleshooting steps, and more. +- Policy manual writing services help bring expertise, clarity, and efficiency to + the process of creating and updating policy manuals. +- A well-structured product manual can enhance user experience. +- Regulatory document writing includes long processes and documentation to write manuals, + drug information, and educational medical brochures. +- The importance of regulatory writing services is to help expedite the process of + clinical documentation required for a drug’s information and safety measures. +- A well-structured product manual can significantly enhance the user experience and + contribute to the overall success of a company’s offerings. +- Regulatory document writing within the pharmaceutical industry includes long processes + and documentation to write manuals, drug information, and educational medical brochures. +- 'Improved Clarity and Accessibility: Scientific writing services provided by technical + writers result in clearer and more accessible scientific content.' +- 'Ensured Compliance with Scientific Standards: Technical writers ensure that scientific + documents adhere to the rigorous style and formatting guidelines required for publication.' +- 'Enhanced Organization and Structure: Scientific writing services include effective + organization and structuring of scientific content.' +- 'Customized Audience Engagement: Technical writers tailor scientific content to + suit the needs and preferences of specific target audiences.' +- 'Accurate Representation of Research: Scientific writing services provided by technical + writers ensure the accurate representation of research findings and data.' +- 'Efficient Project Management: Hiring a technical writer for scientific writing + services streamlines the writing and publication process.' +- 'Increased Publication Success: Scientific writing services offered by technical + writers enhance the likelihood of publication acceptance in scientific journals.' +- 'Cost and Time Savings: Outsourcing scientific writing tasks to technical writers + results in cost and time savings for research organizations.' +- Technical business writing services help organizations create documentation that + adheres to industry-specific standards and regulations. +- Utilizing a highly-skilled technical writer to develop service manuals through service + manual writing services yields a host of benefits, including clarity and comprehensibility, + accuracy and precision, consistency and standardization, enhanced product reliability, + reduction in support costs, regulatory compliance, and reduction in employee strain. +- Technical business writing services help translate technical jargon and data into + accessible language. +- Services are tailored to meet the unique needs of each sector. +- Utilizing a highly-skilled technical writer to craft white papers enhances credibility, + audience engagement, clarity, efficiency, and the overall effectiveness of this + powerful content marketing tool. +- Utilizing a highly-skilled technical writer enhances credibility, audience engagement, + clarity, efficiency, and overall effectiveness. +- Documentation services include creating and managing various types of documents. +- Business documentation services encompass a wide range of professional activities + dedicated to creating, managing, and optimizing documentation within an organization. +- Effective document management systems help businesses maintain version control, + track changes, and secure sensitive information. +- Business process documentation includes practices of recording and describing steps, + tasks, and activities that are involved in a business process. +- Documentation process usually begins with an overview that provides a high-level + description of the process and purpose. +- Adherence to HIPPA regulations is critical for a healthcare organization. +- Compliance documentation serves as proof that an organization is complying with + relevant regulations. +- Documentation should have a list detailing the standards and regulations the organization + needs to comply with. +- Compliance documentation is necessary for most businesses and organizations. +- Compliance documentation helps track compliance efforts and monitor practices. +- Medical documentation services are essential to a medical organization or facility’s + ability to effectively function, as they ensure that organizations can store and + access important information when needed. +- Healthcare documentation is important because it promotes safety and quality care + for the patient. +- ISO documentation refers to the comprehensive set of documents, procedures, and + records that an organization creates and maintains to demonstrate its compliance + with ISO standards. +- ISO certification and documentation matter for businesses because they enhance credibility, + expand market access, improve efficiency, mitigate risks, promote sustainability, + and increase customer satisfaction. +- Medical documentation services encompass the creation of clear and comprehensible + medical documentation, a vital component in the healthcare sector. +- These services are instrumental in ensuring that medical records, patient histories, + treatment plans, and other critical information are accurately documented and easily + accessible. +- Process documentation services offer a roadmap to seamless operations, improved + productivity, and sustained growth. +- Proposal documentation services ensure that documents are expertly crafted, employing + persuasive language and a coherent structure to maximize their impact. +- Software documentation services are the creation of online material and technical + manuals that describe the development, deployment, and use of software. +- Technical writers ensure that system documentation maintains consistency in terminology, + formatting, and content quality. +- System technical documentation created by skilled writers accelerates the adoption + and operation of the system. +- Technical requirements documentation helps keep a team on track by recording processes, + errors, revisions, and notes. +- Technical writers excel in translating complex topics into clear, concise language. +- Skilled technical writers lend credibility to white papers. +- Virtual reality documentation is a user-friendly guide that clearly explains how + to operate, set up, and navigate the world of virtual reality. +- Aviation technical writers create clear and precise documentation within the aviation + industry. +- Their work ensures adherence to industry regulatory standards. +- Automotive technical writers excel in translating complex technical information + into clear and understandable language. +- Clear and user-friendly documentation contributes to customer satisfaction. +- Compliance technical writers help establish plans for enforcing necessary regulations. +- Documentation writers can ensure information is designed to be adaptable for all + users. +- Medical writers create a wide variety of documents for the medical industry. +- Outsourcing systems documentation and training specialists is a smart move for many + companies. +- Quality and price will give us the edge over any new competition. +- ISO certification documentation confirms that your company meets ISO standards. +- Technical writers simplify complex topics for better understanding. +- Creating effective manuals requires careful attention to detail. +- 'Clarity: Use clear and concise language to ensure that users can easily understand + instructions.' +- 'Structured Content: Organize information logically, using headings, subheadings, + and bullet points for easy navigation.' +- 'Visual Aids: Incorporate visuals like diagrams, screenshots, and illustrations + to enhance understanding.' +- 'Consistency: Maintain a consistent writing style and terminology throughout the + manual.' +- 'User Testing: Before finalizing, conduct user testing to identify and address any + potential confusion or usability issues.' +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Technical documentation helps maintain a high level of efficiency and understanding + among employees. +- Construction training manuals are essential for worker safety and compliance with + OSHA regulations. +- Having the right construction training manuals and procedures in place when it comes + to training construction workers is essential to the workers’ safety and the safety + of anyone who enters the buildings. +- When writing any construction training manual, a business that works in the United + States should make sure that the information in the manual complies with the regulations + of the OSHA. +- Instruction manuals are essential for user experience, safety, and legal compliance. +- Feasibility studies ensure that a business is making worthwhile investments with + their time and money. +- Results can be extrapolated to future projects. +- O&M Manuals help with preventative maintenance and include procedures for tracking + data. +- Clear and comprehensive installation manuals create a great first impression on + customers. +- Installation guides improve transparency and reduce frustration by informing customers + of the minimum system requirements. +- Interactive electronic technical manuals provide numerous advantages over traditional + paper-based manuals. +- They offer improved accessibility, searchability, interactivity, and multimedia + integration. +- Interactive electronic technical manuals can be designed for offline accessibility. +- Medical and scientific writing is a very broad umbrella, encompassing everything + from technical documentation about a medical or scientific product to health and + safety protocols at a business. +- Clarity is of the utmost importance when creating health and safety protocols. +- Knowledge transfer plans can mitigate loss of information during staff transitions. +- Technical writers can help streamline the knowledge transfer process. +- Operations and Maintenance Manuals are critical to maintaining smooth daily operations + and bringing your customers the quality of product or service they deserve. +- Knowledge-Based Support helps customers find information more quickly and easily, + likely leading to increased sales and return customers. +- It decreases employee time spent answering questions, freeing up resources that + can be used elsewhere. +- Inadequate documentation can result in costly consequences for pharmaceutical companies. +- Medical and scientific writing is used heavily in marketing divisions. +- Technical documentation is essential for clarity in policies, procedures, and processes. +- Owner’s Manuals provide documentation for a product. +- Technical writing team can construct a digestible Owner’s Manual. +- SOPs provide a consistent source of guidance and information on how to perform duties. +- Utilizing technical writers is key to attaining technically proficient and well-constructed + technical documentation for your business. +- Documentation should be clear and easy to understand. +- Visual elements such as diagrams should accompany information. +- Maintaining employees’ safety is the most important thing any business can do. +- Safety procedures documentation gives businesses a way to ensure both the safety + of their workers and the continued smooth operation of their work. +- Standard operating procedures improve the efficiency and safety of an organization. +- Utilizing a technical writing team to document SOPs results in improved outcomes + and leads to demonstrable reductions in miscommunications. +- Customer service training manuals are critical for scaling business and improving + customer satisfaction. +- A centralized training program is necessary for consistent customer service practices. +- Preserves unique company and industry knowledge, streamlining company progress +- Helps new employees become independent quicker +- Provides more leadership opportunities for senior employees +- Creates a more efficient business process +- Eases entrance and learning curve for new employees +- Highlights differences between positions, creating a clearer hierarchy within an + organization +- White Papers are an essential part of establishing a brand image or identity. +- Helps market goods and services to a broad audience, boosting sales. +- Documenting standard operating procedures will improve efficiency and output for + an organization. +- Comprehensive training materials are critical to a successful business, and working + with a technical writing company ensures that your documentation will be done right. +- No matter how general or niche your documentation needs, Essential Data has technical + writers on staff to fulfill your company’s needs. +- Our culture at Essential Data focuses on client-centric, meaning our clients are + always first and our highest priority. +errors: +- Potential fines for non-compliance +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '404 Not Found: Check the endpoint path or resource identifier.' +- '500 Internal Server Error: Retry the request after a moment.' +auth_info: + mentioned_objects: [] +client: + base_url: https://essentialdata.com + headers: + Accept: application/json +source_metadata: null diff --git a/fabric_bloc/fabric-bloc-docs.md b/fabric_bloc/fabric-bloc-docs.md new file mode 100644 index 00000000..3bc8e6ef --- /dev/null +++ b/fabric_bloc/fabric-bloc-docs.md @@ -0,0 +1,167 @@ +In this guide, we'll set up a complete FabricBloc data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def fabric_bloc_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.dev.fabricbloc.com/v1/auth/login", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "basic", "passwordless" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='fabric_bloc_pipeline', + destination='duckdb', + dataset_name='fabric_bloc_data', + ) + # Load the data + load_info = pipeline.run(fabric_bloc_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from fabric_bloc’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Authentication Endpoints**: Various methods to authenticate users, including wallet login, passwordless login, and basic login. + - `/v1/auth/login/wallet`: Log in using a digital wallet. + - `/v1/auth/login/passwordless`: Log in without a password via a link or code. + - `/v1/auth/login/basic`: Standard username and password login. + +- **User Signup Endpoints**: Endpoints related to user registration and verification. + - `/v1/auth/signup`: Sign up for a new account. + - `/v1/auth/signup/otp/resend`: Resend the OTP for account verification. + - `/v1/auth/signup/confirm`: Confirm the signup process. + +- **Password Management Endpoints**: Endpoints to manage user passwords. + - `/v1/auth/password/reset`: Initiate a password reset. + - `/v1/auth/password/reset/confirm`: Confirm the password reset. + - `/v1/auth/password/change`: Change the current password. + +- **Token Management Endpoints**: Manage authentication tokens. + - `/v1/auth/token/refresh`: Refresh the authentication token. + +- **User Information Endpoints**: Access user-related information. + - `/v1/auth/me`: Retrieve information about the authenticated user. + +- **Health Check Endpoint**: + - `/v1/auth/health`: Check the health/status of the authentication service. + +You will then debug the FabricBloc pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with FabricBloc support. + ```shell + dlt init dlthub:fabric_bloc duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for FabricBloc API, as specified in @fabric_bloc-docs.yaml + Start with endpoints basic and passwordless and skip incremental loading for now. + Place the code in fabric_bloc_pipeline.py and name the pipeline fabric_bloc_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python fabric_bloc_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The snippets reference an Authentication API accessible at `/api/authentication-api`, which includes Authentication Endpoints and Methods, but do not provide any specific details regarding keys, tokens, client IDs, client secrets, header names, header locations, token URLs, or flows. + + To get the appropriate API keys, please visit the original source at https://docs.bloclabs.com/api. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python fabric_bloc_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline fabric_bloc load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset fabric_bloc_data + The duckdb destination used duckdb:/fabric_bloc.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline fabric_bloc_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("fabric_bloc_pipeline").dataset() + # get "basic" table as Pandas frame + data."basic".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/fabric_bloc/fabric-bloc-docs.yaml b/fabric_bloc/fabric-bloc-docs.yaml new file mode 100644 index 00000000..9a7555c0 --- /dev/null +++ b/fabric_bloc/fabric-bloc-docs.yaml @@ -0,0 +1,32 @@ +client: + auth: The snippets reference an Authentication API accessible at `/api/authentication-api`, + which includes Authentication Endpoints and Methods, but do not provide any specific + details regarding keys, tokens, client IDs, client secrets, header names, header + locations, token URLs, or flows. + most_recurring_base_url: https://api.dev.fabricbloc.com + paginator: Pagination is required and can be applied using "limit" for the number + of items per page and "offset" for the starting position, with a default page + size of 10 and a default offset of 0. +endpoints: +- 'endpoints source: https://docs.bloclabs.com/api/getting-started': + - https://api.bloclabs.com/v1` + - https://api.bloclabs.com/v1/wallets/create +- 'endpoints source: https://docs.bloclabs.com/api/core-concepts/wallet-management': + - https://api.bloclabs.com/v1/wallets/create +- 'endpoints source: https://docs.bloclabs.com/api/authentication-api': [] +- 'endpoints source: https://docs.bloclabs.com/api/authentication-api/authentication-endpoints': + - /v1/auth/login/wallet + - /v1/auth/login/passwordless/confirm + - /v1/auth/signup/otp/resend + - /v1/auth/token/refresh + - /v1/auth/signup + - /v1/auth/health + - /v1/auth/signup/confirm + - /v1/auth/login/passwordless + - /v1/auth/password/reset + - /v1/auth/wallet/email/add + - /v1/auth/password/reset/confirm + - /v1/auth/password/change + - /v1/auth/me + - /v1/auth/login/basic +- 'endpoints source: https://docs.bloclabs.com/api/nft-api': [] diff --git a/fedapay_customer_management/fedapay-customer-management-docs.md b/fedapay_customer_management/fedapay-customer-management-docs.md new file mode 100644 index 00000000..07f7e97a --- /dev/null +++ b/fedapay_customer_management/fedapay-customer-management-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete FedaPay data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def fedapay_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://sandbox-api.fedapay.com/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + customers,,payouts,,transactions + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='fedapay_migrations_pipeline', + destination='duckdb', + dataset_name='fedapay_migrations_data', + ) + # Load the data + load_info = pipeline.run(fedapay_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from fedapay_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Customers: Manage and retrieve customer data. +- Payouts: Handle and execute payout transactions. +- Transactions: Manage and view transaction details. + +You will then debug the FedaPay pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with FedaPay support. + ```shell + dlt init dlthub:fedapay_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for FedaPay API, as specified in @fedapay_migrations-docs.yaml + Start with endpoints customers and and skip incremental loading for now. + Place the code in fedapay_migrations_pipeline.py and name the pipeline fedapay_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python fedapay_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + FedaPay uses an API key for authentication, which should be included in the header of your requests as 'Authorization'. + + To get the appropriate API keys, please visit the original source at https://www.fedapay.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python fedapay_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline fedapay_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset fedapay_migrations_data + The duckdb destination used duckdb:/fedapay_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline fedapay_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("fedapay_migrations_pipeline").dataset() + # get ustomer table as Pandas frame + data.ustomer.df().head() + ``` + +## Running into errors? + +Ensure to use the appropriate API key for your environment (test or live). Keep your secret keys confidential and never expose them in public environments. Integration and testing should be done in the sandbox before going live. Webhooks need a valid SSL certificate and must use HTTPS. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/fedapay_customer_management/fedapay-customer-management-docs.yaml b/fedapay_customer_management/fedapay-customer-management-docs.yaml new file mode 100644 index 00000000..b0ba839f --- /dev/null +++ b/fedapay_customer_management/fedapay-customer-management-docs.yaml @@ -0,0 +1,220 @@ +resources: +- name: customers + endpoint: + path: /v1/customers + method: POST + data_selector: '' + params: {} +- name: checkout + endpoint: + path: /checkout.js + method: GET + data_selector: transaction + params: {} +- name: transactions + endpoint: + path: /v1/transactions + method: POST + data_selector: transaction + params: {} +- name: sub_account_invitations + endpoint: + path: /v1/auth/sub_account_invitations + method: POST + data_selector: invitation + params: {} +- name: customer + endpoint: + path: /customers + method: POST + data_selector: customer + params: {} +- name: transaction + endpoint: + path: /transactions + method: POST + data_selector: transaction + params: {} +- name: customer + endpoint: + method: POST +- name: transaction + endpoint: + method: POST +- name: checkout_button + endpoint: + path: /checkout/button + method: POST + data_selector: transaction + params: {} +- name: checkout_container + endpoint: + path: /checkout/container + method: POST + data_selector: transaction + params: {} +- name: checkout + endpoint: + path: /checkout.js + method: GET + data_selector: checkout +- name: checkout + endpoint: + path: /checkout.js + method: GET + data_selector: '' + params: {} +- name: transactions + endpoint: + path: /v1/transactions + method: POST + data_selector: transactions + params: {} +- name: sub_account_invitations + endpoint: + path: /v1/auth/sub_account_invitations + method: POST + data_selector: sub_account_invitations + params: {} +- name: transactions + endpoint: + path: /v1/transactions + method: POST + data_selector: null + params: {} +- name: sub_account_invitations + endpoint: + path: /v1/auth/sub_account_invitations + method: POST + data_selector: null + params: {} +- name: transactions + endpoint: + path: /v1/transactions + method: POST + data_selector: data +- name: transaction_details + endpoint: + path: /v1/transactions/ID + method: GET + data_selector: data +- name: transactions + endpoint: + path: /v1/transactions + method: POST + data_selector: transactions + params: {} +- name: transaction_details + endpoint: + path: /v1/transactions/ID + method: GET + data_selector: transaction + params: {} +- name: payouts + endpoint: + path: /v1/payouts + method: POST + data_selector: null + params: {} +- name: payout_details + endpoint: + path: /v1/payouts/ID + method: GET + data_selector: null + params: {} +- name: payouts + endpoint: + path: /v1/payouts + method: POST + data_selector: payouts +- name: payout_details + endpoint: + path: /v1/payouts/ID + method: GET + data_selector: payout_details +- name: merchant_reference + endpoint: + path: /v1/payouts/merchant/PAY-20250315-002 + method: GET + data_selector: merchant_reference +- name: transactions + endpoint: + path: /transactions + method: POST + data_selector: transaction + params: {} +- name: get_transaction + endpoint: + path: /transactions/{id} + method: GET + data_selector: transaction + params: {} +notes: +- The API endpoint may vary depending on the environment. Use https://api.fedapay.com/v1/customers + for the live environment. +- La sécurité est une priorité chez FedaPay. C’est pourquoi nous proposons l’authentification + à double facteur (2FA) pour protéger votre compte et vos transactions. +- Authorization of the domain is necessary for Checkout JS integration. +- Requires setup of API key for access. +- Specify whether you want to run your query in test or live mode +- Ensure you use the appropriate public key based on your environment +- Private Key must be kept strictly confidential and is used to authenticate sensitive + actions. +- Public Key is used for less critical actions. +- Security is a priority at FedaPay, which is why we offer two-factor authentication + (2FA) to protect your account and transactions. +- Public key is required for integration. +- Domain authorization is required for using the FedaPay Checkout solution. +- The total distributed amount must be less than the transaction amount minus FedaPay + commissions; otherwise, the transaction will fail. +- 'Each FedaPay account has two API keys: Test Key and Live Key.' +- Test Keys should be used in development environments to simulate transactions without + financial impact. +- Secret Keys must remain confidential and should never be exposed in public environments. +- The customer parameter is not mandatory but when used, the email must be unique. +- Ensure to test integrations in the sandbox environment before going live. +- Make sure to thoroughly test your integrations in the sandbox environment before + deploying them to production. +- The customer parameter is not mandatory but must be unique if provided. +- The customer parameter is not mandatory but must have a unique email address. +- Use a structured format for merchant_reference, e.g., PAY-YYYYMMDD-XXX. +- Webhook endpoints must use an HTTPS URL with a valid SSL certificate. +- Only TLS v1.2 and v1.3 versions are supported by FedaPay. +- Webhooks are automatic notifications that FedaPay sends to your application or website + when important events occur on your account. +- Each webhook is signed by FedaPay via the X-FEDAPAY-SIGNATURE header. +errors: +- 'Invalid API key: Check that your API key is correct.' +- 'Transaction failed: Ensure the total amount does not exceed the limits.' +- 'Unauthorized access: Ensure your domain is authorized.' +- '401 Unauthorized: Recheck API key or authentication method' +- '400 Bad Request: Ensure all required fields are filled correctly' +- '401 Unauthorized: Recheck API key or permissions' +- '401 Unauthorized: Recheck API key or token.' +- '400 Bad Request: Check required parameters are included.' +- '401 Unauthorized: Recheck API key or token expiration' +- '400 Bad Request: Check the request format and required fields.' +- '401 Unauthorized: Ensure the API key is valid.' +- '400 Bad Request: Check that your parameters are properly formatted and comply with + API specifications.' +- '401 Unauthorized: Make sure you’re using the correct API key (test or live) and + that it’s valid.' +- '404 Not Found: Check that the URL you are using is correct and that the resource + exists.' +- '500 Internal Server Error: These errors originate from the FedaPay API. If they + persist, please contact support.' +- 201 Transaction created successfully +- 400 Bad Request +- 401 Unauthorized +- 422 Unprocessable Entity +auth_info: + mentioned_objects: [] +client: + base_url: https://sandbox-api.fedapay.com + auth: + type: apikey + location: header + header_name: Authorization + headers: + Content-Type: application/json +source_metadata: null diff --git a/fieldnet_api/fieldnet-api-docs.md b/fieldnet_api/fieldnet-api-docs.md new file mode 100644 index 00000000..d03ce303 --- /dev/null +++ b/fieldnet_api/fieldnet-api-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete FieldNET data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def fieldnet_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://v2.api.myfieldnet.com/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + rtus,,equipment,,fields + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='fieldnet_migration_pipeline', + destination='duckdb', + dataset_name='fieldnet_migration_data', + ) + # Load the data + load_info = pipeline.run(fieldnet_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from fieldnet_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- RTUs: Manage remote terminal units for data collection. +- Fields: Access and manage field information. +- Equipment: Retrieve and manipulate equipment data. +- Organizations: Handle organization-level data and settings. +- Weather Stations: Access observations and data from weather stations. + +You will then debug the FieldNET pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with FieldNET support. + ```shell + dlt init dlthub:fieldnet_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for FieldNET API, as specified in @fieldnet_migration-docs.yaml + Start with endpoints rtus and and skip incremental loading for now. + Place the code in fieldnet_migration_pipeline.py and name the pipeline fieldnet_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python fieldnet_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Access to this API is granted on a case-by-case basis, and authorization is enforced by verifying the consumer_id belongs to the requesting access token. An access token must be valid and not expired. + + To get the appropriate API keys, please visit the original source at https://www.myfieldnet.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python fieldnet_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline fieldnet_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset fieldnet_migration_data + The duckdb destination used duckdb:/fieldnet_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline fieldnet_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("fieldnet_migration_pipeline").dataset() + # get tu table as Pandas frame + data.tu.df().head() + ``` + +## Running into errors? + +Access to the API may be restricted and is determined at Lindsay's discretion. The access token can expire, leading to a 401 Unauthorized error if not properly managed. Additionally, hourly weather data may not always be available for the entire growing season. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/fieldnet_api/fieldnet-api-docs.yaml b/fieldnet_api/fieldnet-api-docs.yaml new file mode 100644 index 00000000..ffc2033a --- /dev/null +++ b/fieldnet_api/fieldnet-api-docs.yaml @@ -0,0 +1,555 @@ +resources: +- name: equipment + endpoint: + path: /equipment + method: GET +- name: irrigation_systems + endpoint: + path: /irrigation-systems + method: GET +- name: irrigation_controllers + endpoint: + path: /irrigation-controllers + method: GET +- name: advisor_fields + endpoint: + path: /fields + method: GET +- name: rtus + endpoint: + path: /rtus + method: GET +- name: organizations + endpoint: + path: /organizations + method: GET +- name: connect + endpoint: + path: /connect + method: GET +- name: policy_assignments + endpoint: + path: /policy-assignments + method: GET +- name: resources + endpoint: + path: /resources + method: GET +- name: equipment + endpoint: + path: /equipment + method: GET +- name: irrigation_systems + endpoint: + path: /irrigation-systems + method: GET +- name: irrigation_controllers + endpoint: + path: /irrigation-controllers + method: GET +- name: advisor_fields + endpoint: + path: /fields + method: GET +- name: rtus + endpoint: + path: /rtus + method: GET +- name: organizations + endpoint: + path: /organizations + method: GET +- name: connect + endpoint: + path: /connect + method: GET +- name: policy_assignments + endpoint: + path: /policy-assignments + method: GET +- name: resources + endpoint: + path: /resources + method: GET +- name: authorize + endpoint: + path: /connect/authorize + method: GET + params: + client_id: The application client id + redirect_uri: The authorization code callback url (must match the url visible + on the manage applications page) + response_type: code + code_challenge: The PKCE code challenge (base64 encoded SHA256 hash of code + verifier) + code_challenge_method: S256 + scope: api offline_access + state: An application defined value allowing the application to correlate the + authorize request with the callback. +- name: token + endpoint: + path: /connect/token + method: POST + params: + client_id: The application client id + client_secret: The application client secret + redirect_uri: The authorization code callback url (must match the url visible + on the manage applications page) + grant_type: authorization_code + code_verifier: The PKCE code verifier generated earlier + code: The auth code returned in the callback +- name: token + endpoint: + path: /connect/token + method: POST + data_selector: null + params: {} +- name: equipment + endpoint: + path: /v2/equipment + method: GET + data_selector: records +- name: irrigation_systems + endpoint: + path: /v2/irrigation-systems + method: GET + data_selector: records +- name: organizations + endpoint: + path: /v2/organizations + method: GET + data_selector: records +- name: equipment + endpoint: + path: /equipment + method: GET + data_selector: records + params: {} +- name: irrigation_systems + endpoint: + path: /irrigation-systems + method: GET + data_selector: features + params: {} +- name: irrigation_system_detail + endpoint: + path: /irrigation-systems/{equipment-id} + method: GET + data_selector: features + params: {} +- name: applied_irrigation + endpoint: + path: /irrigation-systems/{equipment-id}/applied-irrigation + method: GET + data_selector: features + params: + from: ISO8601 timestamp specifying the start of time range, required + to: ISO8601 timestamp specifying the end of time range, optional - defaults + to the current time if not supplied +- name: applied_nutrients + endpoint: + path: /irrigation-systems/{equipment-id}/applied-nutrients/{nutrient-substance-id} + method: GET + data_selector: features + params: {} +- name: avoid_ignore_areas + endpoint: + path: /irrigation-systems/{equipment-id}/avoid-ignore-areas + method: GET +- name: update_avoid_ignore_areas + endpoint: + path: /irrigation-systems/{equipment-id}/avoid-ignore-areas + method: PUT +- name: irrigation_controllers + endpoint: + path: /irrigation-controllers + method: GET + data_selector: null + params: + page: 1 + page-size: 300 +- name: single_irrigation_controller + endpoint: + path: /irrigation-controllers/{equipment-id} + method: GET + data_selector: null + params: {} +- name: irrigation_controller + endpoint: + path: /irrigation-controllers + method: GET + data_selector: data + params: {} +- name: irrigation_settings + endpoint: + path: /irrigation-controllers/{equipment-id}/settings + method: GET +- name: update_irrigation_settings + endpoint: + path: /irrigation-controllers/{equipment-id}/settings + method: PATCH +- name: endgun_table + endpoint: + path: /irrigation-controllers/{equipment-id}/endguns/{endgun-number}/tables/{table-number} + method: GET +- name: endgun_table_update + endpoint: + path: /irrigation-controllers/{equipment-id}/endguns/{endgun-number}/tables/{table-number} + method: PUT +- name: plans + endpoint: + path: /irrigation-controllers/{equipment-id}/plans + method: GET + data_selector: metadata +- name: create_plan + endpoint: + path: /irrigation-controllers/{equipment-id}/plans + method: POST +- name: get_plan + endpoint: + path: /irrigation-controllers/{equipment-id}/plans/{plan-id} + method: GET +- name: update_plan + endpoint: + path: /irrigation-controllers/{equipment-id}/plans/{plan-id} + method: PUT +- name: delete_plan + endpoint: + path: /irrigation-controllers/{equipment-id}/plans/{plan-id} + method: DELETE +- name: irrigation_controller_history + endpoint: + path: /irrigation-controllers/{equipment-id}/history + method: GET + data_selector: events +- name: irrigation_controller_history_single_event + endpoint: + path: /irrigation-controllers/{equipment-id}/history/{date} + method: GET + data_selector: event +- name: update_irrigation_controller_note + endpoint: + path: /irrigation-controllers/{equipment-id}/history/{date} + method: PATCH + data_selector: update_note +- name: sectional_irrigation_adjustments + endpoint: + path: /irrigation-controllers/{equipment-id}/sectional-irrigation-adjustments/{date} + method: GET +- name: sectional_irrigation_adjustments_update + endpoint: + path: /irrigation-controllers/{equipment-id}/sectional-irrigation-adjustments/{date} + method: PUT +- name: advisor_fields + endpoint: + path: /fields + method: GET + data_selector: fields + params: + page: 1 +- name: single_advisor_field + endpoint: + path: /fields/{field-id} + method: GET + data_selector: field + params: {} +- name: field_configuration + endpoint: + path: /fields/{field-id}/configuration + method: GET +- name: field_configuration_update + endpoint: + path: /fields/{field-id}/configuration + method: PATCH +- name: crop_zones + endpoint: + path: /fields/{field-id}/crop-zones + method: GET +- name: crop_zones_update + endpoint: + path: /fields/{field-id}/crop-zones + method: PUT +- name: growth_stages + endpoint: + path: /fields/{field-id}/crop-zones/{crop-zone-id}/growth-stages + method: GET +- name: overwrite_growth_stages + endpoint: + path: /fields/{field-id}/crop-zones/{crop-zone-id}/growth-stages + method: PUT +- name: soil_zones + endpoint: + path: /fields/{field-id}/soil-zones + method: GET +- name: soil_zones_update + endpoint: + path: /fields/{field-id}/soil-zones + method: PUT +- name: available_water_adjustments + endpoint: + path: /fields/{field-id}/available-water-adjustments + method: GET +- name: available_water_adjustments_update + endpoint: + path: /fields/{field-id}/available-water-adjustments + method: PUT +- name: daily_weather + endpoint: + path: /fields/{field-id}/daily-weather + method: GET +- name: hourly_weather + endpoint: + path: /fields/{field-id}/hourly-weather + method: GET +- name: rainfall_adjustments + endpoint: + path: /fields/{field-id}/rainfall-adjustments + method: GET + data_selector: rainfall depths + params: {} +- name: rainfall_adjustments_patch + endpoint: + path: /fields/{field-id}/rainfall-adjustments + method: PATCH + data_selector: overwrites rainfall + params: {} +- name: model_runs + endpoint: + path: /fields/{field-id}/model-runs + method: GET + data_selector: model_runs + params: {} +- name: specific_model_run + endpoint: + path: /fields/{field-id}/model-runs/{model-run-id} + method: GET + data_selector: model_run + params: {} +- name: management_zones + endpoint: + path: /fields/{field-id}/model-runs/{model-run-id}/management-zones + method: GET +- name: management_zone + endpoint: + path: /fields/{field-id}/model-runs/{model-run-id}/management-zones/{management-zone-id} + method: GET +- name: imagery_list + endpoint: + path: /fields/{field-id}/imagery + method: GET + data_selector: FeatureCollection +- name: imagery_image + endpoint: + path: /fields/{field-id}/imagery/{acquired-timestamp}/layer/{layer} + method: GET + data_selector: image/tiff +- name: system_availability + endpoint: + path: /fields/{field-id}/system-availability + method: GET +- name: update_system_availability + endpoint: + path: /fields/{field-id}/system-availability + method: PUT +- name: RTUs + endpoint: + path: /rtus + method: GET +- name: RTU Connection Log + endpoint: + path: /rtus/{rtu-id}/connection-log + method: GET +- name: Create RTU + endpoint: + path: /rtus/create-rtu + method: GET +- name: RTU Connection Log + endpoint: + path: /rtus/{rtu-id}/connection-log + method: GET + data_selector: items +- name: create_rtu + endpoint: + path: /rtus + method: POST +- name: organizations + endpoint: + path: /organizations + method: GET + data_selector: organizations + params: + page: 1 + page-size: 30 + include-shared: true + include-disabled: false +- name: organization_by_id + endpoint: + path: /organizations/{organization-id} + method: GET + data_selector: organization +- name: authorize + endpoint: + path: /connect/authorize + method: GET + params: + client_id: '' + redirect_uri: '' + response_type: '' + code_challenge: '' + code_challenge_method: '' + scope: '' +- name: token + endpoint: + path: /connect/token + method: POST + params: {} +- name: policy_assignments + endpoint: + path: /policy-assignments + method: GET + data_selector: policy_assignments + params: {} +- name: policy_assignment_check + endpoint: + path: /policy-assignments/resources/{resourceId}/consumers/{consumerId}/policies/{policy} + method: HEAD + data_selector: policy_assignment_check + params: {} +- name: single_policy_assignment + endpoint: + path: /policy-assignments/resources/{resourceId}/consumers/{consumerId}/policies/{policy} + method: GET + data_selector: single_policy_assignment + params: {} +- name: resources + endpoint: + path: /resources + method: GET + data_selector: resources + params: {} +- name: resource + endpoint: + path: /resources/{resource-id} + method: GET + data_selector: resource + params: {} +- name: resources + endpoint: + path: /resources + method: GET + data_selector: resources +- name: resource + endpoint: + path: /resources/{resource-id} + method: GET + data_selector: resource +- name: weather_stations + endpoint: + path: /weather-stations + method: GET +- name: weather_station_observations + endpoint: + path: /weather-stations/{equipment-id}/observations + method: GET +- name: weather_stations + endpoint: + path: /weather-stations + method: GET +- name: weather_station_observations + endpoint: + path: /weather-stations/{equipment-id}/observations + method: GET +- name: weather_station_observations + endpoint: + path: /weather-stations/{equipment-id}/observations + method: GET + data_selector: statuses +- name: weather_station_observations + endpoint: + path: /weather-stations/{equipment-id}/observations + method: GET +- name: soil_moisture_stations + endpoint: + path: /soil-moisture-stations + method: GET + data_selector: records + params: {} +- name: soil_moisture_station_observations + endpoint: + path: /soil-moisture-stations/{equipment-id}/observations + method: GET + data_selector: records + params: {} +- name: soil_moisture_stations + endpoint: + path: /soil-moisture-stations + method: GET + data_selector: soil moisture stations + params: {} +- name: soil_moisture_station_observations + endpoint: + path: /soil-moisture-stations/{equipment-id}/observations + method: GET + data_selector: soil moisture station observations + params: {} +- name: soil_moisture_station_observations + endpoint: + path: /soil-moisture-stations/{equipment-id}/observations + method: GET + data_selector: observations + params: + from: ISO 8601 formatted string representing the earliest date in the desired + range + to: ISO 8601 formatted string representing the most recent date in the desired + range + page: Specifies the page number to return as items are return in blocks of 30. + Returns page 1 if not specified +- name: soil_moisture_station_observations + endpoint: + path: /soil-moisture-stations/{equipment-id}/observations + method: GET + data_selector: observations + params: + from: ISO 8601 formatted string + to: ISO 8601 formatted string + page: '1' +notes: +- Access to this API is granted on a case-by-case basis at Lindsay's discretion. +- If the access token has expired this will be indicated by a 401 Unauthorized error + being returned from API calls. +- The access token provided must be valid and must not have expired. +- Returns a list of events between two supplied dates, if no dates are supplied the + date range defaults to the last 30 days. +- Hourly weather data may not be available for the full duration of the growing season. +- Authorization is currently enforced by verifying the consumer_id belongs to the + requesting access token. +- The Weather Stations endpoint facilitates all aspects relating to weather stations + and their observations. +errors: +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '403 Forbidden: Access control issue' +- '400 Bad request: The submitted information was either missing information or contains + invalid data.' +- '401 Unauthorized: The API consumer is not authenticated. Typically, this is because + the token is not valid or authorization was revoked.' +- '402 Payment Required: Used when the requested action requires a valid subscription + to complete, and no valid subscription is present.' +- '403 Forbidden: The API consumer is successfully authenticated but lacks the appropriate + permissions to access the resource in question.' +- '404 Not Found: The specified resource does not exist' +- '405 Method Not Allowed: The specified HTTP verb is not accepted on this resource.' +- '406 Not Acceptable: The content-type specified on the request accept header is + not supported by this resource.' +- '415 Unsupported Media Type: The content-type specified on the request content-type + header is not accepted by this resource.' +- '429 Too Many Requests: The request could not be fulfilled because a rate limit + was exceeded.' +- '500 Internal Error: An error occurred internally' +- '501 Not Implemented: The requested feature or resource is planned but has not been + completed yet.' +- '503 Service Unavailable: The request could not be fulfilled because of server maintenance' +auth_info: + mentioned_objects: [] +client: + base_url: https://v2.api.myfieldnet.com +source_metadata: null diff --git a/figment_avalanche_api/figment-avalanche-api-docs.md b/figment_avalanche_api/figment-avalanche-api-docs.md new file mode 100644 index 00000000..670be004 --- /dev/null +++ b/figment_avalanche_api/figment-avalanche-api-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Figment Avalanche API data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def figment_avalanche_api_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.figment.io/vaults/vault_address/address/id", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "exit_requests", "rewards" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='figment_avalanche_api_pipeline', + destination='duckdb', + dataset_name='figment_avalanche_api_data', + ) + # Load the data + load_info = pipeline.run(figment_avalanche_api_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from figment_avalanche_api’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Solana Endpoints**: Access various functionalities and data related to the Solana blockchain. +- **OpenAPI Specification**: Provides the OpenAPI documentation for the Figment API. +- **Ethereum Validators**: Endpoints to interact with Ethereum validators, including retrieving their status and broadcasting messages. +- **Ethereum Broadcast**: Used for sending transactions or messages to the Ethereum network. +- **Ethereum Compound**: Related to the compound protocol on Ethereum for managing assets. +- **Ethereum Withdrawals**: Endpoints for handling withdrawal processes on the Ethereum network. +- **Ethereum Rewards**: Access information regarding rewards for validators on the Ethereum network. +- **Ethereum Network Estimates**: Provides network estimates related to transaction costs and other metrics. + +You will then debug the Figment Avalanche API pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Figment Avalanche API support. + ```shell + dlt init dlthub:figment_avalanche_api duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Figment Avalanche API API, as specified in @figment_avalanche_api-docs.yaml + Start with endpoints exit_requests and rewards and skip incremental loading for now. + Place the code in figment_avalanche_api_pipeline.py and name the pipeline figment_avalanche_api_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python figment_avalanche_api_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The snippets mention authentication and provide a link to the authentication reference at '/reference/authentication', but do not specify any details regarding keys, tokens, client IDs, client secrets, headers, token URLs, or flows. + + To get the appropriate API keys, please visit the original source at https://docs.figment.io/reference/avalanche-api-overview. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python figment_avalanche_api_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline figment_avalanche_api load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset figment_avalanche_api_data + The duckdb destination used duckdb:/figment_avalanche_api.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline figment_avalanche_api_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("figment_avalanche_api_pipeline").dataset() + # get "exit_requests" table as Pandas frame + data."exit_requests".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/figment_avalanche_api/figment-avalanche-api-docs.yaml b/figment_avalanche_api/figment-avalanche-api-docs.yaml new file mode 100644 index 00000000..9101e3cc --- /dev/null +++ b/figment_avalanche_api/figment-avalanche-api-docs.yaml @@ -0,0 +1,318 @@ +client: + auth: The snippets mention authentication and provide a link to the authentication + reference at '/reference/authentication', but do not specify any details regarding + keys, tokens, client IDs, client secrets, headers, token URLs, or flows. + most_recurring_base_url: https://api.figment.io + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://docs.figment.io/recipes': + - /solana +- 'endpoints source: https://docs.figment.io/docs/concordium': + - https://concordium-explorer.nl/mainnet +- 'endpoints source: https://docs.figment.io/reference/authentication': + - /openapi/figment-api.yaml +- 'endpoints source: https://docs.figment.io/reference/create-validators': + - /ethereum/validators +- 'endpoints source: https://docs.figment.io/reference/broadcast-staking-tx': + - /ethereum/broadcast +- 'endpoints source: https://docs.figment.io/reference/get-validator': + - /ethereum/validators/{pubkey + - /ethereum/validators/pubkey?network=mainnet +- 'endpoints source: https://docs.figment.io/reference/get-validators': + - /ethereum/validators?network=mainnet + - /ethereum/validators +- 'endpoints source: https://docs.figment.io/reference/ethereum-compound-transaction': + - /ethereum/compound +- 'endpoints source: https://docs.figment.io/reference/ethereum-withdrawal-transaction': + - /ethereum/withdrawal +- 'endpoints source: https://docs.figment.io/reference/exit-validators': + - /ethereum/validators/exits +- 'endpoints source: https://docs.figment.io/reference/broadcast-exit-message': + - /ethereum/broadcast\_exit\_message + - /ethereum/broadcast_exit_message +- 'endpoints source: https://docs.figment.io/reference/eth-rewards': + - /ethereum/rewards +- 'endpoints source: https://docs.figment.io/reference/get-ethereum-net-rewards': + - /ethereum/rewards_net + - /ethereum/rewards\_net +- 'endpoints source: https://docs.figment.io/reference/eth-withdrawals': + - /ethereum/withdrawals +- 'endpoints source: https://docs.figment.io/reference/eth-network-estimates': + - /ethereum/network_estimates?history=false&network=mainnet + - /ethereum/network\_estimates +- 'endpoints source: https://docs.figment.io/reference/eth-rewards-rates': + - /ethereum/rewards\_rates + - /ethereum/rewards_rates +- 'endpoints source: https://docs.figment.io/reference/ethereum-activity': + - /ethereum/activity?network=mainnet + - /ethereum/activity +- 'endpoints source: https://docs.figment.io/reference/ethereum-validators-summary': + - /ethereum/validators\_summary + - /ethereum/validators_summary?network=mainnet&operated_by=null +- 'endpoints source: https://docs.figment.io/reference/solana-stake': + - /solana/stake +- 'endpoints source: https://docs.figment.io/reference/solana-broadcast': + - /solana/broadcast +- 'endpoints source: https://docs.figment.io/reference/solana-tx-status': + - /solana/tx + - /solana/tx?network=mainnet +- 'endpoints source: https://docs.figment.io/reference/solana-stakes': + - /solana/stakes?network=mainnet + - /solana/stakes +- 'endpoints source: https://docs.figment.io/reference/build-solana-merge-tx': + - /solana/merge +- 'endpoints source: https://docs.figment.io/reference/build-solana-split-tx': + - /solana/split +- 'endpoints source: https://docs.figment.io/reference/solana-undelegate': + - /solana/undelegate +- 'endpoints source: https://docs.figment.io/reference/solana-withdraw': + - /solana/withdraw +- 'endpoints source: https://docs.figment.io/reference/sol-rewards': + - /solana/rewards +- 'endpoints source: https://docs.figment.io/reference/sol-rewards-rates': + - /solana/rewards\_rates + - /solana/rewards_rates?figment=false&avg=7d&decimal=2 +- 'endpoints source: https://docs.figment.io/reference/babylon-create-stake-intent': + - /babylon/stakes +- 'endpoints source: https://docs.figment.io/reference/babylon-create-delegation-tx': + - /babylon/delegation +- 'endpoints source: https://docs.figment.io/reference/babylon-broadcast-delegation-tx': + - /babylon/delegation/broadcast +- 'endpoints source: https://docs.figment.io/reference/babylon-update-delegation': + - /babylon/delegation +- 'endpoints source: https://docs.figment.io/reference/babylon-create-bitcoin-staking-tx': + - /babylon/stakes/tx +- 'endpoints source: https://docs.figment.io/reference/babylon-update-bitcoin-staking': + - /babylon/stakes/tx +- 'endpoints source: https://docs.figment.io/reference/babylon-get-unbond': + - /babylon/unbond +- 'endpoints source: https://docs.figment.io/reference/babylon-build-withdraw': + - /babylon/withdraw +- 'endpoints source: https://docs.figment.io/reference/babylon-get-stakes': + - /babylon/stakes + - /babylon/stakes?network=mainnet +- 'endpoints source: https://docs.figment.io/reference/babylon-get-stake': + - /babylon/stakes/{id + - /babylon/stakes/id?network=mainnet +- 'endpoints source: https://docs.figment.io/reference/babylon-broadcast-unbond': + - /babylon/unbond/broadcast +- 'endpoints source: https://docs.figment.io/reference/babylon-withdraw-broadcasted': + - /babylon/withdraw +- 'endpoints source: https://docs.figment.io/reference/near': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/delegate-near': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/undelegate-near': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/transfer-near': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/near-rewards': + - /near/rewards +- 'endpoints source: https://docs.figment.io/reference/cardano': + - /cardano/blockfrost_projects?page= + - /cardano/blockfrost\_projects +- 'endpoints source: https://docs.figment.io/reference/get-blockfrost-projects': + - /cardano/blockfrost_projects?page= + - /cardano/blockfrost\_projects +- 'endpoints source: https://docs.figment.io/reference/add-blockfrost-project': + - /cardano/blockfrost_projects + - /cardano/blockfrost\_projects +- 'endpoints source: https://docs.figment.io/reference/remove-blockfrost-projects': + - /cardano/blockfrost\_projects/{id + - /cardano/blockfrost_projects/id +- 'endpoints source: https://docs.figment.io/reference/delegate-ada': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/transfer-ada': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/withdraw-rewards-ada': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/ada-rewards': + - /cardano/rewards +- 'endpoints source: https://docs.figment.io/reference/cosmos': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/delegate-atom': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/redelegate-atom': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/undelegate-atom': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/claim-rewards-atom': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/transfer-atom': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/atom-rewards': + - /cosmos/rewards +- 'endpoints source: https://docs.figment.io/reference/build-avalanche-self-bond-tx': + - /avalanche/self\_bond + - /avalanche/self_bond +- 'endpoints source: https://docs.figment.io/reference/build-avalanche-import-tx': + - /avalanche/import +- 'endpoints source: https://docs.figment.io/reference/build-avalanche-export-tx': + - /avalanche/export +- 'endpoints source: https://docs.figment.io/reference/build-avalanche-delegate-tx': + - /avalanche/delegate +- 'endpoints source: https://docs.figment.io/reference/broadcast-avalanche-tx': + - /avalanche/broadcast +- 'endpoints source: https://docs.figment.io/reference/get-avalanche-rewards': + - /avalanche/rewards +- 'endpoints source: https://docs.figment.io/reference/get-injective-rewards': + - /injective/rewards +- 'endpoints source: https://docs.figment.io/reference/stake': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/transfer-dot': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/undelegate-dot': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/delegate-dot': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/add-proxy': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/remove-proxy': + - /flows/[:flow_id +- 'endpoints source: https://docs.figment.io/reference/polkadot-rewards': + - /polkadot/rewards +- 'endpoints source: https://docs.figment.io/reference/polkadot-rewards-rates': + - /polkadot/rewards\_rates + - /polkadot/rewards_rates?figment=false&avg=7d&decimal=2 +- 'endpoints source: https://docs.figment.io/reference/polkadot-add-nomination-proxy': + - /polkadot/nomination\_proxy + - /polkadot/nomination_proxy +- 'endpoints source: https://docs.figment.io/reference/polkadot-revoke-nomination-proxy': + - /polkadot/nomination_proxy/revoke_proxy + - /polkadot/nomination\_proxy/revoke\_proxy +- 'endpoints source: https://docs.figment.io/reference/polygon-2': + - /polygon/rewards +- 'endpoints source: https://docs.figment.io/reference/matic-rewards': + - /polygon/rewards +- 'endpoints source: https://docs.figment.io/reference/build-sui-stake-tx': + - /sui/stake +- 'endpoints source: https://docs.figment.io/reference/broadcast-sui-tx': + - /sui/broadcast +- 'endpoints source: https://docs.figment.io/reference/sui-get-stakes': + - /sui/stakes?network=testnet + - /sui/stakes +- 'endpoints source: https://docs.figment.io/reference/sui-withdraw-tx': + - /sui/withdraw +- 'endpoints source: https://docs.figment.io/reference/get-sui-rewards': + - /sui/rewards +- 'endpoints source: https://docs.figment.io/reference/vaulta-stake-tx': + - /vaulta/stake +- 'endpoints source: https://docs.figment.io/reference/vaulta-vote-tx': + - /vaulta/vote +- 'endpoints source: https://docs.figment.io/reference/vaulta-unstake-tx': + - /vaulta/unstake +- 'endpoints source: https://docs.figment.io/reference/vaulta-withdraw-tx': + - /vaulta/withdraw +- 'endpoints source: https://docs.figment.io/reference/broadcast-vaulta-tx': + - /vaulta/broadcast +- 'endpoints source: https://docs.figment.io/reference/set-region': + - /vaults/vault_address + - /vaults/{vault\_address +- 'endpoints source: https://docs.figment.io/reference/create-vault-transactions': + - /vaults/transactions/create\_vault + - /vaults/transactions/create_vault +- 'endpoints source: https://docs.figment.io/reference/configure-figment-vault': + - /vaults/vault_address/transactions/configure_figment_vault + - /vaults/{vault\_address +- 'endpoints source: https://docs.figment.io/reference/update-allowlist-transactions': + - /vaults/{vault\_address + - /vaults/vault_address/transactions/update_allowlist +- 'endpoints source: https://docs.figment.io/reference/deposit-transactions': + - /vaults/{vault\_address + - /vaults/vault_address/transactions/deposit +- 'endpoints source: https://docs.figment.io/reference/create-withdraw-transactions': + - /vaults/{vault\_address + - /vaults/vault_address/transactions/withdraw +- 'endpoints source: https://docs.figment.io/reference/create-claim-withdrawal-transactions': + - /vaults/{vault\_address + - /vaults/vault_address/transactions/claim_withdrawal +- 'endpoints source: https://docs.figment.io/reference/show-allowlist': + - /vaults/{vault\_address + - /vaults/vault_address/allowlist?network=mainnet +- 'endpoints source: https://docs.figment.io/reference/show-address-actions': + - /vaults/vault_address/address/id/actions?network=mainnet + - /vaults/{vault\_address +- 'endpoints source: https://docs.figment.io/reference/show-address-balance': + - /vaults/{vault\_address + - /vaults/vault_address/address/id/balance?network=mainnet +- 'endpoints source: https://docs.figment.io/reference/list-address-rewards': + - /vaults/vault_address/address/id/rewards?network=mainnet + - /vaults/{vault\_address +- 'endpoints source: https://docs.figment.io/reference/show-commission-actions': + - /vaults/{vault\_address + - /vaults/vault_address/commission/commission_address/actions?network=mainnet +- 'endpoints source: https://docs.figment.io/reference/show-commission-balance': + - /vaults/vault_address/commission/commission_address/balance?network=mainnet + - /vaults/{vault\_address +- 'endpoints source: https://docs.figment.io/reference/create-withdraw-commission-transactions': + - /vaults/vault_address/transactions/withdraw_commission + - /vaults/{vault\_address +- 'endpoints source: https://docs.figment.io/reference/assets-to-shares': + - /vaults/{vault\_address + - /vaults/vault_address/information/assets_to_shares +- 'endpoints source: https://docs.figment.io/reference/shares-to-assets': + - /vaults/{vault\_address + - /vaults/vault_address/information/shares_to_assets +- 'endpoints source: https://docs.figment.io/reference/show-commission-exit_requests': + - /vaults/{vault\_address + - /vaults/vault_address/commission/commission_address/exit_requests?network=mainnet +- 'endpoints source: https://docs.figment.io/reference/show-address-exit-requests': + - /vaults/vault_address/address/id/exit_requests?network=mainnet + - /vaults/{vault\_address +- 'endpoints source: https://docs.figment.io/reference/track-address': + - /addresses +- 'endpoints source: https://docs.figment.io/reference/get-statements': + - /statements +- 'endpoints source: https://docs.figment.io/reference/portfolio-1': + - /portfolio +- 'endpoints source: https://docs.figment.io/reference/near-1': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/near-2': + - /near/rewards +- 'endpoints source: https://docs.figment.io/reference/cardano-1': + - /cardano/blockfrost_projects?page= + - /cardano/blockfrost\_projects +- 'endpoints source: https://docs.figment.io/reference/cardano-2': + - /cardano/rewards +- 'endpoints source: https://docs.figment.io/reference/cosmos-1': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/cosmos-2': + - /cosmos/rewards +- 'endpoints source: https://docs.figment.io/reference/rewards-4': + - /avalanche/rewards +- 'endpoints source: https://docs.figment.io/reference/injective': + - /injective/rewards +- 'endpoints source: https://docs.figment.io/reference/polkadot': + - /flows/[:flow_id + - /flows` +- 'endpoints source: https://docs.figment.io/reference/endpoints-1': + - /polkadot/nomination\_proxy + - /polkadot/nomination_proxy +- 'endpoints source: https://docs.figment.io/reference/rewards': + - /polkadot/rewards +- 'endpoints source: https://docs.figment.io/reference/polygon': + - /polygon/rewards +- 'endpoints source: https://docs.figment.io/reference/vaulta': + - /vaulta/stake +- 'endpoints source: https://docs.figment.io/recipes/stake-avax-from-fireblocks': + - /solana diff --git a/figshare/figshare-docs.md b/figshare/figshare-docs.md new file mode 100644 index 00000000..bce3d227 --- /dev/null +++ b/figshare/figshare-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Figshare data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def figshare_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.figshare.com/v2/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + items,,users,,articles + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='figshare_migrations_pipeline', + destination='duckdb', + dataset_name='figshare_migrations_data', + ) + # Load the data + load_info = pipeline.run(figshare_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from figshare_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Items: Manage research outputs including articles and datasets. +- Users: Access user-related information. +- Articles: Search and manage articles in the repository. +- Files: Upload and download associated files. + +You will then debug the Figshare pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Figshare support. + ```shell + dlt init dlthub:figshare_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Figshare API, as specified in @figshare_migrations-docs.yaml + Start with endpoints items and and skip incremental loading for now. + Place the code in figshare_migrations_pipeline.py and name the pipeline figshare_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python figshare_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is required for any endpoint that retrieves or accepts private or institutional information. The API uses an API key provided in the header under the name 'Authorization'. + + To get the appropriate API keys, please visit the original source at https://www.figshare.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python figshare_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline figshare_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset figshare_migrations_data + The duckdb destination used duckdb:/figshare_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline figshare_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("figshare_migrations_pipeline").dataset() + # get tem table as Pandas frame + data.tem.df().head() + ``` + +## Running into errors? + +Rate limits apply, and the process to upload large files may be complex. Public metadata can be accessed without authentication, but private data requires proper authorization. Ensure your token environment is correct (production vs. stage), and be aware that group structures may vary by institution. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/figshare/figshare-docs.yaml b/figshare/figshare-docs.yaml new file mode 100644 index 00000000..a463e86c --- /dev/null +++ b/figshare/figshare-docs.yaml @@ -0,0 +1,436 @@ +resources: +- name: items + endpoint: + path: /items + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: articles + endpoint: + path: /account/articles + method: GET + data_selector: articles +- name: files + endpoint: + path: /account/articles/{article_id}/files + method: GET + data_selector: files +- name: article_details + endpoint: + path: /v2/articles/{article_id} + method: GET + data_selector: metadata +- name: articles_search + endpoint: + path: /v2/articles/search + method: GET + data_selector: results + params: + search: + order: published_date + search_for: ':title: frog' + page: 1 + page_size: 5 + order_direction: desc +- name: private_articles_list + endpoint: + path: /v2/account/articles + method: GET + data_selector: articles +- name: account_articles + endpoint: + path: /account/articles + method: GET + data_selector: records + params: + page: 1 + page_size: 10 +- name: articles + endpoint: + path: /articles/{ITEM_ID} + method: GET + data_selector: metadata +- name: account_articles + endpoint: + path: /account/articles + method: GET + data_selector: items + params: + page: 1 + page_size: 50 +- name: article_metadata + endpoint: + path: /account/articles/{id} + method: GET + data_selector: metadata + params: {} +- name: article_views + endpoint: + path: /total/views/article/{id} + method: GET + data_selector: views + params: {} +- name: article_downloads + endpoint: + path: /total/downloads/article/{id} + method: GET + data_selector: downloads + params: {} +- name: articles + endpoint: + path: /articles + method: GET + data_selector: metadata + params: {} +- name: account_articles + endpoint: + path: /account/articles + method: GET + data_selector: '' + params: + page: 1 + page_size: 10 +- name: account_articles + endpoint: + path: /account/articles + method: GET + data_selector: items + params: + page: 1 + page_size: 50 +- name: group_articles + endpoint: + path: /articles/search + method: POST + data_selector: records + params: + group: GRP_ID + institution: INST_ID +- name: full_metadata + endpoint: + path: /account/articles/{id} + method: GET + data_selector: metadata +- name: total_views + endpoint: + path: /total/views/article/{id} + method: GET + data_selector: views +- name: total_downloads + endpoint: + path: /total/downloads/article/{id} + method: GET + data_selector: downloads +- name: article_files + endpoint: + path: /articles/{id}/files + method: GET + data_selector: file_metadata +- name: file_download + endpoint: + path: /file/download/{id} + method: GET +- name: articles + endpoint: + path: /account/articles + method: GET + data_selector: articles +- name: file_upload + endpoint: + path: /account/articles/{article_id}/files + method: POST + data_selector: upload +- name: articles + endpoint: + path: /account/articles + method: GET + data_selector: data +- name: articles + endpoint: + path: /account/articles + method: POST + data_selector: records +- name: article_details + endpoint: + path: /v2/articles/{article_id} + method: GET + data_selector: metadata +- name: articles_search + endpoint: + path: /v2/articles/search + method: GET + data_selector: results + params: + order: published_date + search_for: ':title: frog' + page: 1 + page_size: 5 + order_direction: desc +- name: private_articles_list + endpoint: + path: /v2/account/articles + method: GET + data_selector: items +- name: articles + endpoint: + path: /articles + method: GET + data_selector: metadata +- name: private_articles + endpoint: + path: /private_articles + method: GET + data_selector: metadata +- name: account_articles + endpoint: + path: /account/articles + method: GET + data_selector: records + params: + page: 1 + page_size: 10 +- name: articles + endpoint: + path: /account/articles + method: GET + data_selector: records + params: + page: 1 + page_size: 10 +- name: metadata + endpoint: + path: /articles/{ITEM_ID} + method: GET + data_selector: metadata + params: {} +- name: articles + endpoint: + path: /account/articles + method: GET + data_selector: items + params: + page_size: '50' +- name: articles + endpoint: + path: /articles + method: GET + data_selector: metadata +- name: account_articles + endpoint: + path: /account/articles + method: GET + data_selector: articles + params: + page: '1' + page_size: '50' +- name: group_articles + endpoint: + path: /articles/search + method: POST + data_selector: articles + params: + group: GRP_ID + institution: INST_ID +- name: item_metadata + endpoint: + path: /account/articles/{id} + method: GET + data_selector: metadata +- name: total_views + endpoint: + path: /total/views/article/{id} + method: GET + data_selector: totals +- name: total_downloads + endpoint: + path: /total/downloads/article/{id} + method: GET + data_selector: totals +- name: article_files + endpoint: + path: /articles/{id}/files + method: GET + data_selector: files +- name: account_articles + endpoint: + path: /account/articles + method: GET + data_selector: '' + params: + page: 1 + page_size: 10 +- name: account_articles + endpoint: + path: /account/articles + method: GET + data_selector: items + params: + page: 1 + page_size: 50 +- name: article_files + endpoint: + path: /articles/{id}/files + method: GET + data_selector: file_metadata + params: {} +- name: total_views + endpoint: + path: /total/views/article/{id} + method: GET + data_selector: views + params: {} +- name: total_downloads + endpoint: + path: /total/downloads/article/{id} + method: GET + data_selector: downloads + params: {} +- name: account_articles + endpoint: + path: /account/articles + method: GET + data_selector: articles +- name: upload_file + endpoint: + path: /account/articles/{article_id}/files + method: POST + data_selector: file_upload + params: {} +- name: article_upload + endpoint: + path: /account/articles + method: POST + data_selector: records +- name: articles + endpoint: + path: /articles + method: GET + data_selector: metadata +- name: account_articles + endpoint: + path: /account/articles + method: GET + data_selector: '' + params: + page: 1 + page_size: 10 +- name: account_articles + endpoint: + path: /account/articles + method: GET + data_selector: items +- name: search_articles + endpoint: + path: /articles/search + method: POST + data_selector: records + params: + group: GRP_ID + institution: INST_ID +- name: article_metadata + endpoint: + path: /account/articles/{id} + method: GET + data_selector: metadata +- name: total_views + endpoint: + path: /total/views/article/{id} + method: GET + data_selector: views +- name: total_downloads + endpoint: + path: /total/downloads/article/{id} + method: GET + data_selector: downloads +- name: article_files + endpoint: + path: /articles/{id}/files + method: GET + data_selector: files +- name: articles_search + endpoint: + path: /articles/search + method: GET +- name: research_outputs + endpoint: + path: /research_outputs + method: GET + data_selector: data +notes: +- API rate limits apply. +- The process to upload files may seem complex but this is necessary to handle extremely + large files. +- Authentication is required for any endpoint that retrieves or accepts private or + institutional information. +- Requires setup of token for authorization. +- Supports retrieving multiple articles with pagination. +- Public metadata or files can be retrieved through the API without authentication. +- Group structures only apply to institutions and may be complex. +- You can collect up to 9,000 results. +- To use stage instance replace with 'https://api.figsh.com/v2' +- This uploads an existing DOI and so will only work if you have that enabled in your + repository. +- It can take a minute or two for the link to show up in the file link area on the + metadata entry page. +- Group structures apply to institutions; only returns items published in the specific + group +- Any public metadata or files can be retrieved through the API without authentication. +- Group structures only apply to institutions and these structures may be complex. +- The download script will save files to folders named for the item id the files belong + to. +- You cannot delete public items. +- Make sure the base url is for the token environment (e.g. stage vs production) and + that you have Reviewer permissions. +- Stats from the institution scope require a separate password instead of your administrator + token when requesting results from within the institution scope. +- Request these credentials through a support request (support@figshare.com). +- Figshare provides repository infrastructure for sharing and managing research outputs. +- Uploads an existing DOI and so will only work if you have that enabled in your repository. +- Remember that system ids differ between production and stage. +- If using Excel, save as CSV rather than CSV UTF-8. +- Every repository is set up differently and while the script should work for most, + you may still run into issues. +- Stats from the institution scope require a separate password instead of your administrator + token. +- Requires setup of connected app in Figshare. +- Some fields may return nulls depending on the output. +errors: +- '401 Unauthorized: Check API key.' +- 'HTTPError: Check the response content for error details.' +- '401 Unauthorized: Check token validity.' +- '404 Not Found: Ensure the item ID is correct.' +- '401 Unauthorized: Check token' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Recheck token or permissions' +- '401 Unauthorized: Recheck token or authentication method.' +- '401 Unauthorized: Recheck token validity' +- '201 Created: Successfully created the record.' +- Other status codes indicate failure. +- '401 Unauthorized: Check if the token is valid' +- '401 Unauthorized: Recheck token validity.' +- '404 Not Found: Check the article ID.' +- '204 No Content: The request was successful, but there is no content to send in + the response.' +- '401 Unauthorized: Recheck token or permissions.' +- '404 Not Found: The specified resource does not exist.' +auth_info: + mentioned_objects: + - Personal Token + - TOKEN +client: + base_url: https://api.figshare.com/v2 + auth: + type: apikey + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/finale_inventory/finale-inventory-docs.md b/finale_inventory/finale-inventory-docs.md new file mode 100644 index 00000000..1e3b4d3a --- /dev/null +++ b/finale_inventory/finale-inventory-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Finale Inventory data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def finale_inventory_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://app.finaleinventory.com/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + order,,shipment,,inventorytransfer + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='finale_inventory_migration_pipeline', + destination='duckdb', + dataset_name='finale_inventory_migration_data', + ) + # Load the data + load_info = pipeline.run(finale_inventory_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from finale_inventory_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Orders: Manage and retrieve order information. +- Shipments: Handle shipment details and updates. +- Inventory: Access and update inventory status. +- Products: Manage product details and associations. +- Reports: Generate and retrieve reports in various formats. + +You will then debug the Finale Inventory pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Finale Inventory support. + ```shell + dlt init dlthub:finale_inventory_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Finale Inventory API, as specified in @finale_inventory_migration-docs.yaml + Start with endpoints order and and skip incremental loading for now. + Place the code in finale_inventory_migration_pipeline.py and name the pipeline finale_inventory_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python finale_inventory_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Finale Inventory uses basic authentication with an API key, which must be included in the authorization header for all requests. Additionally, the 'Finale-Partner-ID' header is required in all API calls. + + To get the appropriate API keys, please visit the original source at https://www.finaleinventory.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python finale_inventory_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline finale_inventory_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset finale_inventory_migration_data + The duckdb destination used duckdb:/finale_inventory_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline finale_inventory_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("finale_inventory_migration_pipeline").dataset() + # get rde table as Pandas frame + data.rde.df().head() + ``` + +## Running into errors? + +Be mindful of the rate limits which restrict the number of requests you can make in a given time frame. Exceeding these limits may result in receiving HTTP 429 errors. Also, ensure that the orderId is unique for order collections and that the physicalInventoryDate is set to 19:00 hours. Some fields are read-only or can only be set during creation, and there are specific requirements for the reporting API. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/finale_inventory/finale-inventory-docs.yaml b/finale_inventory/finale-inventory-docs.yaml new file mode 100644 index 00000000..26eb78d4 --- /dev/null +++ b/finale_inventory/finale-inventory-docs.yaml @@ -0,0 +1,880 @@ +resources: +- name: work_effort + endpoint: + path: /get-workeffort-collection + method: GET +- name: party_group + endpoint: + path: /get-partygroup-collection + method: GET +- name: facility + endpoint: + path: /get-facility-collection + method: GET +- name: product + endpoint: + path: /get-product-collection + method: GET +- name: scan_lookup + endpoint: + path: /get-scanlookup-collection + method: GET +- name: order + endpoint: + path: /get-order-collection + method: GET +- name: shipment + endpoint: + path: /get-shipment-collection + method: GET +- name: inventory_transfer + endpoint: + path: /get-inventorytransfer-collection + method: GET +- name: inventory_variance + endpoint: + path: /get-inventoryvariance-collection + method: GET +- name: invoice + endpoint: + path: /get-invoice-collection + method: GET +- name: order + endpoint: + path: /accountPathComponent/api/order + method: GET +- name: content + endpoint: + path: /reference/get-content-collection + method: GET +- name: customization + endpoint: + path: /reference/get-customization-collection + method: GET +- name: facility + endpoint: + path: /reference/get-facility-collection + method: GET +- name: hazardous_material + endpoint: + path: /reference/get-hazardousmaterial-collection + method: GET +- name: inventory_transfer + endpoint: + path: /reference/get-inventorytransfer-collection + method: GET +- name: inventory_variance + endpoint: + path: /reference/get-inventoryvariance-collection + method: GET +- name: invoice + endpoint: + path: /reference/get-invoice-collection + method: GET +- name: order + endpoint: + path: /reference/get-order-collection + method: GET +- name: party_group + endpoint: + path: /reference/get-partygroup-collection + method: GET +- name: product + endpoint: + path: /reference/get-product-collection + method: GET +- name: scan_lookup + endpoint: + path: /reference/get-scanlookup-collection + method: GET +- name: shipment + endpoint: + path: /reference/get-shipment-collection + method: GET +- name: work_effort + endpoint: + path: /reference/get-workeffort-collection + method: GET +- name: shipment + endpoint: + path: /{accountPathComponent}/api/shipment/ + method: GET +- name: product + endpoint: + path: /{accountPathComponent}/api/product/ + method: GET +- name: scan_lookup + endpoint: + path: /{accountPathComponent}/api/scanlookup/ + method: GET +- name: order + endpoint: + path: /{accountPathComponent}/api/order/ + method: GET +- name: content + endpoint: + path: /reference/get-content-collection + method: GET + data_selector: records +- name: customization + endpoint: + path: /reference/get-customization-collection + method: GET + data_selector: records +- name: facility + endpoint: + path: /reference/get-facility-collection + method: GET + data_selector: records +- name: hazardous_material + endpoint: + path: /reference/get-hazardousmaterial-collection + method: GET + data_selector: records +- name: inventory_transfer + endpoint: + path: /reference/get-inventorytransfer-collection + method: GET + data_selector: records +- name: inventory_variance + endpoint: + path: /reference/get-inventoryvariance-collection + method: GET + data_selector: records +- name: invoice + endpoint: + path: /reference/get-invoice-collection + method: GET + data_selector: records +- name: order + endpoint: + path: /reference/get-order-collection + method: GET + data_selector: records +- name: party_group + endpoint: + path: /reference/get-partygroup-collection + method: GET + data_selector: records +- name: product + endpoint: + path: /reference/get-product-collection + method: GET + data_selector: records +- name: scan_lookup + endpoint: + path: /reference/get-scanlookup-collection + method: GET + data_selector: records +- name: shipment + endpoint: + path: /reference/get-shipment-collection + method: GET + data_selector: records +- name: work_effort + endpoint: + path: /reference/get-workeffort-collection + method: GET + data_selector: records +- name: update_product_by_supplier + endpoint: + path: /{accountPathComponent}/api/product/supplierupdate + method: POST + data_selector: '' + params: {} +- name: inventory_item + endpoint: + path: /{accountPathComponent}/api/inventoryitem/ + method: GET + data_selector: records +- name: content + endpoint: + path: /get-content-collection + method: GET +- name: customization + endpoint: + path: /get-customization-collection + method: GET +- name: facility + endpoint: + path: /get-facility-collection + method: GET +- name: hazardous_material + endpoint: + path: /get-hazardousmaterial-collection + method: GET +- name: inventory_transfer + endpoint: + path: /get-inventorytransfer-collection + method: GET +- name: inventory_variance + endpoint: + path: /get-inventoryvariance-collection + method: GET +- name: invoice + endpoint: + path: /get-invoice-collection + method: GET +- name: order + endpoint: + path: /get-order-collection + method: GET +- name: party_group + endpoint: + path: /get-partygroup-collection + method: GET +- name: product + endpoint: + path: /get-product-collection + method: GET +- name: scan_lookup + endpoint: + path: /get-scanlookup-collection + method: GET +- name: shipment + endpoint: + path: /get-shipment-collection + method: GET +- name: work_effort + endpoint: + path: /get-workeffort-collection + method: GET +- name: content + endpoint: + path: /reference/get-content-collection + method: GET +- name: customization + endpoint: + path: /reference/get-customization-collection + method: GET +- name: facility + endpoint: + path: /reference/get-facility-collection + method: GET +- name: hazardous_material + endpoint: + path: /reference/get-hazardousmaterial-collection + method: GET +- name: inventory_transfer + endpoint: + path: /reference/get-inventorytransfer-collection + method: GET +- name: inventory_variance + endpoint: + path: /reference/get-inventoryvariance-collection + method: GET +- name: invoice + endpoint: + path: /reference/get-invoice-collection + method: GET +- name: order + endpoint: + path: /reference/get-order-collection + method: GET +- name: party_group + endpoint: + path: /reference/get-partygroup-collection + method: GET +- name: product + endpoint: + path: /reference/get-product-collection + method: GET +- name: scan_lookup + endpoint: + path: /reference/get-scanlookup-collection + method: GET +- name: shipment + endpoint: + path: /reference/get-shipment-collection + method: GET +- name: work_effort + endpoint: + path: /reference/get-workeffort-collection + method: GET +- name: report + endpoint: + path: /{accountPathComponent}/doc/report/pivotTable/{reportId}/Reports + method: GET + data_selector: reportData + params: {} +- name: content_collection + endpoint: + path: /get-content-collection + method: GET +- name: customization_collection + endpoint: + path: /get-customization-collection + method: GET +- name: facility_collection + endpoint: + path: /get-facility-collection + method: GET +- name: hazardous_material_collection + endpoint: + path: /get-hazardousmaterial-collection + method: GET +- name: inventory_transfer_collection + endpoint: + path: /get-inventorytransfer-collection + method: GET +- name: inventory_variance_collection + endpoint: + path: /get-inventoryvariance-collection + method: GET +- name: invoice_collection + endpoint: + path: /get-invoice-collection + method: GET +- name: order_collection + endpoint: + path: /get-order-collection + method: GET +- name: party_group_collection + endpoint: + path: /get-partygroup-collection + method: GET +- name: product_collection + endpoint: + path: /get-product-collection + method: GET +- name: scan_lookup_collection + endpoint: + path: /get-scanlookup-collection + method: GET +- name: shipment_collection + endpoint: + path: /get-shipment-collection + method: GET +- name: work_effort_collection + endpoint: + path: /get-workeffort-collection + method: GET +- name: product + endpoint: + path: /dev/api/product/ + method: GET + data_selector: productId + params: {} +- name: order + endpoint: + path: /order + method: POST + data_selector: orderId + params: {} +- name: shipment + endpoint: + path: /shipment + method: POST + data_selector: shipmentId + params: {} +- name: inventory_variance + endpoint: + path: /api/inventoryvariance + method: POST + data_selector: inventoryItemVarianceList +- name: facility + endpoint: + path: /api/facility + method: GET + data_selector: contentList +- name: product + endpoint: + path: /api/product + method: GET + data_selector: contentList +- name: product + endpoint: + path: /dev/api/product + method: POST + data_selector: productAssocList + params: {} +- name: journal_entry + endpoint: + path: /demo/api/journalentry + method: GET + data_selector: records +- name: return + endpoint: + path: /demo/api/return + method: GET + data_selector: returnItemList + params: {} +- name: content_collection + endpoint: + path: /{accountPathComponent}/api/content + method: GET + data_selector: content + params: {} +- name: customization + endpoint: + path: /{accountPathComponent}/api/customization + method: GET + data_selector: object +- name: facility + endpoint: + path: /{accountPathComponent}/api/facility + method: GET + data_selector: object +- name: hazardous_material + endpoint: + path: /api/hazardousmaterial + method: GET + data_selector: object + params: {} +- name: inventory_transfer + endpoint: + path: /api/inventorytransfer + method: GET + data_selector: object +- name: inventory_variance + endpoint: + path: /inventoryvariance + method: GET + data_selector: object +- name: invoice + endpoint: + path: /api/invoice + method: GET + data_selector: object +- name: order + endpoint: + path: /order + method: GET + data_selector: object +- name: party_group + endpoint: + path: /{accountPathComponent}/api/partygroup + method: GET + data_selector: object +- name: party_group + endpoint: + path: /{accountPathComponent}/api/partygroup + method: GET + data_selector: object + params: {} +- name: product + endpoint: + path: /{accountPathComponent}/api/product + method: GET + data_selector: object +- name: product + endpoint: + path: /{accountPathComponent}/api/product + method: GET + data_selector: '200' + params: {} +- name: scan_lookup + endpoint: + path: /scanlookup + method: GET +- name: scan_lookup + endpoint: + path: /api/scanlookup + method: GET + data_selector: object +- name: shipment + endpoint: + path: /{accountPathComponent}/api/shipment + method: GET + data_selector: object +- name: shipment + endpoint: + path: /api/shipment + method: GET + data_selector: object +- name: work_effort + endpoint: + path: /workeffort + method: GET + data_selector: object +- name: content + endpoint: + path: /reference/get-content-collection + method: GET +- name: customization + endpoint: + path: /reference/get-customization-collection + method: GET +- name: facility + endpoint: + path: /reference/get-facility-collection + method: GET +- name: hazardous_material + endpoint: + path: /reference/get-hazardousmaterial-collection + method: GET +- name: inventory_transfer + endpoint: + path: /reference/get-inventorytransfer-collection + method: GET +- name: inventory_variance + endpoint: + path: /reference/get-inventoryvariance-collection + method: GET +- name: invoice + endpoint: + path: /reference/get-invoice-collection + method: GET +- name: order + endpoint: + path: /reference/get-order-collection + method: GET +- name: party_group + endpoint: + path: /reference/get-partygroup-collection + method: GET +- name: product + endpoint: + path: /reference/get-product-collection + method: GET +- name: scan_lookup + endpoint: + path: /reference/get-scanlookup-collection + method: GET +- name: shipment + endpoint: + path: /reference/get-shipment-collection + method: GET +- name: work_effort + endpoint: + path: /reference/get-workeffort-collection + method: GET +- name: work_effort + endpoint: + path: /api/workeffort + method: GET +- name: content + endpoint: + path: /get-content-collection + method: GET +- name: customization + endpoint: + path: /get-customization-collection + method: GET +- name: facility + endpoint: + path: /get-facility-collection + method: GET +- name: hazardous_material + endpoint: + path: /get-hazardousmaterial-collection + method: GET +- name: inventory_transfer + endpoint: + path: /get-inventorytransfer-collection + method: GET +- name: inventory_variance + endpoint: + path: /get-inventoryvariance-collection + method: GET +- name: invoice + endpoint: + path: /get-invoice-collection + method: GET +- name: order + endpoint: + path: /get-order-collection + method: GET +- name: party_group + endpoint: + path: /get-partygroup-collection + method: GET +- name: product + endpoint: + path: /get-product-collection + method: GET +- name: scan_lookup + endpoint: + path: /get-scanlookup-collection + method: GET +- name: shipment + endpoint: + path: /get-shipment-collection + method: GET +- name: work_effort + endpoint: + path: /get-workeffort-collection + method: GET +- name: content + endpoint: + path: /reference/get-content-collection + method: GET +- name: customization + endpoint: + path: /reference/get-customization-collection + method: GET +- name: facility + endpoint: + path: /reference/get-facility-collection + method: GET +- name: hazardous_material + endpoint: + path: /reference/get-hazardousmaterial-collection + method: GET +- name: inventory_transfer + endpoint: + path: /reference/get-inventorytransfer-collection + method: GET +- name: inventory_variance + endpoint: + path: /reference/get-inventoryvariance-collection + method: GET +- name: invoice + endpoint: + path: /reference/get-invoice-collection + method: GET +- name: order + endpoint: + path: /reference/get-order-collection + method: GET +- name: party_group + endpoint: + path: /reference/get-partygroup-collection + method: GET +- name: product + endpoint: + path: /reference/get-product-collection + method: GET +- name: scan_lookup + endpoint: + path: /reference/get-scanlookup-collection + method: GET +- name: shipment + endpoint: + path: /reference/get-shipment-collection + method: GET +- name: work_effort + endpoint: + path: /reference/get-workeffort-collection + method: GET +- name: report + endpoint: + path: /{accountPathComponent}/doc/report/pivotTable/{reportId}/Reports.{format} + method: GET + data_selector: results +- name: report + endpoint: + path: /{accountPathComponent}/doc/report/pivotTable/{reportId}/Reports.json + method: GET + data_selector: records +- name: content_collection + endpoint: + path: /{accountPathComponent}/api/content + method: GET + data_selector: object +- name: customization + endpoint: + path: /{accountPathComponent}/api/customization + method: GET + data_selector: customization + params: {} +- name: facility + endpoint: + path: /api/facility + method: GET + data_selector: facility + params: {} +- name: hazardous_material + endpoint: + path: /api/hazardousmaterial + method: GET + data_selector: object +- name: content + endpoint: + path: /reference/get-content-collection + method: GET +- name: customization + endpoint: + path: /reference/get-customization-collection + method: GET +- name: facility + endpoint: + path: /reference/get-facility-collection + method: GET +- name: hazardous_material + endpoint: + path: /reference/get-hazardousmaterial-collection + method: GET +- name: inventory_transfer + endpoint: + path: /reference/get-inventorytransfer-collection + method: GET +- name: inventory_variance + endpoint: + path: /reference/get-inventoryvariance-collection + method: GET +- name: invoice + endpoint: + path: /reference/get-invoice-collection + method: GET +- name: order + endpoint: + path: /reference/get-order-collection + method: GET +- name: party_group + endpoint: + path: /reference/get-partygroup-collection + method: GET +- name: product + endpoint: + path: /reference/get-product-collection + method: GET +- name: scan_lookup + endpoint: + path: /reference/get-scanlookup-collection + method: GET +- name: shipment + endpoint: + path: /reference/get-shipment-collection + method: GET +- name: work_effort + endpoint: + path: /reference/get-workeffort-collection + method: GET +- name: inventory_transfer + endpoint: + path: /api/inventorytransfer + method: GET + data_selector: object +- name: content_collection + endpoint: + path: /{accountPathComponent}/api/content + method: GET + data_selector: object +- name: inventory_variance + endpoint: + path: /api/inventoryvariance + method: GET +- name: customization + endpoint: + path: /{accountPathComponent}/api/customization + method: GET + data_selector: object +- name: invoice + endpoint: + path: /{accountPathComponent}/api/invoice + method: GET +- name: order + endpoint: + path: /api/order + method: GET +- name: facility + endpoint: + path: /{accountPathComponent}/api/facility + method: GET + data_selector: facility + params: {} +- name: party_group + endpoint: + path: /api/partygroup + method: GET +- name: hazardous_material + endpoint: + path: /api/hazardousmaterial + method: GET +- name: product + endpoint: + path: /api/product + method: GET +- name: inventory_transfer + endpoint: + path: /inventorytransfer + method: GET + data_selector: object +- name: scan_lookup + endpoint: + path: /{accountPathComponent}/api/scanlookup + method: GET +- name: inventory_variance + endpoint: + path: /api/inventoryvariance + method: GET +- name: shipment + endpoint: + path: /{accountPathComponent}/api/shipment + method: GET +- name: work_effort + endpoint: + path: /api/workeffort + method: GET +- name: invoice + endpoint: + path: /{accountPathComponent}/api/invoice + method: GET +- name: order + endpoint: + path: /api/order + method: GET +- name: party_group + endpoint: + path: /api/partygroup + method: GET +- name: product + endpoint: + path: /{accountPathComponent}/api/product + method: GET +- name: scan_lookup + endpoint: + path: /{accountPathComponent}/api/scanlookup + method: GET +- name: shipment + endpoint: + path: /{accountPathComponent}/api/shipment + method: GET +- name: work_effort + endpoint: + path: /api/workeffort + method: GET +notes: +- All API requests must include an authorization header. +- Finale Inventory uses basic authentication for authenticating API requests. +- Include the HTTP header 'Finale-Partner-ID' in all requests +- Currently we interpret this to mean no more than 120 updates (POST request) per + minute, 120 single item fetches (GET specific entity) per minute, and no more than + 300 collection requests or reports per hour. +- Applications that exceed these rate limits may receive HTTP 429 Too Many Requests + errors when they hit the rate limit. +- The system is optimized for filtering by lastUpdatedDate. +- Requests that exceed a 30-day range for lastUpdatedDate will be rejected. +- Each account has a quota of 1000 points/minute for product supplier updates. +- Quotas refresh every 30 seconds. +- There are no filters available for this endpoint to limit the records returned or + to request a specific row for a specific product or location. +- Replace 'dev' with account name in the URL. +- Authorization header requires API key/secret. +- The orderId must be unique for the order collection. +- Some fields are read-only, others can only be set on creation. +- Always set physicalInventoryDate to 19:00 hours. +- Use statusId 'PHSCL_INV_COMMITTED' for immediate application of inventory. +- The UI / Imports only pulls the first productAssocList entry. All other entries + will be ignored. +- When creating a new productAssocList from an empty product, you can exclude the + productAssocUrl. +- The reporting API allows you to run any of the reports in Finale and get the result + back in a CSV or JSON format. +- The reporting API can only be used to retrieve information from Finale. The other + API endpoints must be used to update information. +- The report URL has a format parameter in query string. It is recommended to change + the format to csv or jsonObject. +- Base URL requires accountPathComponent to be specified +errors: +- 'HTTP 429 Too Many Requests: requests for the API will fail with that error code + until the next time period starts.' +- '400: Request exceeds maximum date range for lastUpdatedDate filter.' +- '400: A request that doesn''t specify a date range is not affected by this limitation.' +- 'HTTP 429: Requests that would cause you to run out of points will be refused.' +- database integrity violation due to reference to object that does not exist or duplicate + object +- Invalid facility URL. +- Invalid product URL. +- If productAssocUrl is not specified when updating the productAssocList, it will + create a new productAssocList entry instead of replacing the existing entry. +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +auth_info: + mentioned_objects: + - Finale-Partner-ID +client: + base_url: https://app.finaleinventory.com + headers: + accept: application/json +source_metadata: null diff --git a/finbox/finbox-docs.md b/finbox/finbox-docs.md new file mode 100644 index 00000000..7e26f290 --- /dev/null +++ b/finbox/finbox-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Lending data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def lending_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "base_url/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + lending,,v1/users,,v1/loans + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='lending_migration_pipeline', + destination='duckdb', + dataset_name='lending_migration_data', + ) + # Load the data + load_info = pipeline.run(lending_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from lending_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- User Management: Endpoints related to user profiles, sessions, and eligibility. +- Loan Management: Endpoints for creating, repaying, and retrieving loan details. +- Products: Endpoints related to various financial products offered, like credit lines and risk engines. + +You will then debug the Lending pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Lending support. + ```shell + dlt init dlthub:lending_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Lending API, as specified in @lending_migration-docs.yaml + Start with endpoints lending and and skip incremental loading for now. + Place the code in lending_migration_pipeline.py and name the pipeline lending_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python lending_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + All APIs require a Server API Key to be passed in the x-api-key header. + + To get the appropriate API keys, please visit the original source at https://www.lending.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python lending_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline lending_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset lending_migration_data + The duckdb destination used duckdb:/lending_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline lending_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("lending_migration_pipeline").dataset() + # get endin table as Pandas frame + data.endin.df().head() + ``` + +## Running into errors? + +This API's request format is specific to e-commerce use cases and is disabled by default for clients with different use cases. Ensure that the value passed for URLs is valid, and be aware that the Lending SDK requires SMS and Location permissions. Additionally, the minimum SDK version supported is 21. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/finbox/finbox-docs.yaml b/finbox/finbox-docs.yaml new file mode 100644 index 00000000..72e91280 --- /dev/null +++ b/finbox/finbox-docs.yaml @@ -0,0 +1,322 @@ +resources: +- name: create_user + endpoint: + path: /v1/user/create + method: POST + data_selector: data + params: {} +- name: get_eligibility + endpoint: + path: /v1/user/eligibility + method: GET + data_selector: data + params: {} +- name: generate_token + endpoint: + path: /v1/user/token + method: POST + data_selector: data + params: {} +- name: list_users + endpoint: + path: /v1/users + method: GET + data_selector: data + params: + limit: '10' + page: '1' +- name: user_profile + endpoint: + path: /v1/user/profile + method: GET + data_selector: data + params: {} +- name: list_loans + endpoint: + path: /v1/loans + method: GET + data_selector: data + params: + limit: '10' + page: '1' +- name: loan_details + endpoint: + path: /v1/loan/details + method: GET + data_selector: data + params: {} +- name: loan_offers + endpoint: + path: /v1/loan/offers + method: GET + data_selector: data + params: {} +- name: get_signed_agreement + endpoint: + path: /v1/loan/agreement + method: GET + data_selector: data + params: {} +- name: loan_repayments + endpoint: + path: /v1/loan/repayments + method: GET + data_selector: data + params: {} +- name: repay_loan + endpoint: + path: /v1/loan/repay + method: POST + data_selector: data + params: {} +- name: credit_line_details + endpoint: + path: /v1/creditline/details + method: GET + data_selector: data + params: {} +- name: credit_line_transactions + endpoint: + path: /v1/creditline/transactions + method: GET + data_selector: data.transactions + params: {} +- name: confirm_credit_line_transaction + endpoint: + path: /v1/creditline/txn/confirm + method: POST + data_selector: records +- name: transactions + endpoint: + path: /embedded-finance/rest-api/credit-line-transactions + method: GET + data_selector: txnID + params: {} +- name: cancel_credit_line_transaction + endpoint: + path: /v1/creditline/txn/cancel + method: POST + data_selector: '' + params: {} +- name: split_credit_line_transaction + endpoint: + path: /v1/creditline/txn/split + method: POST + data_selector: '' + params: {} +- name: user_activity_history + endpoint: + path: /v1/user/activity + method: GET + data_selector: data.userActivityHistory + params: + customerID: someCustomerID +- name: Buy-Now Pay-Later Stack + endpoint: + path: /products/buy-now-pay-later-stack + method: GET +- name: Cashflow Based Lending Stack + endpoint: + path: /products/cashflow-based-lending-stack + method: GET +- name: Supply Chain Finance Stack + endpoint: + path: /products/supply-chain-finance-stack + method: GET +- name: No Code Credit Link + endpoint: + path: /products/no-code-credit-link + method: GET +- name: DeviceConnect + endpoint: + path: /products/device-connect + method: GET +- name: BankConnect + endpoint: + path: /products/bank-connect + method: GET +- name: Risk Engine + endpoint: + path: /products/risk-engine + method: GET +- name: CollectX + endpoint: + path: /products/collect-x + method: GET +- name: lending + endpoint: + path: /lending + method: POST + data_selector: result + params: {} +- name: session + endpoint: + path: /v1/user/session + method: POST + data_selector: data + params: {} +- name: create_user + endpoint: + path: /v1/user/create + method: POST + data_selector: data + params: {} +- name: get_eligibility + endpoint: + path: /v1/user/eligibility + method: GET + data_selector: data + params: + customerID: somecustomerid +- name: generate_token + endpoint: + path: /v1/user/token + method: POST + data_selector: data + params: {} +- name: list_users + endpoint: + path: /v1/users + method: GET + data_selector: data.userList + params: {} +- name: user_profile + endpoint: + path: /v1/user/profile + method: GET + data_selector: data.userProfile + params: + customerID: someCustomerID +- name: list_loans + endpoint: + path: /v1/loans + method: GET + data_selector: data.loans + params: {} +- name: loan_details + endpoint: + path: /v1/loan/details + method: GET + data_selector: data + params: + loanApplicationID: someLongLoanApplicationUUID +- name: loan_offers + endpoint: + path: /v1/loan/offers + method: GET + data_selector: data + params: + loanApplicationID: someLongLoanApplicationUUID +- name: get_signed_agreement + endpoint: + path: /v1/loan/agreement + method: GET + data_selector: data.signedAgreementURL + params: + loanApplicationID: someLongLoanApplicationUUID +- name: loan_repayments + endpoint: + path: /v1/loan/repayments + method: GET + data_selector: data.emiList + params: + loanApplicationID: someLongLoanApplicationUUID +- name: repay_loan + endpoint: + path: /v1/loan/repay + method: POST + data_selector: data.referenceID + params: {} +- name: credit_line_details + endpoint: + path: /v1/creditline/details + method: GET + data_selector: data + params: {} +- name: credit_line_transactions + endpoint: + path: /v1/creditline/transactions + method: GET + data_selector: data.transactions + params: {} +- name: credit_line_transaction + endpoint: + path: /v1/creditline/txn/confirm + method: POST + data_selector: txnID +- name: credit_line_transactions + endpoint: + path: /embedded-finance/rest-api/credit-line-transactions + method: GET + data_selector: transactions + params: {} +- name: cancel_credit_line_transaction + endpoint: + path: /v1/creditline/txn/cancel + method: POST + data_selector: '' + params: {} +- name: split_credit_line_transaction + endpoint: + path: /v1/creditline/txn/split + method: POST + data_selector: '' + params: {} +- name: user_activity_history + endpoint: + path: /v1/user/activity + method: GET + data_selector: userActivityHistory + params: {} +- name: user_banner + endpoint: + path: /v1/user/banner + method: GET + params: + customerID: someCustomerID +notes: +- All APIs require a Server API Key to be passed in x-api-key header. +- This API's request format is specific to e-commerce use case, and is disabled by + default for clients with a different use case. +- For other use cases, FinBox team will share a different API for updating the status. +- On successful updating the status, API will give a response with 200 HTTP status + code. +- API Keys and SDK version names for mobile integration +- Server Keys for back-end integration +- Lending SDK requires SMS and Location permission as mandatory. +- Make sure the value passed is a valid URL +- Minimum SDK Version Lending SDK supports a minimum SDK version of 21. +errors: +- '403: Missing customerID' +- '403: Missing mobile number' +- '403: Invalid mobile number' +- '409: User already exists' +- '400: User not found' +- '400: User eligibility not available' +- '403: User not eligible for loan' +- '404: user with credit line not found' +- 'Missing txnID: 403' +- 'Any other missing field: 400' +- 'Invalid extension: 400' +- 'Error decoding base 64 string: 400' +- 'Error processing file: 400' +- 'txnID not found: 404' +- 'only transaction with status PROCESSING can be updated: 403' +- 'amount should be greater than 0: 400' +- 'sum of invoice amounts cannot exceed transaction amount: 400' +- 'Missing customerID: 403' +- 'Missing redirectURL: 403' +- 'User does not exist: 404' +- 'User eligibility not available: 400' +- 'User not eligible for loan: 403' +- 'transactionID already exists: 409' +- '403: User already exists' +- '409: User does not have eligibility data' +- '404: User does not exist' +auth_info: + mentioned_objects: [] +client: + base_url: base_url + headers: + Accept: application/json +source_metadata: null diff --git a/firmable/firmable-docs.md b/firmable/firmable-docs.md new file mode 100644 index 00000000..3c051077 --- /dev/null +++ b/firmable/firmable-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Firmable data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def firmable_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.firmable.com/", + "auth": { + "type": "apikey", + "token": FIRMABLE_API_KEY, + }, + }, + "resources": [ + people,,company,,people/search + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='firmable_migration_pipeline', + destination='duckdb', + dataset_name='firmable_migration_data', + ) + # Load the data + load_info = pipeline.run(firmable_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from firmable_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- People: Access and manage individual user information. +- Company: Retrieve and manage company-related data. +- Search: Perform searches within the people dataset. + +You will then debug the Firmable pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Firmable support. + ```shell + dlt init dlthub:firmable_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Firmable API, as specified in @firmable_migration-docs.yaml + Start with endpoints people and and skip incremental loading for now. + Place the code in firmable_migration_pipeline.py and name the pipeline firmable_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python firmable_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication for accessing the Firmable API is handled via an API key, which must be included in the request header under the name 'Authorization'. + + To get the appropriate API keys, please visit the original source at https://www.firmable.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python firmable_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline firmable_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset firmable_migration_data + The duckdb destination used duckdb:/firmable_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline firmable_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("firmable_migration_pipeline").dataset() + # get eopl table as Pandas frame + data.eopl.df().head() + ``` + +## Running into errors? + +It is important to note that the API allows filtering, sorting, or pagination through query parameters. Additionally, there is a rate limit of 50 requests per second per API key. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/firmable/firmable-docs.yaml b/firmable/firmable-docs.yaml new file mode 100644 index 00000000..e83e6e25 --- /dev/null +++ b/firmable/firmable-docs.yaml @@ -0,0 +1,47 @@ +resources: +- name: company_enrichment + endpoint: + path: /company + method: GET + params: + ln_slug: company_slug +- name: people_enrichment + endpoint: + path: /people + method: GET +- name: people_search + endpoint: + path: /people/search + method: POST +- name: company + endpoint: + path: /company + method: GET +- name: people_enrichment + endpoint: + path: /people + method: GET +- name: people_search + endpoint: + path: /people/search + method: POST + data_selector: records + params: {} +- name: people_search + endpoint: + path: /people/search + method: POST + data_selector: person_id +notes: +- Filtering, sorting, or pagination is done via query parameters. +- 50 requests per second per API key. +errors: [] +auth_info: + mentioned_objects: [] +client: + base_url: https://api.firmable.com + auth: + type: apikey + location: header + header_name: Authorization +source_metadata: null diff --git a/flexbe_api/flexbe-api-docs.md b/flexbe_api/flexbe-api-docs.md new file mode 100644 index 00000000..18c9727c --- /dev/null +++ b/flexbe_api/flexbe-api-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Flexbe data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def flexbe_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://app.flexbe.com/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + pages,,sites,,drafts + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='flexbe_migrations_pipeline', + destination='duckdb', + dataset_name='flexbe_migrations_data', + ) + # Load the data + load_info = pipeline.run(flexbe_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from flexbe_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Pages: Manage and interact with your site's pages. +- Sites: Handle site configurations and settings. +- Drafts: Create and manage draft content before publishing. +- Payments: Process and manage payment transactions. +- Contacts: Manage user contacts and related information. + +You will then debug the Flexbe pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Flexbe support. + ```shell + dlt init dlthub:flexbe_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Flexbe API, as specified in @flexbe_migrations-docs.yaml + Start with endpoints pages and and skip incremental loading for now. + Place the code in flexbe_migrations_pipeline.py and name the pipeline flexbe_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python flexbe_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication method is OAuth2, which requires an access token to be included in the request header under the name 'Authorization'. + + To get the appropriate API keys, please visit the original source at https://www.flexbe.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python flexbe_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline flexbe_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset flexbe_migrations_data + The duckdb destination used duckdb:/flexbe_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline flexbe_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("flexbe_migrations_pipeline").dataset() + # get age table as Pandas frame + data.age.df().head() + ``` + +## Running into errors? + +It's important to note that if you stop using Flexbe, all sites will be deleted 12 months after your subscription expires, but your account credentials remain active. If you do not subscribe after the trial period, your site will be deleted 14 days after the trial ends. Additionally, only paid plans allow site publishing, and domain registrations may take up to 2 days. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/flexbe_api/flexbe-api-docs.yaml b/flexbe_api/flexbe-api-docs.yaml new file mode 100644 index 00000000..cf7c4bfa --- /dev/null +++ b/flexbe_api/flexbe-api-docs.yaml @@ -0,0 +1,212 @@ +resources: +- name: getLeads + endpoint: + path: /mod/api/ + method: GET + data_selector: data + params: + method: getLeads +- name: changeLead + endpoint: + path: /mod/api/ + method: POST + data_selector: data + params: + method: changeLead +- name: payment + endpoint: + path: /payment + method: GET + data_selector: records +- name: contacts + endpoint: + path: /contacts + method: GET + data_selector: records +- name: sites + endpoint: + path: /sites + method: GET + data_selector: sites +- name: drafts + endpoint: + path: /drafts + method: GET + data_selector: drafts +- name: member_roles + endpoint: + path: /member-roles/ + method: GET +- name: add_member + endpoint: + path: /add-member/ + method: POST +- name: verify_ownership + endpoint: + path: /verify-ownership + method: POST + data_selector: response + params: {} +- name: payments + endpoint: + path: /payments + method: POST + data_selector: paymentDetails + params: {} +- name: language_menu + endpoint: + path: /api/language/menu + method: GET + data_selector: languages +- name: add_language + endpoint: + path: /api/language/add + method: POST + data_selector: result +- name: utm_generator + endpoint: + path: /analytics/utm-generator + method: GET + data_selector: utm_parameters + params: {} +- name: robots_txt + endpoint: + path: /robots.txt + method: GET + data_selector: content + params: {} +- name: canonical_urls + endpoint: + path: /canonical-urls + method: GET + data_selector: content + params: {} +- name: redirects + endpoint: + path: /api/documentation/redirects + method: GET +- name: pages + endpoint: + path: /pages + method: GET + data_selector: records +- name: sections + endpoint: + path: /copy-sections + method: POST + data_selector: sections + params: {} +- name: images + endpoint: + path: /copy-images + method: POST + data_selector: images + params: {} +- name: styles + endpoint: + path: /copy-styles + method: POST + data_selector: styles + params: {} +- name: Phone field + endpoint: + path: /masks/phone + method: GET + data_selector: masks + params: {} +- name: Text field + endpoint: + path: /masks/text + method: GET + data_selector: masks + params: {} +- name: favicon + endpoint: + path: /creating-a-favicon + method: GET + data_selector: content + params: {} +- name: redirects + endpoint: + path: /settings/redirects + method: GET + data_selector: redirects + params: {} +- name: Auto Loan Calculator + endpoint: + path: /catalog/calculator/forms/auto-loan-calculator + method: GET +notes: +- All sites are deleted 12 months after you stop using Flexbe and your subscription + expires, but your email address and password remain active. +- The trial period on Flexbe lasts 14 days. +- If you decide against subscribing, your site will be automatically deleted in 14 + days after the trial period expires. +- If you have paid for a plan even once, your site will be deleted in 12 months once + the trial period is over. +- Drafts are not included in the plan limit. +- You can create up to 100 drafts on all plans. +- By default, background videos are turned off on mobile devices because they make + sites load slowly and spend mobile internet traffic. +- To publish a site, you need to have a paid subscription plan. +- Domain registration may take up between one hour and 2 days. +- The SSL certificate will be enabled automatically within 1 day. +- Services may request to prove ownership of your domain through file upload or meta + tag. +- Before setting up the cart on your site, you need to configure accepting payments. +- Your site currency must match your PayPal account currency. +- 'The list of currencies PayPal supports for payments: USD, EUR, AUD, CAD, CHF, CZK, + DKK, GBP, HKD, HUF, ILS, JPY, MXN, NOK, NZD, PHP, PLN, RUB, SEK, SGD, THB, TWD.' +- For variables to work properly, your page URLs should have the same structure. +- You can set up the site's parameters, such as currency, integrations and systems + message, only for the whole site. +- Dynamic UTM parameters are not supported on the platform. +- Our support team specialists do not provide services for setting up SEO. If you + need a more advanced optimization, we recommend consulting experts in the field. +- You can copy-paste different objects between all site pages on the platform. +- A domain can be registered only after the main account has been paid. +- Transferring an old domain or activation of a new domain may take up to 2 days. +- To create a subdomain, you must have your own domain. +- Web hosting is posting your website on the Internet. Secure and reliable web hosting + is included in every subscription plan. +- Websites operate faster due to the proximity of servers to the audience. +- Global sections are sections that you can use on multiple pages of your site; changes + of any global section on one page are automatically applied to its duplicates on + other pages. +- Free sections empower you to create unique designs, without using section templates. +- When Device visibility is enabled in a section, a green device icon appears in the + top right corner. +- When Device visibility is set up for any element, a green device icon appears in + the top right corner of this element. +- Masks are available only for Phone and Text fields. +- A mask is required when the data must conform to the set format. +- The AI copywriter is in beta testing. +- Presently there is a limit of 100 requests to AI per day for one account. +- GTM ID is specified in the code segments and can be copied from the dashboard. +- You can set up transparent redirects only for your own domain. You cannot add a + transparent redirect to a third-party website. +- SSL certificate is enabled automatically within 1 day. +- To check if the SSL certificate is enabled, go to Settings -> Domains. +- You can set up the background of a section only, not of the whole page. +- Background videos aren’t played on mobile devices because they make sites load slowly + and spend mobile Internet traffic. +- To convert an SVG file successfully, your image shouldn't have more than one color, + gradients, opaque layer(s), shadows, blurring, fonts that are not converted to vector + graphics. +- If your SVG file contains several groups, its frame can get larger than the icon + while converting. +- The calculator works exclusively with numeric values. +errors: +- 0 - Invalid acces key +- 1 - Request limit is exceeded +- 2 - Nonexistent method +- 'Payment error: Please try again later or choose another payment method.' +auth_info: + mentioned_objects: [] +client: + base_url: https://app.flexbe.com + auth: + type: oauth2 + location: header + header_name: Authorization +source_metadata: null diff --git a/flight_duration_api/flight-duration-api-docs.md b/flight_duration_api/flight-duration-api-docs.md new file mode 100644 index 00000000..2511f9a2 --- /dev/null +++ b/flight_duration_api/flight-duration-api-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Flifo data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def flifo_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://flifo.api.aero/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + flights,,airports,,airlines + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='flifo_migrations_pipeline', + destination='duckdb', + dataset_name='flifo_migrations_data', + ) + # Load the data + load_info = pipeline.run(flifo_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from flifo_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Flights: Provides information regarding flight status and updates. +- Airports: Contains data related to various airports. +- Airlines: Includes information about different airlines. +- Incident Records: Allows creating and managing records related to incidents. +- Flight Records: Detailed information including departure and arrival slots, events, and statistics. + +You will then debug the Flifo pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Flifo support. + ```shell + dlt init dlthub:flifo_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Flifo API, as specified in @flifo_migrations-docs.yaml + Start with endpoints flights and and skip incremental loading for now. + Place the code in flifo_migrations_pipeline.py and name the pipeline flifo_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python flifo_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Users are authenticated using their API key, and OAuth tokens have an expiry of one hour after retrieval. + + To get the appropriate API keys, please visit the original source at https://www.flifo.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python flifo_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline flifo_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset flifo_migrations_data + The duckdb destination used duckdb:/flifo_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline flifo_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("flifo_migrations_pipeline").dataset() + # get light table as Pandas frame + data.light.df().head() + ``` + +## Running into errors? + +OAuth tokens expire one hour after retrieval, and users must refresh tokens to maintain access. Rate limits are applied to all incoming requests, and the API key used in requests is included in response headers. Valid IATA/ICAO codes are required for airport queries, and a connected app setup is necessary for authentication. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/flight_duration_api/flight-duration-api-docs.yaml b/flight_duration_api/flight-duration-api-docs.yaml new file mode 100644 index 00000000..588d6533 --- /dev/null +++ b/flight_duration_api/flight-duration-api-docs.yaml @@ -0,0 +1,1951 @@ +resources: +- name: flight_duration + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport} + method: GET + data_selector: duration +- name: flight_duration_by_airline + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport}/{airlineCode} + method: GET + data_selector: duration +- name: duration_stats_by_airports_all_airlines + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport} + method: GET + data_selector: stats +- name: duration_stats_by_airports_min_max_percentiles + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport} + method: GET + data_selector: stats +- name: duration_stats_by_airports_split_by_airline + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport} + method: GET + data_selector: stats +- name: duration_stats_by_airports_split_by_airline_min_max + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport} + method: GET + data_selector: stats +- name: duration_stats_by_airports_split_by_airline_min_max_percentiles + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport} + method: GET + data_selector: stats +- name: duration_stats_by_airports_specific_airline_min_max_percentiles + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport}/{airlineCode} + method: GET + data_selector: stats +- name: flight_duration + endpoint: + path: /duration/v2/{origin}/{destination} + method: GET + data_selector: statistics +- name: flight_duration + endpoint: + path: /v2/{originAirport}/{destinationAirport} + method: GET + data_selector: average_duration + params: {} +- name: flight_duration_by_airline + endpoint: + path: /v2/{originAirport}/{destinationAirport}/{airlineCode} + method: GET + data_selector: average_duration + params: {} +- name: duration_stats_all_airlines + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport} + method: GET + data_selector: stats + params: + version: '2' +- name: duration_stats_with_min_max_percentiles + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport} + method: GET + data_selector: stats + params: + version: '2' + showMinMax: true + showPercentiles: true +- name: duration_stats_split_by_airline + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport} + method: GET + data_selector: stats + params: + version: '2' + split: airline +- name: duration_stats_split_by_airline_and_show_min_max + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport} + method: GET + data_selector: stats + params: + version: '2' + split: airline + showMinMax: true +- name: duration_stats_split_by_airline_and_show_min_max_and_percentiles + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport} + method: GET + data_selector: stats + params: + version: '2' + split: airline + showMinMax: true + showPercentiles: true +- name: duration_stats_for_specific_airline + endpoint: + path: /duration/v2/{originAirport}/{destinationAirport}/{airlineCode} + method: GET + data_selector: stats + params: + version: '2' + showMinMax: true + showPercentiles: true +- name: bag_history + endpoint: + path: /baggage/history/v1.0/tag/{tag}/flightdate/{date} + method: GET + data_selector: bag + params: {} +- name: flight_duration + endpoint: + path: /duration/v2/{origin}/{destination} + method: GET + data_selector: flight duration statistics + params: {} +- name: bags_for_flight + endpoint: + path: /bagsforflight/v1.0/airport_code/{airport_code}/arr_dep_indicator/{arr_dep_indicator}/airline_code/{airline_code}/flight_no/{flight_no}/dep_flight_date/{dep_flight_date} + method: GET +- name: bag_history + endpoint: + path: /history/v1.0/tag/{bagTag}/flightdate/{flightDate} + method: GET +- name: world_tracer + endpoint: + path: /delayedbags/create/v1.0 + method: POST +- name: bags_for_passenger + endpoint: + path: /bagsforpassenger/v1.0/pnr/{pnr}/dep_flight_date/{dep_flight_date} + method: GET +- name: Allowance + endpoint: + path: /api/v2/passenger/allowance/check + method: POST +- name: BaggageProcessing + endpoint: + path: /api/v2/passenger/baggage/confirm-drop + method: POST +- name: BagProcessing + endpoint: + path: /api/v1/passenger/bag/generate + method: GET +- name: PassengerIdentification + endpoint: + path: /api/v2/passenger/identify/by-barcoded-boarding-pass + method: POST +- name: PassportCheck + endpoint: + path: /api/v1/passenger/check-passport + method: POST +- name: Process + endpoint: + path: /api/v1/passenger/end-drop-off + method: POST +- name: TravelDocumentCheck + endpoint: + path: /api/v1/passenger/check-travel-document + method: POST +- name: VisaVerification + endpoint: + path: /api/v2/passenger/verified-visa + method: POST +- name: device + endpoint: + path: /gateaccess/v2/device/{deviceId} + method: GET +- name: opengate + endpoint: + path: /gateaccess/v2/opengate + method: POST +- name: closegate + endpoint: + path: /gateaccess/v2/closegate + method: POST +- name: acceptpassenger + endpoint: + path: /gateaccess/v2/acceptpassenger + method: POST +- name: rejectpassenger + endpoint: + path: /gateaccess/v2/rejectpassenger + method: POST +- name: bag_history + endpoint: + path: /baggage/history/v1.0/tag/{tag}/flightdate/{date} + method: GET + data_selector: success +- name: bags_for_flight + endpoint: + path: /bagsforflight/v1.0/airport_code/{airport_code}/arr_dep_indicator/{arr_dep_indicator}/airline_code/{airline_code}/flight_no/{flight_no}/dep_flight_date/{dep_flight_date} + method: GET +- name: bag_history + endpoint: + path: /history/v1.0/tag/{bagTag}/flightdate/{flightDate} + method: GET +- name: world_tracer + endpoint: + path: /delayedbags/create/v1.0 + method: POST +- name: bags_for_passenger + endpoint: + path: /bagsforpassenger/v1.0/pnr/{pnr}/dep_flight_date/{dep_flight_date} + method: GET +- name: device + endpoint: + path: /print/v2/device/{deviceId} + method: GET +- name: boardingpass + endpoint: + path: /print/v2/boardingpass/{type} + method: POST +- name: boardingpass_aea + endpoint: + path: /print/v2/boardingpass/aea + method: POST +- name: baggagetag + endpoint: + path: /print/v2/baggagetag/{type} + method: POST +- name: baggagetag_aea + endpoint: + path: /print/v2/baggagetag/aea + method: POST +- name: report + endpoint: + path: /print/v2/report + method: POST +- name: Allowance + endpoint: + path: /api/v2/passenger/allowance/check + method: POST +- name: BaggageProcessing + endpoint: + path: /api/v2/passenger/baggage/confirm-drop + method: POST +- name: BagProcessing + endpoint: + path: /api/v1/passenger/bag/generate + method: GET +- name: PassengerIdentification + endpoint: + path: /api/v1/passenger/identify/by-barcoded-boarding-pass + method: POST +- name: PassportCheck + endpoint: + path: /api/v1/passenger/check-passport + method: POST +- name: Process + endpoint: + path: /api/v1/passenger/end-drop-off + method: POST +- name: TravelDocumentCheck + endpoint: + path: /api/v1/passenger/check-travel-document + method: POST +- name: VisaVerification + endpoint: + path: /api/v2/passenger/verified-visa + method: POST +- name: flight_update + endpoint: + path: /update/aidx/flights/update + method: POST + data_selector: IATA_AIDX_FlightLegRS + params: {} +- name: flight_update_put + endpoint: + path: /update/aidx/flights/update + method: PUT + data_selector: IATA_AIDX_FlightLegRS + params: {} +- name: flight_delete + endpoint: + path: /update/aidx/flights/update + method: DELETE + data_selector: IATA_AIDX_FlightLegRS + params: {} +- name: FlightLegNotification + endpoint: + path: /flights/update + method: POST +- name: UpdateFlight + endpoint: + path: /flights/update + method: PUT +- name: device + endpoint: + path: /gateaccess/v2/device/{deviceId} + method: GET +- name: opengate + endpoint: + path: /gateaccess/v2/opengate + method: POST +- name: closegate + endpoint: + path: /gateaccess/v2/closegate + method: POST +- name: acceptpassenger + endpoint: + path: /gateaccess/v2/acceptpassenger + method: POST +- name: rejectpassenger + endpoint: + path: /gateaccess/v2/rejectpassenger + method: POST +- name: IATA_AIDX_FlightLegNotifRQ + endpoint: + path: /flights/update + method: PUT + data_selector: IATA_AIDX_FlightLegNotifRQ +- name: IATA_AIDX_FlightLegRS + endpoint: + path: /flights/update + method: GET + data_selector: IATA_AIDX_FlightLegRS +- name: flight_leg_notif + endpoint: + path: /IATA_AIDX_FlightLegNotifRQ + method: DELETE + data_selector: IATA_AIDX_FlightLegNotifRQ + params: {} +- name: device + endpoint: + path: /print/v2/device/{deviceId} + method: GET +- name: boardingpass + endpoint: + path: /print/v2/boardingpass/{type} + method: POST +- name: boardingpass_aea + endpoint: + path: /print/v2/boardingpass/aea + method: POST +- name: baggagetag + endpoint: + path: /print/v2/baggagetag/{type} + method: POST +- name: baggagetag_aea + endpoint: + path: /print/v2/baggagetag/aea + method: POST +- name: report + endpoint: + path: /print/v2/report + method: POST +- name: flight_update + endpoint: + path: /update/aidx/flights/update + method: POST + data_selector: IATA_AIDX_FlightLegRS + params: {} +- name: device + endpoint: + path: /scan/v2/device/{deviceId} + method: GET +- name: start_scanning + endpoint: + path: /scan/v2/startscanning + method: POST +- name: stop_scanning + endpoint: + path: /scan/v2/stopscanning + method: POST +- name: FlightLeg + endpoint: + path: /IATA_AIDX_FlightLegNotifRQ + method: POST + data_selector: IATA_AIDX_FlightLegRS + params: {} +- name: IATA_AIDX_FlightLegNotifRQ + endpoint: + path: /flights/update + method: PUT + data_selector: IATA_AIDX_FlightLegNotifRQ +- name: IATA_AIDX_FlightLegRS + endpoint: + path: /flights/update + method: GET + data_selector: IATA_AIDX_FlightLegRS +- name: incident + endpoint: + path: /api/v1/incidents + method: GET + data_selector: records +- name: IATA_AIDX_FlightLegNotifRQ + endpoint: + path: /flights/update + method: DELETE + data_selector: IATA_AIDX_FlightLegNotifRQ + params: {} +- name: IATA_AIDX_FlightLegRS + endpoint: + path: /flights/update + method: GET + data_selector: IATA_AIDX_FlightLegRS + params: {} +- name: Customer Incident + endpoint: + path: /GenericAPI_INC/GenericApiInboundSyncPS#CreateCustomerIncident + method: POST +- name: Retrieve Incident Details + endpoint: + path: /GenericAPI_INC/GenericApiInboundSyncPS#ReadActivityLogIncident + method: POST +- name: Customer Incident + endpoint: + path: /GenericAPI_INC/GenericApiInboundSyncPS#CreateCustomerIncident + method: POST +- name: Retrieve Incident Details + endpoint: + path: /GenericAPI_INC/GenericApiInboundSyncPS#ReadActivityLogIncident + method: POST +- name: device + endpoint: + path: /scan/v2/device/{deviceId} + method: GET +- name: start_scanning + endpoint: + path: /scan/v2/startscanning + method: POST +- name: stop_scanning + endpoint: + path: /scan/v2/stopscanning + method: POST +- name: Customer Service Request + endpoint: + path: /GenericAPI_SR/GenericAPIInboundSRSyncPS#CreateCustomerSR + method: POST +- name: Retrieve Service Request Details + endpoint: + path: /GenericAPI_SR/GenericAPIInboundSRSyncPS#ReadActivityLogSR + method: POST +- name: incident + endpoint: + path: /service-management-incident-api + method: GET + data_selector: records +- name: SITA Smart Path Mobile + endpoint: + path: /contact/smart_path_mobile_product_team + method: GET +- name: SITA Smart Path Hub + endpoint: + path: /contact/smart_path_hub_product_team + method: GET +- name: Customer Incident + endpoint: + path: /GenericAPI_INC/GenericApiInboundSyncPS#CreateCustomerIncident + method: POST +- name: Retrieve Incident Details + endpoint: + path: /GenericAPI_INC/GenericApiInboundSyncPS#ReadActivityLogIncident + method: POST +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Customer Incident + endpoint: + path: /GenericAPI_INC/GenericApiInboundSyncPS#CreateCustomerIncident + method: POST +- name: Retrieve Incident Details + endpoint: + path: /GenericAPI_INC/GenericApiInboundSyncPS#ReadActivityLogIncident + method: POST +- name: Proactive PUSH payloads + endpoint: + path: /CREATE_INCIDENT_PUSH#SitatoCustomerPushCreateIncident + method: POST +- name: Bag Journey + endpoint: + path: /sita-products/sita-bag-journey + method: GET +- name: Service Request + endpoint: + path: /services/data/vXX.X/sobjects/ServiceRequest + method: GET + data_selector: records +- name: flight_connections + endpoint: + path: /connection/v1/routes/{origin}/{destination} + method: GET + data_selector: results +- name: Customer Service Request + endpoint: + path: /GenericAPI_SR/GenericAPIInboundSRSyncPS#CreateCustomerSR + method: POST +- name: Retrieve Service Request Details + endpoint: + path: /GenericAPI_SR/GenericAPIInboundSRSyncPS#ReadActivityLogSR + method: POST +- name: flight_connections + endpoint: + path: /v1/routes/{departure}/{arrival} + method: GET + data_selector: matchedRoutes + params: {} +- name: flight_routes + endpoint: + path: /routes/{origin}/{destination} + method: GET + data_selector: response + params: + timeRange: '1440' + preferredDate: '2022-05-10' + limit: '50' +- name: routes + endpoint: + path: /v1/routes/{departure}/{arrival} + method: GET +- name: flight_information + endpoint: + path: /v1/{departure}/{arrival}/{airline}/{flightNumber} + method: GET + data_selector: data + params: {} +- name: flight_schedule_by_departure_and_arrival + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport} + method: GET +- name: flight_schedule_by_airline + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport}/airline/{airline} + method: GET +- name: flight_schedule_by_airline_and_flight_number + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport}/airline/{airline}/flightNumber/{flightNumber} + method: GET +- name: flight_schedule_by_airport + endpoint: + path: /airport/{airportCode}/direction/{adi} + method: GET +- name: flight_schedule_by_airline_only + endpoint: + path: /airline/{airline} + method: GET +- name: flight_schedule_by_airline_and_flight_number_only + endpoint: + path: /airline/{airline}/flightNumber/{flightNumber} + method: GET +- name: flight_connections + endpoint: + path: /connection/v1/routes/{departure}/{arrival} + method: GET + data_selector: results +- name: flight_schedule_by_departure_and_arrival + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport} + method: GET + data_selector: schedules +- name: flight_schedule_by_departure_arrival_and_airline + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport}/airline/{airline} + method: GET + data_selector: schedules +- name: flight_schedule_by_departure_arrival_airline_and_flight_number + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport}/airline/{airline}/flightNumber/{flightNumber} + method: GET + data_selector: schedules +- name: flight_schedule_by_airport_and_adi + endpoint: + path: /airport/{airportCode}/direction/{adi} + method: GET + data_selector: schedules +- name: flight_schedule_by_airline + endpoint: + path: /airline/{airline} + method: GET + data_selector: schedules +- name: flight_schedule_by_airline_and_flight_number + endpoint: + path: /airline/{airline}/flightNumber/{flightNumber} + method: GET + data_selector: schedules +- name: flight_connections + endpoint: + path: /routes/{origin}/{destination} + method: GET + data_selector: response + params: + timeRange: '1440' + preferredDate: '2022-05-10' + limit: '50' +- name: schedule + endpoint: + path: /v1/route/departure/{departure}/arrival/{arrival} + method: GET + data_selector: schedules + params: + operationDateFrom: '2020-07-06' + operationDateTo: '2020-07-10' + groupMarketingCarriers: 'true' +- name: flight_information + endpoint: + path: /v1/{departure}/{arrival}/{airline}/{flightNumber} + method: GET + data_selector: data + params: {} +- name: schedule_by_departure_arrival_airline + endpoint: + path: /route/departure/{departure}/arrival/{arrival}/airline/{airline} + method: GET + data_selector: schedules + params: + operationDateFrom: '2020-07-06' + operationDateTo: '2020-07-10' + groupMarketingCarriers: 'true' +- name: schedule + endpoint: + path: /{version}/route/departure/{departure}/arrival/{arrival}/airline/{airline}/flightNumber/{flightNumber} + method: GET + data_selector: schedules + params: + operationDateFrom: yyyy-MM-dd + operationDateTo: yyyy-MM-dd + groupMarketingCarriers: 'false' +- name: schedule_by_airline + endpoint: + path: /schedule/v1/airline/{airline} + method: GET + data_selector: schedules + params: + operationDateFrom: '2020-07-06' + operationDateTo: '2020-07-10' + groupMarketingCarriers: 'true' +- name: route_departure_arrival + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport} + method: GET + data_selector: schedules +- name: route_departure_arrival_airline + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport}/airline/{airline} + method: GET + data_selector: schedules +- name: route_departure_arrival_airline_flightNumber + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport}/airline/{airline}/flightNumber/{flightNumber} + method: GET + data_selector: schedules +- name: airport_adi + endpoint: + path: /airport/{airportCode}/direction/{adi} + method: GET + data_selector: schedules +- name: airline + endpoint: + path: /airline/{airline} + method: GET + data_selector: schedules +- name: airline_flightNumber + endpoint: + path: /airline/{airline}/flightNumber/{flightNumber} + method: GET + data_selector: schedules +- name: schedule_by_airline_and_flight_number + endpoint: + path: /{version}/airline/{airline}/flightNumber/{flightNumber} + method: GET + data_selector: schedules + params: + operationDateFrom: yyyy-MM-dd + operationDateTo: yyyy-MM-dd + groupMarketingCarriers: 'false' +- name: flight_schedule + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport} + method: GET +- name: flight_schedule_by_airline + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport}/airline/{airline} + method: GET +- name: flight_schedule_by_airline_and_flight_number + endpoint: + path: /route/departure/{departureAirport}/arrival/{arrivalAirport}/airline/{airline}/flightNumber/{flightNumber} + method: GET +- name: flight_schedule_by_airport + endpoint: + path: /airport/{airportCode}/direction/{adi} + method: GET +- name: flight_schedule_by_airline_code + endpoint: + path: /airline/{airline} + method: GET +- name: flight_schedule_by_airline_and_flight_number_code + endpoint: + path: /airline/{airline}/flightNumber/{flightNumber} + method: GET +- name: schedule_by_airport_and_adi + endpoint: + path: /schedule/v1/airport/{airport}/direction/{adi} + method: GET + data_selector: schedules + params: + operationDateFrom: '2022-10-17' + operationDateTo: '2022-10-24' + groupMarketingCarriers: 'true' +- name: route_departure_arrival + endpoint: + path: /schedule/v1/route/departure/{departure}/arrival/{arrival} + method: GET + data_selector: records + params: + operationDateFrom: '2022-07-30' + operationDateTo: '2022-07-31' + groupMarketingCarriers: 'true' + pageSize: '-1' +- name: schedule_by_departure_and_arrival + endpoint: + path: /{version}/route/departure/{departure}/arrival/{arrival} + method: GET + data_selector: schedules + params: + operationDateFrom: yyyy-MM-dd + operationDateTo: yyyy-MM-dd + groupMarketingCarriers: 'false' +- name: flight_by_airline_and_flight_number + endpoint: + path: /flightinfo/v2/flights/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + data_selector: errors.error + params: {} +- name: schedule_by_departure_arrival_and_airline + endpoint: + path: /route/departure/{departure}/arrival/{arrival}/airline/{airline} + method: GET + data_selector: '' + params: + operationDateFrom: yyyy-MM-dd + operationDateTo: yyyy-MM-dd + groupMarketingCarriers: 'false' +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: schedule + endpoint: + path: /route/departure/{departure}/arrival/{arrival}/airline/{airline}/flightNumber/{flightNumber} + method: GET + data_selector: schedules + params: + operationDateFrom: '2020-07-06' + operationDateTo: '2020-07-10' + groupMarketingCarriers: 'true' +- name: schedule_by_airline + endpoint: + path: /airline/{airline} + method: GET + data_selector: schedules + params: + operationDateFrom: yyyy-MM-dd + operationDateTo: yyyy-MM-dd + groupMarketingCarriers: 'false' +- name: flight_by_airline_and_flight_number + endpoint: + path: /flifo/flightinfo/v2/flights/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + data_selector: flightRecords + params: + operationDate: '2020-01-22' +- name: flights_by_airport_airline_and_direction + endpoint: + path: /flightinfo/v2/flights/airport/{airportCode}/airline/{airlineCode}/direction/{direction} + method: GET + data_selector: flightRecords + params: + operationDate: current UTC date + pastWindow: '0' + futureWindow: '4' + searchByUTC: 'false' + showCargo: 'false' + groupMarketingCarriers: 'false' + departureOrArrivalAirport: '' + view: local +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: schedule_by_airline_and_flight_number + endpoint: + path: /v1/airline/{airline}/flightNumber/{flightNumber} + method: GET + data_selector: schedules + params: + operationDateFrom: '2020-07-06' + operationDateTo: '2020-07-10' + groupMarketingCarriers: 'true' +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flights + endpoint: + path: /flifo/flightinfo/v2/flights/airport/{airportCode}/direction/{direction} + method: GET + data_selector: flightRecords + params: + operationDate: '2020-01-22T12:00:00' +- name: schedule_by_airport_and_adi + endpoint: + path: /v1/airport/{airport}/direction/{adi} + method: GET + data_selector: schedules + params: + operationDateFrom: yyyy-MM-dd + operationDateTo: yyyy-MM-dd + groupMarketingCarriers: 'false' +- name: error_response + endpoint: + path: /v1/route/departure/{departure}/arrival/{arrival} + method: GET + data_selector: errors.error + params: + operationDateFrom: yyyy-MM-dd + operationDateTo: yyyy-MM-dd + groupMarketingCarriers: 'true' + pageSize: '-1' +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flights_by_airport_and_direction + endpoint: + path: /flights/airport/{airport}/direction/{direction} + method: GET + params: + operationDate: '2020-01-22T12:00:00' +- name: flight_updates + endpoint: + path: /flightinfo/v2/flights/updates/airport/{airportCode}/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + params: {} +- name: flight_by_airline_and_flight_number + endpoint: + path: /flifo/flightinfo/v2/flights/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + data_selector: records + params: + operationDate: current UTC date + searchByUTC: 'false' + showCargo: 'false' +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flight_updates + endpoint: + path: /flifo/flightinfo/v2/flights/updates/airport/{airportCode}/airline/{airlineCode} + method: GET + data_selector: flightRecords + params: + from: 2020-01-01T12:00:00-0000 + to: 2020-01-01T12:05:00-0000 + includeUpdates: 'false' + groupMarketingCarriers: 'false' +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords +- name: flights_by_airline_and_flight_number + endpoint: + path: /flifo/flightinfo/v2/flights/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + data_selector: flightRecords + params: + operationDate: '2020-01-22' +- name: flights_by_airport_airline_and_direction + endpoint: + path: /flifo/flightinfo/v2/flights/airport/{airportCode}/airline/{airlineCode}/direction/{direction} + method: GET + data_selector: flightRecords + params: + operationDate: current UTC date + pastWindow: 0 + futureWindow: 4 + searchByUTC: false + showCargo: false + groupMarketingCarriers: false + view: local +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flight_updates + endpoint: + path: /flifo/flightinfo/v2/flights/updates/airport/AMS/airline/KL + method: GET + params: + from: '2020-01-22T12:00:00.000Z' + to: '2020-01-22T13:00:00.000Z' +- name: flight_records + endpoint: + path: /flight_records + method: GET + data_selector: flightRecords +- name: flights + endpoint: + path: /flifo/flightinfo/v2/flights/airport/{airportCode}/direction/{direction} + method: GET + data_selector: flightRecords +- name: flight_updates_by_airport + endpoint: + path: /flightinfo/v2/flights/updates/airport/{airportCode} + method: GET + data_selector: '' + params: + from: '' + to: '' + includeUpdates: '' + groupMarketingCarriers: 'false' + groupRecords: '' + verbose: '' + showCargo: 'false' + arrivalDeparture: '' +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flights_by_airport_and_direction + endpoint: + path: /flifo/flightinfo/v2/flights/airport/{airport}/direction/{direction} + method: GET + data_selector: records + params: + operationDate: '2020-01-22T12:00:00' +- name: flight_updates + endpoint: + path: /flifo/flightinfo/v2/flights/updates/airport/AMS + method: GET + params: + from: '2020-01-22T12:00:00.000Z' + to: '2020-01-22T13:00:00.000Z' +- name: flight_records + endpoint: + path: /flights + method: GET + data_selector: flightRecords +- name: flight_updates + endpoint: + path: /flightinfo/v2/flights/updates/airport/{airportCode}/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + params: + operationDate: yyyy-MM-dd + from: 2020-01-01T12:00:00-0000 + to: 2020-01-01T12:05:00-0000 + includeUpdates: '' + groupMarketingCarriers: 'false' + groupRecords: '' + verbose: '' + showCargo: 'false' +- name: flight_updates + endpoint: + path: /getFlightUpdates + method: GET + params: + from: current UTC date/time - 2 minutes + to: current UTC date/time - 1 minutes + includeUpdates: '' + groupMarketingCarriers: 'false' + groupRecords: '' + verbose: '' + showCargo: 'false' +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flights_updates + endpoint: + path: /flifo/flightinfo/v2/flights/updates + method: GET + params: + from: '2020-01-22T12:00:00.000Z' + to: '2020-01-22T13:00:00.000Z' +- name: flight_updates + endpoint: + path: /flightinfo/v2/flights/updates/airport/{airportCode}/airline/{airlineCode} + method: GET + data_selector: flightRecords + params: + from: 2020-01-01T12:00:00-0000 + to: 2020-01-01T12:05:00-0000 + includeUpdates: 'false' + groupMarketingCarriers: 'false' +- name: flight_records + endpoint: + path: /flight/records + method: GET + data_selector: flightRecords +- name: flights + endpoint: + path: /flifo/flightinfo/v2/flights/airport/JFK/airline/B6/direction/D + method: GET + data_selector: flightRecords +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flight_details + endpoint: + path: /aci-v1/flightDetails/{airlineCode}/{flightNumber}/{operationDate}/{departureAirportCode}/{arrivalAirportCode} + method: GET +- name: flights_by_airport_and_direction + endpoint: + path: /aci-v1/flight/{airportCode}/{direction} + method: GET +- name: flight_updates + endpoint: + path: /flifo/flightinfo/v2/flights/updates/airport/AMS/airline/KL + method: GET + params: + from: '2020-01-22T12:00:00.000Z' + to: '2020-01-22T13:00:00.000Z' +- name: flight_status + endpoint: + path: /flightstatus + method: GET + data_selector: '[]' + params: {} +- name: flight_records + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords +- name: flight_updates + endpoint: + path: /flightinfo/v2/flights/updates/airport/{airportCode} + method: GET + data_selector: updates + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords +- name: all_flights_search_for_airport + endpoint: + path: /flightinfo/v2/flights/airport/MUC/direction/D + method: GET + data_selector: records + params: {} +- name: all_flights_search_airport_airline_combination + endpoint: + path: /flightinfo/v2/flights/airport/MUC/airline/LH/direction/D + method: GET + data_selector: records + params: {} +- name: individual_flight_search_from_airport + endpoint: + path: /flightinfo/v2/flights/airport/MUC/airline/LH/flightNumber/2038/direction/D + method: GET + data_selector: records + params: {} +- name: individual_flight_search + endpoint: + path: /flightinfo/v2/flights/airline/LH/flightNumber/2038 + method: GET + data_selector: records + params: {} +- name: all_flights_search_acris + endpoint: + path: /aci-v1/flight/MUC/departure + method: GET + data_selector: records + params: {} +- name: individual_flight_search_acris + endpoint: + path: /aci-v1/flightDetails/BA/15/2020-03-04/LHR/SIN + method: GET + data_selector: records + params: {} +- name: flight_status + endpoint: + path: /flifo/flightinfo/v2/flights/airline/AC/flightNumber/43 + method: GET + data_selector: flightRecords + params: + operationDate: '2022-05-11' + view: full +- name: flight_updates + endpoint: + path: /flifo/flightinfo/v2/flights/updates/airport/AMS + method: GET + data_selector: flights + params: + from: '2020-01-22T12:00:00.000Z' + to: '2020-01-22T13:00:00.000Z' +- name: flight_records + endpoint: + path: /flight/records + method: GET + data_selector: flightRecords +- name: flight_updates + endpoint: + path: /getFlightUpdates + method: GET + params: + from: 2020-01-01T12:00:00-0000 + to: 2020-01-01T12:05:00-0000 + includeUpdates: null + groupMarketingCarriers: 'false' + groupRecords: null + verbose: null + showCargo: 'false' +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords +- name: flight_updates + endpoint: + path: /flifo/flightinfo/v2/notifications + method: POST + data_selector: '' + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords +- name: unsubscribe_flight_updates + endpoint: + path: /flifo/flightinfo/v2/notifications + method: DELETE + data_selector: subscribedForUpdates + params: {} +- name: flight_updates + endpoint: + path: /flifo/flightinfo/v2/flights/updates + method: GET + params: + from: '2020-01-22T12:00:00.000Z' + to: '2020-01-22T13:00:00.000Z' +- name: flight_records + endpoint: + path: /flight_records + method: GET + data_selector: flightRecords +- name: flight_status + endpoint: + path: /flights/status + method: GET + data_selector: flights + params: {} +- name: flights + endpoint: + path: /flifo/flightinfo/v2/flights/airport/JFK/airline/B6/direction/D + method: GET + data_selector: flightRecords + params: + view: local +- name: flight_status + endpoint: + path: /flight/status + method: GET + data_selector: flightRecord +- name: flight_details + endpoint: + path: /aci-v1/flightDetails/{airlineCode}/{flightNumber}/{operationDate}/{departureAirportCode}/{arrivalAirportCode} + method: GET + data_selector: records +- name: flights_by_airport + endpoint: + path: /aci-v1/flight/{airportCode}/{direction} + method: GET + data_selector: records +- name: Get Flight by Airline and Flight Number + endpoint: + path: /v2/flights/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + data_selector: response + params: + operationDate: current UTC date + searchByUTC: 'false' + showCargo: 'false' +- name: flight_status + endpoint: + path: /flight-status + method: GET + data_selector: '[*]' + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: all_departures_airport + endpoint: + path: /flightinfo/v2/flights/airport/MUC/direction/D + method: GET + data_selector: records + params: {} +- name: all_departures_airport_airline_combination + endpoint: + path: /flightinfo/v2/flights/airport/MUC/airline/LH/direction/D + method: GET + data_selector: records + params: {} +- name: individual_flight_search_airport + endpoint: + path: /flightinfo/v2/flights/airport/MUC/airline/LH/flightNumber/2038/direction/D + method: GET + data_selector: records + params: {} +- name: all_flights_search_acris + endpoint: + path: /aci-v1/flight/MUC/departure + method: GET + data_selector: records + params: {} +- name: individual_flight_search_acris + endpoint: + path: /aci-v1/flightDetails/BA/15/2020-03-04/LHR/SIN + method: GET + data_selector: records + params: {} +- name: flights_by_airline_and_flight_number + endpoint: + path: /flights/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + data_selector: flightRecords +- name: flights_by_airport_airline_and_direction + endpoint: + path: /flights/airport/{airportCode}/airline/{airlineCode}/direction/{direction} + method: GET + data_selector: flightRecords +- name: flight_info + endpoint: + path: /flifo/flightinfo/v2/flights/airline/AC/flightNumber/43 + method: GET + data_selector: flightRecords + params: + operationDate: '2022-05-11' + view: full +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flight_updates + endpoint: + path: /flifo/flightinfo/v2/notifications + method: POST + data_selector: subscribedForUpdates + params: {} +- name: flights + endpoint: + path: /flights/airport/{airportCode}/direction/{direction} + method: GET + data_selector: flightRecords + params: + operationDate: yyyy-MM-dd + searchByUTC: 'false' + showCargo: 'false' + departureOrArrivalAirport: '' + view: local +- name: unsubscribe_flight_updates + endpoint: + path: /flifo/flightinfo/v2/notifications + method: DELETE + data_selector: subscribedForUpdates + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flight_status_notification + endpoint: + path: /flights/status/notification + method: POST + data_selector: request +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flight_status_update + endpoint: + path: /flights/status + method: POST + data_selector: updates +- name: flight_status + endpoint: + path: /flight/status + method: GET + data_selector: flightRecord +- name: flights_by_airport_and_direction + endpoint: + path: /flights/airport/{airportCode}/direction/{direction} + method: GET + data_selector: flightRecords + params: + operationDate: '2021-04-01' +- name: flight_updates_by_airport_airline_flight_number + endpoint: + path: /flights/updates/airport/{airportCode}/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + data_selector: flightRecords +- name: flight_updates_by_airport_and_airline + endpoint: + path: /flights/updates/airport/{airportCode}/airline/{airlineCode} + method: GET + data_selector: flightRecords +- name: flight_updates_by_airport_and_airline + endpoint: + path: /flights/updates/airport/{airportCode}/airline/{airlineCode} + method: GET + data_selector: flightRecords + params: + from: '2021-04-01T03:00:00.000Z' + to: '2021-04-01T04:00:00.000Z' +- name: flight_updates_by_airport + endpoint: + path: /flights/updates/airport/{airportCode} + method: GET + data_selector: flightRecords + params: + from: '2021-04-01T03:00:00.000Z' + to: '2021-04-01T04:00:00.000Z' +- name: flights + endpoint: + path: /v2/flights/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + params: + operationDate: yyyy-MM-dd + searchByUTC: 'false' + showCargo: 'false' +- name: flight_records + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flight_updates + endpoint: + path: /historical/v2/flights/updates/airport/{airport} + method: GET + data_selector: flightRecords + params: {} +- name: flight_details + endpoint: + path: /historical/v2/flights/airport/{airport}/direction/{direction} + method: GET + data_selector: flightRecords + params: {} +- name: flights_by_airline_and_flight_number + endpoint: + path: /flights/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + data_selector: flightRecords + params: + operationDate: '2021-04-01' +- name: flights_by_airport_airline_and_direction + endpoint: + path: /flights/airport/{airportCode}/airline/{airlineCode}/direction/{direction} + method: GET + data_selector: flightRecords + params: + operationDate: current UTC date + searchByUTC: 'false' +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flights + endpoint: + path: /flights/airport/{airportCode}/direction/{direction} + method: GET + data_selector: flightRecords + params: + operationDate: '2021-04-01' +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flights_by_airport + endpoint: + path: /v1/{airportCode}/{arrivalDeparture} + method: GET + data_selector: flightRecords +- name: flightRecords + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords + params: {} +- name: flight_updates_by_airport_and_direction + endpoint: + path: /flights/airport/{airportCode}/direction/{direction} + method: GET + data_selector: flightRecords +- name: flight_updates_by_airport_airline_flight_number + endpoint: + path: /flights/updates/airport/{airportCode}/airline/{airlineCode}/flightNumber/{flightNumber} + method: GET + data_selector: flightRecords +- name: flight_updates_by_airport_and_airline + endpoint: + path: /flights/updates/airport/{airportCode}/airline/{airlineCode} + method: GET + data_selector: flightRecords +- name: flight_updates_by_airport_and_airline + endpoint: + path: /v2/flights/updates/airport/{airportCode}/airline/{airlineCode} + method: GET + data_selector: flightRecords + params: + from: '2021-04-01T03:00:00.000Z' + to: '2021-04-01T04:00:00.000Z' +- name: flight_updates_by_airport + endpoint: + path: /v2/flights/updates/airport/{airportCode} + method: GET + data_selector: flightRecords + params: + from: '2021-04-01T03:00:00.000Z' + to: '2021-04-01T04:00:00.000Z' +- name: flight_records + endpoint: + path: /flightRecords + method: GET + data_selector: flightRecords +- name: airlines + endpoint: + path: /data/v1/airlines + method: GET + data_selector: airlines +- name: airline_by_code + endpoint: + path: /data/v1/airlines/{airlineCode} + method: GET + data_selector: airlines +- name: flight_updates + endpoint: + path: /historical/v2/flights/updates/airport/{airport} + method: GET + data_selector: flightRecords + params: {} +- name: flight_details + endpoint: + path: /historical/v2/flights/airport/{airport}/direction/{direction} + method: GET + data_selector: flightRecords + params: {} +- name: airports_match + endpoint: + path: /airports/match/{airportNamePartial} + method: GET + data_selector: airports +- name: airport_by_code + endpoint: + path: /airports/{airportCode} + method: GET + data_selector: airports +- name: all_airports + endpoint: + path: /airports + method: GET + data_selector: airports +- name: distance_between_airports + endpoint: + path: /airports/distance/{airportCode1}/{airportCode2} + method: GET + data_selector: success +- name: nearest_airport + endpoint: + path: /airports/nearest/{latitude}/{longitude} + method: GET + data_selector: airports +- name: same_country_check + endpoint: + path: /airports/samecountry/{airportCode1}/{airportCode2} + method: GET + data_selector: success +- name: current_weather + endpoint: + path: /weather/v2/current/{location} + method: GET + data_selector: current_conditions +- name: weather_forecast + endpoint: + path: /weather/v2/forecast/{location} + method: GET + data_selector: forecast_conditions +- name: combined_weather + endpoint: + path: /weather/v2/combined/{location} + method: GET + data_selector: combined_conditions +- name: flights_by_airport + endpoint: + path: /v1/{airportCode}/{arrivalDeparture} + method: GET + data_selector: flightRecords +- name: current_weather + endpoint: + path: /v2/current/{location} + method: GET + data_selector: currentWeather + params: {} +- name: forecast_weather + endpoint: + path: /v2/forecast/{location} + method: GET + data_selector: weatherForecast + params: {} +- name: combined_weather + endpoint: + path: /v2/combined/{location} + method: GET + data_selector: currentWeather + params: {} +- name: Flight Duration Service + endpoint: + path: /v2/{originAirport}/{destinationAirport} + method: GET +- name: Flight Duration Service by Airline + endpoint: + path: /v2/{originAirport}/{destinationAirport}/{airlineCode} + method: GET +- name: airlines + endpoint: + path: /v1/airlines + method: GET + data_selector: airlines +- name: airline_by_code + endpoint: + path: /v1/airlines/{airlineCode} + method: GET + data_selector: airlines +- name: airline_match + endpoint: + path: /v1/airlines/match/{searchTerm} + method: GET + data_selector: airlines +- name: airports_match + endpoint: + path: /data/v3/airports/match/{airportNamePartial} + method: GET + data_selector: airports +- name: airport_by_code + endpoint: + path: /data/v3/airports/{airportCode} + method: GET + data_selector: airports +- name: all_airports + endpoint: + path: /data/v3/airports + method: GET + data_selector: airports +- name: distance_between_airports + endpoint: + path: /data/v3/airports/distance/{airportCode1}/{airportCode2} + method: GET + data_selector: distance +- name: nearest_airport + endpoint: + path: /data/v3/airports/nearest/{latitude}/{longitude} + method: GET + data_selector: airports +- name: same_country_check + endpoint: + path: /data/v3/airports/samecountry/{airportCode1}/{airportCode2} + method: GET + data_selector: sameCountry +- name: current_weather + endpoint: + path: /weather/v2/current/{location} + method: GET +- name: weather_forecast + endpoint: + path: /weather/v2/forecast/{location} + method: GET +- name: combined_weather + endpoint: + path: /weather/v2/combined/{location} + method: GET +- name: current_weather + endpoint: + path: /v2/current/{location} + method: GET + data_selector: currentWeather +- name: forecast_weather + endpoint: + path: /v2/forecast/{location} + method: GET + data_selector: weatherForecast +- name: combined_weather + endpoint: + path: /v2/combined/{location} + method: GET + data_selector: currentWeather +- name: flight_duration + endpoint: + path: /v2/{originAirport}/{destinationAirport} + method: GET +- name: flight_duration_by_airline + endpoint: + path: /v2/{originAirport}/{destinationAirport}/{airlineCode} + method: GET +notes: +- OAuth tokens have an expiry of one hour after retrieval. +- Users are authenticated using their API key. +- OAuth tokens expire after one hour. +- BagJourney API is only available to customers that have an existing association + with an airline. +- Successful response includes a Success element. +- Requires XML formatted request body. +- OAuth tokens have an expiry of one hour after being retrieved. +- For information related to registering for and accessing an api key, please refer + to the document linked in the overview. +- Requires setup of connected app in API +- Requires setup of connected app for authentication. +- API allows customers to CREATE new incident records. +- Real-time updates regarding incident records are provided. +- To request access to Service Management APIs, you must first register for a developer.aero + account. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Access to Service Management APIs can be requested once you have completed account + registration and authentication on developer.aero. +- API allows customers to CREATE, READ and UPDATE Service Request records. +- Users are authenticated using their OAuth token. +- All incoming requests will be REST over HTTPS. +- OAuth tokens expire after one hour +- OAuth tokens expire after one hour and need to be refreshed. +- Valid IATA/ICAO airport codes must be provided for departure and arrival. +- All incoming requests are subject to a rate limiting restriction. +- If operationDateTo is not defined, a 3 days window will be used based on operationDateFrom. +- Continuation token indicates more results are available. +- If operationDateTo is not defined, a 3 days window will be used based on operationDateFrom + or the current UTC date. +- Valid IATA/ICAO departure and arrival Airport Codes are required. +- The API key used in the REST call will be included in the response headers. +- Valid formats for operationDateFrom and operationDateTo are 'yyyy-MM-dd'. +- Default value for operationDate is current UTC date +- Default value for pastWindow is 0 +- Default value for futureWindow is 4 +- Default value for searchByUTC is false +- Default value for showCargo is false +- Default value for groupMarketingCarriers is false +- Default value for view is local +- If the operation date is not provided, the search is based on the current UTC date/time. +- The API provides flight status updates. +- Payload elements are filtered based on permissions associated with the 'x-apikey' + used in the request. +- Matched records may vary based on the input criteria. +- Flight status data includes information such as operating airline, aircraft type, + flight number, and status. +- Includes updates for flight status. +- Data includes details about operating and marketing carriers. +- Matched records can vary based on the query parameters provided. +- OAuth tokens expire one hour after retrieval. +- The body of the DELETE request must match exactly with the corresponding POST message + body used to create the subscription. +- The 'view' parameter can have the value 'local' or 'full' (default value is 'local'). +- Group updates and marketing carriers features available. +- OAuth tokens have an expiry of one hour after they are retrieved. +- Payload elements are filtered based on permissions associated with the 'X-apiKey' + used in the request. +- If operation date is not provided, search is based on the current UTC date/time. +- Default value of 'view' parameter is 'local'. +- Uses view=local or view=full depending on user subscription +- Fields not available will be omitted from the payload +- User requested 'view=full' which returns both departure and arrival details. +- Flight diversions are unforeseen events which can be caused by factors such as Aircraft + emergency, Passenger emergency, Mechanical failure, Poor weather conditions. +- The date range defined by the 'from' and 'to' query parameters may not exceed 60 + minutes. +- OAuth tokens have an expiry of one hour after retrieval +- The 'view' query parameter can have the value 'local' or 'full' (default value is + 'local'). +- If operation date is not provided, the search is based on the current UTC date/time. +- User can adjust the search window by providing values for the pastWindow/futureWindow. +- If the operation date is not provided the search is based on the current UTC date/time. +- The user can adjust the search window by providing values for the pastWindow/futureWindow + in their request. +- OAuth tokens have an expiry of one hour after the token has been retrieved. +- Authorization header that contains the access token. +- Flight records contain detailed information including departure and arrival slots, + events, and statistics. +- OAuth tokens expire one hour after retrieval. Re-issue requests are needed for new + tokens. +- Rate limiting is applied to all incoming requests. +- Certain response payload elements will be filtered based on permissions associated + with the token +- Authorization header contains the access token. +- OAuth tokens have an expiry of one hour. +errors: +- 'Rate limit exceeded: Check X-RateLimit headers for details.' +- '2020: Airport not found' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- Unexpected EOF at target +- 'Unexpected EOF at target: TARGET_READ_UNEXPECTED_EOF' +- '1007: Service Exception' +- '200 OK: Success indicator' +- 'E001: Apikey Validation Failed' +- 'E004: Schema Validation Exception' +- 'E005: Missing Mandatory fields' +- 'E006: Invalid Mandatory fields' +- 'E007: Ticket Not Found' +- 'E008: Ticket Not Found' +- 'E009: Ticket Not Found' +- 'E010: Ticket Not Found' +- 'E011: Ticket Not Found' +- 'E012: Invalid Status' +- 'E013: Future fromDate cannot be validated' +- 'E014: Future toDate cannot be validated' +- 'E015: FromDate Is Greater Than ToDate' +- 'E016: Date Range Should Not Exceed 12 Months' +- 'E017: FromDate - Invalid date format. Please enter the date in the format YYYY + - MM - DD' +- 'E018: Incident can not be created - customer/supplier number already exist' +- 'E001: Apikey Validation Failed' +- 'E019: Module Does not Exist' +- 'E017: FromDate - Invalid date format' +- 'E021: Affected End User / User Does Not Exists' +- 'E022: toDate - Invalid date format' +- 'E025: Future FromTimeStamps cannot be validated' +- 'E026: Future ToTimeStamps cannot be validated' +- 'E027: FromTimeStamps Is Greater Than ToTimeStamps' +- 'E028: No Record found for the given timestamps range' +- 'E029: Cannot Update The Incident With Attachment -Incident does not belongs to + User' +- 'E030: Ticket Not Found - Read Attachment' +- 'E031: Attachment Not Found' +- 'E032: Invalid Request - Attachment Not Exists' +- 'E033: Attachment Not Found - Not Belongs to the company' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'E029: Cannot Update The Incident With Attachment - Incident does not belong to + User - Internal(getSysID)' +- 'E035: DowntimeEndTime - Invalid date format. Please enter the date in the format + YYYY - MM - DD' +- 'E036: Please Provide Valid Format For FromTimeStamps As ''YYYY-MM-DD'',''HH:MM:SS''' +- 'E037: Please Provide Valid Format For ToTimeStamps As ''YYYY-MM-DD'',''HH:MM:SS''' +- 'E038: Please Provide Valid Format For FromTimeStamps And ToTimeStamps As ''YYYY-MM-DD'',''HH:MM:SS''' +- 'E043: Affected End User and E-Mail id can not different' +- 'E044: Cannot Resolve - Ticket Not in Work In Progress' +- 'E045: Assignment Group Is Not Valid - HR/Fin/Isdu' +- 'E046: DowntimeEndTime - Invalid date format. Please enter the date in the format + YYYY - MM - DD' +- '1001: Airport not found' +- 'Rate limit exceeded: Check the rate limit headers in the response' +- 'Rate limit exceeded: Check X-RateLimit-Remaining header.' +- '401 Unauthorized: Ensure valid Authorization token.' +- code: 2028 + description: Invalid page size. + invalidParam: pageSize + invalidValue: Please contact API Support +- '400 Bad Request: Check request parameters and headers' +- '401 Unauthorized: Ensure valid API key and token' +- '429 Too Many Requests: Rate limit exceeded' +- '2028: Invalid page size.' +- '400 Bad Request: Check your request parameters or headers.' +- '401 Unauthorized: Ensure your API key is correct and has not expired.' +- 'Rate limiting: Check the response headers for rate limit information.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity.' +- '401 Unauthorized: Recheck API key validity.' +- '400 Bad Request: Error Description' +- '9999: API Internal Error Code' +- '400 Bad Request: Check request format and required fields.' +- '401 Unauthorized: Verify API key and authorization header.' +- 'Rate limit exceeded: Reduce request frequency.' +- '400 Bad Request: Check request parameters and format.' +- '401 Unauthorized: Verify OAuth token and API key.' +- 'Rate Limit Exceeded: Reduce request frequency.' +- '401 Unauthorized: Invalid token' +- '400 Bad Request: Check query parameters or request format.' +- '400 Bad Request: Airport not found.' +- '429 Too Many Requests: Rate limit exceeded.' +- '400 Bad Request: Error description, code, and invalid parameter may be included + in the response.' +- Rate limiting restrictions are applied to all incoming requests +- '400 Bad Request: Check your request parameters and syntax.' +- '404 Not Found: Ensure the airport code or path is correct.' +- '401 Unauthorized: Verify your access token.' +- '2020: Airport not found.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://flifo.api.aero + headers: + Content-Type: application/xml + Accept: application/xml +source_metadata: null diff --git a/fordefi/fordefi-docs.md b/fordefi/fordefi-docs.md new file mode 100644 index 00000000..71f4e759 --- /dev/null +++ b/fordefi/fordefi-docs.md @@ -0,0 +1,149 @@ +In this guide, we'll set up a complete Fordefi data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def fordefi_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.fordefi.com/api/v1/addressbook/contacts", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "proposals", "batch" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='fordefi_pipeline', + destination='duckdb', + dataset_name='fordefi_data', + ) + # Load the data + load_info = pipeline.run(fordefi_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from fordefi’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Transactions**: Endpoints related to transaction management, including creating, exporting, and predicting transactions. +- **Vaults**: Endpoints for managing vaults, including CRUD operations and exporting vault data. +- **Assets**: Endpoints for handling asset information, including refreshing owned assets, fetching asset prices, and retrieving details about owned assets. +- **Vault Groups**: Endpoints specifically for managing groups of vaults. +- **Users**: Endpoint for user-related operations. + +You will then debug the Fordefi pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Fordefi support. + ```shell + dlt init dlthub:fordefi duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Fordefi API, as specified in @fordefi-docs.yaml + Start with endpoints proposals and batch and skip incremental loading for now. + Place the code in fordefi_pipeline.py and name the pipeline fordefi_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python fordefi_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The snippets do not provide any specific auth information such as keys, tokens, client IDs, client secrets, headers, or URLs. + + To get the appropriate API keys, please visit the original source at https://docs.fordefi.com/developers/api-overview. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python fordefi_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline fordefi load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset fordefi_data + The duckdb destination used duckdb:/fordefi.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline fordefi_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("fordefi_pipeline").dataset() + # get "proposals" table as Pandas frame + data."proposals".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/fordefi/fordefi-docs.yaml b/fordefi/fordefi-docs.yaml new file mode 100644 index 00000000..047f0d3a --- /dev/null +++ b/fordefi/fordefi-docs.yaml @@ -0,0 +1,73 @@ +client: + auth: The snippets do not provide any specific auth information such as keys, tokens, + client IDs, client secrets, headers, or URLs. + most_recurring_base_url: https://api.fordefi.com + paginator: Pagination is required, where 50 items are returned in a list, and the + `limit` query parameter can be used to increase the number of items returned. +endpoints: +- 'endpoints source: https://docs.fordefi.com/api/latest/openapi': [] +- 'endpoints source: https://docs.fordefi.com/api/latest/openapi.md': [] +- 'endpoints source: https://docs.fordefi.com/developers/monitor-transactions': + - /api/v1/transactions/{transaction_id + - http://127.0.0.1:4040 + - http://localhost:8080 +- 'endpoints source: https://docs.fordefi.com/developers/authentication': [] +- 'endpoints source: https://docs.fordefi.com/developers/vaults/get-balances': + - /api/v1/vaults/{id +- 'endpoints source: https://docs.fordefi.com/developers/add-token': + - /api/v1/assets/refresh-owned-assets + - /api/v1/assets/asset-infos +- 'endpoints source: https://docs.fordefi.com/developers/authentication.md': + - https://${gatewayHost + - https://{gateway_host +- 'endpoints source: https://docs.fordefi.com/api/openapi/vaults': + - /api/v1/vaults + - /api/v1/vaults/{id + - /api/v1/vaults/addresses/{id + - /api/v1/vaults/export +- 'endpoints source: https://docs.fordefi.com/api/openapi/vault-groups': + - /api/v1/vault-groups +- 'endpoints source: https://docs.fordefi.com/api/openapi/assets': + - /api/v1/assets + - /api/v1/assets/owned-assets + - /api/v1/assets/prices + - /api/v1/assets/owned-assets/{id + - /api/v1/assets/asset-infos +- 'endpoints source: https://docs.fordefi.com/api/openapi/transactions': + - /api/v1/transactions/create-and-wait + - /api/v1/transactions/export + - /api/v1/transactions/predict + - /api/v1/transactions + - /api/v1/transactions/{id +- 'endpoints source: https://docs.fordefi.com/api/openapi/users': + - /api/v1/users + - /api/v1/users/{id +- 'endpoints source: https://docs.fordefi.com/api/openapi/user-groups': + - /api/v1/user-groups + - /api/v1/user-groups/{id +- 'endpoints source: https://docs.fordefi.com/api/openapi/end-users': + - /api/v1/end-users + - /api/v1/end-users/{id + - /api/v1/end-users/current +- 'endpoints source: https://docs.fordefi.com/api/openapi/authorization-tokens': + - /api/v1/authorization-tokens + - /api/v1/authorization-tokens/{id +- 'endpoints source: https://docs.fordefi.com/api/openapi/blockchains': + - /api/v1/blockchains + - /api/v1/blockchains/suggested-fees +- 'endpoints source: https://docs.fordefi.com/api/openapi/webhooks': + - /api/v1/webhooks/test + - /api/v1/webhooks/trigger/transaction/{id +- 'endpoints source: https://docs.fordefi.com/api/openapi/address-book': + - /api/v1/addressbook/contacts/batch + - /api/v1/addressbook/contacts/proposals/{proposal_id + - /api/v1/addressbook/contacts/proposals/{proposal\_id + - /api/v1/addressbook/contacts/{id + - /api/v1/addressbook/contacts +- 'endpoints source: https://docs.fordefi.com/api/openapi/audit-log': + - /api/v1/audit-log + - /api/v1/audit-log/export +- 'endpoints source: https://docs.fordefi.com/api/openapi/exports': + - /api/v1/exports/{id +- 'endpoints source: https://web3provider-docs.fordefi.com/index.html': [] +- 'endpoints source: https://web3provider-docs.fordefi.com/interfaces/FordefiProviderConfig.html': [] diff --git a/freecodecamp/freecodecamp-docs.md b/freecodecamp/freecodecamp-docs.md new file mode 100644 index 00000000..3fdf31a2 --- /dev/null +++ b/freecodecamp/freecodecamp-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Docker Hub data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def docker_hub_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://hub.docker.com/api/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + os,,wc,,api + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='docker_hub_migrations_pipeline', + destination='duckdb', + dataset_name='docker_hub_migrations_data', + ) + # Load the data + load_info = pipeline.run(docker_hub_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from docker_hub_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- General: Provides access to various resources and operations. +- Images: Manage container images on the Docker Hub. +- Containers: Operations related to Docker containers. + +You will then debug the Docker Hub pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Docker Hub support. + ```shell + dlt init dlthub:docker_hub_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Docker Hub API, as specified in @docker_hub_migrations-docs.yaml + Start with endpoints os and and skip incremental loading for now. + Place the code in docker_hub_migrations_pipeline.py and name the pipeline docker_hub_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python docker_hub_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The API utilizes an API key for authentication, which is essential for accessing protected endpoints. + + To get the appropriate API keys, please visit the original source at https://www.docker.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python docker_hub_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline docker_hub_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset docker_hub_migrations_data + The duckdb destination used duckdb:/docker_hub_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline docker_hub_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("docker_hub_migrations_pipeline").dataset() + # get table as Pandas frame + data..df().head() + ``` + +## Running into errors? + +When using the Docker Hub API, be mindful of request limits to avoid throttling. Additionally, authentication tokens may expire, requiring periodic renewal. Ensure that the necessary permissions are set for your API key to access certain endpoints. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/freecodecamp/freecodecamp-docs.yaml b/freecodecamp/freecodecamp-docs.yaml new file mode 100644 index 00000000..ef7cb7e9 --- /dev/null +++ b/freecodecamp/freecodecamp-docs.yaml @@ -0,0 +1,12906 @@ +resources: +- name: pets + endpoint: + path: /pets + method: GET + data_selector: records + params: {} +- name: pets + endpoint: + path: /pets + method: GET + data_selector: pets +- name: pet_detail + endpoint: + path: /pets/{id} + method: GET + data_selector: pet +- name: edit_pet + endpoint: + path: /pets/{id} + method: PUT + data_selector: pet +- name: add_pet + endpoint: + path: /pets + method: POST + data_selector: pet +- name: delete_pet + endpoint: + path: /pets/{id} + method: DELETE + data_selector: pet +- name: foundational_csharp + endpoint: + path: /learn/foundational-c-sharp-with-microsoft + method: GET + data_selector: courses +- name: Archived Coursework + endpoint: + path: /archived-coursework + method: GET + data_selector: coursework + params: {} +- name: pets + endpoint: + path: /pets + method: GET + data_selector: resp +- name: pets + endpoint: + path: /pets + method: GET + data_selector: records + params: {} +- name: pet_detail + endpoint: + path: /pets/{id} + method: GET + data_selector: records + params: {} +- name: edit_pet + endpoint: + path: /pets/{id} + method: PUT + data_selector: records + params: {} +- name: add_pet + endpoint: + path: /pets + method: POST + data_selector: records + params: {} +- name: delete_pet + endpoint: + path: /pets/{id} + method: DELETE + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: book + endpoint: + path: /books + method: GET + data_selector: bookList +- name: person + endpoint: + path: /people + method: GET + data_selector: personList +- name: chat + endpoint: + path: /chat + method: POST + data_selector: generated_text + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: chat_token + endpoint: + path: /token + method: POST + data_selector: data + params: {} +- name: refresh_token + endpoint: + path: /refresh_token + method: POST + data_selector: data + params: {} +- name: chat + endpoint: + path: /chat + method: WebSocket + data_selector: data + params: {} +- name: gpt_query + endpoint: + path: /models/EleutherAI/gpt-j-6B + method: POST + data_selector: generated_text +- name: chat_session + endpoint: + path: /token + method: POST + data_selector: session_data + params: {} +- name: book_info + endpoint: + path: /books + method: GET + data_selector: books + params: {} +- name: token + endpoint: + path: /token + method: POST + data_selector: data +- name: refresh_token + endpoint: + path: /refresh_token + method: POST + data_selector: data +- name: chat + endpoint: + path: /chat + method: WebSocket + data_selector: data +- name: chat + endpoint: + path: /chat + method: WebSocket +- name: chat + endpoint: + path: /token + method: POST +- name: chat_token + endpoint: + path: /token + method: POST + data_selector: data + params: {} +- name: refresh_token + endpoint: + path: /refresh_token + method: POST + data_selector: data + params: {} +- name: chat + endpoint: + path: /chat + method: WebSocket + data_selector: data + params: {} +- name: GPT + endpoint: + path: /models/EleutherAI/gpt-j-6B + method: POST + data_selector: '' + params: {} +- name: gpt_j_model + endpoint: + path: /models/EleutherAI/gpt-j-6B + method: POST + data_selector: generated_text +- name: chat_history + endpoint: + path: /chat/history + method: GET + data_selector: messages + params: {} +- name: chat + endpoint: + path: /token + method: POST + data_selector: session_data + params: {} +- name: token + endpoint: + path: /token + method: POST + data_selector: null + params: {} +- name: refresh_token + endpoint: + path: /refresh_token + method: POST + data_selector: null + params: {} +- name: chat + endpoint: + path: /chat + method: Websocket + data_selector: null + params: {} +- name: gpt_model + endpoint: + path: /models/EleutherAI/gpt-j-6B + method: POST + data_selector: generated_text + params: {} +- name: token + endpoint: + path: /token + method: POST + data_selector: data +- name: refresh_token + endpoint: + path: /refresh_token + method: POST + data_selector: data +- name: chat + endpoint: + path: /chat + method: WEBSOCKET + data_selector: data +- name: query + endpoint: + path: /v1/query + method: POST + data_selector: generated_text +- name: refresh_token + endpoint: + path: /refresh_token + method: GET +- name: gpt_j_model + endpoint: + path: /models/EleutherAI/gpt-j-6B + method: POST + data_selector: generated_text +- name: token + endpoint: + path: /token + method: POST + data_selector: '' + params: {} +- name: refresh_token + endpoint: + path: /refresh_token + method: POST + data_selector: '' + params: {} +- name: chat + endpoint: + path: /chat + method: WebSocket + data_selector: '' + params: {} +- name: token + endpoint: + path: /token + method: POST + data_selector: token + params: {} +- name: refresh_token + endpoint: + path: /refresh_token + method: POST + data_selector: refresh_token + params: {} +- name: chat + endpoint: + path: /chat + method: WebSocket + data_selector: chat + params: {} +- name: test + endpoint: + path: /test + method: GET + data_selector: msg + params: {} +- name: chat_session + endpoint: + path: /token + method: POST + data_selector: chat_session + params: {} +- name: message_channel + endpoint: + path: /chat + method: GET + data_selector: stream_data + params: {} +- name: chat_session + endpoint: + path: /token + method: POST + data_selector: chat_session + params: {} +- name: message_channel + endpoint: + path: /chat + method: GET + data_selector: messages + params: {} +- name: query + endpoint: + path: /query + method: POST + data_selector: generated_text + params: {} +- name: refresh_token + endpoint: + path: /refresh_token + method: GET +- name: chat + endpoint: + path: /chat + method: POST + data_selector: responses +- name: refresh_token + endpoint: + path: /refresh_token + method: GET +- name: user_repos + endpoint: + path: /user/repos + method: POST + data_selector: repository + params: + private: 'false' +- name: repo_clone_url + endpoint: + path: /repos/coccagerman/{repoName} + method: GET + data_selector: clone_url + params: {} +- name: token + endpoint: + path: /token + method: POST + data_selector: data + params: {} +- name: refresh_token + endpoint: + path: /refresh_token + method: POST + data_selector: data + params: {} +- name: chat + endpoint: + path: /chat + method: WEBSOCKET + data_selector: data + params: {} +- name: pets + endpoint: + path: /pets + method: GET + data_selector: pets +- name: pet + endpoint: + path: /pet + method: GET + data_selector: pet +- name: chat_session + endpoint: + path: /token + method: POST + data_selector: session + params: {} +- name: message_channel + endpoint: + path: /chat + method: POST + data_selector: message + params: {} +- name: chat + endpoint: + path: /chat + method: POST + data_selector: response + params: {} +- name: pets + endpoint: + path: /pets + method: GET + data_selector: pets + params: {} +- name: pet + endpoint: + path: /pet + method: GET + data_selector: pet + params: {} +- name: addPet + endpoint: + path: /addPet + method: POST + data_selector: addPet + params: {} +- name: editPet + endpoint: + path: /editPet + method: PUT + data_selector: editPet + params: {} +- name: deletePet + endpoint: + path: /deletePet + method: DELETE + data_selector: deletePet + params: {} +- name: refresh_token + endpoint: + path: /refresh_token + method: GET +- name: pets + endpoint: + path: / + method: POST + data_selector: data.pets + params: {} +- name: pet + endpoint: + path: / + method: POST + data_selector: data.pet + params: {} +- name: edit_pet + endpoint: + path: / + method: POST + data_selector: data.editPet + params: {} +- name: add_pet + endpoint: + path: / + method: POST + data_selector: data.addPet + params: {} +- name: delete_pet + endpoint: + path: / + method: POST + data_selector: data.deletePet + params: {} +- name: user_repos + endpoint: + path: /user/repos + method: POST + data_selector: '' + params: + name: repoName + private: false +- name: repo + endpoint: + path: /repos/coccagerman/{repoName} + method: GET + data_selector: '' + params: {} +- name: pets + endpoint: + path: / + method: POST + data_selector: data.pets + params: {} +- name: pet + endpoint: + path: / + method: POST + data_selector: data.pet + params: {} +- name: addPet + endpoint: + path: / + method: POST + data_selector: data.addPet + params: {} +- name: deletePet + endpoint: + path: / + method: POST + data_selector: data.deletePet + params: {} +- name: editPet + endpoint: + path: / + method: POST + data_selector: data.editPet + params: {} +- name: users + endpoint: + path: /graphql + method: POST + data_selector: data + params: {} +- name: books + endpoint: + path: /graphql + method: POST + data_selector: data + params: {} +- name: pets + endpoint: + path: /pets + method: GET + data_selector: pets + params: {} +- name: pet + endpoint: + path: /pet + method: GET + data_selector: pet + params: + id: ID +- name: pets + endpoint: + method: GET + data_selector: pets +- name: pet + endpoint: + method: GET + data_selector: pet +- name: addPet + endpoint: + method: POST + data_selector: addPet +- name: editPet + endpoint: + method: PUT + data_selector: editPet +- name: deletePet + endpoint: + method: DELETE + data_selector: deletePet +- name: pets + endpoint: + path: / + method: POST + data_selector: data.pets + params: {} +- name: petDetail + endpoint: + path: / + method: POST + data_selector: data.pet + params: {} +- name: editPet + endpoint: + path: / + method: POST + data_selector: data.editPet + params: {} +- name: addPet + endpoint: + path: / + method: POST + data_selector: data.addPet + params: {} +- name: deletePet + endpoint: + path: / + method: POST + data_selector: data.deletePet + params: {} +- name: permissions + endpoint: + path: /services/data/vXX.X/permissions + method: GET + data_selector: records + params: {} +- name: pets + endpoint: + path: / + method: POST + data_selector: data.pets + params: {} +- name: pet + endpoint: + path: / + method: POST + data_selector: data.pet + params: {} +- name: addPet + endpoint: + path: / + method: POST + data_selector: data.addPet + params: {} +- name: editPet + endpoint: + path: / + method: POST + data_selector: data.editPet + params: {} +- name: deletePet + endpoint: + path: / + method: POST + data_selector: data.deletePet + params: {} +- name: policies + endpoint: + path: /policies + method: GET + data_selector: policies + params: {} +- name: CSS Transform Functions + endpoint: + path: /css-transform-functions + method: GET + data_selector: functions +- name: Matrix Resolutions Tool + endpoint: + path: /matrix-resolutions-tool + method: GET + data_selector: matrix +- name: permission_validator + endpoint: + path: /validator + method: POST + data_selector: policy +- name: custom_hook + endpoint: + path: /hook + method: GET + data_selector: hook +- name: contextual_rules + endpoint: + path: /contextual + method: GET + data_selector: rules +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: records + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: workouts + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: workouts + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: records + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: data + params: {} +- name: create_workout + endpoint: + path: /api/v1/workouts + method: POST + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: policies + endpoint: + path: /policies + method: GET + data_selector: policies + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts/:workoutId/records + method: GET +- name: members + endpoint: + path: /api/v1/members + method: GET +- name: records + endpoint: + path: /api/v1/records + method: GET +- name: permission + endpoint: + path: /validatePermission + method: POST + data_selector: result +- name: policies + endpoint: + path: /getPolicies + method: GET + data_selector: policies +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: records + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: workouts +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: data + params: {} +- name: create_workout + endpoint: + path: /api/v1/workouts + method: POST + data_selector: data + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: workouts + params: {} +- name: create_workout + endpoint: + path: /api/v1/workouts + method: POST + data_selector: workout + params: {} +- name: workouts + endpoint: + path: /workouts + method: GET + data_selector: workouts + params: {} +- name: workout_records + endpoint: + path: /workouts/:workoutId/records + method: GET + data_selector: records + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: workouts + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: workouts +- name: records + endpoint: + path: /api/v1/workouts/:workoutId/records + method: GET + data_selector: records +- name: members + endpoint: + path: /members/:memberId + method: GET + data_selector: member +- name: workouts + endpoint: + path: / + method: GET + data_selector: data + params: {} +- name: workouts + endpoint: + path: /workouts + method: GET + data_selector: data +- name: create_workout + endpoint: + path: /workouts + method: POST + data_selector: data +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: data + params: + mode: string +- name: workouts + endpoint: + path: /api/v1/workouts/:workoutId/records + method: GET +- name: members + endpoint: + path: /api/v1/members + method: GET +- name: records + endpoint: + path: /api/v1/records + method: GET +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: workouts + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: data +- name: create_workout + endpoint: + path: /api/v1/workouts + method: POST + data_selector: data +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: records + params: {} +- name: workout_by_id + endpoint: + path: /api/v1/workouts/:workoutId + method: GET + data_selector: workout + params: {} +- name: create_workout + endpoint: + path: /api/v1/workouts + method: POST + data_selector: created_workout + params: {} +- name: update_workout + endpoint: + path: /api/v1/workouts/:workoutId + method: PATCH + data_selector: updated_workout + params: {} +- name: delete_workout + endpoint: + path: /api/v1/workouts/:workoutId + method: DELETE + data_selector: deleted_workout + params: {} +- name: workout_records + endpoint: + path: /api/v1/workouts/:workoutId/records + method: GET + data_selector: records + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET +- name: records + endpoint: + path: /api/v1/workouts/:workoutId/records + method: GET +- name: members + endpoint: + path: /members/:memberId + method: GET +- name: sort + endpoint: + path: /sort + method: GET + data_selector: records +- name: binarySearch + endpoint: + path: /binarySearch + method: GET + data_selector: records +- name: fill + endpoint: + path: /fill + method: GET + data_selector: records +- name: copyOf + endpoint: + path: /copyOf + method: GET + data_selector: records +- name: copyOfRange + endpoint: + path: /copyOfRange + method: GET + data_selector: records +- name: equals + endpoint: + path: /equals + method: GET + data_selector: records +- name: deepEquals + endpoint: + path: /deepEquals + method: GET + data_selector: records +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: data + params: {} +- name: workouts + endpoint: + path: /api/v1/workouts + method: GET + data_selector: data + params: + mode: string +- name: hash_map_methods + endpoint: + path: /hash_map/methods + method: GET + data_selector: methods +- name: user_class + endpoint: + path: /user/class + method: GET + data_selector: classes +- name: book_class + endpoint: + path: /book/class + method: GET + data_selector: classes +- name: bash_commands + endpoint: + path: /bash_commands + method: GET + data_selector: commands + params: {} +- name: cpu_stress_test + endpoint: + path: /cpu_stress_test + method: GET + data_selector: tests + params: {} +- name: file_system_hierarchy + endpoint: + path: / + method: GET + data_selector: records + params: {} +- name: array_sort + endpoint: + path: /arrays/sort + method: GET + data_selector: result + params: {} +- name: array_binary_search + endpoint: + path: /arrays/binary_search + method: GET + data_selector: result + params: {} +- name: array_fill + endpoint: + path: /arrays/fill + method: GET + data_selector: result + params: {} +- name: array_copy + endpoint: + path: /arrays/copy + method: GET + data_selector: result + params: {} +- name: array_compare + endpoint: + path: /arrays/compare + method: GET + data_selector: result + params: {} +- name: hash_map_operations + endpoint: + path: /hash_map/operations + method: POST + data_selector: results + params: {} +- name: file_search + endpoint: + path: /find + method: GET + data_selector: files + params: + type: f + name: file-to-search +- name: directory_search + endpoint: + path: /find + method: GET + data_selector: directories + params: + type: d +- name: key_bindings + endpoint: + path: /key_bindings + method: GET + data_selector: bindings + params: {} +- name: disk_health_check + endpoint: + path: /disk_health_check + method: GET + data_selector: health + params: {} +- name: hash_map_operations + endpoint: + path: /hash_map/operations + method: GET + data_selector: operations + params: {} +- name: bash_commands + endpoint: + path: /bash/commands + method: GET + data_selector: records + params: {} +- name: file_management + endpoint: + path: /file/management + method: GET + data_selector: records + params: {} +- name: cpu_stress_test + endpoint: + path: /stress-ng/cpu + method: POST + data_selector: result + params: {} +- name: whoami_command + endpoint: + path: /whoami + method: GET + data_selector: username + params: {} +- name: uname_command + endpoint: + path: /uname + method: GET + data_selector: system_info + params: {} +- name: file_system_hierarchy + endpoint: + path: / + method: GET + data_selector: directory_structure +- name: tail + endpoint: + path: /tail + method: GET + data_selector: lines + params: {} +- name: head + endpoint: + path: /head + method: GET + data_selector: lines + params: {} +- name: wc + endpoint: + path: /wc + method: GET + data_selector: count + params: {} +- name: diff + endpoint: + path: /diff + method: GET + data_selector: differences + params: {} +- name: vim + endpoint: + path: /vim + method: GET + data_selector: editor + params: {} +- name: nano + endpoint: + path: /nano + method: GET + data_selector: editor + params: {} +- name: bash_shell + endpoint: + path: /bash_shell + method: GET + data_selector: commands + params: {} +- name: system_info + endpoint: + path: /system_info + method: GET + data_selector: system_details + params: {} +- name: file_system + endpoint: + path: /file_system + method: GET + data_selector: file_hierarchy + params: {} +- name: installation_guide + endpoint: + path: /installation_guide + method: GET + data_selector: records +- name: access_methods + endpoint: + path: /access_methods + method: GET + data_selector: records +- name: find_files + endpoint: + path: /find + method: GET + data_selector: output + params: {} +- name: cpu_stress_test + endpoint: + path: /stress-ng + method: POST + data_selector: output + params: + cpu: 4 + timeout: 60 +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: bash_script_execution + endpoint: + path: /create-and-execute-bash-scripts + method: POST + data_selector: scripts + params: {} +- name: bash_scripting_basics + endpoint: + path: /bash-scripting-basics + method: GET + data_selector: basics + params: {} +- name: bash_commands + endpoint: + path: /bash/commands + method: GET + data_selector: commands + params: {} +- name: installation_guide + endpoint: + path: /installation_guide + method: GET + data_selector: content +- name: command_line + endpoint: + path: /command_line + method: GET + data_selector: commands +- name: system_info + endpoint: + path: /system/info + method: GET + data_selector: system_info +- name: cpu_info + endpoint: + path: /cpu/info + method: GET + data_selector: cpu_info +- name: cron_jobs + endpoint: + path: /cron/jobs + method: GET + data_selector: jobs + params: {} +- name: tail + endpoint: + path: /tail + method: GET + data_selector: lines + params: {} +- name: head + endpoint: + path: /head + method: GET + data_selector: lines + params: {} +- name: wc + endpoint: + path: /wc + method: GET + data_selector: counts + params: {} +- name: diff + endpoint: + path: /diff + method: GET + data_selector: differences + params: {} +- name: Linux Introduction + endpoint: + path: /introduction/linux + method: GET + data_selector: records +- name: Bash Commands + endpoint: + path: /commands/bash + method: GET + data_selector: records +- name: log_entries + endpoint: + path: /logs + method: GET + data_selector: entries + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: process_management + endpoint: + path: /processes + method: GET + data_selector: processes +- name: random_joke + endpoint: + path: /random_joke + method: GET + data_selector: joke +- name: linux_commands + endpoint: + path: /linux/commands + method: GET + data_selector: commands + params: {} +- name: linux_distributions + endpoint: + path: /linux/distributions + method: GET + data_selector: distributions + params: {} +- name: system_activity_report + endpoint: + path: /sar + method: GET + data_selector: system_activity + params: {} +- name: disk_health_check + endpoint: + path: /smartmontools + method: GET + data_selector: disk_health + params: {} +- name: cpu_stress_test + endpoint: + path: /stress-ng + method: GET + data_selector: cpu_stress + params: {} +- name: commands + endpoint: + path: /commands + method: GET + data_selector: commands + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: files + params: {} +- name: chapter_1 + endpoint: + path: /news/tag/beginner + method: GET + data_selector: articles + params: {} +- name: chapter_2 + endpoint: + path: /news/tag/beginner + method: GET + data_selector: articles + params: {} +- name: log_entries + endpoint: + path: /api/logs + method: GET + data_selector: entries +- name: repository + endpoint: + path: /user/repos + method: POST + data_selector: repository + params: {} +- name: docker_service + endpoint: + path: /v1/docker + method: POST + data_selector: repositories + params: {} +- name: billing_account + endpoint: + path: /billing + method: GET + data_selector: account_details + params: {} +- name: service_account + endpoint: + path: /iam/serviceAccounts + method: POST + data_selector: service_account_details + params: {} +- name: service_usage_api + endpoint: + path: /serviceUsageApi + method: GET + data_selector: enabled_services + params: {} +- name: container + endpoint: + path: /hello + method: GET + data_selector: NAMES +- name: random_joke + endpoint: + path: /random_joke + method: GET + data_selector: joke + params: {} +- name: CPU Stress Test + endpoint: + path: /stress-ng/cpu + method: GET + data_selector: results + params: {} +- name: Disk Health Check + endpoint: + path: /smartmontools/disk_health + method: GET + data_selector: results + params: {} +- name: container + endpoint: + path: /engine/reference/commandline/container/ + method: GET + data_selector: commands + params: {} +- name: image + endpoint: + path: /engine/reference/commandline/image/ + method: GET + data_selector: commands + params: {} +- name: hello-world + endpoint: + path: /hello-world + method: GET + data_selector: message + params: {} +- name: todos + endpoint: + path: /todos/1 + method: GET + data_selector: title +- name: hello-world + endpoint: + path: /v1.13/containers + method: POST + data_selector: image + params: {} +- name: hello-dock + endpoint: + path: /v1.13/containers + method: POST + data_selector: image + params: + publish: 8080:80 +- name: Node.js Project Setup + endpoint: + path: /setup/nodejs + method: GET + data_selector: steps + params: {} +- name: GitHub Repository + endpoint: + path: /repository/create + method: POST + data_selector: repository + params: {} +- name: CI/CD Workflows + endpoint: + path: /workflows/create + method: POST + data_selector: workflows + params: {} +- name: hello-dock + endpoint: + path: docker/container/run + method: POST + data_selector: response + params: + publish: 8080:80 +- name: container + endpoint: + path: /container + method: GET + data_selector: CONTAINER ID, IMAGE, COMMAND, CREATED, STATUS, PORTS, NAMES +- name: hello-world + endpoint: + path: /hello-world + method: GET + data_selector: records +- name: hello-dock + endpoint: + path: /fhsinchy/hello-dock + method: GET + data_selector: records +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers +- name: hello-world + endpoint: + path: /hello-world + method: GET + data_selector: message +- name: containers + endpoint: + path: /v1.41/containers + method: GET + data_selector: Containers +- name: images + endpoint: + path: /v1.41/images + method: GET + data_selector: Images +- name: container + endpoint: + path: /hello + method: GET + data_selector: id + params: {} +- name: hello-dock-container + endpoint: + path: /docker/containers/hello-dock-container + method: GET +- name: hello-dock-container-2 + endpoint: + path: /docker/containers/hello-dock-container-2 + method: GET +- name: reverent_torvalds + endpoint: + path: /docker/containers/reverent_torvalds + method: GET +- name: exciting_chebyshev + endpoint: + path: /docker/containers/exciting_chebyshev + method: GET +- name: container + endpoint: + path: /containers/create + method: POST + data_selector: container + params: + publish: 8080:80 +- name: container + endpoint: + path: /engine/reference/commandline/container/ + method: GET + data_selector: commands +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: hello-world + endpoint: + path: /v1.13/containers/create + method: POST + data_selector: image + params: {} +- name: fhsinchy/hello-dock + endpoint: + path: /v1.13/containers/create + method: POST + data_selector: image + params: {} +- name: hello-world + endpoint: + path: /hello-world + method: GET + data_selector: message + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers +- name: images + endpoint: + path: /images + method: GET + data_selector: images +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: Containers + params: {} +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: Images + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: container + endpoint: + path: /v1.13/containers + method: GET + data_selector: containers +- name: image + endpoint: + path: /v1.13/images + method: GET + data_selector: images +- name: registry + endpoint: + path: /v1.13/registry + method: GET + data_selector: registries +- name: container + endpoint: + path: /docker/container + method: POST + data_selector: containers + params: {} +- name: hello-dock + endpoint: + path: /r/fhsinchy/hello-dock + method: GET +- name: hello-world + endpoint: + path: /r/library/hello-world + method: GET +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: Containers + params: {} +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: Images + params: {} +- name: hello-dock-container + endpoint: + path: /hello-dock-container + method: GET +- name: hello-dock-container-2 + endpoint: + path: /hello-dock-container-2 + method: GET +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: Containers + params: {} +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: Images + params: {} +- name: container + endpoint: + path: /container + method: POST + data_selector: container_id + params: + image: fhsinchy/hello-dock + publish: 8080:80 +- name: executable_images + endpoint: + path: /rmbyext + method: GET + data_selector: files + params: {} +- name: containers + endpoint: + path: /v2/containers + method: GET + data_selector: results +- name: images + endpoint: + path: /v2/images + method: GET + data_selector: results +- name: registries + endpoint: + path: /v2/registries + method: GET + data_selector: results +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: registry + endpoint: + path: /registries + method: GET + data_selector: registries + params: {} +- name: container + endpoint: + path: /containers + method: GET +- name: image + endpoint: + path: /images + method: GET +- name: dockerfile + endpoint: + path: /Dockerfile + method: POST +- name: container_start + endpoint: + path: /container/start + method: POST + data_selector: response + params: {} +- name: container_restart + endpoint: + path: /container/restart + method: POST + data_selector: response + params: {} +- name: container_create + endpoint: + path: /container/create + method: POST + data_selector: response + params: {} +- name: container_remove + endpoint: + path: /container/remove + method: DELETE + data_selector: response + params: {} +- name: hello_world + endpoint: + path: /hello-world + method: GET + data_selector: output +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: containers +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: images +- name: hello-dock-container + endpoint: + path: /v1.41/containers/hello-dock-container + method: GET + data_selector: container_info +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: hello-dock-container + endpoint: + path: /container/start/hello-dock-container + method: POST +- name: hello-dock-container-2 + endpoint: + path: /container/restart/hello-dock-container-2 + method: POST +- name: image_build + endpoint: + path: /docker/image/build + method: POST + data_selector: build_context + params: {} +- name: container_run + endpoint: + path: /docker/container/run + method: POST + data_selector: run_context + params: {} +- name: container + endpoint: + path: /v1.41/containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /v1.41/images + method: GET + data_selector: images + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: registries + endpoint: + path: /registries + method: GET + data_selector: registries + params: {} +- name: hello-dock + endpoint: + path: /hello-dock + method: GET +- name: default-nginx + endpoint: + path: / + method: GET +- name: rmbyext + endpoint: + path: /zone + method: POST + data_selector: files + params: + extension: pdf +- name: nginx + endpoint: + path: /nginx + method: GET + data_selector: response + params: {} +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: Containers + params: {} +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: Images + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: nginx + endpoint: + path: /nginx + method: RUN + data_selector: apt-get install nginx -y + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: docker_image + endpoint: + path: /images + method: GET + data_selector: images +- name: docker_container + endpoint: + path: /containers + method: GET + data_selector: containers +- name: hello_world + endpoint: + path: /hello-world + method: GET + data_selector: message + params: {} +- name: docker_ps + endpoint: + path: /containers/json + method: GET + data_selector: containers + params: {} +- name: Docker Installation + endpoint: + path: /installation/docker + method: GET + data_selector: installation_guide + params: {} +- name: Hello World + endpoint: + path: /examples/hello-world + method: GET + data_selector: example_output + params: {} +- name: container + endpoint: + path: /v2/containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /v2/images + method: GET + data_selector: images + params: {} +- name: registry + endpoint: + path: /v2/registries + method: GET + data_selector: registries + params: {} +- name: docker_image + endpoint: + path: /v2/images + method: GET + data_selector: images + params: {} +- name: docker_container + endpoint: + path: /v2/containers + method: GET + data_selector: containers + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers +- name: nginx + endpoint: + path: /nginx + method: GET + data_selector: records + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: volumes + endpoint: + path: /volumes + method: GET + data_selector: volumes + params: {} +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: Containers +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: Images +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: nginx + endpoint: + path: /nginx + method: GET + data_selector: default +- name: nginx + endpoint: + path: /nginx + method: GET + data_selector: records + params: {} +- name: hello-world + endpoint: + path: /_hello-world + method: GET + data_selector: message + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers +- name: image + endpoint: + path: /images + method: GET + data_selector: images +- name: registry + endpoint: + path: /registry + method: GET + data_selector: registries +- name: container + endpoint: + path: /container + method: POST + data_selector: containers +- name: image + endpoint: + path: /image + method: GET + data_selector: images +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: custom-nginx + endpoint: + path: /custom-nginx + method: BUILD + data_selector: layers + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers +- name: images + endpoint: + path: /images + method: GET + data_selector: images +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: COPY + data_selector: source_code + params: {} +- name: nginx + endpoint: + path: /nginx + method: GET + data_selector: default + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: nginx + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: records +- name: nginx + endpoint: + path: /services/data/vXX.X/sobjects/nginx + method: GET + data_selector: records + params: {} +- name: containers + endpoint: + path: /v1.41/containers + method: GET + data_selector: containers +- name: images + endpoint: + path: /v1.41/images + method: GET + data_selector: images +- name: registries + endpoint: + path: /v1.41/registries + method: GET + data_selector: registries +- name: containers + endpoint: + path: /containers/json + method: GET + data_selector: Containers + params: {} +- name: images + endpoint: + path: /images/json + method: GET + data_selector: Images + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: nginx_installation + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records +- name: nginx + endpoint: + path: / + method: GET + data_selector: '' + params: {} +- name: containers + endpoint: + path: /containers/json + method: GET + data_selector: Containers + params: {} +- name: images + endpoint: + path: /images/json + method: GET + data_selector: Images + params: {} +- name: networks + endpoint: + path: /networks + method: GET + data_selector: Networks + params: {} +- name: volumes + endpoint: + path: /volumes + method: GET + data_selector: Volumes + params: {} +- name: containers + endpoint: + path: /v1.40/containers/json + method: GET + data_selector: Containers +- name: images + endpoint: + path: /v1.40/images/json + method: GET + data_selector: Images +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: container_management + endpoint: + path: /docker/container + method: POST + data_selector: commands + params: + command: start + container_name: hello-dock-container +- name: container_reboot + endpoint: + path: /docker/container + method: POST + data_selector: commands + params: + command: restart + container_name: hello-dock-container-2 +- name: create_container + endpoint: + path: /docker/container + method: POST + data_selector: commands + params: + command: create + image: fhsinchy/hello-dock + publish: 8080:80 +- name: remove_container + endpoint: + path: /docker/container + method: DELETE + data_selector: commands + params: + container_id: 6cf52771dde1 +- name: remove_dangling_containers + endpoint: + path: /docker/container/prune + method: POST + data_selector: commands +- name: interactive_container_run + endpoint: + path: /docker/container/run + method: POST + data_selector: commands + params: + image: ubuntu + options: + - -it +- name: execute_command_in_container + endpoint: + path: /docker/container/run + method: POST + data_selector: commands + params: + image: alpine + command: uname -a +- name: bind_mount_example + endpoint: + path: /docker/container/run + method: POST + data_selector: commands + params: + image: busybox + command: sh -c "echo -n my-secret | base64" + volume: $(pwd):/zone +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: nginx + endpoint: + path: /nginx + method: GET + data_selector: image +- name: rmbyext + endpoint: + path: /services/data/vXX.X/sobjects/rmbyext + method: GET + data_selector: records + params: {} +- name: nginx + endpoint: + path: /nginx-1.19.2.tar.gz + method: ADD + data_selector: records +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: Containers +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: Images +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: volumes + endpoint: + path: /volumes + method: GET + data_selector: volumes + params: {} +- name: nginx_build + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: records +- name: nginx_source + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: registry + endpoint: + path: /registries + method: GET + data_selector: registries + params: {} +- name: docker_image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: docker_container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: nginx_source + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: ADD + data_selector: '' + params: {} +- name: nginx + endpoint: + path: /nginx-1.19.2.tar.gz + method: ADD + data_selector: none + params: {} +- name: hello_dock + endpoint: + path: /v1/hello_dock + method: GET + data_selector: records + params: {} +- name: hello-dock + endpoint: + path: /fhsinchy/hello-dock + method: GET + data_selector: images + params: {} +- name: hello-world + endpoint: + path: /hello-world + method: GET + data_selector: images + params: {} +- name: containers + endpoint: + path: /v1.41/containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /v1.41/images + method: GET + data_selector: images + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers +- name: images + endpoint: + path: /images + method: GET + data_selector: images +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: rmbyext + endpoint: + path: /zone + method: ENTRYPOINT + data_selector: script + params: {} +- name: hello_world + endpoint: + path: /hello-world + method: GET + data_selector: message +- name: docker_image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: docker_container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: registry + endpoint: + path: /registries + method: GET + data_selector: registries + params: {} +- name: nginx_source + endpoint: + path: nginx-1.19.2.tar.gz + method: GET + data_selector: records +- name: nginx + endpoint: + path: /nginx-1.19.2.tar.gz + method: ADD + data_selector: download + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers +- name: images + endpoint: + path: /images + method: GET + data_selector: images +- name: docker_image + endpoint: + path: /docker/image/build + method: POST + data_selector: image_id + params: {} +- name: nginx + endpoint: + path: / + method: GET +- name: hello_world + endpoint: + path: /hello-world + method: GET + data_selector: message + params: {} +- name: hello-dock + endpoint: + path: /v1.13/containers/hello-dock + method: GET + data_selector: containers + params: {} +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: images + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers +- name: nginx + endpoint: + path: /download/ + method: GET + data_selector: records +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: ADD + data_selector: '' + params: {} +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: ADD + data_selector: null + params: {} +- name: rmbyext + endpoint: + path: / + method: GET + data_selector: records + params: {} +- name: docker_image + endpoint: + path: /image/build + method: POST + data_selector: images + params: + tag: latest +- name: hello_world + endpoint: + path: /hello-world + method: GET + data_selector: message + params: {} +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: Containers +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: Images +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: containers +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: images +- name: container_management + endpoint: + path: /docker/container + method: POST + data_selector: commands + params: + action: start +- name: container_creation + endpoint: + path: /docker/container/create + method: POST + data_selector: commands + params: + action: create + image: fhsinchy/hello-dock +- name: container_removal + endpoint: + path: /docker/container/remove + method: DELETE + data_selector: commands + params: + action: remove +- name: nginx + endpoint: + path: /download/ + method: GET + data_selector: records +- name: nginx + endpoint: + path: /download + method: GET + data_selector: archives + params: {} +- name: docker_image + endpoint: + path: /docker/image/build + method: POST + data_selector: status + params: + tag: rmbyext +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: registries + endpoint: + path: /registries + method: GET + data_selector: registries + params: {} +- name: docker_image + endpoint: + path: /docker/image + method: POST + data_selector: build + params: + tag: custom-nginx:packaged +- name: docker_container + endpoint: + path: /docker/container + method: POST + data_selector: run + params: + image_id: 3199372aa3fc + port: 8080:80 +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: nginx + endpoint: + path: /nginx-1.19.2.tar.gz + method: ADD + data_selector: records +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: source_code + params: {} +- name: docker_image + endpoint: + path: /image/build + method: POST + data_selector: results + params: + tag: latest +- name: nginx_download + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: file + params: {} +- name: docker_image + endpoint: + path: /images + method: POST +- name: rmbyext + endpoint: + path: /services/data/vXX.X/sobjects/rmbyext + method: GET + data_selector: records + params: {} +- name: app + endpoint: + path: /home/node/app + method: COPY + data_selector: files + params: {} +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: Containers + params: {} +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: Images + params: {} +- name: hello-dock + endpoint: + path: /hello-dock + method: GET + data_selector: records +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records +- name: rmbyext + endpoint: + path: /services/data/vXX.X/sobjects/rmbyext + method: GET +- name: docker_image + endpoint: + path: /docker/image/build + method: POST + data_selector: image + params: + tag: latest +- name: hello_world + endpoint: + path: /hello-world + method: GET + data_selector: message +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: network + endpoint: + path: /networks + method: GET + data_selector: networks + params: {} +- name: volume + endpoint: + path: /volumes + method: GET + data_selector: volumes + params: {} +- name: container_management + endpoint: + path: /docker/container + method: POST + data_selector: commands + params: {} +- name: image_management + endpoint: + path: /docker/image + method: POST + data_selector: commands + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers +- name: images + endpoint: + path: /images + method: GET + data_selector: images +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: volumes + endpoint: + path: /volumes + method: GET + data_selector: volumes + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers +- name: rmbyext + endpoint: + path: /rmbyext + method: GET + data_selector: records + params: {} +- name: nginx + endpoint: + path: /download + method: GET +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: nginx + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: download + params: {} +- name: docker_image + endpoint: + path: /docker/image + method: POST + data_selector: image + params: {} +- name: Dockerfile + endpoint: + path: /Dockerfile + method: GET + data_selector: records +- name: anonymous_volume + endpoint: + path: /home/node/app + method: GET + data_selector: records + params: {} +- name: docker_image + endpoint: + path: /fhsinchy/hello-dock + method: GET + data_selector: images + params: {} +- name: hello_world + endpoint: + path: /v1/containers/hello-world + method: GET + data_selector: message +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: containers + endpoint: + path: /containers/json + method: GET + data_selector: Containers + params: {} +- name: images + endpoint: + path: /images/json + method: GET + data_selector: Images + params: {} +- name: networks + endpoint: + path: /networks + method: GET + data_selector: Networks + params: {} +- name: volumes + endpoint: + path: /volumes + method: GET + data_selector: Volumes + params: {} +- name: hello_dock_container + endpoint: + path: /docker/container/start/hello-dock-container + method: POST +- name: hello_dock_container_2 + endpoint: + path: /docker/container/start/hello-dock-container-2 + method: POST +- name: create_hello_dock_container + endpoint: + path: /docker/container/create + method: POST + params: + image: fhsinchy/hello-dock + publish: 8080:80 +- name: remove_dangling_containers + endpoint: + path: /docker/container/rm + method: DELETE +- name: remove_stopped_container + endpoint: + path: /docker/container/rm/{container_id} + method: DELETE +- name: run_interactive_container + endpoint: + path: /docker/container/run/ubuntu + method: POST +- name: docker_image + endpoint: + path: /docker_image + method: GET + data_selector: images + params: {} +- name: nginx_source + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: docker_image + endpoint: + path: /services/data/vXX.X/sobjects/DockerImage + method: GET + data_selector: records +- name: docker_container + endpoint: + path: /services/data/vXX.X/sobjects/DockerContainer + method: GET + data_selector: records +- name: rmbyext + endpoint: + path: /services/data/vXX.X/sobjects/rmbyext + method: GET + data_selector: records + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: registry + endpoint: + path: /registry + method: GET + data_selector: registries + params: {} +- name: docker_installation + endpoint: + path: /install + method: GET + data_selector: installation_steps +- name: docker_basics + endpoint: + path: /basics + method: GET + data_selector: docker_commands +- name: nginx_installation + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records +- name: containers + endpoint: + path: /v1.41/containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /v1.41/images + method: GET + data_selector: images + params: {} +- name: nginx + endpoint: + path: /nginx-1.19.2.tar.gz + method: ADD +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: rmbyext_image + endpoint: + path: /Dockerfile + method: GET +- name: nginx + endpoint: + path: /nginx-1.19.2.tar.gz + method: ADD + data_selector: file + params: {} +- name: networks + endpoint: + path: /docker/network + method: GET + data_selector: networks + params: {} +- name: docker_image + endpoint: + path: /docker/image/rmbyext + method: GET + data_selector: image_data +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: container + endpoint: + path: /v1.41/containers + method: GET + data_selector: containers +- name: image + endpoint: + path: /v1.41/images + method: GET + data_selector: images +- name: nginx + endpoint: + path: /nginx + method: GET +- name: rmbyext + endpoint: + path: /services/data/vXX.X/sobjects/rmbyext + method: GET + data_selector: records +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: user_defined_bridge + endpoint: + path: /network/create + method: POST + data_selector: network + params: {} +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records +- name: containers + endpoint: + path: /v1.41/containers/json + method: GET + data_selector: '[]' +- name: images + endpoint: + path: /v1.41/images/json + method: GET + data_selector: '[]' +- name: rmbyext + endpoint: + path: /services/data/vXX.X/sobjects/rmbyext + method: GET + data_selector: records +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: docker_image + endpoint: + path: /image/build + method: POST + data_selector: image_id +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: files + params: {} +- name: docker_image + endpoint: + path: /images + method: GET + data_selector: images +- name: docker_container + endpoint: + path: /containers + method: GET + data_selector: containers +- name: docker_network + endpoint: + path: /networks + method: GET + data_selector: networks +- name: rmbyext + endpoint: + path: /install + method: GET + data_selector: install +- name: network_connect + endpoint: + path: /network/connect + method: POST + data_selector: response + params: {} +- name: network_inspect + endpoint: + path: /network/inspect + method: GET + data_selector: containers + params: {} +- name: docker_container + endpoint: + path: /docker/container + method: GET + data_selector: containers + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: network + endpoint: + path: /networks + method: GET + data_selector: networks + params: {} +- name: volume + endpoint: + path: /volumes + method: GET + data_selector: volumes + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: registry + endpoint: + path: /registries + method: GET + data_selector: registries + params: {} +- name: container + endpoint: + path: /container + method: POST + data_selector: containers + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: docker_image + endpoint: + path: /image/build + method: POST + data_selector: image + params: {} +- name: docker_container + endpoint: + path: /container/run + method: POST + data_selector: container + params: {} +- name: nginx + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: rmbyext + endpoint: + path: /rmbyext + method: GET + data_selector: records + params: {} +- name: Dockerfile + endpoint: + path: /Dockerfile + method: POST + data_selector: Dockerfile + params: {} +- name: hello-dock + endpoint: + path: /hello-dock + method: POST + data_selector: response + params: {} +- name: notes-db + endpoint: + path: /container/run + method: POST + data_selector: notes-db + params: + POSTGRES_DB: notesdb + POSTGRES_PASSWORD: secret + network: notes-api-network +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers +- name: image + endpoint: + path: /images + method: GET + data_selector: images +- name: containers + endpoint: + path: /containers/json + method: GET + data_selector: Containers +- name: images + endpoint: + path: /images/json + method: GET + data_selector: Images +- name: networks + endpoint: + path: /networks + method: GET + data_selector: Networks +- name: volumes + endpoint: + path: /volumes + method: GET + data_selector: Volumes +- name: containers + endpoint: + path: /containers/json + method: GET + data_selector: Containers +- name: images + endpoint: + path: /images/json + method: GET + data_selector: Images +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: nginx + endpoint: + path: /download + method: GET + data_selector: records + params: {} +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: docker_image + endpoint: + path: /image/build + method: POST + data_selector: build + params: {} +- name: docker_image_build + endpoint: + path: /image/build + method: POST + data_selector: build_result +- name: docker_image_push + endpoint: + path: /image/push + method: POST + data_selector: push_result +- name: user_defined_bridge + endpoint: + path: /network/create + method: POST + data_selector: networks + params: {} +- name: database_server + endpoint: + path: / + method: GET + data_selector: data + params: + incremental: POSTGRES_DB +- name: hello-dock + endpoint: + path: /v1.13/containers + method: GET + data_selector: containers + params: {} +- name: notes-db-data + endpoint: + path: /var/lib/postgresql/data + method: docker volume create + data_selector: notes-db-data + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: nginx + endpoint: + path: /nginx + method: GET +- name: containers + endpoint: + path: /containers/json + method: GET + data_selector: Containers + params: {} +- name: images + endpoint: + path: /images/json + method: GET + data_selector: Images + params: {} +- name: docker_image + endpoint: + path: /image/build + method: POST + data_selector: image_id + params: {} +- name: nginx + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET +- name: network_connect + endpoint: + path: /network/connect + method: POST + data_selector: results +- name: container_run + endpoint: + path: /container/run + method: POST + data_selector: results +- name: hello-dock + endpoint: + path: /hello-dock + method: GET + data_selector: records +- name: database_server + endpoint: + path: /v1/databases + method: GET + data_selector: data + params: + incremental: updated_at +- name: nginx_source + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: ADD +- name: docker_image + endpoint: + path: /image + method: POST + data_selector: image_data + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: database_server + endpoint: + path: /container/run + method: POST + data_selector: notes-db + params: + network: notes-api-network +- name: nginx + endpoint: + path: /nginx + method: GET + data_selector: records +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: docker_hub + endpoint: + path: /docker_hub + method: GET + data_selector: docker_hub + params: {} +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: ADD +- name: docker_image + endpoint: + path: /image/build + method: POST + data_selector: image + params: {} +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: database + endpoint: + path: /run + method: POST + data_selector: container + params: + POSTGRES_PASSWORD: your_password + POSTGRES_DB: your_database +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: records +- name: notes-api + endpoint: + path: /notes-api/api + method: GET +- name: docker_image + endpoint: + path: /docker/image/build + method: POST + data_selector: results + params: + tag: latest +- name: database + endpoint: + path: /run_container + method: POST + data_selector: status + params: + POSTGRES_PASSWORD: your_password + POSTGRES_DB: your_database + port: '5432' +- name: db + endpoint: + path: /services/data/vXX.X/sobjects/db + method: GET + data_selector: records + params: + incremental: updated_at +- name: api + endpoint: + path: /services/data/vXX.X/sobjects/api + method: GET + data_selector: records + params: {} +- name: docker_image + endpoint: + path: /v2/images + method: GET + data_selector: images + params: {} +- name: docker_container + endpoint: + path: /v2/containers + method: GET + data_selector: containers + params: {} +- name: hello-dock + endpoint: + path: /hello-dock + method: GET + data_selector: records +- name: containers + endpoint: + path: /v1.41/containers + method: GET + data_selector: containers + params: {} +- name: dockerfile + endpoint: + path: /Dockerfile + method: ADD + data_selector: instructions +- name: nginx + endpoint: + path: /nginx-1.19.2.tar.gz + method: ADD + data_selector: download + params: {} +- name: container_start + endpoint: + path: /containers/{id}/start + method: POST + data_selector: '' + params: {} +- name: container_restart + endpoint: + path: /containers/{id}/restart + method: POST + data_selector: '' + params: {} +- name: container_create + endpoint: + path: /containers/create + method: POST + data_selector: '' + params: {} +- name: container_rm + endpoint: + path: /containers/{id} + method: DELETE + data_selector: '' + params: {} +- name: container_ls + endpoint: + path: /containers/json + method: GET + data_selector: '' + params: {} +- name: Dockerfile + endpoint: + path: /Dockerfile + method: GET + data_selector: content + params: {} +- name: postgres + endpoint: + path: / + method: POST + data_selector: container + params: + POSTGRES_PASSWORD: your_password + POSTGRES_DB: your_database +- name: rmbyext + endpoint: + path: /services/data/vXX.X/sobjects/rmbyext + method: GET + data_selector: records +- name: db + endpoint: + path: /services/data/vXX.X/sobjects/db + method: GET + data_selector: records + params: + POSTGRES_DB: notesdb + POSTGRES_PASSWORD: secret +- name: api + endpoint: + path: /services/data/vXX.X/sobjects/api + method: GET + data_selector: records + params: + DB_HOST: db + DB_DATABASE: notesdb + DB_PASSWORD: secret +- name: exec_command + endpoint: + path: /docker/container/exec + method: POST + data_selector: command + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers +- name: images + endpoint: + path: /images + method: GET + data_selector: images +- name: containers + endpoint: + path: /v1.41/containers + method: GET + data_selector: containers +- name: images + endpoint: + path: /v1.41/images + method: GET + data_selector: images +- name: registries + endpoint: + path: /v1.41/registries + method: GET + data_selector: registries +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: source_code + params: {} +- name: hello-dock-container + endpoint: + path: /docker/container/start/hello-dock-container + method: POST +- name: hello-dock-container-2 + endpoint: + path: /docker/container/restart/hello-dock-container-2 + method: POST +- name: nginx + endpoint: + path: /download + method: GET + data_selector: records + params: {} +- name: Dockerfile + endpoint: + path: /Dockerfile + method: GET +- name: rmbyext + endpoint: + path: /services/data/vXX.X/sobjects/Rmbyext + method: GET + data_selector: records + params: {} +- name: postgres_database + endpoint: + path: / + method: GET + data_selector: databases + params: + incremental: created_at +- name: db + endpoint: + path: /services/data/vXX.X/sobjects/db + method: GET + data_selector: records + params: + POSTGRES_DB: notesdb + POSTGRES_PASSWORD: secret +- name: api + endpoint: + path: /services/data/vXX.X/sobjects/api + method: GET + data_selector: records + params: + DB_HOST: db + DB_DATABASE: notesdb + DB_PASSWORD: secret +- name: database + endpoint: + path: / + method: POST + data_selector: data + params: + environment_variables: + POSTGRES_PASSWORD: your_password + POSTGRES_DB: your_database +- name: notes-db + endpoint: + path: /var/lib/postgresql/data + method: GET +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: volumes + endpoint: + path: /volumes + method: GET + data_selector: volumes + params: {} +- name: db + endpoint: + path: /var/lib/postgresql/data + method: GET + data_selector: records + params: + POSTGRES_DB: notesdb + POSTGRES_PASSWORD: secret +- name: api + endpoint: + path: /home/node/app + method: GET + data_selector: records + params: + DB_HOST: db + DB_DATABASE: notesdb + DB_PASSWORD: secret +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers +- name: nginx + endpoint: + path: /nginx + method: GET + data_selector: image + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: docker_image + endpoint: + path: /image/build + method: POST + data_selector: image +- name: database + endpoint: + path: /run + method: POST + data_selector: data + params: + POSTGRES_PASSWORD: your_password + POSTGRES_DB: your_database_name +- name: container_start + endpoint: + path: /container/start + method: POST + data_selector: response + params: {} +- name: container_restart + endpoint: + path: /container/restart + method: POST + data_selector: response + params: {} +- name: container_create + endpoint: + path: /container/create + method: POST + data_selector: response + params: {} +- name: container_remove + endpoint: + path: /container/remove + method: DELETE + data_selector: response + params: {} +- name: container_ls + endpoint: + path: /container/ls + method: GET + data_selector: response + params: {} +- name: container_prune + endpoint: + path: /container/prune + method: POST + data_selector: response + params: {} +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: db + endpoint: + path: /services/data/v12.0/sobjects/Database + method: GET + data_selector: records + params: + POSTGRES_DB: notesdb + POSTGRES_PASSWORD: secret +- name: api + endpoint: + path: /services/data/v12.0/sobjects/API + method: GET + data_selector: records + params: + DB_HOST: db + DB_DATABASE: notesdb + DB_PASSWORD: secret +- name: hello-dock + endpoint: + path: /fhsinchy/hello-dock + method: GET + data_selector: repository + params: {} +- name: rmbyext + endpoint: + path: /fhsinchy/rmbyext + method: GET + data_selector: repository + params: {} +- name: database_server + endpoint: + path: /run + method: POST + data_selector: status + params: + POSTGRES_PASSWORD: your_password + POSTGRES_DB: your_database +- name: containers + endpoint: + path: /v1.41/containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /v1.41/images + method: GET + data_selector: images + params: {} +- name: registries + endpoint: + path: /v1.41/registries + method: GET + data_selector: registries + params: {} +- name: notes + endpoint: + path: /notes + method: GET + data_selector: records + params: {} +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: db + endpoint: + path: /var/lib/postgresql/data + method: GET + data_selector: environment + params: + POSTGRES_DB: notesdb + POSTGRES_PASSWORD: secret +- name: api + endpoint: + path: /home/node/app + method: GET + data_selector: environment + params: + DB_HOST: db + DB_DATABASE: notesdb + DB_PASSWORD: secret +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: container + endpoint: + path: /v1.41/containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /v1.41/images + method: GET + data_selector: images + params: {} +- name: rmbyext + endpoint: + path: /services/data/vXX.X/sobjects/rmbyext + method: GET +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: database + endpoint: + path: / + method: GET + data_selector: databases + params: + incremental: created_at +- name: nginx + endpoint: + path: /${FILENAME}.${EXTENSION} + method: ADD + data_selector: '' + params: {} +- name: hello-dock + endpoint: + path: /hello-dock + method: GET + data_selector: application +- name: postgres_server + endpoint: + path: /postgres + method: POST + data_selector: server + params: + POSTGRES_PASSWORD: your_password + POSTGRES_DB: your_database +- name: notes + endpoint: + path: /notes + method: GET + data_selector: records + params: {} +- name: hello-world + endpoint: + path: /v1.41/images/hello-world + method: GET + data_selector: message + params: {} +- name: db + endpoint: + path: /var/lib/postgresql/data + method: GET + data_selector: volumes + params: + POSTGRES_DB: notesdb + POSTGRES_PASSWORD: secret +- name: api + endpoint: + path: /home/node/app + method: GET + data_selector: volumes + params: + DB_HOST: db + DB_DATABASE: notesdb + DB_PASSWORD: secret +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: nginx + endpoint: + path: /download/ + method: GET + data_selector: records +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: nginx + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records +- name: notes-api + endpoint: + path: / + method: GET +- name: hello-dock + endpoint: + path: /hello-dock + method: GET + data_selector: records +- name: db + endpoint: + image: postgres:12 + container_name: notes-db-dev + environment: + POSTGRES_DB: notesdb + POSTGRES_PASSWORD: secret +- name: api + endpoint: + build: + context: ./api + dockerfile: Dockerfile.dev + image: notes-api:dev + container_name: notes-api-dev + environment: + DB_HOST: db + DB_DATABASE: notesdb + DB_PASSWORD: secret + ports: + - 3000:3000 +- name: db + environment: + POSTGRES_DB: notesdb + POSTGRES_PASSWORD: secret +- name: api + environment: + DB_HOST: db + DB_PORT: 5432 + DB_USER: postgres + DB_DATABASE: notesdb + DB_PASSWORD: secret +- name: client + networks: + - fullstack-notes-application-network-frontend +- name: nginx + networks: + - fullstack-notes-application-network-frontend + - fullstack-notes-application-network-backend + ports: + - '8080': 80 +- name: hello_world + endpoint: + path: /hello-world + method: GET + data_selector: output +- name: hello-dock + endpoint: + path: /container/run + method: POST + data_selector: container_id + params: + publish: 8080:80 +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers +- name: image + endpoint: + path: /images + method: GET + data_selector: images +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: nginx_image + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET +- name: nginx_image + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: Dockerfile + endpoint: + path: /Dockerfile + method: GET +- name: dockerfile + endpoint: + path: /dockerfile + method: POST +- name: database_server + endpoint: + path: /postgres + method: POST + data_selector: records + params: + POSTGRES_PASSWORD: your_password + POSTGRES_DB: your_database +- name: database + endpoint: + path: /api/database + method: POST + data_selector: data + params: + POSTGRES_PASSWORD: your_password + POSTGRES_DB: your_database_name + port: 5432 +- name: notes + endpoint: + path: /api/notes + method: GET + data_selector: records +- name: notes + endpoint: + path: /api/notes + method: GET + data_selector: records +- name: db + endpoint: + path: /var/lib/postgresql/data + method: GET + data_selector: POSTGRES_DB + params: + POSTGRES_PASSWORD: secret +- name: api + endpoint: + path: /home/node/app + method: GET + data_selector: DB_HOST + params: + DB_DATABASE: notesdb + DB_PASSWORD: secret +- name: db + endpoint: + path: /var/lib/postgresql/data + method: POST + data_selector: records +- name: api + endpoint: + path: ./api + method: GET + data_selector: records +- name: client + endpoint: + path: ./client + method: GET + data_selector: records +- name: nginx + endpoint: + path: ./nginx + method: GET + data_selector: records +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: network + endpoint: + path: /networks + method: GET + data_selector: networks + params: {} +- name: volume + endpoint: + path: /volumes + method: GET + data_selector: volumes + params: {} +- name: containers + endpoint: + path: /v1/containers + method: GET + data_selector: containers + params: {} +- name: images + endpoint: + path: /v1/images + method: GET + data_selector: images + params: {} +- name: registries + endpoint: + path: /v1/registries + method: GET + data_selector: registries + params: {} +- name: container + endpoint: + path: /container + method: POST + data_selector: container_info + params: {} +- name: nginx + endpoint: + path: /nginx-1.19.2 + method: GET + data_selector: records + params: {} +- name: nginx + endpoint: + path: / + method: ADD + data_selector: files + params: {} +- name: nginx_source + endpoint: + path: /nginx-1.19.2.tar.gz + method: GET + data_selector: records +- name: rmbyext + endpoint: + path: /fhsinchy/rmbyext + method: GET +- name: hello-dock + endpoint: + path: /fhsinchy/hello-dock + method: GET +- name: postgres + endpoint: + path: /postgres + method: POST + data_selector: records + params: + POSTGRES_PASSWORD: your_password + POSTGRES_DB: your_database +- name: rmbyext + endpoint: + path: /rmbyext + method: GET +- name: notes + endpoint: + path: /api/notes + method: GET + data_selector: records +- name: users + endpoint: + path: /api/users + method: GET + data_selector: records +- name: db + environment: + POSTGRES_DB: notesdb + POSTGRES_PASSWORD: secret +- name: api + environment: + DB_HOST: db + DB_PORT: '5432' + DB_USER: postgres + DB_DATABASE: notesdb + DB_PASSWORD: secret +- name: client + networks: + - fullstack-notes-application-network-frontend +- name: nginx + networks: + - fullstack-notes-application-network-frontend + - fullstack-notes-application-network-backend + ports: + - 8080:80 +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers +- name: image + endpoint: + path: /images + method: GET + data_selector: images +- name: containers + endpoint: + path: /containers + method: GET + data_selector: containers +- name: images + endpoint: + path: /images + method: GET + data_selector: images +- name: nginx_source + endpoint: + path: /download/nginx-1.19.2.tar.gz + method: GET + data_selector: records + params: {} +- name: dockerfile + endpoint: + path: /Dockerfile + method: GET + data_selector: records +- name: database_server + endpoint: + path: /database + method: POST + data_selector: data + params: + POSTGRES_PASSWORD: your_password + POSTGRES_DB: your_database +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: notes-api + endpoint: + path: /notes-api/api + method: GET +- name: os + endpoint: + path: /os + method: GET + data_selector: systemInfo + params: {} +- name: file_operations + endpoint: + path: /api/file_operations + method: POST + data_selector: result +- name: directory_operations + endpoint: + path: /api/directory_operations + method: GET + data_selector: result +- name: db + endpoint: + path: /var/lib/postgresql/data + method: GET + data_selector: data + params: {} +- name: api + endpoint: + path: /api + method: GET + data_selector: data + params: {} +- name: client + endpoint: + path: /client + method: GET + data_selector: data + params: {} +- name: nginx + endpoint: + path: /nginx + method: GET + data_selector: data + params: {} +- name: Docker Installation + endpoint: + path: /install + method: GET + data_selector: installation_guide + params: {} +- name: Hello World Example + endpoint: + path: /hello-world + method: GET + data_selector: example_output + params: {} +- name: hello-dock + endpoint: + path: /container/run + method: POST + data_selector: output + params: {} +- name: hello-world + endpoint: + path: /container/run + method: POST + data_selector: output + params: {} +- name: create_directory + endpoint: + path: /mkdir + method: POST + data_selector: directory_creation + params: {} +- name: write_file + endpoint: + path: /writeFile + method: POST + data_selector: file_write + params: {} +- name: read_file + endpoint: + path: /readFile + method: GET + data_selector: file_read + params: {} +- name: delete_file + endpoint: + path: /unlink + method: DELETE + data_selector: file_deletion + params: {} +- name: rename_file + endpoint: + path: /rename + method: PATCH + data_selector: file_rename + params: {} +- name: read_directory + endpoint: + path: /readdir + method: GET + data_selector: directory_contents + params: {} +- name: container + endpoint: + path: /containers + method: GET + data_selector: containers + params: {} +- name: image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: root + endpoint: + path: / + method: GET + data_selector: response + params: {} +- name: about + endpoint: + path: /about + method: GET + data_selector: response + params: {} +- name: contact + endpoint: + path: /contact + method: GET + data_selector: response + params: {} +- name: error + endpoint: + path: /error + method: GET + data_selector: response + params: {} +- name: nginx_source + endpoint: + path: /${FILENAME}.${EXTENSION} + method: GET + data_selector: source_code +- name: home + endpoint: + path: / + method: GET + data_selector: homePage + params: {} +- name: style + endpoint: + path: /style.css + method: GET + data_selector: homeStyles + params: {} +- name: script + endpoint: + path: /browser-app.js + method: GET + data_selector: homeLogic + params: {} +- name: logo + endpoint: + path: /logo.svg + method: GET + data_selector: homeLogo + params: {} +- name: about + endpoint: + path: /about + method: GET + data_selector: aboutContent + params: {} +- name: '404' + endpoint: + path: /404 + method: GET + data_selector: notFoundContent + params: {} +- name: Dockerfile + endpoint: + path: /Dockerfile + method: POST + data_selector: dockerfile +- name: todo + endpoint: + path: /api/todo + method: GET + data_selector: records + params: {} +- name: postgresql + endpoint: + path: /_/ + method: GET + data_selector: records +- name: todos + endpoint: + path: /api/todos + method: POST + data_selector: todos + params: {} +- name: notes + endpoint: + path: /notes + method: GET + data_selector: records + params: {} +- name: todo + endpoint: + path: /api/todo + method: POST + data_selector: message + params: {} +- name: todo + endpoint: + path: /api/todo + method: GET + data_selector: data + params: {} +- name: todo_by_id + endpoint: + path: /api/todo/{id:guid} + method: GET + data_selector: data + params: {} +- name: todo + endpoint: + path: / + method: POST + data_selector: message + params: {} +- name: todo + endpoint: + path: /{id} + method: GET + data_selector: data + params: {} +- name: todo + endpoint: + path: /{id} + method: PUT + data_selector: message + params: {} +- name: todo + endpoint: + path: /{id} + method: DELETE + data_selector: message + params: {} +- name: todos + endpoint: + path: / + method: GET + data_selector: data + params: {} +- name: todo + endpoint: + path: /todos + method: POST + data_selector: todo + params: {} +- name: Single-File Components + endpoint: + path: /vue/single-file-components + method: GET + data_selector: components + params: {} +- name: Vue CLI + endpoint: + path: /vue/cli + method: GET + data_selector: cli + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: learning_curve + endpoint: + path: /api/learning_curve + method: GET + data_selector: results +- name: community_support + endpoint: + path: /api/community_support + method: GET + data_selector: results +- name: project_requirements + endpoint: + path: /api/project_requirements + method: GET + data_selector: results +- name: resources_for_learning + endpoint: + path: /api/resources_for_learning + method: GET + data_selector: results +- name: hello_world + endpoint: + path: / + method: GET + data_selector: Hello World! +- name: path_operations + endpoint: + path: /path + method: GET + data_selector: methods + params: {} +- name: form_submission + endpoint: + path: /submit-form + method: POST + data_selector: body + params: {} +- name: mkdir + endpoint: + path: /fs/mkdir + method: POST + data_selector: result + params: {} +- name: writeFile + endpoint: + path: /fs/writeFile + method: POST + data_selector: result + params: {} +- name: readFile + endpoint: + path: /fs/readFile + method: GET + data_selector: result + params: {} +- name: readdir + endpoint: + path: /fs/readdir + method: GET + data_selector: result + params: {} +- name: rename + endpoint: + path: /fs/rename + method: POST + data_selector: result + params: {} +- name: unlink + endpoint: + path: /fs/unlink + method: DELETE + data_selector: result + params: {} +- name: home_page + endpoint: + path: / + method: GET +- name: about_page + endpoint: + path: /about + method: GET +- name: contact_page + endpoint: + path: /contact + method: GET +- name: error_page + endpoint: + path: /error + method: GET +- name: home + endpoint: + path: / + method: GET + data_selector: html +- name: style + endpoint: + path: /style.css + method: GET + data_selector: css +- name: logo + endpoint: + path: /logo.svg + method: GET + data_selector: image +- name: script + endpoint: + path: /browser-app.js + method: GET + data_selector: javascript +- name: about + endpoint: + path: /about + method: GET + data_selector: html +- name: not_found + endpoint: + path: /404 + method: GET + data_selector: html +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: todo + endpoint: + path: /api/todo + method: GET + data_selector: records + params: {} +- name: Todos + endpoint: + path: /api/todos + method: GET + data_selector: Todos + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: todos + endpoint: + path: /api/todo + method: POST + data_selector: data +- name: todos + endpoint: + path: /api/todo + method: GET + data_selector: data +- name: todo_by_id + endpoint: + path: /api/todo/{id:guid} + method: GET + data_selector: data +- name: todos + endpoint: + path: / + method: GET + data_selector: data + params: {} +- name: todo + endpoint: + path: /{id:guid} + method: GET + data_selector: data + params: {} +- name: create_todo + endpoint: + path: / + method: POST + data_selector: message + params: {} +- name: update_todo + endpoint: + path: /{id:guid} + method: PUT + data_selector: message + params: {} +- name: delete_todo + endpoint: + path: /{id:guid} + method: DELETE + data_selector: message + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: todos + endpoint: + path: /api/todos + method: GET + data_selector: todos + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: hello_world + endpoint: + path: / + method: GET + data_selector: body + params: {} +- name: form_submission + endpoint: + path: /form + method: POST + data_selector: body + params: {} +- name: submit_form + endpoint: + path: /submit-form + method: POST + data_selector: body + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: House + endpoint: + path: /class/House + method: GET + data_selector: attributes + params: {} +- name: Ball + endpoint: + path: /class/Ball + method: GET + data_selector: attributes + params: {} +- name: Poodle + endpoint: + path: /class/Poodle + method: GET + data_selector: attributes + params: {} +- name: Truck + endpoint: + path: /class/Truck + method: GET + data_selector: attributes + params: {} +- name: Mom + endpoint: + path: /class/Mom + method: GET + data_selector: attributes + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Dog + endpoint: + path: /Dog + method: GET + data_selector: attributes + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Dog + endpoint: + path: /Dog + method: GET + data_selector: attributes +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: tuple_methods + endpoint: + path: /tutorial/datastructures.html#more-on-lists + method: GET + data_selector: records + params: {} +- name: dictionary_methods + endpoint: + path: /tutorial/datastructures.html#dictionary-methods + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: dog_instance + endpoint: + path: /dog/instance + method: POST + data_selector: instance_data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: kingdom + endpoint: + path: /kingdom + method: GET + data_selector: kingdom + params: {} +- name: species + endpoint: + path: /species + method: GET + data_selector: species + params: {} +- name: centroids + endpoint: + path: /centroids + method: GET + data_selector: centroids +- name: labels + endpoint: + path: /labels + method: GET + data_selector: labels +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: clustering_techniques + endpoint: + path: /clustering/techniques + method: GET + data_selector: records +- name: clustered_data + endpoint: + path: /services/data/vXX.X/sobjects/ClusteredData + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Elbow_Method + endpoint: + path: /Elbow_Method + method: GET + data_selector: inertia + params: {} +- name: Dog + endpoint: + path: /Dog + method: GET + data_selector: attributes + params: {} +- name: clustered_data + endpoint: + path: /services/data/vXX.X/clustering + method: POST + data_selector: results +- name: file_reading + endpoint: + path: /how-to-read-files-in-python + method: GET + data_selector: content + params: {} +- name: file_appending + endpoint: + path: /how-to-append-to-a-file-in-python + method: GET + data_selector: content + params: {} +- name: file_deletion + endpoint: + path: /how-to-delete-a-file-in-python + method: GET + data_selector: content + params: {} +- name: import_statements + endpoint: + path: /import-statements-in-python + method: GET + data_selector: content + params: {} +- name: cluster_data + endpoint: + path: /api/v1/clusters + method: GET + data_selector: data + params: + incremental: updated_at +- name: clustered_data + endpoint: + path: /services/data/vXX.X/sobjects/ClusteredData + method: GET + data_selector: records +- name: clustered_data + endpoint: + path: /services/data/vXX.X/sobjects/ClusteredData + method: GET + data_selector: records +- name: DBSCAN parameters + endpoint: + path: /dbscan/parameters + method: GET + data_selector: parameters + params: {} +- name: Elbow_Method + endpoint: + path: /elbow_method + method: GET + data_selector: inertia + params: + K: 1,2,...,10 +- name: Hierarchical_Clustering + endpoint: + path: /hierarchical_clustering + method: GET + data_selector: clusters + params: {} +- name: clustered_data + endpoint: + path: /services/data/vXX.X/sobjects/ClusteredData + method: POST + data_selector: records +- name: DBSCAN_implementation + endpoint: + path: /dbscan/implementation + method: POST + data_selector: result + params: + eps: '0.3' + min_samples: '5' +- name: synthetic_data + endpoint: + path: /generate/synthetic_data + method: POST + data_selector: data + params: + size: 100x2 +- name: kmeans_clustering + endpoint: + path: /apply/kmeans + method: POST + data_selector: results + params: + K: 4 +- name: hierarchical_clustering + endpoint: + path: /apply/hierarchical_clustering + method: POST + data_selector: results + params: + n_clusters: 7 + linkage: ward +- name: cluster_data + endpoint: + path: /api/v1/clustering + method: POST + data_selector: results + params: + K: 4 +- name: programming_concepts + endpoint: + path: /programming/concepts + method: GET + data_selector: concepts +- name: programming_languages + endpoint: + path: /programming/languages + method: GET + data_selector: languages +- name: real_world_applications + endpoint: + path: /programming/applications + method: GET + data_selector: applications +- name: synthetic_data + endpoint: + path: /data/synthetic + method: GET + data_selector: records +- name: network_outreach + endpoint: + path: /network/outreach + method: GET + data_selector: records +- name: event_meeting + endpoint: + path: /events/meeting + method: GET + data_selector: records +- name: frontend_development + endpoint: + path: /frontend-development + method: GET + data_selector: topics + params: {} +- name: backend_development + endpoint: + path: /backend-development + method: GET + data_selector: topics + params: {} +- name: curriculum + endpoint: + path: /learn + method: GET + data_selector: curriculum + params: {} +- name: interview_flow + endpoint: + path: /interview/flow + method: GET + data_selector: steps + params: {} +- name: coding_assessment + endpoint: + path: /coding/assessment + method: GET + data_selector: assessment_details + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: frontend_development + endpoint: + path: /frontend/topics + method: GET + data_selector: topics +- name: backend_development + endpoint: + path: /backend/topics + method: GET + data_selector: topics +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: data + endpoint: + path: /data + method: GET + data_selector: message + params: {} +- name: data + endpoint: + path: /api/data + method: GET + data_selector: message + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: data + endpoint: + path: /data + method: GET + data_selector: data + params: {} +- name: data + endpoint: + path: /api/data + method: GET + data_selector: message + params: {} +- name: data + endpoint: + path: /data + method: GET + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: data + endpoint: + path: /data + method: GET + data_selector: records +- name: data + endpoint: + path: /api/data + method: GET + data_selector: message + params: {} +- name: database + endpoint: + path: /database + method: GET + data_selector: records +- name: server + endpoint: + path: /server + method: GET + data_selector: records +- name: logging + endpoint: + path: /logging + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: data + endpoint: + path: /data + method: GET + data_selector: data + params: {} +- name: data + endpoint: + path: /api/data + method: GET + data_selector: message + params: {} +- name: Machine Learning in JavaScript + endpoint: + path: /ml/javascript + method: GET + data_selector: examples +- name: register + endpoint: + path: /api/auth/register + method: POST + data_selector: '' + params: {} +- name: login + endpoint: + path: /api/auth/login + method: POST + data_selector: '' + params: {} +- name: profile + endpoint: + path: /api/auth/profile + method: GET + data_selector: '' + params: {} +- name: modal + endpoint: + path: /with-pattern/modal/Modal.jsx + method: GET + data_selector: children + params: {} +- name: Accordion + endpoint: + path: /src/with-pattern/accordion/Accordion.jsx + method: GET + data_selector: children + params: {} +- name: AccordionDemo + endpoint: + path: /src/with-pattern/accordion/AccordionDemo.jsx + method: GET + data_selector: children + params: {} +- name: user_data + endpoint: + path: /user/data + method: GET + data_selector: data + params: {} +- name: data_drift_report + endpoint: + path: /data_drift/report + method: POST + data_selector: report + params: {} +- name: data_drift_metrics + endpoint: + path: /data_drift/metrics + method: GET + data_selector: metrics + params: {} +- name: database + endpoint: + path: /database + method: GET + data_selector: settings + params: {} +- name: server + endpoint: + path: /server + method: GET + data_selector: settings + params: {} +- name: logging + endpoint: + path: /logging + method: GET + data_selector: settings + params: {} +- name: train_dataset + endpoint: + path: /data/x_train_df.parquet + method: GET + data_selector: records + params: {} +- name: validation_dataset + endpoint: + path: /data/x_val_df.parquet + method: GET + data_selector: records + params: {} +- name: test_dataset + endpoint: + path: /data/x_test_df.parquet + method: GET + data_selector: records + params: {} +- name: preprocessed_train_dataset + endpoint: + path: /data/x_train_processed.parquet + method: GET + data_selector: records + params: {} +- name: preprocessed_validation_dataset + endpoint: + path: /data/x_val_processed.parquet + method: GET + data_selector: records + params: {} +- name: preprocessed_test_dataset + endpoint: + path: /data/x_test_processed.parquet + method: GET + data_selector: records + params: {} +- name: target_train_dataset + endpoint: + path: /data/y_train_df.parquet + method: GET + data_selector: records + params: {} +- name: target_validation_dataset + endpoint: + path: /data/y_val_df.parquet + method: GET + data_selector: records + params: {} +- name: target_test_dataset + endpoint: + path: /data/y_test_df.parquet + method: GET + data_selector: records + params: {} +- name: feature_names + endpoint: + path: /preprocessors/feature_names.json + method: GET + data_selector: records + params: {} +- name: model_artifact + endpoint: + path: /models/production/dfn_best.pth + method: GET + data_selector: records + params: {} +- name: inference_results + endpoint: + path: /data/dfn_inference_results.parquet + method: GET + data_selector: records + params: {} +- name: metrics + endpoint: + path: /metrics/dfn_val.json + method: GET + data_selector: records + params: {} +- name: shap_mean_abs + endpoint: + path: /reports/dfn_shap_mean_abs.json + method: GET + data_selector: records + params: {} +- name: shap_summary + endpoint: + path: /reports/dfn_shap_summary.json + method: GET + data_selector: records + params: {} +- name: raw_shap_values + endpoint: + path: /reports/dfn_raw_shap_values.parquet + method: GET + data_selector: records + params: {} +- name: metrics + endpoint: + path: /metrics/dfn_risk_fairness.json + method: GET + data_selector: metrics + params: {} +- name: etl_pipeline + endpoint: + path: src/data_handling/etl_pipeline.py + method: python + data_selector: original_df.parquet + params: {} +- name: data_drift_check + endpoint: + path: src/data_handling/data_drift_check.py + method: python + data_selector: data_drift_results.parquet + params: {} +- name: etl_pipeline + endpoint: + path: /services/data/vXX.X/sobjects/etl_pipeline + method: GET + data_selector: records +- name: data_drift_check + endpoint: + path: /services/data/vXX.X/sobjects/data_drift_check + method: GET + data_selector: records +- name: preprocess + endpoint: + path: /services/data/vXX.X/sobjects/preprocess + method: GET + data_selector: records +- name: train_dataset + endpoint: + path: /data/x_train_df.parquet + method: GET + data_selector: records +- name: val_dataset + endpoint: + path: /data/x_val_df.parquet + method: GET + data_selector: records +- name: test_dataset + endpoint: + path: /data/x_test_df.parquet + method: GET + data_selector: records +- name: register + endpoint: + path: /api/auth/register + method: POST + data_selector: message + params: {} +- name: login + endpoint: + path: /api/auth/login + method: POST + data_selector: token + params: {} +- name: profile + endpoint: + path: /api/auth/profile + method: GET + data_selector: user + params: {} +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: POST + data_selector: metrics + params: + inference_file_path: data/dfn_inference_results_${params.stockcode}.parquet + metrics_output_path: metrics/dfn_risk_fairness_${params.stockcode}.json + sensitive_feature_col: ${tracking.sensitive_feature_col} + stockcode: ${params.stockcode} + privileged_group: ${tracking.privileged_group} + mod_threshold: ${tracking.mod_threshold} +- name: modal + endpoint: + path: /with-pattern/modal/Modal + method: GET + data_selector: children +- name: Accordion + endpoint: + path: /src/with-pattern/accordion/Accordion.jsx + method: GET + data_selector: children + params: {} +- name: AccordionDemo + endpoint: + path: /src/with-pattern/accordion/AccordionDemo.jsx + method: GET + data_selector: children + params: {} +- name: data_drift_report + endpoint: + path: /api/v1/data_drift/report + method: POST + data_selector: report + params: {} +- name: metrics_data_drift + endpoint: + path: /api/v1/data_drift/metrics + method: GET + data_selector: metrics + params: {} +- name: data_drift_report + endpoint: + path: /reports/data_drift_report + method: GET + data_selector: reports + params: {} +- name: data_drift_metrics + endpoint: + path: /metrics/data_drift + method: GET + data_selector: metrics + params: {} +- name: data_drift_report + endpoint: + path: /data_drift/report + method: POST + data_selector: report + params: {} +- name: data_drift_metrics + endpoint: + path: /data_drift/metrics + method: GET + data_selector: metrics + params: {} +- name: train_data + endpoint: + path: /data/x_train_df.parquet + method: GET + data_selector: records +- name: val_data + endpoint: + path: /data/x_val_df.parquet + method: GET + data_selector: records +- name: test_data + endpoint: + path: /data/x_test_df.parquet + method: GET + data_selector: records +- name: y_train_data + endpoint: + path: /data/y_train_df.parquet + method: GET + data_selector: records +- name: y_val_data + endpoint: + path: /data/y_val_df.parquet + method: GET + data_selector: records +- name: y_test_data + endpoint: + path: /data/y_test_df.parquet + method: GET + data_selector: records +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: POST + data_selector: metrics + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: x_train + endpoint: + path: data/x_train_df.parquet + method: GET + data_selector: '' + params: {} +- name: x_val + endpoint: + path: data/x_val_df.parquet + method: GET + data_selector: '' + params: {} +- name: x_test + endpoint: + path: data/x_test_df.parquet + method: GET + data_selector: '' + params: {} +- name: y_train + endpoint: + path: data/y_train_df.parquet + method: GET + data_selector: '' + params: {} +- name: y_val + endpoint: + path: data/y_val_df.parquet + method: GET + data_selector: '' + params: {} +- name: y_test + endpoint: + path: data/y_test_df.parquet + method: GET + data_selector: '' + params: {} +- name: feature_names + endpoint: + path: preprocessors/feature_names.json + method: GET + data_selector: '' + params: {} +- name: preprocessor + endpoint: + path: preprocessors/column_transformer.pkl + method: GET + data_selector: '' + params: {} +- name: dfn_best_model + endpoint: + path: models/production/dfn_best.pth + method: GET + data_selector: '' + params: {} +- name: dfn_inference_results + endpoint: + path: data/dfn_inference_results.parquet + method: GET + data_selector: '' + params: {} +- name: dfn_inf_metrics + endpoint: + path: metrics/dfn_inf.json + method: GET + data_selector: '' + params: {} +- name: dfn_shap_mean_abs + endpoint: + path: reports/dfn_shap_mean_abs.json + method: GET + data_selector: '' + params: {} +- name: dfn_raw_shap_values + endpoint: + path: reports/dfn_raw_shap_values.parquet + method: GET + data_selector: '' + params: {} +- name: dfn_shap_summary + endpoint: + path: reports/dfn_shap_summary.json + method: GET + data_selector: '' + params: {} +- name: x_train_processed + endpoint: + path: data/x_train_processed.parquet +- name: x_val_processed + endpoint: + path: data/x_val_processed.parquet +- name: x_test_processed + endpoint: + path: data/x_test_processed.parquet +- name: column_transformer + endpoint: + path: preprocessors/column_transformer.pkl +- name: feature_names + endpoint: + path: preprocessors/feature_names.json +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: POST + data_selector: metrics + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: POST + data_selector: data + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: POST + data_selector: data + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: POST + data_selector: data + params: {} +- name: etl_pipeline + endpoint: + path: src/data_handling/etl_pipeline.py + method: python + data_selector: outputs + params: {} +- name: data_drift_check + endpoint: + path: src/data_handling/data_drift_check.py + method: python + data_selector: outputs + params: {} +- name: tune_primary_model + endpoint: + path: src/model/torch_model/main.py + method: python + data_selector: tune_and_train + params: + n_trials: 100 + num_epochs: 3000 + should_local_save: false + grid: false +- name: etl_pipeline + endpoint: + path: /services/data/vXX.X/sobjects/ETLPipeline + method: GET + data_selector: records +- name: data_drift_check + endpoint: + path: /services/data/vXX.X/sobjects/DataDriftCheck + method: GET + data_selector: records +- name: preprocess + endpoint: + path: /services/data/vXX.X/sobjects/Preprocess + method: GET + data_selector: records +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: Python + data_selector: outputs + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: Python + data_selector: outputs + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: Python + data_selector: outputs + params: {} +- name: train_dataset + endpoint: + path: /data/x_train_df.parquet + method: GET + data_selector: records +- name: val_dataset + endpoint: + path: /data/x_val_df.parquet + method: GET + data_selector: records +- name: test_dataset + endpoint: + path: /data/x_test_df.parquet + method: GET + data_selector: records +- name: train_target + endpoint: + path: /data/y_train_df.parquet + method: GET + data_selector: records +- name: val_target + endpoint: + path: /data/y_val_df.parquet + method: GET + data_selector: records +- name: test_target + endpoint: + path: /data/y_test_df.parquet + method: GET + data_selector: records +- name: inference_results + endpoint: + path: /data/dfn_inference_results_${params.stockcode}.parquet + method: GET + data_selector: results + params: {} +- name: validation_metrics + endpoint: + path: /metrics/dfn_val_${params.stockcode}.json + method: GET + data_selector: metrics + params: {} +- name: shap_mean_abs + endpoint: + path: /reports/dfn_shap_mean_abs_${params.stockcode}.json + method: GET + data_selector: mean_abs_shap + params: {} +- name: shap_summary + endpoint: + path: /reports/dfn_shap_summary_${params.stockcode}.json + method: GET + data_selector: summary + params: {} +- name: shap_raw_values + endpoint: + path: /reports/dfn_raw_shap_values_${params.stockcode}.parquet + method: GET + data_selector: raw_shap + params: {} +- name: data_drift_report + endpoint: + path: /data_drift_report + method: POST + data_selector: metrics + params: + stockcode: +- name: metrics + endpoint: + path: /metrics/dfn_risk_fairness.json + method: GET + data_selector: metrics + params: {} +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: GET + data_selector: records + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: GET + data_selector: records + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: etl_pipeline + endpoint: + path: /services/data/vXX.X/sobjects/etl_pipeline + method: POST + data_selector: records + params: {} +- name: data_drift_check + endpoint: + path: /services/data/vXX.X/sobjects/data_drift_check + method: POST + data_selector: records + params: {} +- name: preprocess + endpoint: + path: /services/data/vXX.X/sobjects/preprocess + method: POST + data_selector: records + params: {} +- name: assess_model_risk + endpoint: + path: src/model/torch_model/assess_risk_and_fairness.py + method: POST + data_selector: metrics + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: x_train_processed + endpoint: + path: data/x_train_processed.parquet +- name: x_val_processed + endpoint: + path: data/x_val_processed.parquet +- name: x_test_processed + endpoint: + path: data/x_test_processed.parquet +- name: column_transformer + endpoint: + path: preprocessors/column_transformer.pkl +- name: feature_names + endpoint: + path: preprocessors/feature_names.json +- name: train_data + endpoint: + path: data/x_train_df.parquet + method: GET + data_selector: records + params: {} +- name: val_data + endpoint: + path: data/x_val_df.parquet + method: GET + data_selector: records + params: {} +- name: test_data + endpoint: + path: data/x_test_df.parquet + method: GET + data_selector: records + params: {} +- name: y_train_data + endpoint: + path: data/y_train_df.parquet + method: GET + data_selector: records + params: {} +- name: y_val_data + endpoint: + path: data/y_val_df.parquet + method: GET + data_selector: records + params: {} +- name: y_test_data + endpoint: + path: data/y_test_df.parquet + method: GET + data_selector: records + params: {} +- name: inference_primary_model + endpoint: + path: /src/model/torch_model/inference.py + method: GET + data_selector: metrics + params: {} +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: GET + data_selector: records +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: GET + data_selector: records +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: GET + data_selector: records +- name: x_train + endpoint: + path: data/x_train_df.parquet + method: GET + data_selector: records +- name: x_val + endpoint: + path: data/x_val_df.parquet + method: GET + data_selector: records +- name: x_test + endpoint: + path: data/x_test_df.parquet + method: GET + data_selector: records +- name: y_train + endpoint: + path: data/y_train_df.parquet + method: GET + data_selector: records +- name: y_val + endpoint: + path: data/y_val_df.parquet + method: GET + data_selector: records +- name: y_test + endpoint: + path: data/y_test_df.parquet + method: GET + data_selector: records +- name: x_train_processed + endpoint: + path: data/x_train_processed.parquet + method: GET + data_selector: records +- name: x_val_processed + endpoint: + path: data/x_val_processed.parquet + method: GET + data_selector: records +- name: x_test_processed + endpoint: + path: data/x_test_processed.parquet + method: GET + data_selector: records +- name: feature_names + endpoint: + path: preprocessors/feature_names.json + method: GET + data_selector: records +- name: preprocessor + endpoint: + path: preprocessors/column_transformer.pkl + method: GET + data_selector: records +- name: data_summary_metrics + endpoint: + path: metrics/data.json + method: GET + data_selector: records +- name: training_data + endpoint: + path: /data/x_train_df.parquet + method: GET + data_selector: records +- name: validation_data + endpoint: + path: /data/x_val_df.parquet + method: GET + data_selector: records +- name: test_data + endpoint: + path: /data/x_test_df.parquet + method: GET + data_selector: records +- name: params + endpoint: + path: params.yaml + method: GET + data_selector: params + params: {} +- name: assess_model_risk + endpoint: + path: src/model/torch_model/assess_risk_and_fairness.py + method: python + data_selector: metrics + params: + inference_file_path: data/dfn_inference_results_${params.stockcode}.parquet + metrics_output_path: metrics/dfn_risk_fairness_${params.stockcode}.json + sensitive_feature_col: ${tracking.sensitive_feature_col} + stockcode: ${params.stockcode} + privileged_group: ${tracking.privileged_group} + mod_threshold: ${tracking.mod_threshold} +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: POST + data_selector: data + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: POST + data_selector: data + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: POST + data_selector: data + params: {} +- name: tracking_metrics + endpoint: + path: /path/to/tracking/metrics + method: GET + data_selector: metrics + params: {} +- name: inference_results + endpoint: + path: /data/dfn_inference_results_${params.stockcode}.parquet + method: GET + data_selector: records + params: {} +- name: validation_metrics + endpoint: + path: /metrics/dfn_val_${params.stockcode}.json + method: GET + data_selector: records + params: {} +- name: shap_mean_abs + endpoint: + path: /reports/dfn_shap_mean_abs_${params.stockcode}.json + method: GET + data_selector: records + params: {} +- name: shap_summary + endpoint: + path: /reports/dfn_shap_summary_${params.stockcode}.json + method: GET + data_selector: records + params: {} +- name: shap_raw_values + endpoint: + path: /reports/dfn_raw_shap_values_${params.stockcode}.parquet + method: GET + data_selector: records + params: {} +- name: train_dataset + endpoint: + path: /data/x_train_df.parquet + method: GET + data_selector: records +- name: val_dataset + endpoint: + path: /data/x_val_df.parquet + method: GET + data_selector: records +- name: test_dataset + endpoint: + path: /data/x_test_df.parquet + method: GET + data_selector: records +- name: train_target + endpoint: + path: /data/y_train_df.parquet + method: GET + data_selector: records +- name: val_target + endpoint: + path: /data/y_val_df.parquet + method: GET + data_selector: records +- name: test_target + endpoint: + path: /data/y_test_df.parquet + method: GET + data_selector: records +- name: metrics + endpoint: + path: metrics/dfn_risk_fairness_${params.stockcode}.json + method: GET + data_selector: metrics + params: {} +- name: etl_pipeline + endpoint: + path: /services/data/vXX.X/sobjects/etl_pipeline + method: GET + data_selector: records +- name: data_drift_check + endpoint: + path: /services/data/vXX.X/sobjects/data_drift_check + method: GET + data_selector: records +- name: preprocess + endpoint: + path: /services/data/vXX.X/sobjects/preprocess + method: GET + data_selector: records +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: POST + data_selector: output + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: POST + data_selector: output + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: POST + data_selector: output + params: {} +- name: train_dataset + endpoint: + path: /data/x_train_df.parquet + method: GET + data_selector: records +- name: validation_dataset + endpoint: + path: /data/x_val_df.parquet + method: GET + data_selector: records +- name: test_dataset + endpoint: + path: /data/x_test_df.parquet + method: GET + data_selector: records +- name: target_train_dataset + endpoint: + path: /data/y_train_df.parquet + method: GET + data_selector: records +- name: target_validation_dataset + endpoint: + path: /data/y_val_df.parquet + method: GET + data_selector: records +- name: target_test_dataset + endpoint: + path: /data/y_test_df.parquet + method: GET + data_selector: records +- name: preprocessor + endpoint: + path: /preprocessors/column_transformer.pkl + method: GET + data_selector: records +- name: feature_names + endpoint: + path: /preprocessors/feature_names.json + method: GET + data_selector: records +- name: model_artifact + endpoint: + path: /models/production/dfn_best.pth + method: GET + data_selector: records +- name: validation_metrics + endpoint: + path: /metrics/dfn_val.json + method: GET + data_selector: records +- name: x_train_df + endpoint: + path: data/x_train_df.parquet + method: GET + data_selector: data + params: {} +- name: x_val_df + endpoint: + path: data/x_val_df.parquet + method: GET + data_selector: data + params: {} +- name: x_test_df + endpoint: + path: data/x_test_df.parquet + method: GET + data_selector: data + params: {} +- name: y_train_df + endpoint: + path: data/y_train_df.parquet + method: GET + data_selector: data + params: {} +- name: y_val_df + endpoint: + path: data/y_val_df.parquet + method: GET + data_selector: data + params: {} +- name: y_test_df + endpoint: + path: data/y_test_df.parquet + method: GET + data_selector: data + params: {} +- name: dfn_best_model + endpoint: + path: models/production/dfn_best_${params.stockcode}.pth + method: GET + data_selector: data + params: {} +- name: dfn_inf_metrics + endpoint: + path: metrics/dfn_inf_${params.stockcode}.json + method: GET + data_selector: data + params: {} +- name: dfn_shap_mean_abs + endpoint: + path: reports/dfn_shap_mean_abs_${params.stockcode}.json + method: GET + data_selector: data + params: {} +- name: dfn_raw_shap_values + endpoint: + path: reports/dfn_raw_shap_values_${params.stockcode}.parquet + method: GET + data_selector: data + params: {} +- name: inference_primary_model + endpoint: + path: python/src/model/torch_model/inference.py + method: cmd + data_selector: metrics + params: + params: + - params.stockcode + - tracking.sensitive_feature_col + - tracking.privileged_group +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: POST + data_selector: metrics + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: inference_results + endpoint: + path: /inference/results + method: POST + data_selector: metrics + params: {} +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: GET + data_selector: records + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: GET + data_selector: records + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: GET + data_selector: records + params: {} +- name: inference_results + endpoint: + path: /data/dfn_inference_results_${params.stockcode}.parquet + method: GET + data_selector: results +- name: validation_metrics + endpoint: + path: /metrics/dfn_val_${params.stockcode}.json + method: GET + data_selector: metrics +- name: assess_model_risk + endpoint: + path: src/model/torch_model/assess_risk_and_fairness.py + method: GET + data_selector: '' + params: {} +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: GET + data_selector: records +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: GET + data_selector: records +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: GET + data_selector: records +- name: x_train + endpoint: + path: data/x_train_df.parquet + method: GET + data_selector: records + params: {} +- name: x_val + endpoint: + path: data/x_val_df.parquet + method: GET + data_selector: records + params: {} +- name: x_test + endpoint: + path: data/x_test_df.parquet + method: GET + data_selector: records + params: {} +- name: y_train + endpoint: + path: data/y_train_df.parquet + method: GET + data_selector: records + params: {} +- name: y_val + endpoint: + path: data/y_val_df.parquet + method: GET + data_selector: records + params: {} +- name: y_test + endpoint: + path: data/y_test_df.parquet + method: GET + data_selector: records + params: {} +- name: feature_names + endpoint: + path: preprocessors/feature_names.json + method: GET + data_selector: records + params: {} +- name: model_metrics + endpoint: + path: metrics/dfn_val.json + method: GET + data_selector: records + params: {} +- name: shap_mean_abs + endpoint: + path: reports/dfn_shap_mean_abs.json + method: GET + data_selector: records + params: {} +- name: shap_summary + endpoint: + path: reports/dfn_shap_summary.json + method: GET + data_selector: records + params: {} +- name: shap_raw + endpoint: + path: reports/dfn_raw_shap_values.parquet + method: GET + data_selector: records + params: {} +- name: assess_model_risk + endpoint: + path: /assess_model_risk + method: POST + data_selector: metrics + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: tracking_metrics + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: POST + data_selector: metrics + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: x_train + endpoint: + path: data/x_train_df.parquet + method: GET + data_selector: '' + params: {} +- name: x_val + endpoint: + path: data/x_val_df.parquet + method: GET + data_selector: '' + params: {} +- name: x_test + endpoint: + path: data/x_test_df.parquet + method: GET + data_selector: '' + params: {} +- name: y_train + endpoint: + path: data/y_train_df.parquet + method: GET + data_selector: '' + params: {} +- name: y_val + endpoint: + path: data/y_val_df.parquet + method: GET + data_selector: '' + params: {} +- name: y_test + endpoint: + path: data/y_test_df.parquet + method: GET + data_selector: '' + params: {} +- name: x_train_processed + endpoint: + path: data/x_train_processed.parquet + method: GET + data_selector: '' + params: {} +- name: x_val_processed + endpoint: + path: data/x_val_processed.parquet + method: GET + data_selector: '' + params: {} +- name: x_test_processed + endpoint: + path: data/x_test_processed.parquet + method: GET + data_selector: '' + params: {} +- name: feature_names + endpoint: + path: preprocessors/feature_names.json + method: GET + data_selector: '' + params: {} +- name: preprocessor + endpoint: + path: preprocessors/column_transformer.pkl + method: GET + data_selector: '' + params: {} +- name: data_drift_report + endpoint: + path: /data/drift/report + method: GET + data_selector: report + params: {} +- name: data_drift_metrics + endpoint: + path: /data/drift/metrics + method: GET + data_selector: metrics + params: {} +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: POST + data_selector: metrics + params: + tracking.sensitive_feature_col: is_registered + tracking.privileged_group: 1 + tracking.mod_threshold: 0.1 +- name: etl_pipeline + endpoint: + path: /services/data/vXX.X/sobjects/ETLPipeline + method: GET + data_selector: records +- name: data_drift_check + endpoint: + path: /services/data/vXX.X/sobjects/DataDriftCheck + method: GET + data_selector: records +- name: preprocess + endpoint: + path: /services/data/vXX.X/sobjects/Preprocess + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: GET + data_selector: metrics + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: train_datasets + endpoint: + path: /data/x_train_df.parquet + method: GET +- name: val_datasets + endpoint: + path: /data/x_val_df.parquet + method: GET +- name: test_datasets + endpoint: + path: /data/x_test_df.parquet + method: GET +- name: preprocessed_train_datasets + endpoint: + path: /data/x_train_processed.parquet + method: GET +- name: preprocessed_val_datasets + endpoint: + path: /data/x_val_processed.parquet + method: GET +- name: preprocessed_test_datasets + endpoint: + path: /data/x_test_processed.parquet + method: GET +- name: target_variables_train + endpoint: + path: /data/y_train_df.parquet + method: GET +- name: target_variables_val + endpoint: + path: /data/y_val_df.parquet + method: GET +- name: target_variables_test + endpoint: + path: /data/y_test_df.parquet + method: GET +- name: feature_names + endpoint: + path: /preprocessors/feature_names.json + method: GET +- name: model_artifacts + endpoint: + path: /models/production/dfn_best.pth + method: GET +- name: inference_results + endpoint: + path: /data/dfn_inference_results.parquet + method: GET +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: POST + data_selector: data + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: POST + data_selector: data + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: POST + data_selector: data + params: {} +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: GET + data_selector: metrics + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: train_validation_test_datasets + endpoint: + path: /data/datasets + method: GET + data_selector: datasets + params: {} +- name: model_metrics + endpoint: + path: /metrics + method: GET + data_selector: metrics + params: {} +- name: shap_values + endpoint: + path: /shap/values + method: GET + data_selector: shap_values + params: {} +- name: metrics + endpoint: + path: /metrics/dfn_risk_fairness.json + method: GET + data_selector: metrics +- name: etl_pipeline + endpoint: + path: /services/data/vXX.X/sobjects/etl_pipeline + method: GET + data_selector: records +- name: data_drift_check + endpoint: + path: /services/data/vXX.X/sobjects/data_drift_check + method: GET + data_selector: records +- name: preprocess + endpoint: + path: /services/data/vXX.X/sobjects/preprocess + method: GET + data_selector: records +- name: metrics + endpoint: + path: /calculate_fairness_metrics + method: POST + data_selector: metrics + params: + sensitive_feature_col: sensitive_feature_col + label_col: y_true + prediction_col: y_pred + privileged_group: privileged_group + mod_threshold: mod_threshold +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: GET + data_selector: records + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: GET + data_selector: records + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: GET + data_selector: records + params: {} +- name: train_dataset + endpoint: + path: /datasets/train + method: GET + data_selector: data + params: {} +- name: val_dataset + endpoint: + path: /datasets/val + method: GET + data_selector: data + params: {} +- name: test_dataset + endpoint: + path: /datasets/test + method: GET + data_selector: data + params: {} +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: POST + data_selector: metrics + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: inference_results + endpoint: + path: /data/dfn_inference_results_${params.stockcode}.parquet + method: GET + data_selector: results + params: {} +- name: validation_metrics + endpoint: + path: /metrics/dfn_val_${params.stockcode}.json + method: GET + data_selector: metrics + params: {} +- name: shap_mean_abs + endpoint: + path: /reports/dfn_shap_mean_abs_${params.stockcode}.json + method: GET + data_selector: mean_abs_shap + params: {} +- name: shap_summary + endpoint: + path: /reports/dfn_shap_summary_${params.stockcode}.json + method: GET + data_selector: shap_summary + params: {} +- name: shap_raw_values + endpoint: + path: /reports/dfn_raw_shap_values_${params.stockcode}.parquet + method: GET + data_selector: raw_shap_values + params: {} +- name: etl_pipeline + endpoint: + path: /api/v1/etl_pipeline + method: POST + data_selector: data + params: {} +- name: data_drift_check + endpoint: + path: /api/v1/data_drift_check + method: POST + data_selector: data + params: {} +- name: preprocess + endpoint: + path: /api/v1/preprocess + method: POST + data_selector: data + params: {} +- name: assess_model_risk + endpoint: + path: /model/torch_model/assess_risk_and_fairness.py + method: GET + data_selector: metrics + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: etl_pipeline + endpoint: + path: /services/data/vXX.X/sobjects/etl_pipeline + method: GET + data_selector: records + params: {} +- name: data_drift_check + endpoint: + path: /services/data/vXX.X/sobjects/data_drift_check + method: GET + data_selector: records + params: {} +- name: data_metrics + endpoint: + path: /data.json + method: GET + data_selector: metrics + params: {} +- name: x_train + endpoint: + path: data/x_train_df.parquet + method: GET + data_selector: data + params: {} +- name: x_val + endpoint: + path: data/x_val_df.parquet + method: GET + data_selector: data + params: {} +- name: x_test + endpoint: + path: data/x_test_df.parquet + method: GET + data_selector: data + params: {} +- name: y_train + endpoint: + path: data/y_train_df.parquet + method: GET + data_selector: data + params: {} +- name: y_val + endpoint: + path: data/y_val_df.parquet + method: GET + data_selector: data + params: {} +- name: y_test + endpoint: + path: data/y_test_df.parquet + method: GET + data_selector: data + params: {} +- name: feature_names + endpoint: + path: preprocessors/feature_names.json + method: GET + data_selector: data + params: {} +- name: model_artifact + endpoint: + path: models/production/dfn_best.pth + method: GET + data_selector: data + params: {} +- name: metrics + endpoint: + path: metrics/dfn_val.json + method: GET + data_selector: data + params: {} +- name: metrics + endpoint: + path: /metrics/dfn_risk_fairness_${params.stockcode}.json + method: GET + data_selector: records +- name: metrics_output + endpoint: + path: /metrics/dfn_risk_fairness.json + method: GET + data_selector: metrics + params: {} +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: GET + data_selector: records + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: GET + data_selector: records + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: GET + data_selector: records + params: {} +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: RUN + data_selector: output + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: RUN + data_selector: output + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: RUN + data_selector: output + params: {} +- name: dvc_metrics + endpoint: + path: /metrics/data.json + method: GET + data_selector: metrics +- name: model_inference + endpoint: + path: /metrics/dfn_inf.json + method: GET + data_selector: inference_metrics +- name: assess_model_risk + endpoint: + path: /services/data/vXX.X/sobjects/AssessModelRisk + method: POST + data_selector: metrics + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: train_dataset + endpoint: + path: /data/x_train_df.parquet + method: GET + data_selector: data + params: {} +- name: val_dataset + endpoint: + path: /data/x_val_df.parquet + method: GET + data_selector: data + params: {} +- name: test_dataset + endpoint: + path: /data/x_test_df.parquet + method: GET + data_selector: data + params: {} +- name: train_target + endpoint: + path: /data/y_train_df.parquet + method: GET + data_selector: data + params: {} +- name: val_target + endpoint: + path: /data/y_val_df.parquet + method: GET + data_selector: data + params: {} +- name: test_target + endpoint: + path: /data/y_test_df.parquet + method: GET + data_selector: data + params: {} +- name: preprocessor + endpoint: + path: /preprocessors/column_transformer.pkl + method: GET + data_selector: data + params: {} +- name: feature_names + endpoint: + path: /preprocessors/feature_names.json + method: GET + data_selector: data + params: {} +- name: model_artifact + endpoint: + path: /models/production/dfn_best.pth + method: GET + data_selector: data + params: {} +- name: metrics + endpoint: + path: /metrics/dfn_inf.json + method: GET + data_selector: data + params: {} +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: GET + data_selector: metrics + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: train_dataset + endpoint: + path: /data/x_train_df.parquet + method: GET + data_selector: records +- name: val_dataset + endpoint: + path: /data/x_val_df.parquet + method: GET + data_selector: records +- name: test_dataset + endpoint: + path: /data/x_test_df.parquet + method: GET + data_selector: records +- name: y_train_dataset + endpoint: + path: /data/y_train_df.parquet + method: GET + data_selector: records +- name: y_val_dataset + endpoint: + path: /data/y_val_df.parquet + method: GET + data_selector: records +- name: y_test_dataset + endpoint: + path: /data/y_test_df.parquet + method: GET + data_selector: records +- name: preprocessor + endpoint: + path: /preprocessors/column_transformer.pkl + method: GET + data_selector: records +- name: feature_names + endpoint: + path: /preprocessors/feature_names.json + method: GET + data_selector: records +- name: model_artifact + endpoint: + path: /models/production/dfn_best.pth + method: GET + data_selector: records +- name: metrics_validation + endpoint: + path: /metrics/dfn_val.json + method: GET + data_selector: records +- name: metrics_inference + endpoint: + path: /metrics/dfn_inf.json + method: GET + data_selector: records +- name: shap_mean_abs + endpoint: + path: /reports/dfn_shap_mean_abs.json + method: GET + data_selector: records +- name: shap_summary + endpoint: + path: /reports/dfn_shap_summary.json + method: GET + data_selector: records +- name: shap_raw_values + endpoint: + path: /reports/dfn_raw_shap_values.parquet + method: GET + data_selector: records +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: POST + data_selector: output_files + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: POST + data_selector: drift_report + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: POST + data_selector: processed_datasets + params: {} +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: GET + data_selector: metrics + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: x_train_df + endpoint: + path: data/x_train_df.parquet + method: GET + data_selector: data + params: {} +- name: x_val_df + endpoint: + path: data/x_val_df.parquet + method: GET + data_selector: data + params: {} +- name: x_test_df + endpoint: + path: data/x_test_df.parquet + method: GET + data_selector: data + params: {} +- name: y_train_df + endpoint: + path: data/y_train_df.parquet + method: GET + data_selector: data + params: {} +- name: y_val_df + endpoint: + path: data/y_val_df.parquet + method: GET + data_selector: data + params: {} +- name: y_test_df + endpoint: + path: data/y_test_df.parquet + method: GET + data_selector: data + params: {} +- name: dfn_best_model + endpoint: + path: models/production/dfn_best.pth + method: GET + data_selector: data + params: {} +- name: dfn_inf_metrics + endpoint: + path: metrics/dfn_inf.json + method: GET + data_selector: data + params: {} +- name: dfn_shap_mean_abs + endpoint: + path: reports/dfn_shap_mean_abs.json + method: GET + data_selector: data + params: {} +- name: dfn_raw_shap_values + endpoint: + path: reports/dfn_raw_shap_values.parquet + method: GET + data_selector: data + params: {} +- name: etl_pipeline + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: data_drift_check + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: preprocess + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: risk_fairness_metrics + endpoint: + path: /metrics/dfn_risk_fairness.json + method: GET + data_selector: metrics +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline + method: GET + data_selector: records +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift + method: GET + data_selector: records +- name: preprocess + endpoint: + path: /src/data_handling/preprocess + method: GET + data_selector: records +- name: x_train_df + endpoint: + path: data/x_train_df.parquet + method: GET + data_selector: '' + params: {} +- name: x_val_df + endpoint: + path: data/x_val_df.parquet + method: GET + data_selector: '' + params: {} +- name: x_test_df + endpoint: + path: data/x_test_df.parquet + method: GET + data_selector: '' + params: {} +- name: y_train_df + endpoint: + path: data/y_train_df.parquet + method: GET + data_selector: '' + params: {} +- name: y_val_df + endpoint: + path: data/y_val_df.parquet + method: GET + data_selector: '' + params: {} +- name: y_test_df + endpoint: + path: data/y_test_df.parquet + method: GET + data_selector: '' + params: {} +- name: feature_names + endpoint: + path: preprocessors/feature_names.json + method: GET + data_selector: '' + params: {} +- name: dfn_best_model + endpoint: + path: models/production/dfn_best.pth + method: GET + data_selector: '' + params: {} +- name: dfn_val_metrics + endpoint: + path: metrics/dfn_val.json + method: GET + data_selector: '' + params: {} +- name: dfn_inf_metrics + endpoint: + path: metrics/dfn_inf.json + method: GET + data_selector: '' + params: {} +- name: inference_results + endpoint: + path: /data/dfn_inference_results_${params.stockcode}.parquet + method: GET + data_selector: results +- name: validation_metrics + endpoint: + path: /metrics/dfn_val_${params.stockcode}.json + method: GET + data_selector: metrics +- name: shap_mean_abs + endpoint: + path: /reports/dfn_shap_mean_abs_${params.stockcode}.json + method: GET + data_selector: mean_abs +- name: shap_summary + endpoint: + path: /reports/dfn_shap_summary_${params.stockcode}.json + method: GET + data_selector: summary +- name: shap_raw_values + endpoint: + path: /reports/dfn_raw_shap_values_${params.stockcode}.parquet + method: GET + data_selector: raw_values +- name: etl_pipeline + endpoint: + path: /services/data/vXX.X/sobjects/etl_pipeline + method: GET + data_selector: records +- name: data_drift_check + endpoint: + path: /services/data/vXX.X/sobjects/data_drift_check + method: GET + data_selector: records +- name: preprocess + endpoint: + path: /services/data/vXX.X/sobjects/preprocess + method: GET + data_selector: records +- name: assess_model_risk + endpoint: + path: /assess_model_risk + method: POST + data_selector: metrics + params: {} +- name: preprocessed_data + endpoint: + path: /data + method: GET + data_selector: records + params: {} +- name: metrics + endpoint: + path: /metrics + method: GET + data_selector: records + params: {} +- name: model_predictions + endpoint: + path: /api/predict + method: POST + data_selector: predictions + params: {} +- name: sklearn_model + endpoint: + path: /src/model/sklearn_model/scripts/tuning.py + method: POST + data_selector: results + params: + incremental: n_calls +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: GET + data_selector: '' + params: {} +- name: lambda_function + endpoint: + path: /invoke-lambda + method: POST + data_selector: result + params: {} +- name: model_inference + endpoint: + path: /model-inference + method: POST + data_selector: prediction + params: {} +- name: tuning + endpoint: + path: src/model/sklearn_model/scripts/tuning.py + method: N/A + data_selector: N/A + params: {} +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: POST + data_selector: output + params: {} +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: POST + data_selector: output + params: {} +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: POST + data_selector: output + params: {} +- name: predict_price + endpoint: + path: /v1/predict-price/ + method: GET + data_selector: results + params: {} +- name: train_data + endpoint: + path: /data/x_train_df.parquet + method: GET + data_selector: records +- name: val_data + endpoint: + path: /data/x_val_df.parquet + method: GET + data_selector: records +- name: test_data + endpoint: + path: /data/x_test_df.parquet + method: GET + data_selector: records +- name: target_data_train + endpoint: + path: /data/y_train_df.parquet + method: GET + data_selector: records +- name: target_data_val + endpoint: + path: /data/y_val_df.parquet + method: GET + data_selector: records +- name: target_data_test + endpoint: + path: /data/y_test_df.parquet + method: GET + data_selector: records +- name: model_artifact + endpoint: + path: /models/production/dfn_best.pth + method: GET + data_selector: records +- name: metrics + endpoint: + path: /metrics/dfn_val.json + method: GET + data_selector: records +- name: shap_mean_abs + endpoint: + path: /reports/dfn_shap_mean_abs.json + method: GET + data_selector: records +- name: inference_results + endpoint: + path: /data/dfn_inference_results_${params.stockcode}.parquet + method: GET + data_selector: records +- name: ai_pricing + endpoint: + path: /api/ai_pricing + method: POST + data_selector: results + params: {} +- name: assess_model_risk + endpoint: + path: src/model/torch_model/assess_risk_and_fairness.py + method: python + data_selector: null + params: + inference_file_path: data/dfn_inference_results_${params.stockcode}.parquet + metrics_output_path: metrics/dfn_risk_fairness_${params.stockcode}.json + sensitive_feature_col: ${tracking.sensitive_feature_col} + stockcode: ${params.stockcode} + privileged_group: ${tracking.privileged_group} + mod_threshold: ${tracking.mod_threshold} +- name: train_data_loader + endpoint: + path: /create_torch_data_loader + method: POST + data_selector: train_data_loader +- name: val_data_loader + endpoint: + path: /create_torch_data_loader + method: POST + data_selector: val_data_loader +- name: retrain_best_model + endpoint: + path: /train_model + method: POST + data_selector: best_model +- name: s3_upload + endpoint: + path: /s3_upload + method: POST + data_selector: s3_upload +- name: flask_app + endpoint: + path: /v1/predict-price/ + method: GET + data_selector: predict_price +- name: etl_pipeline + endpoint: + path: /src/data_handling/etl_pipeline.py + method: GET + data_selector: records +- name: data_drift_check + endpoint: + path: /src/data_handling/report_data_drift.py + method: GET + data_selector: records +- name: preprocess + endpoint: + path: /src/data_handling/preprocess.py + method: GET + data_selector: records +- name: model_inference + endpoint: + path: /invoke-lambda-function + method: POST + data_selector: results +- name: upload_model + endpoint: + path: /{S3_BUCKET_NAME}/{MODEL_FILE_PATH} + method: PUT + data_selector: model + params: {} +- name: upload_data + endpoint: + path: /{S3_BUCKET_NAME}/{DATA_FILE_PATH} + method: PUT + data_selector: data + params: {} +- name: my-app + endpoint: + path: /services/data/vXX.X/sobjects/MyApp + method: GET + data_selector: records + params: {} +- name: x_train + endpoint: + path: data/x_train_df.parquet + method: GET + data_selector: records +- name: x_val + endpoint: + path: data/x_val_df.parquet + method: GET + data_selector: records +- name: x_test + endpoint: + path: data/x_test_df.parquet + method: GET + data_selector: records +- name: y_train + endpoint: + path: data/y_train_df.parquet + method: GET + data_selector: records +- name: y_val + endpoint: + path: data/y_val_df.parquet + method: GET + data_selector: records +- name: y_test + endpoint: + path: data/y_test_df.parquet + method: GET + data_selector: records +- name: feature_names + endpoint: + path: preprocessors/feature_names.json + method: GET + data_selector: records +- name: model_metrics + endpoint: + path: metrics/dfn_val.json + method: GET + data_selector: records +- name: inference_results + endpoint: + path: data/dfn_inference_results_${params.stockcode}.parquet + method: GET + data_selector: records +- name: shap_mean_abs + endpoint: + path: reports/dfn_shap_mean_abs_${params.stockcode}.json + method: GET + data_selector: records +- name: shap_summary + endpoint: + path: reports/dfn_shap_summary_${params.stockcode}.json + method: GET + data_selector: records +- name: assess_model_risk + endpoint: + path: /src/model/torch_model/assess_risk_and_fairness.py + method: POST + data_selector: results + params: + sensitive_feature_col: is_registered + privileged_group: 1 + mod_threshold: 0.1 +- name: canvas + endpoint: + path: /canvas + method: GET + data_selector: records + params: {} +- name: card + endpoint: + path: /card + method: GET + data_selector: records + params: {} +- name: canvas + endpoint: + path: /canvas + method: GET + data_selector: canvasData + params: {} +- name: draggable + endpoint: + path: /draggable + method: GET + data_selector: draggableData + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: EKSClusterRole + endpoint: + path: /aws/iam/create-role + method: POST + data_selector: role + params: {} +- name: EKSNodeGroupRole + endpoint: + path: /aws/iam/create-role + method: POST + data_selector: role + params: {} +- name: EKS-Management-Role + endpoint: + path: /aws/iam/create-role + method: POST + data_selector: role + params: {} +- name: kfold_validation + endpoint: + path: /src/model/sklearn_model/scripts/tuning.py + method: GET + data_selector: function + params: + n_splits: 5 + early_stopping_rounds: 10 + max_iters: 200 +- name: bayesian_optimization + endpoint: + path: /src/model/sklearn_model/scripts/tuning.py + method: GET + data_selector: function + params: + n_calls: null + n_initial_points: 10 + random_state: 42 +- name: EKSClusterRole + endpoint: + path: /aws/iam/create-role + method: POST + data_selector: Vpc.VpcId + params: {} +- name: EKSNodeGroupRole + endpoint: + path: /aws/iam/create-role + method: POST + data_selector: Vpc.VpcId + params: {} +- name: EKS-Management-Role + endpoint: + path: /aws/iam/create-role + method: POST + data_selector: Vpc.VpcId + params: {} +- name: lambda_function + endpoint: + path: /2015-03-31/functions/{functionName}/invocations + method: POST + data_selector: body + params: {} +- name: api_gateway + endpoint: + path: /restapis/{restapi_id}/resources + method: GET + data_selector: items + params: {} +- name: s3_storage + endpoint: + path: /{bucket_name}/ + method: GET + data_selector: Contents + params: {} +- name: elasticache + endpoint: + path: / + method: GET + data_selector: data + params: {} +- name: ecr + endpoint: + path: /v2/{repositoryName}/tags + method: GET + data_selector: tags + params: {} +- name: public_subnets + endpoint: + path: /services/data/vXX.X/sobjects/PublicSubnets + method: POST + data_selector: subnets + params: + cidr_blocks: + - 10.0.1.0/24 + - 10.0.2.0/24 + availability_zones: + - eu-west-1a + - eu-west-1b +- name: private_subnets + endpoint: + path: /services/data/vXX.X/sobjects/PrivateSubnets + method: POST + data_selector: subnets + params: + cidr_blocks: + - 10.0.3.0/24 + - 10.0.4.0/24 + availability_zones: + - eu-west-1a + - eu-west-1b +- name: eks_cluster + endpoint: + path: /services/data/vXX.X/sobjects/EKSCluster + method: POST + data_selector: clusters + params: + name: pod-security-cluster-demo + kubernetes_version: '1.33' + role_arn: '{{ dlt.secrets[''EKSClusterRoleArn''] }}' + access_config: + authentication_mode: API_AND_CONFIG_MAP + resources_vpc_config: + subnet_ids: + - '{{ dlt.secrets[''PUBLIC_SUBNET_1''] }}' + - '{{ dlt.secrets[''PUBLIC_SUBNET_2''] }}' + - '{{ dlt.secrets[''PRIVATE_SUBNET_1''] }}' + - '{{ dlt.secrets[''PRIVATE_SUBNET_2''] }}' +- name: security_group_policy + endpoint: + path: /services/data/vXX.X/sobjects/SecurityGroupPolicy + method: GET + data_selector: records + params: {} +- name: vpc_resource_controller + endpoint: + path: /services/data/vXX.X/sobjects/VPCResourceController + method: GET + data_selector: records + params: {} +- name: aws_vpc_cni + endpoint: + path: /services/data/vXX.X/sobjects/AWSVPC_CNI + method: GET + data_selector: records + params: {} +- name: predict_price + endpoint: + path: /v1/predict-price/ + method: GET + data_selector: json + params: {} +- name: AI_Pricing_for_Retailers + endpoint: + path: /ai_pricing_retailers + method: POST + data_selector: results +- name: kfold_validation + endpoint: + path: /run/kfold_validation + method: POST + data_selector: results +- name: s3_upload + endpoint: + path: /upload + method: POST + data_selector: upload_status +- name: public_subnets + endpoint: + path: /create-tags + method: POST + data_selector: tags + params: + Key: kubernetes.io/cluster/pod-security-cluster-demo + Value: shared +- name: private_subnets + endpoint: + path: /create-tags + method: POST + data_selector: tags + params: + Key: kubernetes.io/cluster/pod-security-cluster-demo + Value: shared +- name: public_route_table_creation + endpoint: + path: /create-route-table + method: POST + data_selector: RouteTableId + params: + vpc-id: $VPC_ID +- name: nat_gateway_creation + endpoint: + path: /create-nat-gateway + method: POST + data_selector: NatGatewayId + params: + subnet-id: $PUBLIC_SUBNET_1 + allocation-id: $EIP_ALLOC +- name: eks_cluster_creation + endpoint: + path: /create-cluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes-version: '1.33' + role-arn: $CLUSTER_ROLE_ARN + access-config: authenticationMode=API_AND_CONFIG_MAP + resources-vpc-config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: workers + endpoint: + path: /create-nodegroup + method: POST + data_selector: nodeGroupDetails + params: + cluster_name: pod-security-cluster-demo + nodegroup_name: workers + subnets: $PRIVATE_SUBNET_1 $PRIVATE_SUBNET_2 + node_role: $NODE_ROLE_ARN + instance_types: m5.large + scaling_config: minSize=1,maxSize=3,desiredSize=2 + disk_size: 20 + capacity_type: ON_DEMAND +- name: lambda_function + endpoint: + path: /services/lambda/function + method: POST + data_selector: result +- name: api_gateway + endpoint: + path: /services/api/gateway + method: GET + data_selector: endpoints +- name: train_data_loader + endpoint: + path: /train_data_loader + method: POST + data_selector: loader + params: {} +- name: val_data_loader + endpoint: + path: /val_data_loader + method: POST + data_selector: loader + params: {} +- name: SecurityGroupPolicy + endpoint: + path: /v1/securitygrouppolicy + method: POST + data_selector: data + params: {} +- name: VPCResourceController + endpoint: + path: /v1/vpc/resourcecontroller + method: GET + data_selector: data + params: {} +- name: create_tags_public_subnets + endpoint: + path: /create-tags + method: POST + data_selector: tags + params: + Key: kubernetes.io/cluster/pod-security-cluster-demo + Value: shared +- name: create_tags_private_subnets + endpoint: + path: /create-tags + method: POST + data_selector: tags + params: + Key: kubernetes.io/role/internal-elb + Value: '1' +- name: create_route_table_public_subnets + endpoint: + path: /create-route-table + method: POST + data_selector: routeTable + params: {} +- name: create_nat_gateway + endpoint: + path: /create-nat-gateway + method: POST + data_selector: natGateway + params: {} +- name: create_cluster + endpoint: + path: /create-cluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes-version: '1.33' + access-config: authenticationMode=API_AND_CONFIG_MAP +- name: create_node_group + endpoint: + path: /create-nodegroup + method: POST + data_selector: nodeGroup + params: + instance-types: m5.large + scaling-config: minSize=1,maxSize=3,desiredSize=2 + disk-size: 20 + capacity-type: ON_DEMAND +- name: App + endpoint: + path: /src/App.tsx + method: GET + data_selector: records + params: {} +- name: Canvas + endpoint: + path: /src/Canvas.tsx + method: GET + data_selector: records + params: {} +- name: Draggable + endpoint: + path: /src/Draggable.tsx + method: GET + data_selector: records + params: {} +- name: Addable + endpoint: + path: /src/Addable.tsx + method: GET + data_selector: records + params: {} +- name: Canvas + endpoint: + path: /src/Canvas.tsx + method: GET + data_selector: records +- name: Draggable + endpoint: + path: /src/Draggable.tsx + method: GET + data_selector: records +- name: management_role_arn + endpoint: + path: /iam/get-role + method: GET + data_selector: Role.Arn + params: + role-name: EKS-Management-Role +- name: associate_admin_policy + endpoint: + path: /eks/associate-access-policy + method: POST + data_selector: PolicyAssociation + params: + cluster-name: pod-security-cluster-demo + principal-arn: $MANAGEMENT_ROLE_ARN + policy-arn: arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy + access-scope: type=cluster +- name: list_associated_access_policies + endpoint: + path: /eks/list-associated-access-policies + method: GET + data_selector: Policies + params: + cluster-name: pod-security-cluster-demo + principal-arn: $MANAGEMENT_ROLE_ARN +- name: create_security_group + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: GroupId + params: + group-name: EKS-Management-SG + description: Security group for EKS management instance + vpc-id: $VPC_ID +- name: EKSClusterRole + endpoint: + path: /role/EKSClusterRole + method: POST + data_selector: roleDetails +- name: EKSNodeGroupRole + endpoint: + path: /role/EKSNodeGroupRole + method: POST + data_selector: roleDetails +- name: EKS-Management-Role + endpoint: + path: /role/EKS-Management-Role + method: POST + data_selector: roleDetails +- name: pod_security_groups + endpoint: + path: /services/data/vXX.X/sobjects/PodSecurityGroup + method: GET + data_selector: records + params: {} +- name: eks_cluster + endpoint: + path: /clusters + method: POST + data_selector: clusters + params: {} +- name: security_group + endpoint: + path: /security-groups + method: GET + data_selector: securityGroups + params: {} +- name: EKS Cluster + endpoint: + path: /eks/create-cluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes-version: '1.33' + role-arn: $CLUSTER_ROLE_ARN + access-config: authenticationMode=API_AND_CONFIG_MAP + resources-vpc-config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: Managed Node Group + endpoint: + path: /eks/create-nodegroup + method: POST + data_selector: nodegroup + params: + cluster-name: pod-security-cluster-demo + nodegroup-name: workers + subnets: $PRIVATE_SUBNET_1 $PRIVATE_SUBNET_2 + node-role: $NODE_ROLE_ARN + instance-types: m5.large + scaling-config: minSize=1,maxSize=3,desiredSize=2 + disk-size: 20 + capacity-type: ON_DEMAND +- name: Management Instance Security Group + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: security_group + params: + group-name: EKS-Management-SG + description: Security group for EKS management instance + vpc-id: $VPC_ID +- name: public_subnet_1 + endpoint: + path: /services/data/vXX.X/sobjects/PublicSubnet1 + method: GET + data_selector: records + params: {} +- name: public_subnet_2 + endpoint: + path: /services/data/vXX.X/sobjects/PublicSubnet2 + method: GET + data_selector: records + params: {} +- name: private_subnet_1 + endpoint: + path: /services/data/vXX.X/sobjects/PrivateSubnet1 + method: GET + data_selector: records + params: {} +- name: private_subnet_2 + endpoint: + path: /services/data/vXX.X/sobjects/PrivateSubnet2 + method: GET + data_selector: records + params: {} +- name: instance + endpoint: + path: /ec2/run-instances + method: POST + data_selector: Instances + params: + image_id: $AMI_ID + instance_type: t3.micro + subnet_id: $PUBLIC_SUBNET_1 + security_group_ids: $EC2_SG + iam_instance_profile: EKS-Management-Profile + user_data: file://user-data.sh + tag_specifications: ResourceType=instance,Tags=[{Key=Name,Value=EKS-Management},{Key=Environment,Value=Demo}] +- name: instance_ip + endpoint: + path: /ec2/describe-instances + method: GET + data_selector: PublicIpAddress + params: + instance_ids: $INSTANCE_ID +- name: security_group_policy + endpoint: + path: /api/securityGroupPolicy + method: POST + data_selector: results + params: {} +- name: security_group_policy + endpoint: + path: /api/securityGroupPolicies + method: POST + data_selector: data + params: {} +- name: vpc_resource_controller + endpoint: + path: /api/vpcResourceControllers + method: GET + data_selector: data + params: {} +- name: aws_vpc_cni + endpoint: + path: /api/awsVpcCni + method: GET + data_selector: data + params: {} +- name: cluster + endpoint: + path: /clusters/pod-security-cluster-demo + method: GET + data_selector: cluster + params: {} +- name: node_group + endpoint: + path: /clusters/pod-security-cluster-demo/node-groups/workers + method: GET + data_selector: nodeGroup + params: {} +- name: eks_cluster + endpoint: + path: /create-cluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes_version: '1.33' + role_arn: '{{ dlt.secrets[''cluster_role_arn''] }}' + access_config: authenticationMode=API_AND_CONFIG_MAP + resources_vpc_config: subnetIds={{ dlt.secrets['public_subnet_1'] }},{{ dlt.secrets['public_subnet_2'] + }},{{ dlt.secrets['private_subnet_1'] }},{{ dlt.secrets['private_subnet_2'] + }} +- name: workers + endpoint: + path: '' + method: '' + data_selector: '' + params: + subnets: $PRIVATE_SUBNET_1 $PRIVATE_SUBNET_2 + node_role: $NODE_ROLE_ARN + instance_types: m5.large + scaling_config: minSize=1,maxSize=3,desiredSize=2 + disk_size: 20 + capacity_type: ON_DEMAND +- name: eks_cluster + endpoint: + path: /clusters + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes_version: '1.33' + role_arn: $CLUSTER_ROLE_ARN + access_config: authenticationMode=API_AND_CONFIG_MAP + resources_vpc_config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: managed_node_group + endpoint: + path: /nodegroups + method: POST + data_selector: nodegroup + params: + cluster_name: pod-security-cluster-demo + nodegroup_name: workers + subnets: $PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 + node_role: $NODE_ROLE_ARN + instance_types: m5.large + scaling_config: minSize=1,maxSize=3,desiredSize=2 + disk_size: 20 + capacity_type: ON_DEMAND +- name: security_group + endpoint: + path: /security-groups + method: POST + data_selector: securityGroup + params: + description: Pod Security Group - Database Access + group_name: POD_SG + vpc_id: ${VPC_ID} +- name: eks_cluster + endpoint: + path: /eks/clusters + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes_version: '1.33' + role_arn: $CLUSTER_ROLE_ARN + access_config: authenticationMode=API_AND_CONFIG_MAP + resources_vpc_config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: node_group + endpoint: + path: /eks/nodegroups + method: POST + data_selector: nodeGroup + params: + cluster_name: pod-security-cluster-demo + nodegroup_name: workers + subnets: $PRIVATE_SUBNET_1 $PRIVATE_SUBNET_2 + node_role: $NODE_ROLE_ARN + instance_types: m5.large + scaling_config: minSize=1,maxSize=3,desiredSize=2 + disk_size: 20 + capacity_type: ON_DEMAND +- name: security_group_policy + endpoint: + path: /path/to/security_group_policy + method: POST + data_selector: policy + params: {} +- name: vpc_resource_controller + endpoint: + path: /path/to/vpc_resource_controller + method: GET + data_selector: resources + params: {} +- name: management_role + endpoint: + path: /iam/get-role + method: GET + data_selector: Role.Arn + params: + role-name: EKS-Management-Role +- name: associate_access_policy + endpoint: + path: /eks/associate-access-policy + method: POST + data_selector: policy + params: + cluster-name: pod-security-cluster-demo + principal-arn: $MANAGEMENT_ROLE_ARN + policy-arn: arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy + access-scope: type=cluster +- name: list_associated_access_policies + endpoint: + path: /eks/list-associated-access-policies + method: GET + data_selector: policies + params: + cluster-name: pod-security-cluster-demo + principal-arn: $MANAGEMENT_ROLE_ARN +- name: create_security_group + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: GroupId + params: + group-name: EKS-Management-SG + description: Security group for EKS management instance + vpc-id: $VPC_ID +- name: cluster + endpoint: + path: /clusters/pod-security-cluster-demo + method: GET + data_selector: cluster + params: {} +- name: nodegroup + endpoint: + path: /nodegroups/workers + method: GET + data_selector: nodegroup + params: {} +- name: security_group + endpoint: + path: /security-groups/EKS-Management-SG + method: GET + data_selector: security_group + params: {} +- name: create_tags_public_subnets + endpoint: + path: /create-tags + method: POST + data_selector: tags + params: + resources: $PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2 + tags: + - Key: kubernetes.io/cluster/pod-security-cluster-demo + Value: shared + - Key: kubernetes.io/role/elb + Value: '1' +- name: create_tags_private_subnets + endpoint: + path: /create-tags + method: POST + data_selector: tags + params: + resources: $PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 + tags: + - Key: kubernetes.io/cluster/pod-security-cluster-demo + Value: shared + - Key: kubernetes.io/role/internal-elb + Value: '1' +- name: create_route_table_public_subnets + endpoint: + path: /create-route-table + method: POST + data_selector: route_table + params: + vpc-id: $VPC_ID +- name: create_nat_gateway + endpoint: + path: /create-nat-gateway + method: POST + data_selector: nat_gateway + params: + subnet-id: $PUBLIC_SUBNET_1 + allocation-id: $EIP_ALLOC +- name: create_eks_cluster + endpoint: + path: /create-cluster + method: POST + data_selector: eks_cluster + params: + name: pod-security-cluster-demo + kubernetes-version: '1.33' + role-arn: $CLUSTER_ROLE_ARN + access-config: authenticationMode=API_AND_CONFIG_MAP + resources-vpc-config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: create_managed_node_group + endpoint: + path: /create-nodegroup + method: POST + data_selector: node_group + params: + cluster-name: pod-security-cluster-demo + nodegroup-name: workers + subnets: $PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 + node-role: $NODE_ROLE_ARN + instance-types: m5.large + scaling-config: minSize=1,maxSize=3,desiredSize=2 + disk-size: 20 + capacity-type: ON_DEMAND +- name: create_security_group_for_management + endpoint: + path: /create-security-group + method: POST + data_selector: security_group + params: + group-name: EKS-Management-SG + description: Security group for EKS management instance + vpc-id: $VPC_ID +- name: create_security_group_for_pods + endpoint: + path: /create-security-group + method: POST + data_selector: pod_security_group + params: + description: Pod Security Group - Database Access + group-name: POD_SG + vpc-id: $VPC_ID +- name: RDS_SG + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: SecurityGroupId + params: + description: RDS Security Group - PostgreSQL Database + group-name: RDS_SG + vpc-id: ${VPC_ID} +- name: RDS_SG_ID + endpoint: + path: /rds/describe-db-instances + method: GET + data_selector: VpcSecurityGroupId + params: + db-instance-identifier: rds-ekslab +- name: instance + endpoint: + path: /run-instances + method: POST + data_selector: Instances + params: + image_id: $AMI_ID + count: '1' + instance_type: t3.micro + subnet_id: $PUBLIC_SUBNET_1 + security_group_ids: $EC2_SG + iam_instance_profile: EKS-Management-Profile + user_data: file://user-data.sh + tag_specifications: ResourceType=instance,Tags=[{Key=Name,Value=EKS-Management},{Key=Environment,Value=Demo}] +- name: instance_ip + endpoint: + path: /describe-instances + method: GET + data_selector: Reservations[0].Instances[0].PublicIpAddress + params: + instance_ids: $INSTANCE_ID +- name: node_group_security_group + endpoint: + path: /describe-security-groups + method: GET + data_selector: SecurityGroups[0].GroupId + params: + filters: Name=tag:Name,Values=eks-cluster-sg-pod-security-cluster-demo-* Name=vpc-id,Values=${VPC_ID} +- name: rds_security_group + endpoint: + path: /describe-db-instances + method: GET + data_selector: DBInstances[0].VpcSecurityGroups[0].VpcSecurityGroupId + params: + db-instance-identifier: rds-ekslab +- name: EKSClusterRole + endpoint: + path: /services/data/vXX.X/sobjects/EKSClusterRole + method: POST + data_selector: records + params: {} +- name: EKSNodeGroupRole + endpoint: + path: /services/data/vXX.X/sobjects/EKSNodeGroupRole + method: POST + data_selector: records + params: {} +- name: EKSManagementRole + endpoint: + path: /services/data/vXX.X/sobjects/EKSManagementRole + method: POST + data_selector: records + params: {} +- name: security_group_policy + endpoint: + path: /v1/securityGroupPolicies + method: POST + data_selector: data + params: {} +- name: vpc_resource_controller + endpoint: + path: /v1/vpcResourceControllers + method: GET + data_selector: data + params: {} +- name: eks_cluster + endpoint: + path: /cluster/pod-security-cluster-demo + method: GET + data_selector: cluster + params: {} +- name: eks_node_group + endpoint: + path: /nodegroup/workers + method: GET + data_selector: nodegroup + params: {} +- name: eks_cluster + endpoint: + path: /services/data/vXX.X/sobjects/EKSCluster + method: POST + data_selector: cluster + params: + incremental: created_at +- name: node_group + endpoint: + path: /services/data/vXX.X/sobjects/NodeGroup + method: POST + data_selector: nodeGroup + params: {} +- name: SecurityGroupPolicy + endpoint: + path: /api/v1/securitygrouppolicies + method: POST + data_selector: items +- name: VPCResourceController + endpoint: + path: /api/v1/vpcresourcecontrollers + method: GET + data_selector: items +- name: RDS_SG + endpoint: + path: /create-security-group + method: POST + data_selector: SecurityGroup + params: + description: RDS Security Group - PostgreSQL Database + group-name: RDS_SG + vpc-id: ${VPC_ID} +- name: DB_Subnet_Group + endpoint: + path: /create-db-subnet-group + method: POST + data_selector: DBSubnetGroup + params: + db-subnet-group-name: rds-ekslab + db-subnet-group-description: Subnet group for EKS lab RDS instance + subnet-ids: ${PRIVATE_SUBNET_1} ${PRIVATE_SUBNET_2} +- name: cluster_creation + endpoint: + path: /eks/create-cluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes-version: '1.33' + role-arn: ${CLUSTER_ROLE_ARN} + access-config: authenticationMode=API_AND_CONFIG_MAP + resources-vpc-config: subnetIds=${PUBLIC_SUBNET_1},${PUBLIC_SUBNET_2},${PRIVATE_SUBNET_1},${PRIVATE_SUBNET_2} +- name: node_group_creation + endpoint: + path: /eks/create-nodegroup + method: POST + data_selector: nodeGroup + params: + cluster-name: pod-security-cluster-demo + nodegroup-name: workers + subnets: ${PRIVATE_SUBNET_1} ${PRIVATE_SUBNET_2} + node-role: ${NODE_ROLE_ARN} + instance-types: m5.large + scaling-config: minSize=1,maxSize=3,desiredSize=2 + disk-size: 20 + capacity-type: ON_DEMAND +- name: security_group_creation + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: securityGroup + params: + description: Pod Security Group - Database Access + group-name: POD_SG + vpc-id: ${VPC_ID} +- name: SecurityGroupPolicy + endpoint: + path: /api/v1/securitygrouppolicies + method: POST + data_selector: policies +- name: VPCResourceController + endpoint: + path: /api/v1/vpcresourcecontrollers + method: GET + data_selector: controllers +- name: pod_security_cluster_demo + endpoint: + path: /services/data/vXX.X/sobjects/pod-security-cluster-demo + method: POST + data_selector: cluster + params: {} +- name: RDS_SG + endpoint: + path: /aws/ec2/create-security-group + method: POST + data_selector: SecurityGroupId + params: + description: RDS Security Group - PostgreSQL Database + group-name: RDS_SG + vpc-id: ${VPC_ID} +- name: RDS_DB_Instances + endpoint: + path: /aws/rds/describe-db-instances + method: GET + data_selector: DBInstances + params: + db-instance-identifier: rds-ekslab +- name: DB_Subnet_Group + endpoint: + path: /aws/rds/create-db-subnet-group + method: POST + data_selector: DBSubnetGroup + params: + db-subnet-group-name: rds-ekslab + db-subnet-group-description: Subnet group for EKS lab RDS instance + subnet-ids: + - ${PRIVATE_SUBNET_1} + - ${PRIVATE_SUBNET_2} +- name: postgresql_instance + endpoint: + path: /create-db-instance + method: POST + params: + db-instance-identifier: rds-ekslab + db-instance-class: db.t3.micro + engine: postgres + master-username: postgres + master-user-password: ${RDS_PASSWORD} + allocated-storage: 20 + vpc-security-group-ids: ${RDS_SG} + db-subnet-group-name: rds-ekslab + no-publicly-accessible: true + backup-retention-period: 0 + storage-type: gp2 +- name: eks_cluster + endpoint: + path: /create-cluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes-version: '1.33' + role-arn: $CLUSTER_ROLE_ARN + access-config: authenticationMode=API_AND_CONFIG_MAP + resources-vpc-config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: managed_node_group + endpoint: + path: /create-nodegroup + method: POST + data_selector: nodegroup + params: + cluster-name: pod-security-cluster-demo + nodegroup-name: workers + subnets: $PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 + node-role: $NODE_ROLE_ARN + instance-types: m5.large + scaling-config: minSize=1,maxSize=3,desiredSize=2 + disk-size: 20 + capacity-type: ON_DEMAND +- name: security_group_for_management + endpoint: + path: /create-security-group + method: POST + data_selector: security_group + params: + group-name: EKS-Management-SG + description: Security group for EKS management instance + vpc-id: $VPC_ID +- name: pod_security_group + endpoint: + path: /create-security-group + method: POST + data_selector: pod_security_group + params: + description: Pod Security Group - Database Access + group-name: POD_SG + vpc-id: ${VPC_ID} +- name: EKSCluster + endpoint: + path: /v1/eks/cluster + method: GET + data_selector: clusters + params: {} +- name: IAMRole + endpoint: + path: /v1/iam/roles + method: GET + data_selector: roles + params: {} +- name: node_group_security_group + endpoint: + path: /describe-security-groups + method: GET + data_selector: SecurityGroups[0].GroupId + params: + filters: Name=tag:Name,Values=eks-cluster-sg-pod-security-cluster-demo-* Name=vpc-id,Values=${VPC_ID} +- name: rds_security_group + endpoint: + path: /describe-db-instances + method: GET + data_selector: DBInstances[0].VpcSecurityGroups[0].VpcSecurityGroupId + params: + db-instance-identifier: rds-ekslab +- name: POD_SG + endpoint: + path: /create-security-group + method: POST + data_selector: SecurityGroup + params: + description: Pod Security Group - Database Access + group_name: POD_SG + vpc_id: ${VPC_ID} +- name: RDS_Security_Group + endpoint: + path: /aws/ec2/create-security-group + method: POST + data_selector: SecurityGroupId + params: + description: RDS Security Group - PostgreSQL Database + group_name: RDS_SG + vpc_id: ${VPC_ID} +- name: RDS_Instance + endpoint: + path: /aws/rds/create-db-instance + method: POST + data_selector: DBInstanceIdentifier + params: + db_instance_identifier: rds-ekslab + db_instance_class: db.t3.micro + engine: postgres + master_username: postgres + master_user_password: ${RDS_PASSWORD} + allocated_storage: 20 + vpc_security_group_ids: ${RDS_SG} + db_subnet_group_name: rds-ekslab + no_publicly_accessible: true + backup_retention_period: 0 + storage_type: gp2 +- name: cluster + endpoint: + path: /services/data/vXX.X/sobjects/Cluster + method: GET + data_selector: records +- name: node_group + endpoint: + path: /services/data/vXX.X/sobjects/NodeGroup + method: GET + data_selector: records +- name: RDS_SG + endpoint: + path: /create-security-group + method: POST + data_selector: SecurityGroupId + params: + description: RDS Security Group - PostgreSQL Database + group-name: RDS_SG + vpc-id: ${VPC_ID} +- name: DB_Subnet_Group + endpoint: + path: /create-db-subnet-group + method: POST + data_selector: DBSubnetGroupName + params: + db-subnet-group-name: rds-ekslab + db-subnet-group-description: Subnet group for EKS lab RDS instance + subnet-ids: + - ${PRIVATE_SUBNET_1} + - ${PRIVATE_SUBNET_2} +- name: security_group + endpoint: + path: /v1/security-groups + method: GET + data_selector: securityGroups + params: {} +- name: cluster + endpoint: + path: /clusters + method: GET + data_selector: clusters + params: {} +- name: node_group + endpoint: + path: /node-groups + method: GET + data_selector: nodeGroups + params: {} +- name: pod_security_cluster_demo + endpoint: + path: /services/data/vXX.X/sobjects/EKSCluster + method: POST + data_selector: cluster + params: {} +- name: managed_node_group + endpoint: + path: /services/data/vXX.X/sobjects/NodeGroup + method: POST + data_selector: nodeGroup + params: {} +- name: pod_security_group + endpoint: + path: /services/data/vXX.X/sobjects/SecurityGroup + method: POST + data_selector: securityGroup + params: {} +- name: SecurityGroupPolicy + endpoint: + path: /services/data/vXX.X/sobjects/SecurityGroupPolicy + method: GET + data_selector: records +- name: VPCResourceController + endpoint: + path: /services/data/vXX.X/sobjects/VPCResourceController + method: GET + data_selector: records +- name: rds_security_group + endpoint: + path: /create-security-group + method: POST + data_selector: SecurityGroupId + params: + description: RDS Security Group - PostgreSQL Database + group_name: RDS_SG + vpc_id: ${VPC_ID} +- name: db_subnet_group + endpoint: + path: /create-db-subnet-group + method: POST + data_selector: DBSubnetGroupName + params: + db_subnet_group_name: rds-ekslab + db_subnet_group_description: Subnet group for EKS lab RDS instance + subnet_ids: + - ${PRIVATE_SUBNET_1} + - ${PRIVATE_SUBNET_2} +- name: PostgreSQL + endpoint: + path: /create-db-instance + method: POST + params: + db_instance_identifier: rds-ekslab + db_instance_class: db.t3.micro + engine: postgres + master_username: postgres + master_user_password: ${RDS_PASSWORD} + allocated_storage: 20 + vpc_security_group_ids: ${RDS_SG} + db_subnet_group_name: rds-ekslab + no_publicly_accessible: true + backup_retention_period: 0 + storage_type: gp2 +- name: cluster + endpoint: + path: /clusters + method: GET + data_selector: clusters + params: {} +- name: nodegroup + endpoint: + path: /nodegroups + method: GET + data_selector: nodegroups + params: {} +- name: security_group + endpoint: + path: /security-groups + method: POST + data_selector: SecurityGroupId + params: + description: RDS Security Group - PostgreSQL Database + group_name: RDS_SG + vpc_id: ${VPC_ID} +- name: db_instance + endpoint: + path: /db-instances + method: POST + data_selector: DBInstanceIdentifier + params: + db_instance_identifier: rds-ekslab + db_instance_class: db.t3.micro + engine: postgres + master_username: postgres + master_user_password: ${RDS_PASSWORD} + allocated_storage: 20 + vpc_security_group_ids: ${RDS_SG} + db_subnet_group_name: rds-ekslab + no_publicly_accessible: true + backup_retention_period: 0 + storage_type: gp2 +- name: SecurityGroupPolicy + endpoint: + path: /vpcresources.k8s.aws/v1beta1/securitygrouppolicies + method: GET + data_selector: items + params: {} +- name: pod + endpoint: + path: /v1/pods + method: GET + data_selector: items + params: + labelSelector: app=green-pod +- name: EKS Cluster Service Role + endpoint: + path: /iam/create-role + method: POST + data_selector: Vpc.VpcId + params: + role-name: EKSClusterRole + assume-role-policy-document: '{"Version": "2012-10-17","Statement": [{"Effect": + "Allow","Principal": {"Service": "eks.amazonaws.com"},"Action": "sts:AssumeRole"}]}' +- name: EKS Node Group Role + endpoint: + path: /iam/create-role + method: POST + data_selector: Vpc.VpcId + params: + role-name: EKSNodeGroupRole + assume-role-policy-document: '{"Version": "2012-10-17","Statement": [{"Effect": + "Allow","Principal": {"Service": "ec2.amazonaws.com"},"Action": "sts:AssumeRole"}]}' +- name: EKS Management Role + endpoint: + path: /iam/create-role + method: POST + data_selector: Vpc.VpcId + params: + role-name: EKS-Management-Role + assume-role-policy-document: '{"Version": "2012-10-17","Statement": [{"Effect": + "Allow","Principal": {"Service": "ec2.amazonaws.com"},"Action": "sts:AssumeRole"}]}' +- name: VPC Creation + endpoint: + path: /ec2/create-vpc + method: POST + data_selector: Vpc.VpcId + params: + cidr-block: 10.0.0.0/16 + name: eks-security-demo +- name: Public Subnet 1 + endpoint: + path: /ec2/create-subnet + method: POST + data_selector: Subnet.SubnetId + params: + vpc-id: $VPC_ID + cidr-block: 10.0.1.0/24 + availability-zone: eu-west-1a +- name: Public Subnet 2 + endpoint: + path: /ec2/create-subnet + method: POST + data_selector: Subnet.SubnetId + params: + vpc-id: $VPC_ID + cidr-block: 10.0.2.0/24 + availability-zone: eu-west-1b +- name: Private Subnet 1 + endpoint: + path: /ec2/create-subnet + method: POST + data_selector: Subnet.SubnetId + params: + vpc-id: $VPC_ID + cidr-block: 10.0.3.0/24 + availability-zone: eu-west-1a +- name: Private Subnet 2 + endpoint: + path: /ec2/create-subnet + method: POST + data_selector: Subnet.SubnetId + params: + vpc-id: $VPC_ID + cidr-block: 10.0.4.0/24 + availability-zone: eu-west-1b +- name: pod_security_group + endpoint: + path: /services/data/vXX.X/sobjects/POD_SG + method: POST + data_selector: '' + params: {} +- name: security_group_policy + endpoint: + path: /services/data/vXX.X/sobjects/SecurityGroupPolicy + method: GET + data_selector: records + params: + incremental: updated_at +- name: RDS_SG + endpoint: + path: /create-security-group + method: POST + data_selector: SecurityGroups + params: + description: RDS Security Group - PostgreSQL Database + group_name: RDS_SG + vpc_id: ${VPC_ID} +- name: RDS_Instance + endpoint: + path: /create-db-instance + method: POST + data_selector: DBInstances + params: + db_instance_identifier: rds-ekslab + db_instance_class: db.t3.micro + engine: postgres + master_username: postgres + master_user_password: ${RDS_PASSWORD} + allocated_storage: 20 + vpc_security_group_ids: ${RDS_SG} + db_subnet_group_name: rds-ekslab + no_publicly_accessible: true + backup_retention_period: 0 + storage_type: gp2 +- name: eks_cluster + endpoint: + path: /create-cluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes-version: '1.33' + access-config: authenticationMode=API_AND_CONFIG_MAP + resources-vpc-config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: node_group + endpoint: + path: /create-nodegroup + method: POST + data_selector: nodegroup + params: + cluster-name: pod-security-cluster-demo + nodegroup-name: workers + subnets: $PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 + node-role: $NODE_ROLE_ARN + instance-types: m5.large + scaling-config: minSize=1,maxSize=3,desiredSize=2 + disk-size: 20 + capacity-type: ON_DEMAND +- name: security_group_pod + endpoint: + path: /services/data/vXX.X/sobjects/SecurityGroupPolicy + method: GET + data_selector: records + params: {} +- name: green-pod + endpoint: + path: /green-pod + method: POST + data_selector: status + params: {} +- name: red-pod + endpoint: + path: /red-pod + method: POST + data_selector: status + params: {} +- name: cluster_vpc + endpoint: + path: /services/data/vXX.X/sobjects/ClusterVPC + method: GET + data_selector: records + params: {} +- name: pod_security_group + endpoint: + path: /services/data/vXX.X/sobjects/PodSecurityGroup + method: GET + data_selector: records + params: {} +- name: security_group_policy + endpoint: + path: /apis/networking/v1/securitygrouppolicies + method: GET + data_selector: items +- name: vpc_resource_controller + endpoint: + path: /apis/vpcresourcecontroller/v1/resources + method: GET + data_selector: items +- name: eks_cluster + endpoint: + path: /eks/create-cluster + method: POST + data_selector: clusterDetails + params: + name: pod-security-cluster-demo + kubernetes_version: '1.33' + role_arn: $CLUSTER_ROLE_ARN + access_config: authenticationMode=API_AND_CONFIG_MAP + resources_vpc_config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: managed_node_group + endpoint: + path: /eks/create-nodegroup + method: POST + data_selector: nodeGroupDetails + params: + cluster_name: pod-security-cluster-demo + nodegroup_name: workers + subnets: $PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 + node_role: $NODE_ROLE_ARN + instance_types: m5.large + scaling_config: minSize=1,maxSize=3,desiredSize=2 + disk_size: 20 + capacity_type: ON_DEMAND +- name: eks_cluster + endpoint: + path: /services/eks/clusters + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes_version: '1.33' + role_arn: ${CLUSTER_ROLE_ARN} + access_config: authenticationMode=API_AND_CONFIG_MAP + resources_vpc_config: subnetIds=${PUBLIC_SUBNET_1},${PUBLIC_SUBNET_2},${PRIVATE_SUBNET_1},${PRIVATE_SUBNET_2} +- name: managed_node_group + endpoint: + path: /services/eks/nodegroups + method: POST + data_selector: nodegroup + params: + cluster_name: pod-security-cluster-demo + nodegroup_name: workers + subnets: ${PRIVATE_SUBNET_1},${PRIVATE_SUBNET_2} + node_role: ${NODE_ROLE_ARN} + instance_types: m5.large + scaling_config: minSize=1,maxSize=3,desiredSize=2 + disk_size: 20 + capacity_type: ON_DEMAND +- name: management_instance + endpoint: + path: /services/ec2/instances + method: POST + data_selector: instance + params: + image_id: ${AMI_ID} + count: 1 + instance_type: t3.micro + subnet_id: ${PUBLIC_SUBNET_1} + security_group_ids: ${EC2_SG} + iam_instance_profile: EKS-Management-Profile + user_data: file://user-data.sh + tag_specifications: ResourceType=instance,Tags=[{Key=Name,Value=EKS-Management},{Key=Environment,Value=Demo}] +- name: pod_security_group + endpoint: + path: /services/ec2/security-groups + method: POST + data_selector: security_group + params: + description: Pod Security Group - Database Access + group_name: POD_SG + vpc_id: ${VPC_ID} +- name: security_group_policy + endpoint: + path: /services/data/vXX.X/sobjects/SecurityGroupPolicy + method: GET + data_selector: records + params: {} +- name: vpc_resource_controller + endpoint: + path: /services/data/vXX.X/sobjects/VPCResourceController + method: GET + data_selector: records + params: {} +- name: rds_security_group + endpoint: + path: /aws/ec2/create-security-group + method: POST + data_selector: SecurityGroup + params: + description: RDS Security Group - PostgreSQL Database + group_name: RDS_SG + vpc_id: ${VPC_ID} +- name: rds_db_instance + endpoint: + path: /aws/rds/create-db-instance + method: POST + data_selector: DBInstance + params: + db_instance_identifier: rds-ekslab + db_instance_class: db.t3.micro + engine: postgres + master_username: postgres + master_user_password: ${RDS_PASSWORD} + allocated_storage: 20 + vpc_security_group_ids: ${RDS_SG} + db_subnet_group_name: rds-ekslab + no_publicly_accessible: true + backup_retention_period: 0 + storage_type: gp2 +- name: security_group_policy + endpoint: + path: /v1beta1/securitygrouppolicies + method: GET + data_selector: items + params: {} +- name: eks_cluster + endpoint: + path: /services/eks/cluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes_version: '1.33' + role_arn: $CLUSTER_ROLE_ARN + access_config: authenticationMode=API_AND_CONFIG_MAP + resources_vpc_config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: managed_node_group + endpoint: + path: /services/eks/nodegroup + method: POST + data_selector: nodegroup + params: + cluster_name: pod-security-cluster-demo + nodegroup_name: workers + subnets: $PRIVATE_SUBNET_1 $PRIVATE_SUBNET_2 + node_role: $NODE_ROLE_ARN + instance_types: m5.large + scaling_config: minSize=1,maxSize=3,desiredSize=2 + disk_size: 20 + capacity_type: ON_DEMAND +- name: management_instance + endpoint: + path: /services/ec2/instance + method: POST + data_selector: instance + params: + image_id: $AMI_ID + count: 1 + instance_type: t3.micro + subnet_id: $PUBLIC_SUBNET_1 + security_group_ids: $EC2_SG + iam_instance_profile: EKS-Management-Profile + user_data: file://user-data.sh + tag_specifications: ResourceType=instance,Tags=[{Key=Name,Value=EKS-Management},{Key=Environment,Value=Demo}] +- name: pod_security_group + endpoint: + path: /services/ec2/security-group + method: POST + data_selector: securityGroup + params: + description: Pod Security Group - Database Access + group_name: POD_SG + vpc_id: ${VPC_ID} +- name: SecurityGroupPolicy + endpoint: + path: /apis/securitygroups.k8s.aws/v1/securitygrouppolicies + method: GET + data_selector: items +- name: VPCResourceController + endpoint: + path: /apis/vpc.k8s.aws/v1/vpcresourcecontrollers + method: GET + data_selector: items +- name: rds_instance + endpoint: + path: /rds/db-instances + method: GET + data_selector: DBInstances + params: {} +- name: green_pod + endpoint: + path: /services/data/vXX.X/sobjects/greenPod + method: GET + data_selector: records + params: {} +- name: red_pod + endpoint: + path: /services/data/vXX.X/sobjects/redPod + method: GET + data_selector: records + params: {} +- name: cluster + endpoint: + path: /cluster/pod-security-cluster-demo + method: GET + data_selector: cluster +- name: nodegroup + endpoint: + path: /nodegroup/workers + method: GET + data_selector: nodegroup +- name: security_group + endpoint: + path: /security-group/POD_SG + method: CREATE + data_selector: securityGroup +- name: security_group_policy + endpoint: + path: /v1/securityGroupPolicies + method: GET + data_selector: policies + params: {} +- name: security_group + endpoint: + path: /services/data/vXX.X/sobjects/SecurityGroup + method: GET + data_selector: records + params: {} +- name: rds_instance + endpoint: + path: /services/data/vXX.X/sobjects/RDSInstance + method: GET + data_selector: records + params: {} +- name: public_subnet_tags + endpoint: + path: /create-tags + method: POST + data_selector: tags + params: + Key: kubernetes.io/cluster/pod-security-cluster-demo + Value: shared +- name: private_subnet_tags + endpoint: + path: /create-tags + method: POST + data_selector: tags + params: + Key: kubernetes.io/cluster/pod-security-cluster-demo + Value: shared +- name: rds_instance + endpoint: + path: /describe-db-instances + method: GET + data_selector: DBInstances + params: {} +- name: security_group + endpoint: + path: /describe-security-groups + method: GET + data_selector: SecurityGroups + params: {} +- name: green_pod + endpoint: + path: /services/data/vXX.X/sobjects/GreenPod + method: GET + data_selector: records + params: {} +- name: red_pod + endpoint: + path: /services/data/vXX.X/sobjects/RedPod + method: GET + data_selector: records + params: {} +- name: EKS Cluster + endpoint: + path: /eks/clusters + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes-version: '1.33' + role-arn: $CLUSTER_ROLE_ARN + access-config: authenticationMode=API_AND_CONFIG_MAP + resources-vpc-config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: Managed Node Group + endpoint: + path: /eks/nodegroups + method: POST + data_selector: nodegroup + params: + cluster-name: pod-security-cluster-demo + nodegroup-name: workers + subnets: $PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 + node-role: $NODE_ROLE_ARN + instance-types: m5.large + scaling-config: minSize=1,maxSize=3,desiredSize=2 + disk-size: 20 + capacity-type: ON_DEMAND +- name: Security Group for Pods + endpoint: + path: /ec2/security-groups + method: POST + data_selector: securityGroup + params: + description: Pod Security Group - Database Access + group-name: POD_SG + vpc-id: ${VPC_ID} +- name: cluster + endpoint: + path: /services/data/vXX.X/sobjects/EKSCluster + method: POST + data_selector: clusterData + params: + name: pod-security-cluster-demo + kubernetes_version: '1.33' +- name: node_group + endpoint: + path: /services/data/vXX.X/sobjects/EKSNodeGroup + method: POST + data_selector: nodeGroupData + params: + cluster_name: pod-security-cluster-demo + nodegroup_name: workers + instance_types: m5.large + scaling_config: minSize=1,maxSize=3,desiredSize=2 + disk_size: '20' + capacity_type: ON_DEMAND +- name: rds_security_group + endpoint: + path: /services/data/vXX.X/sobjects/RDSSecurityGroup + method: POST + data_selector: SecurityGroupId + params: + description: RDS Security Group - PostgreSQL Database + group_name: RDS_SG + vpc_id: ${VPC_ID} +- name: pod_security_group + endpoint: + path: /services/data/vXX.X/sobjects/PodSecurityGroup + method: POST + data_selector: SecurityGroupId + params: + description: Pod security group + group_name: POD_SG + vpc_id: ${VPC_ID} +- name: rds_instance + endpoint: + path: /services/data/vXX.X/sobjects/RDSInstance + method: POST + data_selector: DBInstanceIdentifier + params: + db_instance_identifier: rds-ekslab + db_instance_class: db.t3.micro + engine: postgres + master_username: postgres + master_user_password: ${RDS_PASSWORD} + allocated_storage: 20 + vpc_security_group_ids: ${RDS_SG} + db_subnet_group_name: rds-ekslab + no_publicly_accessible: true + backup_retention_period: 0 + storage_type: gp2 +- name: RDS_SG + endpoint: + path: /services/data/vXX.X/sobjects/RDS_SG + method: GET + data_selector: records + params: {} +- name: POD_SG + endpoint: + path: /services/data/vXX.X/sobjects/POD_SG + method: GET + data_selector: records + params: {} +- name: green-pod + endpoint: + path: /green-pod + method: POST + data_selector: pod + params: {} +- name: red-pod + endpoint: + path: /red-pod + method: POST + data_selector: pod + params: {} +- name: SecurityGroupPolicy + endpoint: + path: /api/v1/securityGroupPolicies + method: POST + data_selector: items +- name: VPCResourceController + endpoint: + path: /api/v1/vpcResourceControllers + method: POST + data_selector: items +- name: security_group_policy + endpoint: + path: /api/security-group-policy + method: POST + data_selector: data + params: {} +- name: vpc_resource_controller + endpoint: + path: /api/vpc-resource-controller + method: GET + data_selector: data + params: {} +- name: eks_cluster + endpoint: + path: /eks/create-cluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes_version: '1.33' + role_arn: $CLUSTER_ROLE_ARN + access_config: authenticationMode=API_AND_CONFIG_MAP + resources_vpc_config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: managed_node_group + endpoint: + path: /eks/create-nodegroup + method: POST + data_selector: nodegroup + params: + cluster_name: pod-security-cluster-demo + nodegroup_name: workers + subnets: $PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 + node_role: $NODE_ROLE_ARN + instance_types: m5.large + scaling_config: minSize=1,maxSize=3,desiredSize=2 + disk_size: 20 + capacity_type: ON_DEMAND +- name: security_group_for_management + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: securityGroup + params: + group_name: EKS-Management-SG + description: Security group for EKS management instance + vpc_id: $VPC_ID +- name: pod_security_group + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: securityGroup + params: + description: Pod Security Group - Database Access + group_name: POD_SG + vpc_id: ${VPC_ID} +- name: security_group + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: SecurityGroupId + params: + description: RDS Security Group - PostgreSQL Database + group_name: RDS_SG + vpc_id: ${VPC_ID} +- name: db_instance + endpoint: + path: /rds/create-db-instance + method: POST + data_selector: DBInstanceIdentifier + params: + db_instance_identifier: rds-ekslab + db_instance_class: db.t3.micro + engine: postgres + master_username: postgres + master_user_password: ${RDS_PASSWORD} + allocated_storage: 20 + vpc_security_group_ids: ${RDS_SG} + db_subnet_group_name: rds-ekslab + no_publicly_accessible: true + backup_retention_period: 0 + storage_type: gp2 +- name: eks_cluster + endpoint: + path: /eks/create-cluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes_version: '1.33' + role_arn: $CLUSTER_ROLE_ARN + access_config: authenticationMode=API_AND_CONFIG_MAP + resources_vpc_config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: managed_node_group + endpoint: + path: /eks/create-nodegroup + method: POST + data_selector: nodegroup + params: + cluster_name: pod-security-cluster-demo + nodegroup_name: workers + subnets: $PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 + node_role: $NODE_ROLE_ARN + instance_types: m5.large + scaling_config: minSize=1,maxSize=3,desiredSize=2 + disk_size: 20 + capacity_type: ON_DEMAND +- name: security_group_for_pods + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: security_group + params: + description: Pod Security Group - Database Access + group_name: POD_SG + vpc_id: ${VPC_ID} +- name: green-pod + endpoint: + path: /green-pod + method: POST + data_selector: metadata + params: {} +- name: red-pod + endpoint: + path: /red-pod + method: POST + data_selector: metadata + params: {} +- name: RDS Security Group + endpoint: + path: /create-security-group + method: POST + data_selector: SecurityGroupId + params: + description: RDS Security Group - PostgreSQL Database + group_name: RDS_SG + vpc_id: ${VPC_ID} +- name: DB Subnet Group + endpoint: + path: /create-db-subnet-group + method: POST + data_selector: DBSubnetGroupName + params: + db_subnet_group_name: rds-ekslab + db_subnet_group_description: Subnet group for EKS lab RDS instance + subnet_ids: + - ${PRIVATE_SUBNET_1} + - ${PRIVATE_SUBNET_2} +- name: RDS Instance + endpoint: + path: /create-db-instance + method: POST + data_selector: DBInstanceIdentifier + params: + db_instance_identifier: rds-ekslab + db_instance_class: db.t3.micro + engine: postgres + master_username: postgres + master_user_password: ${RDS_PASSWORD} + allocated_storage: 20 + vpc_security_group_ids: + - ${RDS_SG} + db_subnet_group_name: rds-ekslab + no_publicly_accessible: true + backup_retention_period: 0 + storage_type: gp2 +- name: green_pod + endpoint: + path: /services/data/vXX.X/sobjects/GreenPod + method: GET + data_selector: records + params: {} +- name: red_pod + endpoint: + path: /services/data/vXX.X/sobjects/RedPod + method: GET + data_selector: records + params: {} +- name: create_tags_public_subnets + endpoint: + path: /create-tags + method: POST + data_selector: tags + params: + resources: $PUBLIC_SUBNET_1, $PUBLIC_SUBNET_2 + tags: + - Key: kubernetes.io/cluster/pod-security-cluster-demo + Value: shared + - Key: kubernetes.io/role/elb + Value: '1' +- name: create_tags_private_subnets + endpoint: + path: /create-tags + method: POST + data_selector: tags + params: + resources: $PRIVATE_SUBNET_1, $PRIVATE_SUBNET_2 + tags: + - Key: kubernetes.io/cluster/pod-security-cluster-demo + Value: shared + - Key: kubernetes.io/role/internal-elb + Value: '1' +- name: RDS_SG + endpoint: + path: /services/data/vXX.X/sobjects/RDS_SG + method: POST + data_selector: SecurityGroupId + params: + description: RDS Security Group - PostgreSQL Database + group_name: RDS_SG + vpc_id: ${VPC_ID} +- name: POD_SG + endpoint: + path: /services/data/vXX.X/sobjects/POD_SG + method: POST + data_selector: SecurityGroupId + params: + description: Pod Security Group + group_name: POD_SG + vpc_id: ${VPC_ID} +- name: security_group_policy + endpoint: + path: /securityGroupPolicies + method: POST + data_selector: data + params: {} +- name: vpc_resource_controller + endpoint: + path: /vpcResourceControllers + method: GET + data_selector: data + params: {} +- name: subnet_tags + endpoint: + path: /create-tags + method: POST + data_selector: tags + params: {} +- name: route_table + endpoint: + path: /create-route-table + method: POST + data_selector: routeTable + params: {} +- name: nat_gateway + endpoint: + path: /create-nat-gateway + method: POST + data_selector: natGateway + params: {} +- name: eks_cluster + endpoint: + path: /create-cluster + method: POST + data_selector: cluster + params: {} +- name: managed_node_group + endpoint: + path: /create-nodegroup + method: POST + data_selector: nodegroup + params: {} +- name: security_group + endpoint: + path: /create-security-group + method: POST + data_selector: securityGroup + params: {} +- name: EKSClusterRole + endpoint: + path: /CreateRole + method: POST + data_selector: Role + params: {} +- name: EKSNodeGroupRole + endpoint: + path: /CreateRole + method: POST + data_selector: Role + params: {} +- name: EKS-Management-Role + endpoint: + path: /CreateRole + method: POST + data_selector: Role + params: {} +- name: RDS_SG + endpoint: + path: /services/data/vXX.X/sobjects/RDS_SG + method: GET + data_selector: records + params: {} +- name: pod_security_group + endpoint: + path: /create-security-group + method: POST + data_selector: SecurityGroup + params: + description: Pod Security Group - Database Access + group_name: POD_SG + vpc_id: ${VPC_ID} +- name: security_group_policy + endpoint: + path: /services/data/vXX.X/security-groups + method: POST + data_selector: securityGroupPolicy + params: {} +- name: green_pod + endpoint: + path: /services/data/vXX.X/sobjects/green_pod + method: GET + data_selector: records + params: {} +- name: red_pod + endpoint: + path: /services/data/vXX.X/sobjects/red_pod + method: GET + data_selector: records + params: {} +- name: green_pod + endpoint: + path: /api/v1/namespaces/networking/pods/green-pod + method: GET + data_selector: status + params: {} +- name: red_pod + endpoint: + path: /api/v1/namespaces/networking/pods/red-pod + method: GET + data_selector: status + params: {} +- name: posts + endpoint: + path: /databases/{database}/documents/posts + method: GET + data_selector: documents +- name: eks_cluster + endpoint: + path: /services/data/vXX.X/sobjects/EKSCluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes_version: '1.33' + role_arn: $CLUSTER_ROLE_ARN + access_config: authenticationMode=API_AND_CONFIG_MAP + resources_vpc_config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: managed_node_group + endpoint: + path: /services/data/vXX.X/sobjects/ManagedNodeGroup + method: POST + data_selector: node_group + params: + cluster_name: pod-security-cluster-demo + nodegroup_name: workers + subnets: $PRIVATE_SUBNET_1 $PRIVATE_SUBNET_2 + node_role: $NODE_ROLE_ARN + instance_types: m5.large + scaling_config: minSize=1,maxSize=3,desiredSize=2 + disk_size: 20 + capacity_type: ON_DEMAND +- name: security_group + endpoint: + path: /services/data/vXX.X/sobjects/SecurityGroup + method: POST + data_selector: security_group + params: + description: Pod Security Group - Database Access + group_name: POD_SG + vpc_id: ${VPC_ID} +- name: Pizza Map + endpoint: + path: /mcp + method: GET + data_selector: widgets + params: {} +- name: Pizza Carousel + endpoint: + path: /mcp + method: GET + data_selector: widgets + params: {} +- name: Pizza Album + endpoint: + path: /mcp + method: GET + data_selector: widgets + params: {} +- name: Pizza List + endpoint: + path: /mcp + method: GET + data_selector: widgets + params: {} +- name: Pizza Video + endpoint: + path: /mcp + method: GET + data_selector: widgets + params: {} +- name: agent + endpoint: + path: /agent/invocations + method: POST + data_selector: response +- name: rds_security_group + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: SecurityGroups + params: + description: RDS Security Group - PostgreSQL Database + group_name: RDS_SG + vpc_id: ${VPC_ID} +- name: pod_security_group + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: SecurityGroups + params: + description: Pod Security Group + group_name: POD_SG + vpc_id: ${VPC_ID} +- name: db_instance + endpoint: + path: /rds/create-db-instance + method: POST + data_selector: DBInstances + params: + db_instance_identifier: rds-ekslab + db_instance_class: db.t3.micro + engine: postgres + master_username: postgres + master_user_password: ${RDS_PASSWORD} + allocated_storage: 20 + vpc_security_group_ids: ${RDS_SG} + db_subnet_group_name: rds-ekslab + no_publicly_accessible: true + backup_retention_period: 0 + storage_type: gp2 +- name: security_group_policy + endpoint: + path: /vpcresources.k8s.aws/securitygrouppolicies + method: POST + data_selector: securitygrouppolicies + params: + podSelector: + matchLabels: + app: green-pod + securityGroups: + groupIds: + - ${POD_SG} +- name: Python Variables and Data Types + endpoint: + path: /learn/python/variables-and-data-types + method: GET + data_selector: content + params: {} +- name: Operators in Python + endpoint: + path: /learn/python/operators + method: GET + data_selector: content + params: {} +- name: security_group_pod + endpoint: + path: /services/eks/security_group_pods + method: POST + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: EKS Cluster + endpoint: + path: /eks/create-cluster + method: POST + data_selector: cluster + params: + name: pod-security-cluster-demo + kubernetes-version: '1.33' + role-arn: $CLUSTER_ROLE_ARN + access-config: authenticationMode=API_AND_CONFIG_MAP + resources-vpc-config: subnetIds=$PUBLIC_SUBNET_1,$PUBLIC_SUBNET_2,$PRIVATE_SUBNET_1,$PRIVATE_SUBNET_2 +- name: Managed Node Group + endpoint: + path: /eks/create-nodegroup + method: POST + data_selector: nodegroup + params: + cluster-name: pod-security-cluster-demo + nodegroup-name: workers + subnets: $PRIVATE_SUBNET_1 $PRIVATE_SUBNET_2 + node-role: $NODE_ROLE_ARN + instance-types: m5.large + scaling-config: minSize=1,maxSize=3,desiredSize=2 + disk-size: 20 + capacity-type: ON_DEMAND +- name: EKS Access Configuration + endpoint: + path: /eks/create-access-entry + method: POST + data_selector: access-entry + params: + cluster-name: pod-security-cluster-demo + principal-arn: $MANAGEMENT_ROLE_ARN +- name: Pod Security Group + endpoint: + path: /ec2/create-security-group + method: POST + data_selector: security-group + params: + description: Pod Security Group - Database Access + group-name: POD_SG + vpc-id: ${VPC_ID} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: db_instance + endpoint: + path: /create-db-instance + method: POST + data_selector: DBInstances + params: + db-instance-identifier: rds-ekslab + engine: postgres + master-username: postgres + allocated-storage: 20 + vpc-security-group-ids: ${RDS_SG} + db-subnet-group-name: rds-ekslab + no-publicly-accessible: true + backup-retention-period: 0 + storage-type: gp2 +- name: db_subnet_group + endpoint: + path: /create-db-subnet-group + method: POST + data_selector: DBSubnetGroups + params: + db-subnet-group-name: rds-ekslab + db-subnet-group-description: Subnet group for EKS lab RDS instance + subnet-ids: ${PRIVATE_SUBNET_1},${PRIVATE_SUBNET_2} +- name: data + endpoint: + path: /data + method: GET + data_selector: json +- name: posts + endpoint: + path: /databases/{database}/documents/posts + method: GET + data_selector: data + params: {} +- name: Pizza Map + endpoint: + path: /mcp + method: GET + data_selector: widget markup +- name: Pizza Carousel + endpoint: + path: /mcp + method: GET + data_selector: widget markup +- name: Pizza Album + endpoint: + path: /mcp + method: GET + data_selector: widget markup +- name: Pizza List + endpoint: + path: /mcp + method: GET + data_selector: widget markup +- name: Pizza Video + endpoint: + path: /mcp + method: GET + data_selector: widget markup +- name: ExternalLambda1 + endpoint: + path: /secure-lambda/ExternalLambda1 + method: POST +- name: ExternalLambda2 + endpoint: + path: /secure-lambda/ExternalLambda2 + method: POST +- name: lambda1 + endpoint: + path: /lambda1 + method: POST +- name: lambda2 + endpoint: + path: /lambda2 + method: POST +- name: invoices + endpoint: + path: /invoices/{id} + method: GET + data_selector: invoice + params: {} +- name: jobs + endpoint: + path: /jobs + method: POST + data_selector: status + params: {} +- name: sidebar + endpoint: + path: / + method: GET + data_selector: sidebar + params: {} +- name: container-node-app + endpoint: + path: /container-node-app + method: POST + data_selector: image + params: {} +- name: prerequisites + endpoint: + path: /prerequisites + method: GET + data_selector: prerequisites +- name: why_learn_python + endpoint: + path: /why-learn-python + method: GET + data_selector: reasons +- name: key_characteristics + endpoint: + path: /key-characteristics + method: GET + data_selector: characteristics +- name: practical_uses + endpoint: + path: /practical-uses + method: GET + data_selector: uses +- name: hello_world + endpoint: + path: /hello-world + method: GET + data_selector: example +- name: python_variables_data_types + endpoint: + path: /python-variables-data-types + method: GET + data_selector: data_types +- name: operators + endpoint: + path: /operators + method: GET + data_selector: operators +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: podcast + endpoint: + path: /podcast/192 + method: GET + data_selector: podcast_details +- name: data + endpoint: + path: /data + method: GET + data_selector: name, description +- name: Pods + endpoint: + path: /api/v1/pods + method: GET + data_selector: items +- name: Deployments + endpoint: + path: /apis/apps/v1/deployments + method: GET + data_selector: items +- name: Services + endpoint: + path: /api/v1/services + method: GET + data_selector: items +- name: ReplicaSets + endpoint: + path: /apis/apps/v1/replicasets + method: GET + data_selector: items +- name: DaemonSets + endpoint: + path: /apis/apps/v1/daemonsets + method: GET + data_selector: items +- name: StatefulSets + endpoint: + path: /apis/apps/v1/statefulsets + method: GET + data_selector: items +- name: Jobs + endpoint: + path: /apis/batch/v1/jobs + method: GET + data_selector: items +- name: CronJobs + endpoint: + path: /apis/batch/v1beta1/cronjobs + method: GET + data_selector: items +- name: ExternalLambda1 + endpoint: + path: /secure-lambda/ExternalLambda1 + method: POST +- name: ExternalLambda2 + endpoint: + path: /secure-lambda/ExternalLambda2 + method: POST +- name: lambda1 + endpoint: + path: /lambda1 + method: POST + params: {} +- name: lambda2 + endpoint: + path: /lambda2 + method: POST + params: {} +- name: Sidebar + endpoint: + path: /sidebar + method: GET + data_selector: components + params: {} +- name: Menu + endpoint: + path: /menu + method: GET + data_selector: components + params: {} +- name: MenuItem + endpoint: + path: /menuitem + method: GET + data_selector: components + params: {} +- name: Submenu + endpoint: + path: /submenu + method: GET + data_selector: components + params: {} +- name: Logo + endpoint: + path: /logo + method: GET + data_selector: components + params: {} +- name: container-node-app + endpoint: + path: /container-node-app + method: POST + data_selector: application/json +- name: courses + endpoint: + path: /courses + method: GET + data_selector: data + params: {} +notes: +- API versioning is the practice of transparently managing changes to your API. +- Managing an API boils down to defining and evolving data contracts and dealing with + breaking changes. +- Every aspect of freeCodeCamp is 100% free. +- freeCodeCamp is a donor-supported tax-exempt 501(c)(3) charitable organization. +- The content in this section is not being updated, but is still available for you + to further your learning. +- Course offers a comprehensive introduction to C# programming. +- The content in the archived coursework section is not being updated. +- Uses Swagger for API documentation +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- The model URL and access token must be specified in the environment variables. +- This handbook is completely free right here in this webpage. +- The payload input is dynamic and provided by the query method. +- Uses Redis with aioredis and rejson for JSON data handling +- Connection parameters are stored in environment variables +- This handbook covers various JavaScript concepts. +- Because this is a demo app, I do not want to store the chat data in Redis for too + long. +- Uses Huggingface's accelerated inference API. +- Keep Huggingface access token safe and do not expose it publicly. +- 'use_cache: True is recommended in production to prevent exhausting free tokens.' +- 'return_full_text: is False, as only the response text is needed.' +- Ensure rejson is installed +- Stream consumer waits for new messages +- Uses Redis JSON for storing chat history +- Uses FastAPI for the chat server setup +- WebSocket connection is required for chat functionality +- Uses REST API to communicate with Huggingface inference API +- Uses Redis to broker the communication between chat API and third-party API +- Ensure rejson is installed. +- Use cache to prevent exhausting free tokens. +- Using free account — monitor API usage to avoid rate limits +- WebSocket connection requires a token as a query parameter. +- Uses Redis for message brokering between chat API and third-party API +- Sessions expire after 60 minutes +- Session data will be lost after 60 minutes due to timeout settings. +- The input format turns the GPT-J6B into a conversational model. +- Using cache does not actually load a new response from the model. +- The model creates a new response when the input is the same if use_cache is set + to False. +- Requires a personal access token for authentication. +- Uses API key authentication +- Redis sessions expire after 60 minutes +- The transform property accepts one or more CSS transform functions. +- GraphQL offers efficient and flexible data fetching capabilities. +- Well-suited for applications with complex data requirements. +- Some objects may return nulls in deeply nested fields +- Declarative access control allows defining what is allowed without worrying about + how to check permissions. +- The CSS scale property allows scaling an element without using the CSS transform + property. +- A none value tells browsers not to scale the selected element. +- A none value tells browsers not to translate the selected element. +- Browsers, by default, convert a CSS transform property's value to its matrix equivalent. +- Not all elements are transformable. +- Versioning is implemented using path segments like v1 or v2. +- Declarative access control — define what is allowed rather than how to check permissions. +- Ensure policies are fetched during app startup to avoid unnecessary network requests. +- API is listening on port 3000 +- Uses Express.js for API implementation +- Responses are sent in JSON format +- Handles basic CRUD operations for workouts. +- Validates incoming request bodies for required fields. +- API receives data in JSON format via POST requests. +- New workouts must be validated for required fields. +- Implement caching for performance improvements. +- Uses OpenAPI for documentation +- Responses may contain a 5XX error indicating failure +- Make sure the PHP version selected is the latest available. +- MAMP has a version that’s a bit behind, not the latest. +- The API accepts JSON data for creating workouts. Required fields include name, mode, + equipment, exercises, and trainerTips. +- Responds with standard HTTP error codes for bad requests. +- Java is a widely-used programming language. +- The only prerequisite is familiarity with any other programming language. +- Uses Scanner class for taking user inputs. +- If nextInt() is called before nextLine(), it may skip the next input. +- Common methods inside the java.util.Arrays class. +- Filtering, sorting, and pagination are integrated into the API. +- Uses OpenAPI documentation for endpoints +- MAMP is a tool that’s freely available for all the Operating Systems – Mac, Windows + and Linux. +- All examples in this book are demonstrated in Ubuntu 22.04.2 LTS (Jammy Jellyfish). +- You can get a PDF, ePub, or Mobi version of this handbook for easier reference, + or for reading on your Kindle or tablet. +- Arrays.sort() method sorts the array in place. +- Arrays.binarySearch() method returns the index of the found item. +- Uses command line interface for file searching +- Hidden files can be searched by prefixing with '.' +- Nano is pre-installed on most Linux distributions. +- Disk errors can cause application crashes. +- The containsKey() method checks if a given key exists in the hash map. +- The containsValue() method checks if a given value exists in the hash map. +- Linux is an open-source operating system. +- The default shell for many Linux distros is the GNU Bourne-Again Shell (bash). +- Text editing skills using the command line are crucial in Linux. +- Bash scripts can run perfectly fine without the 'sh' extension. +- Comments start with a '#' in bash scripting. +- Uses command-line interface for package management +- The 'find' command is used to search for files and folders. +- The 'stress-ng' utility is used for conducting CPU stress tests. +- Nano is a user-friendly text editor that is easy to use and is perfect for beginners. +- It is pre-installed on most Linux distributions. +- To identify disk issues, run disk check using smartmontools. +- A detailed test provides a full report, including temperature, power-on hours, error + counts, wear leveling (for SSDs), and more. +- The 'tail' command is used to display the last part of a file. +- The 'head' command is used to display the beginning of a file. +- The 'wc' command counts words, lines, and characters in a file. +- The 'diff' command compares two files line by line. +- Bash scripts can run without the .sh extension. +- 'Comments start with # and are ignored by the interpreter.' +- Bash scripts can run perfectly fine without the .sh extension. +- All examples are demonstrated in Ubuntu 22.04.2 LTS. +- The default port for ssh is 22. +- The `sudo` command allows you to run commands with elevated privileges. +- The fields in awk can be accessed using $1, $2, $3, and so on. +- The default separator in awk is a space. +- The cut command is used to extract sections of text from each line of input. +- Various options available for managing processes using the kill command. +- Crontab allows scheduling tasks to run at specific times. +- Cron jobs can be added or edited using 'crontab -e'. +- Tail command can display last few lines of a file. +- This handbook covers basics of the Linux command line and advanced topics like shell + scripting. +- Uses command line interface for package management. +- Directory ownership can be viewed using the ls -ld command. +- Logs are structured and can be parsed using awk and cut. +- Use 'kill ' to terminate a process gracefully. +- Use 'kill -9 ' to forcefully terminate a process. +- 'SMART overall-health self-assessment test result: PASSED.' +- Linux is open-source and widely used in various fields. +- Uses `sar` for system activity reporting. +- Disk health can be checked using `smartmontools`. +- CPU can be stressed using `stress-ng`. +- Overheating can cause unexpected errors and crashes. +- Disk errors can also cause application crashes. +- Faulty CPUs can also lead to a number of performance issues. +- Bash scripts are easy to write and don't require any special tools or software. +- Bash scripts can be run on various platforms and operating systems. +- Provides step-by-step instructions for learning React concepts +- No previous knowledge required to start +- The default port for ssh is 22 but it is also vulnerable, as hackers will likely + attempt here first. +- Logs contain various levels of information including ERROR, WARNING, and INFO. +- The output of commands can be piped for further processing. +- Requires setting up a Google Cloud account and project. +- Billing must be enabled for cloud services. +- This command sends a signal to a process ID, asking it to terminate. +- Can forcefully kill a process using SIGKILL. +- To allow users to create cron jobs, include their names in /etc/cron.allow. +- Ensure billing account is linked to the project +- Service account key should be stored securely +- Trigger Continuous Deployment only when a new release is created from the main branch. +- The fields in log files are space-separated. +- Docker is an open-source containerization platform. +- Cron jobs require permission set in /etc/cron.allow +- Cron logs can be found at /var/log/syslog +- Installation varies by OS but is generally simple. +- Ideal CPU queue is 0. +- Utilized disk spaces should not exceed 80%. +- Docker uses a client-server architecture. +- Uses JSX for templating +- Props are immutable +- Uses useEffect hook for network requests +- Images are multi-layered self-contained files. +- Containers are isolated environments. Your host system doesn't know anything about + what's going on inside a container. +- To allow access from outside of a container, you must publish the appropriate port + inside the container to a port on your local network. +- By default, containers run in the foreground and attach themselves to the terminal + like any other normal program invoked from the terminal. +- This handbook provides a step-by-step guide for setting up CI/CD with GitHub Actions, + Docker, and Google Cloud Run. +- Uses Docker Hub for image storage +- Requires Google Cloud account and project setup +- A service account allows CI/CD pipeline to authenticate and interact with Google + Cloud services programmatically. +- The service account key is a JSON file containing the credentials used for authentication. +- Docker is an open-source containerization platform that allows you to containerize + your applications. +- Images are multi-layered read-only files. +- Docker runs flawlessly on all three major platforms, Mac, Windows, and Linux. +- The Docker client talks to the Docker daemon. +- The container start command starts any container in detached mode by default and + retains any port configurations made previously. +- In case of a stopped container, both container start and container restart commands + are exactly the same. +- Containers are isolated environments. +- Docker runs on Mac, Windows, and Linux. +- Installation processes vary across operating systems. +- You can check if the container was deleted or not by using the `container ls` command. +- You can also remove multiple containers at once by passing their identifiers one + after another separated by spaces. +- Instead of removing individual containers, if you want to remove all dangling containers + at one go, you can use the `container prune` command. +- You can check the container list using the `container ls --all` command to make + sure that the dangling containers have been removed. +- Use --name option to define a custom name for containers +- Stopping a container can be done using either the ID or name +- Docker Hub is the default public registry for Docker. +- Uses Docker CLI commands for container management. +- Images can encapsulate an entire Linux distribution inside them. +- These images require a special `-it` option to be passed in the `container run` + command. +- The `-it` option sets the stage for you to interact with any interactive program + inside a container. +- Containers are lightweight and share the host OS kernel. +- The container restart command attempts to stop the target container and then starts + it back up again. +- Uses bind mounts to allow container access to local file system +- Containers are lighter than virtual machines. +- There is also the `--rm` option for the `container run` and `container start` commands + which indicates that you want the containers removed as soon as they're stopped. +- The 'container start' command starts any container in detached mode by default. +- The 'container restart' command attempts to stop the target container and then starts + it back up again. +- The 'container create' command creates a container from a given image. +- Every valid Dockerfile starts with a FROM instruction. +- The EXPOSE instruction is used to indicate the port that needs to be published. +- The RUN instruction in a Dockerfile executes a command inside the container shell. +- The CMD instruction sets the default command for your image. +- Uses container commands to manage Docker containers. +- The `container start` command starts any container in detached mode by default. +- In case of a stopped container, `container start` and `container restart` commands + are equivalent. +- You need to use the -it option whenever you want to run a container in interactive + mode. +- Docker provides a way to containerize applications along with their dependencies. +- Images are multi-layered read-only files carrying your application. +- Supports managing container lifecycle including start, stop, and remove. +- Can create containers without running them. +- 'The generic syntax for encoding a string using base64 is: echo -n my-secret | base64' +- EXPOSE instruction indicates the port that needs to be published. +- CMD instruction sets the default command for your image. +- Uses Docker Hub as the default public registry for images. +- Containers are much lighter and less resource-hogging than traditional virtual machines. +- Container start command starts any container in detached mode by default and retains + any port configurations made previously. +- Container restart command attempts to stop the target container and then starts + it back up again. +- Docker CLI commands provided for managing containers and images +- Docker images are multi-layered files. +- Each line in a Dockerfile creates a new layer in the image. +- Docker can be run on Mac, Windows, and Linux. +- The `FROM` instruction sets Ubuntu as the base image making an ideal environment + for building any application. +- The `RUN` instruction installs standard packages necessary for building NGINX from + source. +- The installation process on Mac is the easiest. +- The Docker client communicates with the Docker daemon. +- Uses REST API for managing containers and images. +- Uses Docker CLI commands to manage containers. +- 'The daemon needs two very specific pieces of information: the name of the Dockerfile + and the build context.' +- Uses Ubuntu as the base image for building NGINX +- Images can be exchanged through registries. +- Uses Docker commands for container management +- Containers can be created, started, stopped, and removed +- The RUN instruction executes a command inside the container shell. +- The API supports managing containers and images. +- Uses ARG instruction for dynamic filename and extension +- Uses ADD instruction to download files from the internet +- Containers can be started in detached mode by default. +- Uses Docker Hub API for accessing container and image data. +- Commands for managing containers and images can be executed using the Docker CLI. +- Containers operate in isolated environments. +- Use `container create` to create a container without running it. +- Uses Ubuntu as base image for building NGINX from source +- The ARG instruction lets you declare variables like in other languages. +- The ADD instruction doesn't extract files obtained from the internet by default. +- Uses Alpine Linux for a lightweight container. +- The 'container start' command starts any container in detached mode by default and + retains any port configurations made previously. +- Variable values can be passed as options of the image build command. +- Installation varies by operating system. +- Docker is open-source and allows containerization of applications. +- Uses Docker CLI for container management +- Interactive images require -it option to run +- Uses Docker commands to manage containers +- Commands include container start, restart, create, rm, and run for various container + operations +- The `ARG` instruction lets you declare variables like in other languages. +- The `ADD` instruction doesn't extract files obtained from the internet by default. +- Using Alpine Linux as the base image reduces the size significantly. +- Uses Node.js for JavaScript applications +- The vite development server runs on port 3000 +- Container commands can be run in detached mode by default. +- Container removal is possible using the 'container rm' command. +- Docker commands require appropriate permissions and context setup. +- Uses Ubuntu as a base image for building NGINX +- Dockerfile supports building NGINX from source +- The image should have Python pre-installed. +- It should contain a copy of my `rmbyext` script. +- A working directory should be set where the script will be executed. +- The `rmbyext` script should be set as the entry-point so the image can take extension + names as arguments. +- Set `rmbyext` as the entry-point for this image. +- Docker containers use the host operating system for virtualization. +- Images are multi-layered read-only files that act as templates for containers. +- Uses Alpine Linux to reduce image size. +- Container operations can be performed using commands like start, stop, and remove. +- Uses Python 3-alpine as the base image +- The working directory is set to /zone +- Uses Alpine Linux for a lightweight image. +- Your password will be stored unencrypted in /home/fhsinchy/.docker/config.json. +- Configure a credential helper to remove this warning. +- The `container start` command starts any container in detached mode by default and + retains any port configurations made previously. +- Uses Docker CLI commands for managing containers. +- Uses Ubuntu as a base image for building NGINX from source. +- The ADD instruction forms the download URL dynamically using arguments declared. +- The image size has been optimized from 343MB to 12.8MB using Alpine Linux. +- Uses Python 3-alpine as the base image. +- The working directory is set to /zone. +- The entry-point for the image is set to rmbyext. +- Uses Docker CLI commands for managing containers and images. +- The container start command starts any container in detached mode by default. +- Uses Ubuntu as the base image for building NGINX from source. +- The container starts in detached mode by default +- The container retains any port configurations made previously +- Uses Ubuntu as base image for building NGINX. +- The default command runs NGINX in single process mode. +- Uses ARG to define filename and extension for dynamic download +- Alpine Linux is used for a lightweight image +- The `rmbyext` script should be set as the entry-point. +- Uses Alpine Linux for a lightweight image +- Image size reduced significantly +- Password will be stored unencrypted in /home/fhsinchy/.docker/config.json. +- Container commands can be used to manage Docker containers. +- Uses Docker API for managing containers and images. +- Ensure Docker daemon is running before making API calls. +- Requires Python pre-installed +- Working directory must be set for script execution +- Given the filename is not `Dockerfile` you have to explicitly pass the filename + using the `--file` option. +- Containers use the host operating system for virtualization, making them lighter + than virtual machines. +- Containers can be created without running using the container create command. +- Use --rm option to automatically remove containers once they are stopped. +- Uses Docker API for container management. +- Uses Ubuntu as base image for building NGINX +- Get a good base image for running Python scripts, like python:3-alpine. +- The rmbyext script should be set as the entry-point. +- Bind mounts allow direct reference to local file system inside the container. +- Changes in local source code will reflect immediately inside the container. +- The image is configured to run the rmbyext script on a directory /zone inside the + container. +- Containers can be started, stopped, and removed using appropriate commands. +- Interactive containers require the -it option. +- To reboot a running container use the container restart command. +- Uses git to install the rmbyext script. +- Uses ARG for filename — allows changing version easily +- ADD instruction can download files directly from the internet +- Uses multi-staged builds for optimized Docker images +- Container commands include start, stop, restart, and remove. +- Use `--rm` option to automatically remove containers after stopping. +- Multi-staged builds can optimize and compact applications. +- Containers are isolated environments from the host system. +- Bind mounts can be created using the --volume or -v option for the container run + or container start commands. +- Uses a GitHub repository to install the rmbyext script +- Sets rmbyext as the entry-point for the Docker image +- Docker commands may require elevated privileges. +- Installation procedures vary greatly depending on the operating system. +- 'Docker runs flawlessly on all three major platforms: Mac, Windows, and Linux.' +- An anonymous volume is identical to a bind mount except that you don't need to specify + the source directory. +- Container commands can be run in interactive mode using the -it option. +- Container commands may differ based on the system and configuration. +- The build context must be set correctly to ensure all files are included. +- Make sure to run the container with the correct volume mounts to avoid issues with + dependencies. +- User-defined bridges provide automatic DNS resolution between containers. +- User-defined bridges provide better isolation. +- Uses Git to install the rmbyext script. +- Uses the docker CLI for network operations +- When accessing a database server from a container, ensure to use the container name + or IP address instead of localhost. +- The Dockerfile must start with a FROM instruction. +- EXPOSE instruction is used to indicate the port that needs to be published. +- Docker has a similar concept to .gitignore with .dockerignore files to exclude files + and directories from image builds. +- Uses a client-server architecture where the client communicates with the daemon + via a REST API. +- Uses REST API to interact with Docker containers and images. +- Multi-staged builds can optimize images by reducing unnecessary dependencies. +- Use the `latest` tag if no specific tag is provided during image build. +- Must provide POSTGRES_PASSWORD and POSTGRES_DB environment variables. +- Docker API allows interaction with containers and images. +- Uses Python as base image +- Working directory set to /zone +- Multi-staged builds can be very useful if you're building large applications with + a lot of dependencies. +- Using IP addresses to refer to a container is not recommended. +- POSTGRES_PASSWORD environment variable is required to run the PostgreSQL server +- POSTGRES_DB environment variable can be used to specify the default database name +- Uses Docker commands to manage container lifecycle. +- Containers can be created, started, stopped, and removed. +- The notes-api application requires three environment variables to be set. +- Compose is a tool for defining and running multi-container Docker applications. +- Although Compose works in all environments, it's more focused on development and + testing. Using Compose on a production environment is not recommended at all. +- Uses Alpine Linux for a lighter image build. +- If configured properly, images built in multiple stages can be very optimized and + compact. +- To remove all dangling containers at one go, you can use the container prune command. +- Uses Ubuntu as the base image for building NGINX. +- Ensure to publish port 5432 for PostgreSQL. +- The API has five routes in total that you can see inside the `/notes-api/api/api/routes/notes.js` + file. +- You must run the database migration necessary for setting up the database tables + by executing `npm run db:migrate` command inside the container. +- Set rmbyext as the entry-point for the Docker image. +- Uses Docker Compose for multi-container management +- Development environment recommended for Compose usage +- Installation procedures vary by platform. +- 'To create a volume named notes-db-data you can execute the following command: docker + volume create notes-db-data' +- This volume can now be mounted to /var/lib/postgresql/data inside the notes-db container. +- Installation procedures vary across platforms. +- Docker commands can manage containers, images, and volumes. +- The image size with Alpine is 12.8MB, which is significantly smaller than the Ubuntu + version. +- In case of a stopped container, both `container start` and `container restart` commands + are the same. +- Use `container rm` to remove stopped or dangling containers. +- The `--rm` option for `container run` indicates that you want the containers removed + as soon as they're stopped. +- '`rmbyext` script should be set as the entry-point so the image can take extension + names as arguments.' +- To ignore unnecessary files, use a .dockerignore file. +- Make sure the database container is running and attached to the notes-api-network. +- Docker allows you to containerize applications and share them using public or private + registries. +- The daemon manages various Docker objects. +- Containers use the host operating system kernel. +- Uses Ubuntu as the base image for building NGINX from source +- The rmbyext script should be set as the entry-point so the image can take extension + names as arguments. +- Uses Git for installation. +- Set rmbyext as the entry-point. +- The database server listens on port 5432. +- Uses Docker Compose to manage multi-container applications +- PostgreSQL listens on port 5432 by default. +- Ensure to publish port 5432 to access the database. +- Databases like PostgreSQL use the /var/lib/postgresql/data directory inside the + container to persist data. +- To avoid data loss when the container is destroyed, a named volume can be used. +- Using Compose on a production environment is not recommended. +- Containers can be started, stopped, and removed using specific commands. +- The --rm option removes containers automatically after they stop. +- Uses Git to install the script from GitHub +- The PostgreSQL server listens on port 5432. +- To build an image using the Dockerfile code provided, execute the command with the + proper context. +- The image size has gone from being 343MB to 81.6MB. +- The Alpine version is significantly smaller at 12.8MB. +- Make sure you're running the scripts inside the notes-api directory. +- Uses Alpine variant of Python 3 for optimal size +- Ensure to set entry-point to `rmbyext` for executable image +- PostgreSQL by default listens on port 5432 +- The database must be running and attached to the notes-api-network. +- Uses Docker Compose for managing multi-container projects. +- Uses REST API for container management. +- No authentication required for accessing public resources. +- Must provide POSTGRES_PASSWORD and POSTGRES_DB as environment variables. +- The database will be stored inside the notes-db-data volume and can be reused in + the future. +- Uses ARG instruction to define the filename and extension for the NGINX source. +- The application runs on port 3000. +- Hot reload feature requires bind mounts to reflect changes. +- API has five routes in total +- Uses Docker Compose to manage multi-container applications. +- Do not use Docker Compose in production environments. +- Uses the Docker CLI for command execution +- Commands can be executed in interactive mode with the -it option +- Use container commands to create, start, stop, and manage Docker containers. +- Image is built from Alpine Linux for optimization. +- Use the command 'docker container run --rm --detach --name custom-nginx-built --publish + 8080:80 custom-nginx:built' to run the container. +- Set-up the working directory to an easily accessible directory. +- Every valid docker-compose.yaml file starts by defining the file version. +- The services block holds the definitions for each of the services or containers + in the application. +- 'The API requires three environment variables: DB_HOST, DB_DATABASE, DB_PASSWORD.' +- Commands like run, start, restart, and remove are essential for container manipulation. +- The base image for Python scripts is python:3-alpine. +- The default working directory is set to /zone. +- Node.js projects use node:lts-alpine as the base image. +- Database must be migrated using 'npm run db:migrate' command inside the container. +- Defined two bridge networks for proper network isolation +- nginx service is attached to both networks to route between front-end and back-end + services +- Container commands include start, restart, create, run, and rm. +- Use the --rm option for automatic removal of containers. +- Containers can be started, stopped, and removed using respective commands. +- The `-it` option is required for interactive mode. +- Using Alpine Linux for optimized image size. +- The `COPY` instruction is responsible for copying the `nginx-1.19.2.tar.gz` file + inside the image. +- You will have to run the database migration necessary for setting up the database + tables by executing `npm run db:migrate` command inside the container. +- The API provides access to notes and user data. +- Ensure to handle authentication for user-related endpoints. +- Docker is an open-source containerization platform that allows you to containerize + your applications, share them using public or private registries, and orchestrate + them. +- 'The notes-api application requires three environment variables to be set: DB_HOST, + DB_DATABASE, and DB_PASSWORD.' +- The PATH module helps with file and directory paths. +- The FS module is used for file handling operations. +- Uses bridge networks for proper isolation +- Nginx serves as a router between front-end and back-end services +- Node is meant for server-side programming, while those browser features are meant + for client-side programming. +- If you encounter any issues during the installation process, you can refer to the + official NodeJS documentation for more detailed instructions and troubleshooting + tips. +- Installation procedures vary by operating system. +- Containers can be created and managed using the Docker API. +- Built using Alpine for a smaller image size +- This API does not require authentication. +- Docker has a similar concept to .gitignore, called .dockerignore, to exclude files + from image builds. +- Uses SQL Server as the database provider. +- 'The notes-api application requires three environment variables: DB_HOST, DB_DATABASE, + and DB_PASSWORD.' +- Error handling implemented for creating and retrieving Todo items. +- Database connection string is required in appsettings.json. +- Uses .NET Core for API development +- HTML and JavaScript files must be served from a web server. +- Vue CLI simplifies the development process for Vue.js applications. +- Consider the learning curve when choosing a framework. +- Community support can greatly enhance the development experience. +- Node provides you with lots of API's and Modules with which you can perform a variety + of operations like File Handling, Creating Servers, and much more. +- The module provides methods to work with file and directory paths. +- Differences in path separators for different operating systems. +- Never trust the input from users. +- Use express-validator for both validation and sanitization. +- Node is meant for server-side programming. +- Uses SQL Server as the database provider +- DbSettings section in appsettings.json must be configured for the connection string +- Ensure the connection string is correctly set in appsettings.json before running + the API. +- JavaScript uses prototypes instead of classical classes. +- Handles basic CRUD operations for to-do items. +- Vue.js is designed to be approachable and easy to integrate into existing projects. +- Vue.js is built upon a set of guiding principles that shape its design and philosophy. +- Single-File Components encapsulate the template, script, and styles of a component + into a single file. +- Learning curve varies for each framework. +- Community support is crucial for learning. +- The default port for Express applications is 3000. +- Handle input validation and sanitization using express-validator +- Use formidable for file uploads in multipart/form-data +- Use one leading underscore only for non-public methods and instance variables. +- We don't use the term 'private' here, since no attribute is really private in Python. +- Tuples are immutable and cannot be modified. +- Attributes are not private in Python, leading underscores indicate non-public attributes. +- Clustering is a powerful technique that allows us to unlock the hidden structures + within our data, leading to valuable insights and informed decision-making. +- The K-Means algorithm is sensitive to the initial choice of centroids. +- K-Means can struggle with non-spherical clusters. +- K-Means is a non-deterministic approach and its randomness comes in Step 1, where + all observations are randomly assigned to 1 of the K classes. +- This handbook covers fundamental concepts of clustering in unsupervised learning. +- Uses K-Means clustering algorithm from scikit-learn. +- Uses 'with' statement for file operations to ensure proper handling +- Set the maximum number of iterations to 300 +- Set a fixed random seed for reproducibility +- Requires OAuth2 setup for authentication +- Data may require normalization before clustering +- K-Means clustering is sensitive to the initial choice of centroids. +- DBSCAN does not require specifying the number of clusters in advance. +- DBSCAN can handle noisy data effectively. +- Difficulty in detecting non-spherical clusters. +- DBSCAN does not require specifying the number of clusters. +- DBSCAN can detect arbitrarily shaped clusters. +- K-Means is a non-deterministic approach and it’s randomness comes in Step 1, where + all observations are randomly assigned to 1 of the K classes. +- K-Means clustering offers an efficient approach to grouping data points based on + similarity. +- K-Means clustering is sensitive to initial centroid positions. +- Hierarchical Clustering creates a dendrogram representation. +- t-SNE aims to represent high-dimensional data points in a lower-dimensional space + while preserving the local structure. +- Implementing t-SNE in Python is straightforward with libraries such as scikit-learn. +- DBSCAN handles noisy data effectively by categorizing noise points separately from + clusters. +- Elastic computing allows automatic scaling of hardware capacity. +- Serverless architecture eliminates server management, paying only for function execution. +- K-Means clustering can be sensitive to initial centroid selection. +- Programming is essential for everyday life. +- Mobile app developers use languages like JavaScript, Java, Swift, Kotlin. +- 'eps=0.3: Defines how close points should be to be considered neighbors.' +- 'min_samples=5: Sets the minimum number of points required to form a dense region.' +- Programming can be applied in every scientific field that you can imagine, including + biology, physics, chemistry, and even astronomy. +- Programming languages that are commonly used for physics simulations include C, + Java, Python, MATLAB, and JavaScript. +- Programming can also be helpful to develop programs and models that predict financial + indicators and trends. +- K-Means clustering is sensitive to initial centroid placement. +- Implementing t-SNE in Python is relatively straightforward with the help of libraries + such as scikit-learn. +- Event held in Silicon Valley focused on building apps and pitching them. +- Programming languages can be classified based on different criteria and they share + basic concepts such as variables, conditionals, loops, and functions. +- Building projects is the best way to strengthen frontend development skills. +- Regularly reviewing what you have learned is essential to reinforce key concepts. +- Learning to code is an ambiguous process. +- Competence and confidence come with practice. +- Coding is about learning and understanding the system. +- Learning is important, but without building projects, it remains theoretical. +- Invest time in building relationships. +- Be interested in people's lives. +- Practice algorithms and data structures will help in interviews. +- Focus on communication skills in Behavioral Interviews. +- Python’s list functions are often simpler and more intuitive, which is particularly + beneficial for quick data manipulation. +- Using JWTs for user authentication can enhance security. +- Tuples are ideal for fixed collections, such as coordinates or configuration values, + where data should not change. +- While optional, a solid understanding of DSA can significantly improve your problem-solving + skills and make you a more competent developer. +- Basic knowledge of system design is a must. It helps you understand how to architect + scalable and efficient systems, a critical skill for any full stack developer. +- Make sure to build at least five projects that solve real-world problems. +- Becoming a Full Stack Developer is more than just learning to code—it's about building, + deploying, and scaling real-world applications. +- Testing is an integral part of software development, ensuring that applications + behave as expected and reducing the likelihood of bugs. +- Both Python and JavaScript have robust ecosystems for testing, offering various + frameworks and tools to streamline the process. +- 'JavaScript: Mocha and Chai are popular choices, while Python developers often use + Pytest or the built-in Unittest module.' +- We are a donor-supported tax-exempt 501(c)(3) charity organization. +- You have full control over your data, and can set any of these details to private, + or delete them at any time. +- When you delete personal data from freeCodeCamp, we immediately delete it from our + servers. +- These terms govern use of the website. +- You must agree to these terms with Free Code camp, Inc. +- Deciding how to partition the work between multiple processors is sometimes a complex + issue that you should consider carefully. +- 'Golang introduced concurrency as a first-class language: goroutines and channels.' +- The philosophy of communication in Channels offers a secure means of communication + between goroutines. +- Server running on port 3000 +- TensorFlow.js brings machine learning capabilities to JavaScript. +- 'Always include Authorization: Bearer for protected routes.' +- freeCodeCamp is a donor-supported tax-exempt 501(c)(3) charity organization. +- The vast majority of freeCodeCamp's funding comes from the thousands of people who + support our 501(c)(3) nonprofit each month through recurring donations. +- We also have organizations who support our nonprofit through grants. +- Uses Compound Components pattern to create flexible UIs +- Users can access all lessons without creating an account. +- Uses OAuth2 with refresh token — requires setup of API credentials. +- Ensure to handle potential data drift detection failures. +- The company reserves the right to change, redact, and delete content on the website + for any reason. +- Configuration files provide a structured way to manage application settings. +- freeCodeCamp is a donor-supported tax-exempt 501(c)(3) charity organization +- DVC eliminates the need to store the large Parquet or CSV files directly in the + feature store or model store because it caches them as lightweight hashed files. +- Before committing parallelism into your system, you’ll need to profile the system. +- Deciding how to partition the work between multiple processors is sometimes a complex + issue. +- Processing each file may happen on a different core, and the results will get added + at the final stage. +- No authentication required for accessing resources. +- DVC tracks lineage through separate stages, from data extraction to fairness testing. +- Evently AI handles data drift tests. +- JWTs are primarily used for authentication. +- DVC is an open-source version system for data. +- Uses DVC for data versioning and tracking. +- Ensure the result df as dependency +- The modal component accepts children for flexible composition. +- Accordion component takes a special prop called children, enabling it to accept + any HTML/JSX/React component. +- 'The content area of an AccordionItem could be anything: a paragraph, a table, an + image, or even a JSX combining them.' +- Requires setup of Evently AI project and API token. +- Uses OAuth2 with refresh token — requires setup of connected app in Evently AI +- Data drift detection is essential for identifying shifts in data distributions +- Requires setup of Evently AI project. +- Ensure to handle API rate limits. +- Uses DVC for tracking data and model versions +- SHAP values computed for feature impact analysis +- The MOD is calculated as the absolute difference between the mean prediction values + of the privileged (registered) and unprivileged (unregistered) groups. +- The assess_model_risk stage uses a Python script to calculate fairness metrics. +- Uses Evently AI for data drift detection +- DVC tracks the ML lineage through stages +- DVC adds the preprocess_status, x_train_processed_path, and preprocessor_path to + the data summary metrics file data.json created in Step 2. +- DVC uses MD5 or SHA256 hash to track metadata. +- Evently AI is used for data drift tests. +- Uses Bayesian optimization to tune the model +- DVC is used to track machine learning lineage. +- Evently AI is used for data drift detection. +- Uses DVC to track datasets and model parameters +- DVC offers various storage types like AWS S3 and Google Cloud. +- 'Ensure the IAM role has permissions: s3:ListBucket, s3:GetObject, s3:PutObject, + and s3:DeleteObject.' +- Uses PyTorch for model training and inference. +- SHAP values are used for interpretability analysis. +- DVC eliminates the need to store large Parquet or CSV files directly in feature + or model store. +- DVC tracks the lineage through separate stages, from data extraction to fairness + testing. +- Evently AI is used to handle data drift tests. +- The DVC remote must be configured for AWS S3 +- Preprocessed input data stored in parquet format. +- DVC will track and version the generated visualization files on the SHAP values +- Uses DVC to track ML lineage +- Data drift detection is performed using Evently AI +- The preprocessor and feature names are stored for SHAP analysis. +- DVC tracks data and metrics for the entire process. +- Uses Bayesian optimization for model tuning +- The Mean Outcome Difference (MOD) is calculated as the absolute difference between + the mean prediction values of the privileged (registered) and unprivileged (unregistered) + groups. +- The pipeline integrates with AWS Lambda and uses DVC for version control. +- Evently AI is used for detecting data drift. +- adding default values to the tracking metrics +- The pipeline includes stages for preprocessing, model tuning, and inference. +- Outputs include train, validation, and test datasets in parquet format. +- Preprocessor and feature names are stored for later use. +- DVC eliminates the need to store large Parquet or CSV files directly in the feature + store. +- Machine learning lineage is critical for tracking data and model versions. +- Uses DVC for version control of data and models. +- Requires setup of Evently AI for data drift detection. +- Preprocessing and model tuning stages require tracking via DVC. +- Uses DVC for version control of datasets and models +- DVC eliminates the need to store large files directly in the feature store or model + store. +- The preprocessor and human-readable feature names are stored for SHAP analysis. +- DVC tracks all datasets and metrics generated during the pipeline. +- DVC must publish dvc.lock file in Git to ensure loading of the latest files. +- AWS Lambda function requires access to the DVC cache in production. +- Uses DVC for tracking metrics +- Ensure the IAM role has the right permissions for S3 access +- DVC is used to track the ML lineage. +- Data drift tests are conducted using Evently AI. +- DVC tracks metrics and results as part of the pipeline execution. +- docker image registry (either docker hub or aws ecr) +- AWS S3 is used as a remote storage. +- Uses parameters from params.yaml for configuration. +- DVC tracks datasets and metrics for model training and inference. +- The preprocessing stage includes normalization and feature encoding. +- Model tuning uses Bayesian optimization for hyperparameter search. +- DVC eliminates the need to store large Parquet or CSV files directly in the feature + store or model store. +- The DVC project must be initiated before running the pipeline. +- Ensure to handle exceptions for the data drift checks. +- DVC used for tracking ML lineage. +- Evently AI used for data drift detection. +- Ensure the datasets are in the correct format before ingestion. +- Uses DVC for version control of data and models +- This stage uses SHAP for feature impact analysis. +- Inference metrics are stored for model evaluation. +- Mean Outcome Difference (MOD) is calculated as the absolute difference between the + mean prediction values of the privileged (registered) and unprivileged (unregistered) + groups. +- 'Make sure the IAM role has the following permissions: s3:ListBucket, s3:GetObject, + s3:PutObject, and s3:DeleteObject.' +- Uses DVC for ML lineage tracking. +- The metrics file tracks the end-to-end process of data preparation and model evaluation. +- Uses DVC for tracking datasets and metrics +- Feature names are stored in a JSON file for SHAP analysis +- Ensure the result df as a dependency in DVC stages +- DVC eliminates the need to store large Parquet or CSV files directly +- define weekly schedule +- Uses DVC for tracking ML lineage +- Incorporates Evently AI for data drift detection +- Configured with a weekly schedule using Prefect +- The Mean Outcome Difference (MOD) is calculated as the absolute difference between + the mean prediction values of the privileged and unprivileged groups. +- The model uses PyTorch for training and inference. +- DVC is used for data versioning and tracking. +- DVC eliminates the need to store large Parquet or CSV files directly in the feature + store or model store because it caches them as lightweight hashed files. +- Pipeline stages include ETL, data drift checks, and preprocessing. +- Mean Outcome Difference (MOD) is within the specified threshold of 0.1. +- The privileged group is defined as 1 (registered). +- Uses DVC for data versioning and tracking +- The model is trained using PyTorch +- SHAP values are computed for interpretability analysis +- Uses DVC for version control of data and model files +- Handles data preprocessing and model inference. +- Utilizes DVC for tracking datasets and model versions. +- The registration status `is_registered` column is used as a sensitive feature. +- The process includes multiple stages from preprocessing to inference. +- Handles model training, tuning, and inference with DVC for tracking. +- Includes SHAP analysis for feature impact. +- The application is fully containerized on Docker for universal accessibility. +- Serverless functions can experience cold starts. +- AWS Lambda is serverless and does not require server management. +- Pay-per-use billing based on compute resources consumed. +- k-fold cross-validation is a technique for evaluating a machine learning model's + performance by training and testing it on different subsets of training data. +- The model is trained and validated using 5-fold cross-validation. +- The system operates as a containerized, serverless microservice. +- The trained models and processed data are stored in the S3 bucket as a Parquet file. +- Trained PyTorch models are serialized into .pth files. +- Uses k-fold cross validation during training to prevent overfitting. +- X_test should never be used during model training to avoid data leakage. +- Serverless functions can experience a cold start duration. +- Uses DVC to track data processing and model training. +- SHAP values are computed for interpretability. +- The `assess_model_risk` stage is added after the `inference_primary_model` stage + in dvc.yaml. +- Default values for tracking metrics are set in params.yaml. +- Uses Boto3 client for S3 interactions +- Features k-fold cross validation for model training +- Trained PyTorch models are serialized into .pth files +- Define a working directory in the container as /app +- Copy the entire repository (except .dockerignore) into the container at /app +- Install dependencies defined in the requirements.txt +- 'Define commands: ENTRYPOINT [ ''python'' ], CMD [ ''-m'', ''awslambdaric'', ''app.handler'' + ]' +- Uses AWS Lambda for serverless architecture +- Files are uploaded to S3 in Parquet format. +- DVC tracks model artifacts and metrics for each stage. +- Preprocessor needs to be saved to cache for inference. +- SHAP values are computed for model interpretability. +- Uses d3-zoom for panning and zooming +- Requires setup of DndKit for drag and drop functionality +- Uses d3-zoom for panning and zooming functionality +- CSS styles need to account for transform effects +- Security Groups for Pods enables fine-grained network security controls at the pod + level. +- IAM roles define permissions for AWS services. +- AWS Lambda is a serverless production where a service provider can run the application + without managing servers. +- K-fold cross-validation is a technique for evaluating a machine learning model's + performance by training and testing it on different subsets of training data. +- Uses Bayesian optimization for hyperparameter tuning. +- Trained models and processed data are stored in the S3 bucket as a Parquet file. +- Processed data is converted into a CSV and Parquet file format. +- Processed data is converted into CSV and Parquet file format. +- Supports pod-level network security through dedicated security groups and ENIs +- The application uses Redis for caching predictions. +- The model inference may take time depending on the data size and model complexity. +- K-fold cross-validation is performed with 5 folds. +- Models are serialized into .pth files for S3 storage. +- Cluster creation typically takes 10-15 minutes. +- After configuring the Flask application, we’ll containerize the entire application + on Docker. +- Containerization makes a package of the application, including models, its dependencies, + and configuration in machine learning context, as a container. +- Docker creates a container image based on the instructions defined in a Dockerfile, + and the Docker engine uses the image to run the isolated container. +- To publish the Docker image, we first need to configure the default AWS credentials + and region. +- The model is trained using k-fold cross-validation to prevent overfitting. +- Best hyperparameters are determined using Bayesian optimization. +- Requires setup of IAM roles and policies for EKS. +- From the AWS account console, issue an access token and check the default region. +- Store them in the ~/aws/credentials and ~/aws/config files. +- 'Increase in cold start duration: The WSGI adapter `awsgi` layer adds a small overhead. + Loading a larger container image takes longer time.' +- 'Monolithic function: Adding endpoints to the Lambda function can lead to a monolithic + function where an issue in one endpoint impacts others.' +- 'Less granular observability: AWS CloudWatch cannot provide individual invocation/error + metrics per API endpoint without custom instrumentation.' +- Standard React optimization strategies do work and improve the situation, but there + is a need to go further, by finding ways to avoid renders, and even to avoid too + many `memo` comparisons. +- Subnets should be tagged correctly for EKS auto-discovery. +- NAT Gateway provides internet access for resources in private subnets. +- Uses d3-zoom for pan and zoom functionality +- Integrates DndKit for drag and drop features +- There is some complexity to the various position / transform calculations. +- There are only two dependencies to install. +- Requires setup of IAM roles for EKS services and node groups. +- Each pod can have its own Elastic Network Interface (ENI) with custom security groups. +- Uses OAuth2 with refresh token — requires setup of IAM roles and policies in AWS +- Ensure proper subnet configuration for EKS deployment +- Requires setup of IAM roles and policies for proper functionality +- Multi-AZ deployment is recommended for high availability +- Security group allows SSH connections on port 22. +- Management tools installed successfully +- Public IP assigned to the instance in PUBLIC_SUBNET_1 +- Uses OAuth2 with refresh token for AWS API integration +- Pod-level security groups require setup of SecurityGroupPolicy. +- Use multiple availability zones for high availability. +- Uses IAM roles for authentication +- Cluster name is pod-security-cluster-demo +- Kubernetes version is 1.33 +- Cluster creation can take 10-15 minutes. +- Uses Security Groups for Pods to enable fine-grained network security controls at + the pod level. +- Requires IAM roles for EKS management and cluster operations. +- Security Groups for Pods allows fine-grained network security controls at the pod + level. +- Requires setup of IAM roles and policies for EKS operations. +- Uses EKS for managing Kubernetes clusters +- Ensure proper security group configurations for management access +- Management instance is ready. Public IP will be retrieved after instance launch. +- Requires the creation of IAM roles for EKS and Node Groups. +- Network configuration should adhere to AWS best practices. +- Managed nodes are launched in private subnets only. +- Using Kubernetes version 1.33 for EKS cluster. +- Security group for Pods allows fine-grained network policies. +- Security Groups for Pods enables pod-level network security. +- Requires proper IAM roles and policies configuration. +- The `kubernetes.io/cluster/pod-security-cluster-demo=shared` tag identifies subnets + that belong to our cluster. +- The `kubernetes.io/role/elb=1` tag on public subnets tells Kubernetes to use these + subnets when creating internet-facing load balancers. +- The `kubernetes.io/role/internal-elb=1` tag on private subnets indicates where internal + load balancers should be created. +- Uses AWS VPC and Kubernetes for pod-level network security +- Requires IAM roles for EKS service and node group +- Uses tags for EKS auto-discovery and load balancer configuration. +- Uses OAuth2 with refresh token for authentication +- Requires setup of AWS IAM roles and policies +- Security groups control access to the RDS database without exposing it to the internet. +- Ensure to restrict SSH access to management instance in production environments. +- Cluster creation can take 10-15 minutes to become active. +- Supports pod-level security group assignments. +- Requires proper IAM role configuration for EKS. +- Creates a new security group in the cluster's VPC with no inbound or outbound rules + defined. +- Dedicated security group for RDS PostgreSQL database to control which sources can + connect. +- This guide walks you through implementing Security Groups for Pods in AWS EKS. +- With Security Groups for Pods, you can assign specific security groups to individual + pods. +- Database is not publicly accessible and located in private subnets. +- Security Groups for Pods allows fine-grained network security at the pod level. +- Requires setup of IAM roles and policies for proper permissions. +- EKS requires IAM roles for cluster and node group management +- Pods can use security groups for fine-grained access control +- A DB subnet group tells RDS which subnets it can use when launching a database instance. +- The --no-publicly-accessible flag is crucial for security. +- The first command checks that the ENABLE_POD_ENI environment variable is properly + set in the DaemonSet configuration. You should see the value set to 'true' in the + output. +- The second command displays the pod-eni capacity for each node. +- The third command looks for trunk ENIs on one of our nodes. +- If everything is working correctly, you shouldn't see any error messages in the + CNI plugin logs. +- Public subnets use kubernetes.io/role/elb=1 tag for internet-facing load balancers +- Private subnets use kubernetes.io/role/internal-elb=1 tag for internal load balancers +- Uses EKS for Kubernetes cluster management +- Ensure IAM roles are correctly assigned for access +- Ensure the database is never exposed directly to the internet. +- Attach the RDS_SG security group to enforce access rules. +- Security groups for pods require careful configuration to ensure proper access control. +- Security Groups for Pods requires specific IAM roles and policies setup +- Uses API_AND_CONFIG_MAP for cluster access management +- Requires setup of IAM roles and policies for EKS and EC2 instances. +- Green pod starting - should have database access +- Red pod starting - should NOT have database access +- Uses Amazon EKS for Kubernetes cluster management. +- Creating RDS Security Group - PostgreSQL Database +- Creating a dedicated security group for RDS PostgreSQL database to control connections +- Allowing pods with POD_SG to resolve DNS through node group +- Allowing management instance access to RDS +- Allowing only pods with POD_SG and MGMT_SG to access RDS +- Creating DB subnet group spanning private subnets +- Generating cryptographically secure password for the database +- Creating PostgreSQL RDS instance with security-focused configuration +- Connecting to the management instance and creating test data +- Enabling pod ENI feature on AWS VPC CNI +- Security Groups for Pods enables fine-grained network security at the pod level. +- Verify that the ENABLE_POD_ENI environment variable is properly set in the DaemonSet + configuration. You should see the value set to 'true' in the output. +- The second command displays the pod-eni capacity for each node. For m5.large instances, + you should see a number like '9' or similar. +- When branch networking is enabled, the VPC CNI creates a special 'trunk' ENI on + each node that serves as the anchor point for branch ENIs. +- Supports Security Groups for Pods feature in EKS +- Uses multiple availability zones for high availability +- Security Groups for Pods allows fine-grained network policies for pods. +- 'The key is the label `app: green-pod` in the pod template''s metadata section.' +- This pod uses environment variables sourced from Kubernetes secret to get database + connection details. +- The startup script attempts to connect to the database and run a simple query. +- The expected output from the red pod logs should indicate it could not connect to + the database. +- These troubleshooting commands help you systematically diagnose problems. +- 'If the green pod can''t connect, you work through the checklist: verify the security + group rules exist, confirm the ENI was actually assigned, check for CNI errors, + and validate the SecurityGroupPolicy configuration.' +- If the red pod unexpectedly can connect, you check whether it somehow got the wrong + labels, whether there's an unintended security group rule allowing node-level access, + or whether the node security group itself has database access that it shouldn't + have. +- Creates a rule that applies to future pods with matching labels +- The podSelector section uses Kubernetes label selectors +- Cluster creation may take 10-15 minutes to become active. +- SSH access for management instance should ideally be restricted to specific IP addresses. +- This feature allows assigning specific security groups to individual pods in EKS. +- Green pod has database access via security groups. +- Red pod should not have database access. +- Cluster created with Kubernetes version 1.33 and supports Security Groups for Pods. +- Requires IAM roles for EKS management and access. +- Security Groups for Pods requires specific IAM roles and policies setup. +- Ensure proper subnet configurations for EKS cluster. +- Use a dedicated namespace for demonstration to isolate resources and simplify cleanup. +- Use specific tags to identify subnets for EKS load balancers. +- Ensure database is not publicly accessible for security. +- Uses AWS IAM roles for permissions and EKS management. +- VPC with public and private subnets for high availability. +- Uses environment variables sourced from Kubernetes secret to get database connection + details +- The startup script attempts to connect to the database and run a simple query +- Uses AWS RDS for PostgreSQL — ensure proper security group setup +- Database should be created in private subnets for security +- Green pod starting - should have database access via security groups +- Uses Kubernetes for deployment and pod management. +- Security Groups for Pods provides granular control over network access at the pod + level. +- Uses OAuth2 with refresh token — requires setup of IAM roles in AWS +- Ensure that security groups are properly configured before applying policies +- Worker nodes are launched in private subnets for security. +- Green pod has database access via matching security group policy. +- Red pod should not have database access due to mismatched label. +- Uses environment variables sourced from Kubernetes secret for database connection. +- Green pod has database access while red pod does not due to label differences. +- The 'shared' value indicates that these subnets might be used by multiple clusters. +- The 'kubernetes.io/role/elb=1' tag on public subnets tells Kubernetes to use these + subnets when creating internet-facing load balancers. +- The 'kubernetes.io/role/internal-elb=1' tag on private subnets indicates where internal + load balancers should be created. +- Complex cleanup due to interdependencies of VPC resources +- Wait for NAT Gateways to delete before proceeding with other deletions +- RDS Security Group created without any rules initially. +- Pod Security Group allows access based on group membership. +- Requires dedicated ENI for pods with custom security groups +- Multi-AZ setup is recommended for high availability +- These tags serve specific purposes in the EKS ecosystem. +- Ensure to restrict security group access in production environments. +- Uses AWS IAM roles for EKS cluster and node groups +- Security Group created without inbound or outbound rules initially. +- Database access controlled through security group membership. +- Using a dedicated namespace helps keep things organized and makes cleanup easier. +- 'The SecurityGroupPolicy does not immediately change anything: it creates a rule + that will apply to future pods.' +- This pod should have database access via security groups +- This pod should NOT have database access +- Load balancers must be deleted before we can remove subnets, because they create + ENIs in the subnets. +- The NAT Gateway deletion is particularly important to wait for completely, because + NAT Gateways take several minutes to fully delete. +- Internet Gateways must be detached before they can be deleted. +- Subnets can be deleted once all resources using them are removed. +- Route tables need to be disassociated from subnets before deletion. +- Green pod should have database access via security groups +- Red pod should NOT have database access +- 'IAM cleanup follows a specific order: first detach all policies from roles, then + delete any custom policies we created, remove roles from instance profiles, delete + the instance profiles, and finally delete the roles themselves.' +- The custom EKS-Management-Policy that we created needs to be deleted using your + account ID in the ARN. +- Uses IAM roles for permissions management +- Users must refresh their tokens after claims are updated. +- Ensure that the NAT Gateway is properly configured for private subnet access. +- Use least privilege for security group ingress rules. +- MCP server runs on port 8000 +- Caching strategies include response caching, database query result caching, HTTP + caching, and stale-while-revalidate. +- Requires AWS account with credentials configured +- Model access enabled in the Amazon Bedrock console is necessary +- Reliable analysis depends on how data is handled throughout the process. +- Each stage of the data workflow benefits from clarity, structure, and shared understanding. +- Strix uses an LLM to reason about vulnerabilities. +- It runs tests in isolated Docker containers. +- Uses environment variables sourced from Kubernetes secret to get database connection + details. +- Use AWS CLI commands for VPC cleanup process. +- Wait for resources to delete before proceeding to next steps. +- Requires AWS account with appropriate permissions +- Uses IAM roles for service permissions +- Tags help Kubernetes automatically choose the correct subnets based on load balancer + type. +- Public subnets allow internet-facing load balancers; private subnets allow internal + load balancers. +- Database is not publicly accessible. +- Security group rules must be configured to control access. +- Red pod should not have database access due to label mismatch. +- The server must include an Access-Control-Allow-Origin header specifying the allowed + domain. +- CORS policy is a browser-enforced security measure. +- NAT Gateway deletion is particularly important to wait for completely, because NAT + Gateways take several minutes to fully delete. +- 'IAM requires this order because of the dependency chain: you can''t delete a role + that still has policies attached, and you can''t delete an instance profile that + still contains a role.' +- OpenCode is an open-source AI coding assistant that works right inside your terminal. +- Everything stays local, which is a major advantage for teams handling private or + sensitive codebases. +- Kubernetes is not for everyone, especially not at the beginning +- Widgets can be rendered inline in ChatGPT. +- Caching is not a single tactic but a set of strategies that fit different needs. +- Gaps in APIs can occur before requests reach the APIs, within the code housing the + APIs, and even along the path of the APIs’ communication with downstream services, + dependencies, or other microservices. +- Amazon Bedrock AgentCore makes it easy to create and deploy AI agents without dealing + with complex container setups or infrastructure. +- Lambda functions publish messages to SNS topics using Secrets Manager to fetch sensitive + information. +- Many of the most persistent problems come not from technical gaps, but from missing + checks or assumptions that go unspoken. +- API Gateway expects an authorization token from each request it receives before + routing traffic to the appropriate backend service. +- Strix runs its tests in isolated Docker containers. +- Responsive design ensures a consistent and adaptive layout across various screen + sizes. +- React MUI Sidebar integrates seamlessly with both React and Next.js. +- Docker Hub account required to push container image to the cloud +- Python is pre-installed in most Linux distributions. +- Learn to code for free via open source curriculum +- This comprehensive, six-hour course is designed to take you on a complete full-stack + journey. +- The course demonstrates how to organize your code with a modular design using managers, + clients, and blueprints for a scalable and maintainable project. +- You'll also see how to build efficient, asynchronous data pipelines that can handle + multiple tasks at once without slowing down. +- Get a free Cerebras API key at https://cloud.cerebras.ai?referral_code=freecodecamp +- Memory leaks can significantly impact your React application's performance and user + experience. +- Containers provide a portable and efficient way to package applications and their + dependencies, ensuring consistency across various environments. +- This course is designed to give you a deep, practical understanding of a modern, + powerful tech stack. +- The client runs on port 5500. +- Ensure that the client origin matches exactly. +- For methods like PUT, the browser sends a preflight OPTIONS request first. +- Integrates AI directly into the terminal +- Doesn't send code to remote servers by default +- Use Docker Hub or GitHub account for authentication. +- Kubernetes is not for everyone, especially not at the beginning. +- Don't jump to Kubernetes just because it's trendy. +- Security best practice is to create another user with administrator privileges and + use this user for subsequent tasks. +- AWS Lambda is a serverless service on AWS that users can leverage to run application + functions or code when needed. +- Uses AWS Secrets Manager to fetch the SNS Topic ARN securely +- Lambda functions require permissions to access Secrets Manager +- Both Authorizers will appear in API Gateway. +- API Gateway expects an authorization token from each request. +- Docker Hub account required to push images +- Learn to code for free. freeCodeCamp's open source curriculum has helped more than + 40,000 people get jobs as developers. +- Uses OAuth2 with refresh token — requires setup of connected app in freeCodeCamp +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '400 Bad Request: Enter a valid name' +- '404 Not Found: Check the endpoint path or parameters.' +- 'CACHE_ERROR: Check your cache connection settings' +- 'MESSAGE_NOT_FOUND: Ensure the message ID is correct' +- '401 Unauthorized: Check your Hugging Face access token.' +- '429 Too Many Requests: Throttle API calls.' +- '400 Bad Request: Ensure valid input is provided' +- '401 Unauthorized: Check HUGGINFACE_INFERENCE_TOKEN validity' +- '400: Enter a valid name' +- '403: Session not authenticated or expired token' +- '401 Unauthorized: Recheck API key validity or expiration' +- '400: Session expired or does not exist' +- '401 Unauthorized: Recheck API key or token expiration' +- '429 Too Many Requests: Throttle API calls or reduce frequency' +- '401 Unauthorized: Check your API key.' +- '400: One of the following keys is missing or is empty in request body: ''name'', + ''mode'', ''equipment'', ''exercises'', ''trainerTips''' +- '400: Workout with the name ''{newWorkout.name}'' already exists' +- '400: Can''t find workout with the id ''{workoutId}''' +- '500: {error?.message || error}' +- '404 Not Found: Check endpoint paths or resource availability.' +- '500 Internal Server Error: Review server logs for more details.' +- '500: {error.message || error}' +- 'ArrayIndexOutOfBoundsException: Index out of bounds for length' +- '500: {error.message}' +- '5XX: FAILED' +- 'ArrayIndexOutOfBoundsException: Check the indices used in array operations.' +- Invalid variable names can cause execution issues. +- No specific error codes provided. +- Network timeout on request. +- Connection timed out. +- 'Invalid PID: Ensure the PID exists before attempting to kill the process.' +- Disk errors can cause application crashes. +- '404 Not Found: Ensure the endpoint exists.' +- '500 Internal Server Error: Try again later.' +- 'ERROR: Network timeout on request.' +- 'ERROR: Connection timed out.' +- '403 Forbidden: Check service account permissions.' +- '404 Not Found: Ensure the project ID is correct.' +- 'Failed to bind to port: Check port allocation.' +- 'Too many connections: Evaluate current connection limits.' +- 'Unable to find image: locally' +- 'Exited (0): No error during runtime' +- Unable to find image 'hello-world:latest' locally +- 'Exited (0): indicates that no error was produced during the runtime of the container' +- 'Exited (0): No error produced during runtime.' +- '404 Not Found: The specified container or image does not exist.' +- '404 Not Found: The requested resource could not be found.' +- '500 Internal Server Error: An unexpected error occurred.' +- 'CONTAINER_NOT_FOUND: Ensure the container ID or name is correct.' +- 'CONTAINER_RUNNING: Container is already running; cannot start it again.' +- 'INVALID_PARAMETER: Check the parameters passed to the command.' +- 'Unable to find image: Check if the image exists in the registry.' +- 'Exited (0): Indicates that the container has stopped without error.' +- 'CONTAINER_NOT_FOUND: Check the container ID or name' +- 'INVALID_PARAMETER: Ensure parameters are correct and formatted properly' +- '500 Internal Server Error: An error occurred on the server.' +- '400 Bad Request: Check the syntax of the command.' +- '404 Not Found: The image or container does not exist.' +- 'Unable to find image: Check if the image exists on the registry.' +- 'Exited (0): Container stopped successfully.' +- 'Exited (1): Container stopped with an error.' +- '404 Not Found: Check the endpoint path.' +- '500 Internal Server Error: Retry the request.' +- 'CONTAINER_ALREADY_RUNNING: The container is already in a running state' +- 'INVALID_COMMAND: Ensure the command syntax is correct' +- 'Unable to find image: Check if the image name is correct.' +- 'Exited (0): Indicates that the container has stopped without errors.' +- '404 Not Found: Check the endpoint path or the resource ID.' +- '500 Internal Server Error: Server encountered an unexpected condition.' +- '404 Not Found: Check if the container ID is valid.' +- '404 Not Found: Check the resource path and ensure the container or image exists.' +- '500 Internal Server Error: This may be a temporary issue, please try again later.' +- '404 Not Found: The specified container does not exist.' +- '404 Not Found: Check if the container or image exists.' +- '500 Internal Server Error: Retry the request later.' +- '404 Not Found: Check if the container/image/network/volume exists.' +- '500 Internal Server Error: An unexpected error occurred on the server.' +- '500 Internal Server Error: Try again later or check the server status.' +- 'Unable to find image: Check if the image name is correct' +- 'Exited (0): Indicates successful termination' +- 'Exited (0): Container has stopped successfully' +- 'Exited (137): Container was killed by the system' +- 'Exited (0): Container has exited successfully' +- 'Exited (137): Container was killed due to out of memory' +- 'Created: Container is created but not running' +- 'IMAGE_NOT_FOUND: Ensure the image name is correct' +- 'BUILD_FAILED: Check Dockerfile for errors' +- '404 Not Found: Verify the image name and tag.' +- '500 Internal Server Error: Check Docker daemon status.' +- '404 Not Found: Check if the container or image ID is correct.' +- '500 Internal Server Error: Server issues, try again later.' +- '404 Not Found: Check if the resource exists.' +- '404 Not Found: Verify the endpoint path or resource identifier.' +- '500 Internal Server Error: Check the server logs for more details.' +- '404 Not Found: Check that the container ID is correct.' +- '409 Conflict: Container is in a state that prevents the operation.' +- '500 Internal Server Error: Server encountered an error processing the request.' +- 'ENOENT: The command or file was not found.' +- 'ELIFECYCLE: The script failed to execute.' +- 'spawn ENOENT: Unable to spawn the command.' +- 'Unable to find image ''hello-world:latest'' locally: Check if the image exists + on the registry.' +- 'Exited (0): Container has stopped without errors.' +- '404 Not Found: Check the container/image ID or name.' +- '500 Internal Server Error: Check the Docker daemon and logs.' +- 'Exited (0): Container has stopped successfully.' +- 'Exited (137): Container was killed by the system.' +- Exiting with status code 0 indicates no error. +- 'CONTAINER_RUNNING: Cannot stop a container that is already running.' +- 'Exited (0): Indicates that no error was produced during the runtime' +- 'sh: 1: vite: not found' +- npm ERR! code ELIFECYCLE +- npm ERR! syscall spawn +- npm ERR! file sh +- npm ERR! errno ENOENT +- 'npm ERR! hello-dock@0.0.0 dev: `vite`' +- npm ERR! spawn ENOENT +- npm ERR! Failed at the hello-dock@0.0.0 dev script. +- npm ERR! This is probably not a problem with npm. There is likely additional logging + output above. +- '404 Not Found: The specified resource could not be found.' +- '500 Internal Server Error: The server encountered an unexpected condition.' +- 'ELIFECYCLE: Check if all dependencies are correctly installed.' +- 'ENOENT: Ensure the script or command you are trying to run exists.' +- '500 Internal Server Error: Something went wrong on the server side.' +- '401 Unauthorized: Ensure the Authorization header is set correctly' +- '400 Bad Request: Check the provided environment variables' +- 'Exited (137): Container has been killed.' +- 'Exited (0): Indicates successful termination of a process.' +- 'Exited (137): Indicates a container was killed, possibly due to out of memory.' +- '401 Unauthorized: Ensure POSTGRES_PASSWORD is set correctly.' +- '404 Not Found: Check if the container ID is correct.' +- '409 Conflict: Container is already running or cannot be stopped.' +- 'Exited (0): The container exited successfully.' +- 'Exited (137): The container was killed.' +- '401 Unauthorized: Check your credentials or API key.' +- '401 Unauthorized: Check your credentials for the database.' +- 'Connection failed: Ensure the database server is running.' +- 'CONFLICT: The container name is already in use.' +- 'Exited (0): Indicates the container stopped without errors.' +- 'Container not found: Ensure the container ID or name is correct.' +- 'Container already running: Use restart command instead.' +- 'sh: 1: vite: not found: Ensure dependencies are installed' +- 'npm ERR! code ELIFECYCLE: Check for missing node_modules' +- Exited (0) 3 minutes ago +- '404 Not Found: Check the endpoint or resource ID.' +- '500 Internal Server Error: Try again later or check server status.' +- '401 Unauthorized: Check the provided API key.' +- 'ELIFECYCLE: Failed at the hello-dock@0.0.0 dev script.' +- 'CONTAINER_NOT_FOUND: Check if the container ID or name is correct.' +- 'IMAGE_NOT_FOUND: Ensure the image exists in the registry.' +- '404 Not Found: Check the download URL if the image fails to build.' +- 'Exited (0): Indicates the container has completed execution without errors.' +- 'Exited (137): Indicates the container was terminated by an external signal.' +- 'CONTAINER_NOT_FOUND: Ensure the container ID is correct.' +- 'INVALID_COMMAND: Check the syntax of the command.' +- '500 Internal Server Error: Contact support.' +- 'Exited (0): The container has stopped without error' +- 'ENOENT: no such file or directory' +- 'EACCES: permission denied' +- '500 Internal Server Error: Check the Docker daemon status.' +- '500 Internal Server Error: An error occurred while creating the Todo item.' +- '500 Internal Server Error: An error occurred while retrieving the Todo item.' +- '500: An error occurred while processing the request' +- 'Error: Path not found' +- 'Error: Permission denied' +- '422: Unprocessable Entity - Validation errors occurred.' +- '500 Internal Server Error: An error occurred while processing the request' +- 'ZeroDivisionError: division by zero' +- 'IndexError: list index out of range' +- 'KeyError: ''d''' +- 'NameError: name ''b'' is not defined' +- 'RecursionError: maximum recursion depth exceeded in comparison' +- '404 Not Found: Todo item with the specified id not found' +- '500 Internal Server Error: An error occurred during the operation' +- '400 Bad Request: Check input data format or parameters.' +- '500 Internal Server Error: Retry the request after some time.' +- '401 Unauthorized: Check your token or client credentials' +- '422 Unprocessable Entity: Validate input data format' +- Parameter tuning is sensitive which can impact clustering performance. +- 'Inertia calculation failure: Check input data format.' +- 'Invalid cluster count: Ensure K is a positive integer.' +- 'INVALID_DATA: Ensure input data is correctly formatted.' +- 'CLUSTERING_ERROR: Check parameters for clustering.' +- 'CONVERGENCE_FAILURE: Increase max iterations or adjust initialization.' +- '401 Unauthorized: Recheck interview access permissions' +- '401 Unauthorized: No token provided' +- '401 Unauthorized: Malformed token' +- '401 Unauthorized: Invalid or expired token' +- '401 Unauthorized: Check API token and permissions.' +- '404 Not Found: Endpoint does not exist or is incorrect.' +- The company will not be liable to you for breach-of-contract damages company personnel + could not have reasonably foreseen when you agreed to these terms. +- 'invalid signature: Token has been tampered with.' +- '401 Unauthorized: Ensure the API token is valid and has the necessary permissions.' +- '400 Bad Request: Check the input parameters for the data drift report.' +- '401 Unauthorized: Check API token and permissions' +- '404 Not Found: Ensure the endpoint path is correct' +- '500 Internal Server Error: Try again later or contact support' +- 'FileNotFoundError: Check if the expected data files exist' +- 'ValueError: Ensure the input data is in the correct format' +- 'FileNotFoundError: Ensure the specified dataset exists in the path' +- 'FileNotFoundError: Check the existence of required files.' +- 'ValueError: Ensure input data shapes are compatible.' +- 'FileNotFoundError: Check if the preprocessor path is correct.' +- 'ValueError: Ensure the target column exists in the DataFrame.' +- '... an error occurred during risk and fairness assessment: {e}' +- 'FILE_NOT_FOUND: Check if the specified file paths are correct.' +- 'FileNotFoundError: Check if the preprocessor file exists.' +- 'Data drift detected: stopping pipeline' +- 'File not found: Ensure the specified paths are correct.' +- 'FileNotFoundError: Ensure the specified data files exist.' +- 'FILE_NOT_FOUND: Ensure all required files are present in the specified paths.' +- 'INVALID_INPUT: Check input data format and types for compatibility.' +- '401 Unauthorized: Recheck your API key or token.' +- 'FATAL: data drift detected. stopping pipeline' +- Error occurred during risk and fairness assessment +- 'FILE_NOT_FOUND: Ensure the input files exist in the specified path.' +- 'INVALID_INPUT: Check the input parameters for correctness.' +- 'DATA_DRIFT_DETECTED: A fatal error occurs if data drift is found.' +- 'FILE_NOT_FOUND: Ensure correct file paths are used in the scripts.' +- '404 Not Found: Check the endpoint path or dataset availability.' +- 'FileNotFoundError: Ensure paths to data files are correct' +- '404 Not Found: Check the endpoint path or stockcode.' +- '500 Internal Server Error: Review server logs for details.' +- 'FILE_NOT_FOUND: Check if the specified path exists.' +- 'general loading error: Check DVC configuration or file paths' +- 'FileNotFoundError: Ensure the specified paths exist in the DVC cache' +- 'An error occurred during risk and fairness assessment: {e}' +- 'FILE_NOT_FOUND: Check if the specified file path exists.' +- 'JSON_DECODE_ERROR: Ensure the JSON structure is valid.' +- 'FILE_NOT_FOUND: Ensure the specified file path exists' +- '500 Internal Server Error: Check server logs for details.' +- 'FileNotFoundError: Check if the specified file paths exist.' +- 'ValueError: Ensure the correct shape of input data.' +- '403 Forbidden: Check permissions for the S3 bucket' +- '404 Not Found: Ensure the bucket name is correct' +- 'FileNotFoundError: Ensure correct file paths for datasets and metrics.' +- 'InvalidArgument: Check parameter values passed to scripts.' +- Early stopping triggered when patience_counter exceeds early_stopping_rounds. +- 'REQUEST_TIMEOUT: The API Gateway may timeout if the execution takes too long.' +- 'InvalidParameter: Check your parameters and try again.' +- 'UnauthorizedOperation: You do not have permission to perform this action.' +- '403 Forbidden: Check IAM permissions for the requested action.' +- '404 Not Found: Ensure the resource identifier is correct.' +- '500 Internal Server Error: Retry the request after a few moments.' +- 'InvalidParameter: Check the parameters provided for the API call' +- 'AccessDenied: Ensure the necessary IAM role permissions are granted' +- 'AccessDenied: Check IAM permissions for EC2 actions' +- 'InvalidInstanceType: Ensure instance type is valid for the region' +- '403 Forbidden: Check IAM permissions for the API' +- '404 Not Found: Verify the endpoint path is correct' +- 'Cluster creation failed: Check IAM role permissions.' +- 'Timeout: Cluster did not become active in expected time.' +- 'AuthorizationError: Check IAM permissions for the roles used.' +- 'ClusterNotFoundException: Verify cluster name or existence.' +- 'Unauthorized: Check IAM roles and policies' +- 'ResourceNotFound: Ensure the resource exists and retry' +- 'AccessDenied: Check IAM permissions for the role.' +- 'ResourceNotFound: Ensure the specified resource exists.' +- 'Node group creation timeout: Verify subnet configurations.' +- '403 Forbidden: Check IAM permissions.' +- '404 Not Found: Resource does not exist.' +- 'Unauthorized: Check IAM role permissions' +- 'ResourceNotFound: Verify that the specified resource exists' +- '403 Forbidden: Check IAM permissions' +- '404 Not Found: Ensure the resource exists' +- '500 Internal Server Error: Retry the request' +- 'AccessDenied: Ensure IAM roles have appropriate permissions.' +- 'ThrottlingException: Reduce request frequency to avoid throttling.' +- 'AccessDeniedException: Check IAM permissions for the role' +- 'ClusterNotFoundException: Verify the cluster name' +- 'InvalidParameterException: Ensure parameters are valid' +- 'InsufficientPermissions: Check IAM role policies' +- 'ResourceLimitExceeded: Reduce the number of ENIs or security groups' +- 'Unauthorized: Ensure proper authentication and authorization' +- 'ACCESS_DENIED: Ensure IAM role has required permissions.' +- 'RESOURCE_NOT_FOUND: Check if the specified resource ID is correct.' +- 'ERROR: Could not connect to database' +- 'EXPECTED: Could not connect to database' +- 'Unauthorized: Check IAM permissions for the role.' +- 'Unauthorized: Check IAM permissions for the role used.' +- 'ClusterNotFound: Ensure the cluster name is correct.' +- 'InvalidParameter: Verify parameters when creating node groups or security groups.' +- '403 Forbidden: Check IAM permissions for the role.' +- '404 Not Found: Verify endpoint path is correct.' +- 'UNEXPECTED: Connected to database!' +- 'Unauthorized: Recheck IAM role permissions or token expiration' +- 'Conflict: Ensure no overlapping security group policies exist' +- 'Bad Request: Validate the structure of SecurityGroupPolicy CRD' +- 'ERROR: Could not connect to database: This indicates security group configuration + issues' +- 'EXPECTED: Could not connect to database: This is correct - red pod should not have + database access' +- 'InvalidParameterValue: Check your VPC ID and security group configurations.' +- 'AuthorizationError: Ensure your IAM role has permissions to create security groups.' +- 'LIMIT_EXCEEDED: Reduce the number of simultaneous requests' +- 'INTERNAL_SERVER_ERROR: Retry your request after a brief wait' +- 'ACCESS_DENIED: Check IAM roles and permissions' +- 'AccessDenied: Ensure proper IAM permissions are set' +- 'Permission denied: Only admins can add posts.' +- 'Permission denied: Check your AWS credentials and IAM policies.' +- 'Model access denied: Enable model access in the Bedrock console.' +- Possible IDOR vulnerability detected +- Untrusted input can lead to code execution +- 'ResourceNotFound: Check if the resource ID is correct.' +- 'InvalidVpcId.NotFound: The specified VPC does not exist.' +- 'ACCESS_DENIED: Ensure appropriate IAM role permissions' +- 'VPC_LIMIT_EXCEEDED: Review VPC configuration and resource limits' +- 'CORS policy failed: No ''Access-Control-Allow-Origin'' header is present on the + requested resource.' +- 'Docker warning: Ignore this unless you use — local or — local-build.' +- 'Model access denied: Enable model access (such as Claude Sonnet 4.0) in the Bedrock + console.' +- 'Build errors: Check CloudWatch build logs and IAM policies.' +- '401 Unauthorized: Token missing or invalid' +- Possible IDOR vulnerability detected. +- '500: An error occurred while processing your request' +- '401 Unauthorized: Recheck token provided in the request header.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential + - HUGGINFACE_INFERENCE_TOKEN + - HUGGINGFACE_INFERENCE_TOKEN + - MODEL_URL + - POSTGRES_DB + - POSTGRES_PASSWORD + - Oauth2Token + - CloudWorkspace + - Dataset + - Report + - EVENTLY_API_TOKEN + - SecurityGroupPolicy + - VPC Resource Controller + - AWS VPC CNI + - EKSClusterRole + - EKS-Management-Role + - EKSNodeGroupRole + - VPCResourceController + - AmazonEKSClusterAdminPolicy +client: + base_url: https://hub.docker.com + headers: + Accept: application/json +source_metadata: null diff --git a/geopoints/geopoints-docs.md b/geopoints/geopoints-docs.md new file mode 100644 index 00000000..02962454 --- /dev/null +++ b/geopoints/geopoints-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete GeoPoints data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def geopoints_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.geopoints.io/", + "auth": { + "type": "apikey", + "key": GEOPOINTS_API_KEY, + }, + }, + "resources": [ + MergeAddressResults,,GetAddressSuggestions,,CalculateOptimalRoute + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='geopoints_migration_pipeline', + destination='duckdb', + dataset_name='geopoints_migration_data', + ) + # Load the data + load_info = pipeline.run(geopoints_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from geopoints_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Merge Address Results: Combines address information for better accuracy. +- Get Address Suggestions: Provides address suggestions based on input. +- Calculate Optimal Route: Computes the best route between locations. +- Coordinate Result Returned Address: Retrieves address information based on geographic coordinates. + +You will then debug the GeoPoints pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with GeoPoints support. + ```shell + dlt init dlthub:geopoints_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for GeoPoints API, as specified in @geopoints_migration-docs.yaml + Start with endpoints MergeAddressResults and and skip incremental loading for now. + Place the code in geopoints_migration_pipeline.py and name the pipeline geopoints_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python geopoints_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication method used is an API key that should be included in the query parameters. + + To get the appropriate API keys, please visit the original source at https://www.geopoints.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python geopoints_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline geopoints_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset geopoints_migration_data + The duckdb destination used duckdb:/geopoints_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline geopoints_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("geopoints_migration_pipeline").dataset() + # get ergeAddressResult table as Pandas frame + data.ergeAddressResult.df().head() + ``` + +## Running into errors? + +There is a limit of 100 queries in the free version, and exceeding this limit results in an error. Additionally, valid API key validation is crucial, as incorrect keys will lead to authentication errors. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/geopoints/geopoints-docs.yaml b/geopoints/geopoints-docs.yaml new file mode 100644 index 00000000..7b2bc83e --- /dev/null +++ b/geopoints/geopoints-docs.yaml @@ -0,0 +1,58 @@ +resources: +- name: Auto Complete + endpoint: + path: /GetAddressSuggestions + method: GET + data_selector: results + params: + apiKey: YourApiKey + query: YourAddress +- name: Reverse Geocoding + endpoint: + path: /CoordinateResultReturnedAddress + method: GET + data_selector: results + params: + latitude: latitude + longitude: longitude + GeoApikey: YourGeoApiKey +- name: Geocoding + endpoint: + path: /MergeAddressResults + method: GET + data_selector: results + params: + addressString: addressString + Province: Province + GeoApikey: YourGeoApiKey +- name: Routing + endpoint: + path: /CalculateOptimalRoute + method: GET + data_selector: results + params: + RoutApiKey: YourRoutingApiKey + startLat: StartLat + startLng: startLng + EndLat: EndLat + endLng: endLng + CoordinatesList: CoordinatesList + Mode: Mode + Avoid: Avoid +notes: +- There is a limit of 100 queries in the free version. +errors: +- 'API Key Validation Error: Api key and type validation failed; Type:MAP Apikey: + [GeoApikey]' +- 'Query Limit Exceeded: The query limit has been exceeded in the free version. Please + upgrade your version.' +- '404 Error: 404: [error message]' +auth_info: + mentioned_objects: [] +client: + base_url: https://api.geopoints.io + auth: + type: apikey + location: query + header_name: GeoApikey +source_metadata: null diff --git a/google_cloud_threat_intelligence/google-cloud-threat-intelligence-docs.md b/google_cloud_threat_intelligence/google-cloud-threat-intelligence-docs.md new file mode 100644 index 00000000..db8ae018 --- /dev/null +++ b/google_cloud_threat_intelligence/google-cloud-threat-intelligence-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Google Cloud Security Community data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def google_cloud_security_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://security.googlecloudcommunity.com/v", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + udm,,alerts,,events + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='google_cloud_security_migration_pipeline', + destination='duckdb', + dataset_name='google_cloud_security_migration_data', + ) + # Load the data + load_info = pipeline.run(google_cloud_security_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from google_cloud_security_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- UDM: User-defined metrics and logs for custom analysis. +- Alerts: Endpoints related to monitoring security alerts. +- Events: Endpoints for retrieving and managing various security events. +- Users: Manage user information and permissions. +- Tags: Manage tags associated with various resources for categorization. + +You will then debug the Google Cloud Security Community pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Google Cloud Security Community support. + ```shell + dlt init dlthub:google_cloud_security_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Google Cloud Security Community API, as specified in @google_cloud_security_migration-docs.yaml + Start with endpoints udm and and skip incremental loading for now. + Place the code in google_cloud_security_migration_pipeline.py and name the pipeline google_cloud_security_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python google_cloud_security_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + This API uses OAuth2 for authentication, requiring a setup of a connected app in Google Cloud. + + To get the appropriate API keys, please visit the original source at https://www.google.com/cloud/security. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python google_cloud_security_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline google_cloud_security_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset google_cloud_security_migration_data + The duckdb destination used duckdb:/google_cloud_security_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline google_cloud_security_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("google_cloud_security_migration_pipeline").dataset() + # get d table as Pandas frame + data.d.df().head() + ``` + +## Running into errors? + +It's important to note that certain API endpoints may have rate limits, and authentication tokens should be validated before use. Additionally, users should be aware of the deprecation of some API features, including the Detects API, which will be decommissioned on September 30, 2025. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/google_cloud_threat_intelligence/google-cloud-threat-intelligence-docs.yaml b/google_cloud_threat_intelligence/google-cloud-threat-intelligence-docs.yaml new file mode 100644 index 00000000..5e4fdccc --- /dev/null +++ b/google_cloud_threat_intelligence/google-cloud-threat-intelligence-docs.yaml @@ -0,0 +1,3408 @@ +resources: +- name: collections + endpoint: + path: /api/v3/collections + method: GET +- name: createAssessment + endpoint: + path: /createAssessment + method: POST + data_selector: challengeMetrics +- name: workshop_registration + endpoint: + path: /news-announcements-9/free-workshop-in-la-chicago-nyc-toronto-build-an-agentic-soc-5700 + method: GET +- name: gartner_report + endpoint: + path: /news-announcements-9/we-re-named-a-leader-in-the-2025-gartner-magic-quadrant-for-siem-6049 + method: GET +- name: flare_on_challenge + endpoint: + path: /news-announcements-9/ready-set-r-e-the-flare-on-12-challenge-drops-sept-26-5889 + method: GET +- name: certification_registration + endpoint: + path: /news-announcements-9/new-google-cloud-professional-security-operations-engineer-certification-register-now-5803 + method: GET +- name: product_release_summary + endpoint: + path: /news-announcements-9/google-security-operations-q3-product-release-summary-6059 + method: GET +- name: detects + endpoint: + path: /detects + method: GET + data_selector: data + params: {} +- name: workshop + endpoint: + path: /news-announcements-9/free-workshop-in-la-chicago-nyc-toronto-build-an-agentic-soc-5700 + method: GET + data_selector: records +- name: gartner_report + endpoint: + path: /news-announcements-9/we-re-named-a-leader-in-the-2025-gartner-magic-quadrant-for-siem-6049 + method: GET + data_selector: records +- name: flare_on_challenge + endpoint: + path: /news-announcements-9/ready-set-r-e-the-flare-on-12-challenge-drops-sept-26-5889 + method: GET + data_selector: records +- name: psoe_certification + endpoint: + path: /news-announcements-9/new-google-cloud-professional-security-operations-engineer-certification-register-now-5803 + method: GET + data_selector: records +- name: q3_product_release + endpoint: + path: /news-announcements-9/google-security-operations-q3-product-release-summary-6059 + method: GET + data_selector: records +- name: cases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/cases + method: GET + data_selector: cases +- name: legacy_cases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/legacy:legacyBatchGetCases + method: GET + data_selector: cases +- name: security_forums + endpoint: + path: /security/forums + method: GET + data_selector: forums +- name: resource_center + endpoint: + path: /resource/center + method: GET + data_selector: resources +- name: community_events + endpoint: + path: /events + method: GET + data_selector: events +- name: credential_alerts + endpoint: + path: /dtm/alerts + method: GET + data_selector: alerts + params: + status: new + alert_type: Compromised Credentials +- name: Indicators + endpoint: + path: /collections + method: GET + data_selector: data + params: {} +- name: Reports + endpoint: + path: /reports + method: GET + data_selector: data + params: {} +- name: Alerts + endpoint: + path: /alerts + method: GET + data_selector: data + params: {} +- name: Actors + endpoint: + path: /actors + method: GET + data_selector: data + params: {} +- name: Malware + endpoint: + path: /malware + method: GET + data_selector: data + params: {} +- name: Vulnerabilities + endpoint: + path: /vulnerabilities + method: GET + data_selector: data + params: {} +- name: cases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/cases + method: GET + data_selector: cases +- name: legacyBatchGetCases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/legacy:legacyBatchGetCases + method: GET + data_selector: cases +- name: security_marks + endpoint: + path: /v1/organizations/{organization_id}/securityMarks + method: POST + data_selector: marks +- name: Continuous Exports + endpoint: + path: /continuous-exports + method: GET +- name: credential_alerts + endpoint: + path: /dtm/alerts + method: GET + data_selector: alerts + params: + status: new + alert_type: Compromised Credentials +- name: Indicators + endpoint: + path: /api/v3/collections + method: GET + data_selector: data + params: {} +- name: Content Expansion + endpoint: + path: /validation/content/update + method: GET +- name: actions + endpoint: + path: /manage_sims/actions + method: GET + data_selector: returnActionsList + params: {} +- name: scheduled_jobs + endpoint: + path: /scheduled_actions + method: GET + data_selector: jobsScheduled + params: {} +- name: scheduled_job + endpoint: + path: /scheduled_actions/{scheduledJobId} + method: GET + data_selector: jobsScheduled + params: {} +- name: edit_scheduled_job + endpoint: + path: /scheduled_actions/{scheduledJobId} + method: PUT + data_selector: jobsScheduled + params: {} +- name: security_marks + endpoint: + path: /v1/securityMarks + method: POST + data_selector: marks +- name: custom_action + endpoint: + path: /manage_sims/actions/host_cli_help_info + method: GET + data_selector: actions + params: {} +- name: toxic_combination + endpoint: + path: /toxic_combinations + method: GET + data_selector: findings + params: {} +- name: attack_path + endpoint: + path: /attack_paths + method: GET + data_selector: paths + params: {} +- name: continuous_exports + endpoint: + path: /v1/continuousExports + method: GET + data_selector: exports + params: {} +- name: site_verify + endpoint: + path: /siteverify + method: POST + data_selector: response + params: {} +- name: create_assessment + endpoint: + path: /createAssessment + method: POST + data_selector: response + params: {} +- name: content_pack + endpoint: + path: /api/content_pack + method: GET + data_selector: records + params: + incremental: updated_at +- name: Content Expansion + endpoint: + path: /content/expansion + method: GET + data_selector: actions +- name: Security Content Pack + endpoint: + path: /security/content/pack + method: GET + data_selector: files +- name: actions + endpoint: + path: /manage_sims/actions + method: GET + data_selector: records + params: {} +- name: scheduled_jobs + endpoint: + path: /scheduled_actions + method: GET + data_selector: records + params: {} +- name: scheduled_job + endpoint: + path: /scheduled_actions/{scheduledJobId} + method: GET + data_selector: records + params: {} +- name: edit_scheduled_job + endpoint: + path: /scheduled_actions/{scheduledJobId} + method: PUT + data_selector: records + params: {} +- name: Google Threat Intelligence + endpoint: + path: /google-threat-intelligence + method: GET +- name: Security Command Center + endpoint: + path: /command-ctr-forum-4 + method: GET +- name: Security Validation + endpoint: + path: /mandiant-security-validation-5 + method: GET +- name: reCAPTCHA + endpoint: + path: /recaptcha-forum-6 + method: GET +- name: Cloud Security Foundation + endpoint: + path: /security-foundation-7 + method: GET +- name: host_cli_action + endpoint: + path: /actions/host_cli + method: POST + data_selector: action + params: {} +- name: webinars + endpoint: + path: /webinars-podcasts-43 + method: GET + data_selector: records +- name: Community + endpoint: + path: /community + method: GET +- name: Security Forums + endpoint: + path: /security-forums-1 + method: GET +- name: site_verify + endpoint: + path: /siteverify + method: POST + data_selector: response +- name: cloud_security_controls + endpoint: + path: /v1/cloud_security_controls + method: GET + data_selector: controls + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Security Operations SIEM - Journey Overview + endpoint: + path: /siem-26/security-operations-siem-journey-overview-5223 + method: GET +- name: 'Security Operations SIEM: Step 1 - OnBoarding' + endpoint: + path: /siem-26/security-operations-siem-step-1-onboarding-5224 + method: GET +- name: 'Security Operations SIEM: Step 2 - Data Ingest' + endpoint: + path: /siem-26/security-operations-siem-step-2-data-ingest-5225 + method: GET +- name: 'Security Operations SIEM: Step 3 - Rules' + endpoint: + path: /siem-26/security-operations-siem-step-3-rules-5226 + method: GET +- name: 'Security Operations SIEM: Step 4 - Custom Dashboards' + endpoint: + path: /siem-26/security-operations-siem-step-4-custom-dashboards-5227 + method: GET +- name: 'Webinar: Debugging SOAR Integrations in IDE Like it’s a VIBE' + endpoint: + path: /webinars-podcasts-43/webinar-debugging-soar-integrations-in-ide-like-it-s-a-vibe-6005 + method: GET +- name: 'EP246 From Scanners to AI: 25 Years of Vulnerability Management with Qualys + CEO Sumedh Thakar' + endpoint: + path: /webinars-podcasts-43/ep246-from-scanners-to-ai-25-years-of-vulnerability-management-with-qualys-ceo-sumedh-thakar-5984 + method: GET +- name: Best Practices For Ingestion And Parsing in Google Security Operations + endpoint: + path: /webinars-podcasts-43/webinar-best-practices-for-ingestion-and-parsing-in-google-security-operations-5841 + method: GET +- name: captcha_response + endpoint: + path: /v3/recaptcha/verify + method: POST + data_selector: success + params: {} +- name: cases + endpoint: + path: /v1alpha/cases + method: GET + data_selector: cases +- name: security_operations + endpoint: + path: /security-operations + method: GET + data_selector: records + params: {} +- name: threat_intelligence + endpoint: + path: /threat-intelligence + method: GET + data_selector: records + params: {} +- name: workshop_registration + endpoint: + path: /news-announcements-9/free-workshop-in-la-chicago-nyc-toronto-build-an-agentic-soc-5700 + method: GET +- name: gartner_report + endpoint: + path: /news-announcements-9/we-re-named-a-leader-in-the-2025-gartner-magic-quadrant-for-siem-6049 + method: GET +- name: flare_on_challenge + endpoint: + path: /news-announcements-9/ready-set-r-e-the-flare-on-12-challenge-drops-sept-26-5889 + method: GET +- name: certification_registration + endpoint: + path: /news-announcements-9/new-google-cloud-professional-security-operations-engineer-certification-register-now-5803 + method: GET +- name: product_release_summary + endpoint: + path: /news-announcements-9/google-security-operations-q3-product-release-summary-6059 + method: GET +- name: magic_quadrant_announcement + endpoint: + path: /news-announcements-9/it-s-magic-gartner-magic-quadrant-for-siem-6052 + method: GET +- name: cases + endpoint: + path: /v1alpha/cases + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: security_events + endpoint: + path: /v1/securityEvents + method: GET + data_selector: events +- name: security_alerts + endpoint: + path: /api/v1/security_alerts + method: GET + data_selector: alerts + params: {} +- name: incident_reports + endpoint: + path: /api/v1/incident_reports + method: GET + data_selector: reports + params: {} +- name: webinar_debugging_soar_integrations + endpoint: + path: /webinars-podcasts-43/webinar-debugging-soar-integrations-in-ide-like-it-s-a-vibe-6005 + method: GET +- name: webinar_best_practices_for_ingestion + endpoint: + path: /webinars-podcasts-43/webinar-best-practices-for-ingestion-and-parsing-in-google-security-operations-5841 + method: GET +- name: workshop + endpoint: + path: /news-announcements-9/free-workshop-in-la-chicago-nyc-toronto-build-an-agentic-soc-5700 + method: GET + data_selector: records +- name: gartner_magic_quadrant + endpoint: + path: /news-announcements-9/we-re-named-a-leader-in-the-2025-gartner-magic-quadrant-for-siem-6049 + method: GET + data_selector: records +- name: alerts + endpoint: + path: /api-clients-and-keys/clients + method: GET +- name: workshop_registration + endpoint: + path: /events + method: GET + data_selector: events + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: webinars + endpoint: + path: /webinars-podcasts-43 + method: GET + data_selector: webinars + params: {} +- name: detects + endpoint: + path: /detects + method: GET + data_selector: resources + params: {} +- name: Security Forums + endpoint: + path: /community/forums + method: GET + data_selector: forums + params: {} +- name: Resource Center + endpoint: + path: /community/resources + method: GET + data_selector: resources + params: {} +- name: siteverify + endpoint: + path: /siteverify + method: POST + data_selector: success + params: {} +- name: workshop_locations + endpoint: + path: /events/locations + method: GET + data_selector: locations + params: {} +- name: site_verify + endpoint: + path: /siteverify + method: POST +- name: cases + endpoint: + path: /v1alpha/cases + method: GET +- name: security_marks + endpoint: + path: /v1/securityMarks + method: POST + data_selector: marks +- name: toxic_combination + endpoint: + path: /toxic-combinations + method: GET + data_selector: findings +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: cases + endpoint: + path: /v1alpha/cases + method: GET + data_selector: cases +- name: entity + endpoint: + path: /v2/entities + method: POST + data_selector: data + params: {} +- name: cases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/cases + method: GET + data_selector: cases +- name: legacyBatchGetCases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/legacy:legacyBatchGetCases + method: GET +- name: entity + endpoint: + path: /v2/entities:batchCreate + method: POST + data_selector: records + params: {} +- name: raw_log + endpoint: + path: /v2/logs + method: GET + data_selector: logs + params: {} +- name: Daily Status Report + endpoint: + path: /services/data/vXX.X/sobjects/DailyStatusReport + method: GET + data_selector: records + params: {} +- name: cases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/cases + method: GET + data_selector: cases +- name: siteverify + endpoint: + path: /siteverify + method: POST + data_selector: response + params: {} +- name: cases + endpoint: + path: /v1alpha/cases + method: GET + data_selector: cases +- name: historical_firewall_logs + endpoint: + path: /logs/firewall + method: GET + data_selector: records + params: {} +- name: cidr_data_table + endpoint: + path: /data/cidr + method: GET + data_selector: records + params: {} +- name: site_verify + endpoint: + path: /siteverify + method: POST + data_selector: success +- name: case_history + endpoint: + path: /services/data/vXX.X/sobjects/CaseHistory + method: GET + data_selector: records + params: {} +- name: site_verify + endpoint: + path: /siteverify + method: POST + data_selector: response +- name: create_assessment + endpoint: + path: /createAssessment + method: POST + data_selector: assessment +- name: daily_status_report + endpoint: + path: /api/v1/daily_status_report + method: GET + data_selector: data + params: {} +- name: cases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/cases + method: GET + data_selector: cases +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: cases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/cases + method: GET + data_selector: cases +- name: legacy_cases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/legacy:legacyBatchGetCases + method: GET + data_selector: cases +- name: CIDR Data Table + endpoint: + path: /path/to/cidr_data_table + method: GET + data_selector: records + params: {} +- name: Firewall Logs + endpoint: + path: /path/to/firewall_logs + method: GET + data_selector: records + params: {} +- name: site_verify + endpoint: + path: /siteverify + method: POST + data_selector: response +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: json_data + endpoint: + path: /json_data + method: POST + data_selector: parsed_json +- name: privileged_user_authentication + endpoint: + path: /api/v1/authentication + method: POST + data_selector: data + params: + TTL: 7 days +- name: change_request + endpoint: + path: /api/now/table/change_request + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: cases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/cases + method: GET + data_selector: cases +- name: legacy_cases + endpoint: + path: /v1alpha/projects/{project}/locations/us/instances/{instance}/legacy:legacyBatchGetCases + method: GET + data_selector: cases +- name: custom_app_logs + endpoint: + path: /custom_app_logs + method: POST + data_selector: logs + params: {} +- name: custom_app_logs + endpoint: + path: /path/to/your/endpoint + method: POST + data_selector: logs + params: {} +- name: change_request + endpoint: + path: /api/now/table/change_request + method: GET +- name: custom_app_logs + endpoint: + path: /services/data/vXX.X/sobjects/CustomAppLogs + method: POST + data_selector: logs + params: {} +- name: secops_cases + endpoint: + path: /api/v1/cases + method: GET + data_selector: records + params: {} +- name: community_spotlight + endpoint: + path: /community/spotlight + method: GET + data_selector: spotlight + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: network_connection + endpoint: + path: /api/network_connections + method: GET + data_selector: records + params: {} +- name: mac_assets + endpoint: + path: /api/mac_assets + method: GET + data_selector: records + params: {} +- name: custom_app_logs + endpoint: + path: /services/data/vXX.X/sobjects/custom_app_logs + method: POST + data_selector: logs + params: {} +- name: custom_app_logs + endpoint: + path: /services/data/vXX.X/sobjects/custom_app_logs + method: POST + data_selector: logs + params: {} +- name: group_function + endpoint: + path: /api/group_function + method: GET + data_selector: fields + params: {} +- name: network_connection + endpoint: + path: /search + method: GET + data_selector: records + params: {} +- name: community_posts + endpoint: + path: /api/community/posts + method: GET + data_selector: posts + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Google Security Operations + endpoint: + path: /google-security-operations-66 + method: GET + data_selector: topics +- name: Google Threat Intelligence + endpoint: + path: /google-threat-intelligence-67 + method: GET + data_selector: topics +- name: mac_addresses + endpoint: + path: /entity/asset + method: GET + data_selector: entity + params: {} +- name: rules + endpoint: + path: /administration/datarbac-impact#rules + method: GET +- name: detections + endpoint: + path: /administration/datarbac-impact#detections + method: GET +- name: curated_detections + endpoint: + path: /administration/datarbac-impact#curated_detections + method: GET +- name: raw_logs + endpoint: + path: /administration/datarbac-impact#raw_logs + method: GET +- name: data_tables + endpoint: + path: /administration/datarbac-impact#data_tables + method: GET +- name: reference_lists + endpoint: + path: /administration/datarbac-impact#reference_lists + method: GET +- name: feeds_and_forwarders + endpoint: + path: /administration/datarbac-impact#feeds_and_forwarders + method: GET +- name: look_dashboards + endpoint: + path: /administration/datarbac-impact#look_dashboards + method: GET +- name: ati_and_ioc_matching + endpoint: + path: /administration/datarbac-impact#applied_threat_intelligence_and_ioc_matching + method: GET +- name: ueba_and_risk_analytics + endpoint: + path: /administration/datarbac-impact#ueba_and_risk_analytics + method: GET +- name: entity_details + endpoint: + path: /administration/datarbac-impact#entity_details + method: GET +- name: security_operations + endpoint: + path: /security-operations + method: GET + data_selector: records + params: {} +- name: threat_intelligence + endpoint: + path: /threat-intelligence + method: GET + data_selector: records + params: {} +- name: webinar + endpoint: + path: /gc/Events/Security-Spotlight-Modernizing-Security-Operations-with + method: GET +- name: grouped_fields + endpoint: + path: /grouped_fields + method: GET + data_selector: grouped_fields +- name: event_count + endpoint: + path: /services/data/vXX.X/sobjects/EventCount + method: GET + data_selector: records + params: + incremental: metadata.vendor_name +- name: alert_suppression + endpoint: + path: /alert/suppression + method: POST + data_selector: alerts +- name: alert_suppression + endpoint: + path: /alert_suppression + method: POST + data_selector: rows +- name: historical_suppression_tracking + endpoint: + path: /historical_suppression_tracking + method: POST + data_selector: rows +- name: windowseventlog_application + endpoint: + path: windowseventlog/source0__application + method: GET + data_selector: attributes + params: + log_type: windows_event.application + channel: application + max_reads: 100 + poll_interval: 1s + raw: true + start_at: end +- name: windowseventlog_security + endpoint: + path: windowseventlog/source0__security + method: GET + data_selector: attributes + params: + log_type: windows_event.security + channel: security + max_reads: 100 + poll_interval: 1s + raw: true + start_at: end +- name: windowseventlog_system + endpoint: + path: windowseventlog/source0__system + method: GET + data_selector: attributes + params: + log_type: windows_event.system + channel: system + max_reads: 100 + poll_interval: 1s + raw: true + start_at: end +- name: alert_suppression + endpoint: + path: /path/to/alert_suppression + method: GET + data_selector: records + params: {} +- name: historical_suppression_tracking + endpoint: + path: /path/to/historical_suppression_tracking + method: GET + data_selector: records + params: {} +- name: Google Security Operations + endpoint: + path: /google-security-operations-66 + method: GET +- name: Google Threat Intelligence + endpoint: + path: /google-threat-intelligence-67 + method: GET +- name: data_rbac + endpoint: + path: /api/data_rbac + method: GET + data_selector: records +- name: data_access + endpoint: + path: /data/access + method: GET + data_selector: records +- name: malware_alert + endpoint: + path: /api/v1/malware_alerts + method: GET + data_selector: alerts +- name: custom_labels + endpoint: + path: /settings/siem/settings/data/access/custom_labels + method: GET +- name: scopes + endpoint: + path: /settings/siem/settings/data/access/scopes + method: GET +- name: Data RBAC + endpoint: + path: /data/rbac + method: GET + data_selector: data_access + params: {} +- name: Feature RBAC + endpoint: + path: /feature/rbac + method: GET + data_selector: feature_access + params: {} +- name: User Enrichment + endpoint: + path: /services/data/vXX.X/sobjects/UserEnrichment + method: POST + data_selector: results +- name: IOC Enrichment + endpoint: + path: /services/data/vXX.X/sobjects/IOCEnrichment + method: POST + data_selector: results +- name: Containment + endpoint: + path: /services/data/vXX.X/sobjects/Containment + method: POST + data_selector: results +- name: data_access + endpoint: + path: /data/access + method: GET +- name: detections + endpoint: + path: /detection + method: GET + data_selector: detections + params: {} +- name: detections + endpoint: + path: /detections + method: GET + data_selector: detections + params: {} +- name: alert_suppression + endpoint: + path: /data-tables/alert-suppression + method: POST + data_selector: alerts + params: {} +- name: Alert Suppression Table + endpoint: + path: /alert_suppression + method: GET + data_selector: rows +- name: Historical Suppression Tracking Table + endpoint: + path: /historical_suppression_tracking + method: GET + data_selector: rows +- name: detections + endpoint: + path: /detection + method: GET + data_selector: detections +- name: alert_suppression + endpoint: + path: /services/data/vXX.X/sobjects/AlertSuppression + method: POST + data_selector: rows +- name: historical_suppression_tracking + endpoint: + path: /services/data/vXX.X/sobjects/HistoricalSuppressionTracking + method: POST + data_selector: rows +- name: detection + endpoint: + path: /detection + method: GET + data_selector: detections + params: {} +- name: detection_host_large_outbound_transfer_stage_0 + endpoint: + path: /detection/host/large/outbound/transfer/stage/0 + method: GET + data_selector: events + params: {} +- name: detection_host_large_outbound_transfer_stage_1 + endpoint: + path: /detection/host/large/outbound/transfer/stage/1 + method: GET + data_selector: events + params: {} +- name: consumer_host_large_outbound_transfer_stage_2 + endpoint: + path: /detection/consumer/host/large/outbound/transfer/stage/2 + method: GET + data_selector: events + params: {} +- name: anomalous_inbound_bytes + endpoint: + path: /services/data/vXX.X/sobjects/AnomalousInboundBytes + method: GET + data_selector: records + params: + incremental: timestamp +- name: detections + endpoint: + path: /detections + method: GET + data_selector: detections + params: {} +- name: anomalous_login + endpoint: + path: /api/v1/anomalous_login + method: GET + data_selector: alerts +- name: anomalous_api_access + endpoint: + path: /api/v1/anomalous_api_access + method: GET + data_selector: alerts +- name: data_staging + endpoint: + path: /api/v1/data_staging + method: GET + data_selector: alerts +- name: log_manipulation + endpoint: + path: /api/v1/log_manipulation + method: GET + data_selector: alerts +- name: curated_detections + endpoint: + path: /detection/curated + method: GET + data_selector: detections +- name: composite_detections + endpoint: + path: /detection/composite + method: GET + data_selector: detections +- name: detections + endpoint: + path: /detection + method: GET + data_selector: detections + params: {} +- name: detections + endpoint: + path: /detection + method: GET + data_selector: detections +- name: malware_playbook + endpoint: + path: /api/malware_playbook + method: POST + data_selector: results +- name: detection + endpoint: + path: /api/detection + method: GET + data_selector: detections +- name: detection + endpoint: + path: /detections + method: GET + data_selector: detections + params: {} +- name: threat_profile + endpoint: + path: /create-threat-profile + method: POST + data_selector: profile_data +- name: detections + endpoint: + path: /detections + method: GET + data_selector: detections +- name: threat_profiles + endpoint: + path: /threat_profiles/{profile_id}/recommendations + method: GET + data_selector: recommendations + params: + limit: 10 +- name: detections + endpoint: + path: /detections + method: GET + data_selector: detections +- name: livehunt_rules + endpoint: + path: /livehunt/rules + method: GET + data_selector: records +- name: detections + endpoint: + path: /detections + method: GET + data_selector: detections +- name: file_metadata + endpoint: + path: /hunting-metadata + method: GET + data_selector: rules +- name: file_behavior + endpoint: + path: /hunting-behavior + method: GET + data_selector: rules +- name: network_indicators + endpoint: + path: /nethunt + method: GET + data_selector: rules +- name: detection_host_large_outbound_transfer_stage_0 + endpoint: + path: /detections/stage_0 + method: GET + data_selector: detections + params: {} +- name: detection_host_large_outbound_transfer_stage_1 + endpoint: + path: /detections/stage_1 + method: GET + data_selector: detections + params: {} +- name: consumer_host_large_outbound_transfer_stage_2 + endpoint: + path: /detections/stage_2 + method: GET + data_selector: detections + params: {} +- name: ioc_stream + endpoint: + path: /api/ioc-stream + method: GET + data_selector: data +- name: search + endpoint: + path: /api/v3/search + method: GET + data_selector: data + params: {} +- name: single_event_with_outcome + endpoint: + path: /detections/single_event_with_outcome + method: POST + data_selector: detections + params: {} +- name: single_event_wo_match_with_variable + endpoint: + path: /detections/single_event_wo_match_with_variable + method: POST + data_selector: detections + params: {} +- name: single_event_with_match + endpoint: + path: /detections/single_event_with_match + method: POST + data_selector: detections + params: {} +- name: composite_rule_multiple_alerts_same_hostname + endpoint: + path: /detections/composite_rule_multiple_alerts_same_hostname + method: POST + data_selector: detections + params: {} +- name: curated_detections + endpoint: + path: /curated_detections + method: GET + data_selector: detections + params: {} +- name: intelligence_search + endpoint: + path: /intelligence/search + method: GET + data_selector: results +- name: detections + endpoint: + path: /detections + method: GET + data_selector: detections +- name: malicious_invoice_docx_macros + endpoint: + path: /vt/rules/malicious_invoice_docx_macros + method: GET + data_selector: rules + params: {} +- name: phishing_acme_urls + endpoint: + path: /vt/rules/phishing_acme_urls + method: GET + data_selector: rules + params: {} +- name: intelligence_search + endpoint: + path: /intelligence/search + method: GET + data_selector: data + params: {} +- name: intelligence_search + endpoint: + path: /api/v3/intelligence/search + method: GET + data_selector: results +- name: detections + endpoint: + path: /detections + method: GET + data_selector: detections +- name: intelligence_search + endpoint: + path: /intelligence/search + method: GET + data_selector: results + params: + limit: 10 +- name: detections + endpoint: + path: /detections + method: GET + data_selector: detections + params: {} +- name: intelligence_search + endpoint: + path: /intelligence/search + method: GET + data_selector: data + params: {} +- name: composite_rule + endpoint: + path: /composite/rules + method: GET + data_selector: rules + params: {} +- name: intelligence_search + endpoint: + path: /intelligence/search + method: GET + data_selector: results + params: {} +- name: threat_profiles + endpoint: + path: /gui/threat-profiles + method: GET + data_selector: profiles + params: {} +- name: custom_monitor + endpoint: + path: /api/monitor + method: POST + data_selector: results +- name: threat_profiles + endpoint: + path: /threat_profiles/{profile_id}/recommendations + method: GET + data_selector: recommendations + params: + limit: '10' +- name: credit_card_listings + endpoint: + path: /shop_listings + method: GET + data_selector: listings + params: + item_type: CC + shop.name: Robot market + price: '[10 TO *]' + payment_card.owner.contact.geo_location.country_code: JP + payment_card.owner.contact.geo_location.country: japan +- name: forum_posts + endpoint: + path: /forum_posts + method: GET + data_selector: posts + params: + __type: forum_post + forum.name: hackzorzExample.onion + subject: Access for sale +- name: VIP User Monitoring + endpoint: + path: /api/v1/vip_user_monitoring + method: POST + data_selector: results + params: {} +- name: VirusTotal Document Searching + endpoint: + path: /api/v1/virustotal_document_searching + method: POST + data_selector: results + params: {} +- name: Cryptocurrency Wallet Monitoring + endpoint: + path: /api/v1/crypto_wallet_monitoring + method: POST + data_selector: results + params: {} +- name: IOC Stream + endpoint: + path: /api/v1/ioc-stream + method: GET + data_selector: results +- name: vip_user_monitor + endpoint: + path: /monitoring/vip_user + method: POST + data_selector: results +- name: data_leak_monitor + endpoint: + path: /monitoring/data_leak + method: POST + data_selector: results +- name: crypto_wallet_monitor + endpoint: + path: /monitoring/crypto_wallet + method: POST + data_selector: results +- name: data_leaks_monitor + endpoint: + path: /api/data_leaks + method: GET + data_selector: results + params: {} +- name: crypto_wallet_monitor + endpoint: + path: /api/crypto_wallets + method: GET + data_selector: results + params: {} +- name: file_metadata + endpoint: + path: /vt/metadata + method: GET + data_selector: records +- name: file_behavior + endpoint: + path: /vt/behaviour + method: GET + data_selector: records +- name: network_indicators + endpoint: + path: /vt/net + method: GET + data_selector: records +- name: monitor + endpoint: + path: /monitor + method: POST +- name: credit_card_shop_listings + endpoint: + path: /shop_listings + method: GET + data_selector: listings + params: + item_type: CC +- name: forum_posts + endpoint: + path: /forum_posts + method: GET + data_selector: posts + params: {} +- name: email_analysis + endpoint: + path: /email_analysis + method: GET + data_selector: emails + params: {} +- name: livehunt_rules + endpoint: + path: /api/livehunt/rules + method: POST + data_selector: rules + params: {} +- name: ioc_stream + endpoint: + path: /api/ioc-stream + method: GET + data_selector: ioc_data + params: {} +- name: playbook + endpoint: + path: /playbooks + method: POST + data_selector: playbookDetails + params: + trigger: all + priority: 3 +- name: file_search + endpoint: + path: /files + method: GET + data_selector: data + params: {} +- name: url_search + endpoint: + path: /urls + method: GET + data_selector: data + params: {} +- name: ip_search + endpoint: + path: /ips + method: GET + data_selector: data + params: {} +- name: domain_search + endpoint: + path: /domains + method: GET + data_selector: data + params: {} +- name: collection_search + endpoint: + path: /collections + method: GET + data_selector: data + params: {} +- name: intelligence_search + endpoint: + path: /intelligence/search + method: GET + data_selector: results +- name: malicious_invoice_docx_macros + endpoint: + path: /api/v3/files + method: POST + data_selector: data + params: + condition: vt.metadata.file_name icontains "invoice" and vt.metadata.file_type + == vt.FileType.DOCX and vt.metadata.analysis_stats.malicious > 5 and for any + tag in vt.metadata.tags:(tag == "macros") and vt.metadata.first_submission_date + > 1706486400 and vt.metadata.times_submitted > 10 +- name: phishing_acme_urls + endpoint: + path: /api/v3/urls + method: POST + data_selector: data + params: + condition: vt.net.url.favicon.dhash == "6190b6b8595c5523" and vt.net.domain.root + != "acme.com" and vt.net.url.response_code == 200 and vt.net.url.first_submission_date + > time.now() - (60*86400) and vt.net.url.analysis_stats.malicious >= 5 and + (for any engine, value in vt.net.url.signatures:(value icontains "phishing") + or for any engine, value in vt.net.url.categories:(value icontains "phishing")) +- name: intelligence_search + endpoint: + path: /intelligence/search + method: GET + data_selector: results +- name: intelligence_search + endpoint: + path: /intelligence/search + method: GET + data_selector: results + params: {} +- name: Feeds + endpoint: + path: /feeds + method: GET + data_selector: feeds + params: {} +- name: Forwarders + endpoint: + path: /forwarders + method: GET + data_selector: forwarders + params: {} +- name: Bindplane + endpoint: + path: /bindplane + method: GET + data_selector: bindplane + params: {} +- name: intelligence_search + endpoint: + path: /intelligence/search + method: GET + data_selector: results +- name: threat_profile + endpoint: + path: /threat_profiles + method: POST + data_selector: data + params: {} +- name: ingestion_feed + endpoint: + path: /ingestion_feeds + method: POST + data_selector: data + params: {} +- name: forwarder + endpoint: + path: /forwarders + method: POST + data_selector: data + params: {} +- name: intelligence_search + endpoint: + path: /intelligence/search + method: GET + data_selector: results + params: + limit: 10 +- name: phishing_urls + endpoint: + path: /intelligence/search + method: GET + data_selector: results + params: + query: entity:url (meta:"[yourcompanyname]" OR title:"[yourcompanyname]" OR + url:"[yourcompanyname]") AND NOT parent_domain:[yourcorporatedomain] +- name: VIP User Monitoring + endpoint: + path: /api/v1/vip_user_monitoring + method: POST + data_selector: results + params: {} +- name: VirusTotal Document Searching Tuning + endpoint: + path: /api/v1/virustotal_document_search + method: POST + data_selector: results + params: {} +- name: Monitoring Mentions of Cryptocurrency Wallets Addresses + endpoint: + path: /api/v1/crypto_wallet_monitoring + method: POST + data_selector: results + params: {} +- name: Custom Fields + endpoint: + path: /settings/soar/custom-fields + method: GET + data_selector: customFields + params: {} +- name: VIP User Monitoring + endpoint: + path: /dtm/v1/monitor + method: POST + data_selector: monitor + params: {} +- name: VirusTotal Document Searching + endpoint: + path: /vt/v1/search + method: GET + data_selector: results + params: {} +- name: Cryptocurrency Wallet Monitoring + endpoint: + path: /crypto/v1/monitor + method: POST + data_selector: monitor + params: {} +- name: credit_card_shop_listings + endpoint: + path: /credit_card_shop_listings + method: GET + data_selector: listings + params: {} +- name: forum_posts + endpoint: + path: /forum_posts + method: GET + data_selector: posts + params: {} +- name: email_analysis + endpoint: + path: /email_analysis + method: GET + data_selector: emails + params: {} +- name: Condition on Simple String Fields + endpoint: + path: /conditionals/simple_string_fields + method: GET + data_selector: tokens +- name: Condition on Composite Field Values + endpoint: + path: /conditionals/composite_field_values + method: GET + data_selector: tokens +- name: Condition on a String Field using Regex and Else-if + endpoint: + path: /conditionals/string_field_regex + method: GET + data_selector: tokens +- name: Multiple Conditions with Logical Operators AND/OR + endpoint: + path: /conditionals/multiple_conditions + method: GET + data_selector: tokens +- name: Conditions using Short-hand Notation + endpoint: + path: /conditionals/short_hand_notation + method: GET + data_selector: tokens +- name: Advanced String Tokens Manipulations + endpoint: + path: /advanced_string_tokens_manipulations + method: GET + data_selector: tokens +- name: user_sessions + endpoint: + path: /user/sessions + method: GET + data_selector: sessions + params: {} +- name: VIP User Monitoring + endpoint: + path: /api/v1/vip_user_monitor + method: POST + data_selector: monitor + params: {} +- name: VirusTotal Document Searching + endpoint: + path: /api/v1/virustotal_search + method: POST + data_selector: documents + params: {} +- name: Cryptocurrency Wallet Monitoring + endpoint: + path: /api/v1/crypto_wallet_monitor + method: POST + data_selector: wallets + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: listFirstSession + endpoint: + path: /message/user/sessions[0]/actions + method: GET + data_selector: listFirstSession +- name: output + endpoint: + path: '@output' + method: POST + data_selector: '@output' + params: {} +- name: event + endpoint: + path: /event/idm/read_only_udm + method: POST + data_selector: output + params: {} +- name: event + endpoint: + path: /event + method: POST + data_selector: records + params: {} +- name: event + endpoint: + path: /udm/event + method: POST + data_selector: output + params: {} +- name: event + endpoint: + path: / + method: POST + data_selector: '@output' + params: {} +- name: metadata + endpoint: + path: /event/idm/read_only_udm/metadata + method: POST + data_selector: event + params: {} +- name: security_result + endpoint: + path: /event/idm/read_only_udm/security_result + method: POST + data_selector: category_details + params: {} +- name: event + endpoint: + path: /events + method: POST + data_selector: events + params: {} +- name: webinar_1 + endpoint: + path: /webinars-podcasts-43/ep247-the-evolving-ciso-from-security-cop-to-cloud-ai-champion-6018 + method: GET + data_selector: records +- name: webinar_2 + endpoint: + path: /webinars-podcasts-43/webinar-debugging-soar-integrations-in-ide-like-it-s-a-vibe-6005 + method: GET + data_selector: records +- name: webinar_3 + endpoint: + path: /webinars-podcasts-43/ep246-from-scanners-to-ai-25-years-of-vulnerability-management-with-qualys-ceo-sumedh-thakar-5984 + method: GET + data_selector: records +- name: webinar_4 + endpoint: + path: /webinars-podcasts-43/behind-the-binary-ep16-the-machine-learning-revolution-in-reverse-engineering-with-hahna-kane-latonick-5972 + method: GET + data_selector: records +- name: webinar_5 + endpoint: + path: /webinars-podcasts-43/ep245-from-consumer-chatbots-to-enterprise-guardrails-securing-real-ai-adoption-5949 + method: GET + data_selector: records +- name: webinar_6 + endpoint: + path: /webinars-podcasts-43/the-defender-s-advantage-podcast-how-vsphere-became-a-target-for-adversariesai-tools-and-sentiment-within-the-underground-cyber-crime-community-5904 + method: GET + data_selector: records +- name: webinar_7 + endpoint: + path: /webinars-podcasts-43/ep244-the-future-of-soapa-jon-oltsik-on-platform-consolidation-vs-best-of-breed-in-the-age-of-agentic-ai-5903 + method: GET + data_selector: records +- name: webinar_8 + endpoint: + path: /webinars-podcasts-43/behind-the-binary-ep15-getting-ready-for-flare-on-12-an-inside-look-at-the-reverse-engineering-gauntlet-5882 + method: GET + data_selector: records +- name: webinar_9 + endpoint: + path: /webinars-podcasts-43/ep243-email-security-in-the-ai-age-an-epic-2025-arms-race-begins-5855 + method: GET + data_selector: records +- name: webinar_10 + endpoint: + path: /webinars-podcasts-43/webinar-best-practices-for-ingestion-and-parsing-in-google-security-operations-5841 + method: GET + data_selector: records +- name: webinar_11 + endpoint: + path: /webinars-podcasts-43/behind-the-binary-ep14-web3-s-dark-side-unmasking-the-new-age-of-financial-crime-5802 + method: GET + data_selector: records +- name: webinar_12 + endpoint: + path: /webinars-podcasts-43/ep242-the-ai-soc-is-this-the-automation-we-ve-been-waiting-for-5801 + method: GET + data_selector: records +- name: webinar_13 + endpoint: + path: /webinars-podcasts-43/ep241-from-black-box-to-building-blocks-more-modern-detection-engineering-lessons-from-google-5760 + method: GET + data_selector: records +- name: webinar_14 + endpoint: + path: /webinars-podcasts-43/the-defender-s-advantage-podcast-ai-tools-and-sentiment-within-the-underground-cyber-crime-community-5722 + method: GET + data_selector: records +- name: webinar_15 + endpoint: + path: /webinars-podcasts-43/ep240-cyber-resiliency-for-the-rest-of-us-making-it-happen-on-a-real-world-budget-5721 + method: GET + data_selector: records +- name: webinar_16 + endpoint: + path: /webinars-podcasts-43/behind-the-binary-ep13-beyond-the-bug-scaling-bug-bounty-programs-launching-a-cyber-startup-with-dr-jared-demott-5668 + method: GET + data_selector: records +- name: webinar_17 + endpoint: + path: /webinars-podcasts-43/ep239-linux-security-the-detection-and-response-disconnect-and-where-is-my-agentless-edr-5667 + method: GET + data_selector: records +- name: webinar_18 + endpoint: + path: /webinars-podcasts-43/ep238-google-lessons-for-using-ai-agents-for-securing-our-enterprise-5634 + method: GET + data_selector: records +- name: webinar_19 + endpoint: + path: /webinars-podcasts-43/ep237-making-security-personal-at-the-speed-and-scale-of-tiktok-5589 + method: GET + data_selector: records +- name: webinar_20 + endpoint: + path: /webinars-podcasts-43/the-defender-s-advantage-podcast-protecting-the-core-securing-protection-relays-in-modern-substations-5522 + method: GET + data_selector: records +- name: webinar_21 + endpoint: + path: /webinars-podcasts-43/behind-the-binary-ep12-unpacking-malware-minds-a-reverse-engineer-s-journey-with-danny-quist-5521 + method: GET + data_selector: records +- name: webinar_22 + endpoint: + path: /webinars-podcasts-43/ep236-accelerated-siem-journey-a-soc-leader-s-playbook-for-modernization-and-ai-5520 + method: GET + data_selector: records +- name: webinar_23 + endpoint: + path: /webinars-podcasts-43/ep235-the-autonomous-frontier-governing-ai-agents-from-code-to-courtroom-5454 + method: GET + data_selector: records +- name: webinar_24 + endpoint: + path: /webinars-podcasts-43/ep234-the-siem-paradox-logs-lies-and-failing-to-detect-4209 + method: GET + data_selector: records +- name: webinar_25 + endpoint: + path: /webinars-podcasts-43/ep233-product-security-engineering-at-google-resilience-and-security-4208 + method: GET + data_selector: records +- name: security_result + endpoint: + path: /event/idm/read_only_udm/intermediary/security_result + method: POST + data_selector: security_result +- name: playbooks + endpoint: + path: /api/playbooks + method: GET + data_selector: records +- name: event + endpoint: + path: /events + method: POST + data_selector: events + params: {} +- name: event + endpoint: + path: /event + method: POST + data_selector: '@output' +- name: catchall_playbook + endpoint: + path: /playbooks/catchall + method: POST +- name: event + endpoint: + path: /udm + method: GET + data_selector: output + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: event + endpoint: + path: /services/data/vXX.X/sobjects/Event + method: POST + data_selector: '@output' + params: {} +- name: event + endpoint: + path: /api/v1/event + method: POST + data_selector: output + params: {} +- name: Sync Action + endpoint: + path: /sync/actions + method: GET + data_selector: records +- name: Async Action + endpoint: + path: /async/actions + method: GET + data_selector: records +- name: output + endpoint: + path: /output + method: POST + data_selector: '@output' + params: {} +- name: metadata + endpoint: + path: /event/idm/read_only_udm/metadata + method: POST + data_selector: records + params: {} +- name: security_result + endpoint: + path: /event/idm/read_only_udm/security_result + method: POST + data_selector: records + params: {} +- name: data_ingestion + endpoint: + path: /api/data_ingestion + method: POST + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Feeds + endpoint: + path: /feeds + method: GET +- name: Forwarders + endpoint: + path: /forwarders + method: GET +- name: Bindplane Agents + endpoint: + path: /bindplane/agents + method: GET +- name: output + endpoint: + path: '@output' + method: GET + data_selector: idm.read_only_udm + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Custom Fields + endpoint: + path: /settings/soar/custom-fields + method: GET + data_selector: fields + params: {} +- name: root + endpoint: + path: / + method: GET + data_selector: root +- name: user_sessions + endpoint: + path: /api/v1/user/sessions + method: GET + data_selector: sessions + params: {} +- name: security_result + endpoint: + path: /services/data/vXX.X/sobjects/SecurityResult + method: POST + data_selector: outcomes + params: {} +- name: sessions + endpoint: + path: /api/v1/sessions + method: GET + data_selector: records +- name: actions + endpoint: + path: /api/v1/actions + method: GET + data_selector: records +- name: security_result + endpoint: + path: /security/result + method: POST + data_selector: security_result + params: {} +- name: Tags + endpoint: + path: /tags + method: POST + data_selector: TagsList + params: {} +- name: security_result + endpoint: + path: /events + method: POST + data_selector: security_result + params: {} +- name: logs + endpoint: + path: /logs + method: POST + data_selector: logs + params: {} +- name: event + endpoint: + path: /event + method: POST + data_selector: records +- name: GCP Cloud Audit Parser + endpoint: + path: /services/data/vXX.X/sobjects/GCPCloudAudit + method: POST + data_selector: logs + params: {} +- name: logs + endpoint: + path: /logs + method: GET + data_selector: logs + params: {} +- name: systemError + endpoint: + path: /system/error + method: GET + data_selector: data + params: {} +- name: fileAccess + endpoint: + path: /file/access + method: GET + data_selector: data + params: {} +- name: userLogin + endpoint: + path: /user/login + method: GET + data_selector: data + params: {} +- name: logs + endpoint: + path: /projects/dummyProject/logs/cloudaudit.googleapis.com%2Fdata_access + method: GET + data_selector: log + params: {} +- name: metadata + endpoint: + path: /event/idm/read_only_udm/metadata + method: POST + data_selector: records + params: {} +- name: security_result + endpoint: + path: /event/idm/read_only_udm/security_result + method: POST + data_selector: records + params: {} +- name: event + endpoint: + path: /event + method: POST + data_selector: '@output' +- name: intermediary + endpoint: + path: /event/idm/read_only_udm/intermediary + method: GET + data_selector: security_result + params: {} +- name: logs + endpoint: + path: /logs + method: GET + data_selector: records +- name: security_result + endpoint: + path: /event/idm/read_only_udm/security_result + method: POST + data_selector: events + params: + event_type: GENERIC_EVENT +- name: systemError + endpoint: + path: /system/error + method: GET + data_selector: data + params: {} +- name: fileAccess + endpoint: + path: /file/access + method: GET + data_selector: data + params: {} +- name: userLogin + endpoint: + path: /user/login + method: GET + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: event + endpoint: + path: /event + method: POST + data_selector: '@output' + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: event + endpoint: + path: /api/v1/events + method: GET + data_selector: records + params: + incremental: updated_at +- name: Onboarding + endpoint: + path: /gc/Onboarding-Journey/Security-Command-Center-Premium-Step-1-Onboarding + method: GET + data_selector: records + params: {} +- name: Integrated Services + endpoint: + path: /gc/Onboarding-Journey/Security-Command-Center-Premium-Step-2-Integrated-Services + method: GET + data_selector: records + params: {} +- name: Cloud Logging + endpoint: + path: /gc/Onboarding-Journey/Security-Command-Center-Premium-Step-3-Cloud-Logging + method: GET + data_selector: records + params: {} +- name: Outbound Integrations + endpoint: + path: /gc/Onboarding-Journey/Security-Command-Center-Premium-Step-4-Outbound-Integrations + method: GET + data_selector: records + params: {} +- name: output + endpoint: + path: '@output' + method: POST + data_selector: idm.read_only_udm + params: {} +- name: security_marks + endpoint: + path: /v1/securityMarks + method: POST + data_selector: marks + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: event + endpoint: + path: /event + method: POST + data_selector: '@output' +- name: Continuous Exports + endpoint: + path: /v1/continuous_exports + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: anomaly_detection + endpoint: + path: /security-command-center/anomaly-detection + method: GET + data_selector: findings + params: {} +- name: sensitive_actions_service + endpoint: + path: /security-command-center/sensitive-actions + method: GET + data_selector: findings + params: {} +- name: event + endpoint: + path: /events + method: POST + data_selector: records + params: + incremental: timestamp +- name: event + endpoint: + path: /event + method: POST + data_selector: '@output' + params: {} +- name: user + endpoint: + path: /user + method: POST + data_selector: user_data +- name: employee + endpoint: + path: /employee + method: POST + data_selector: employee_data +- name: findings + endpoint: + path: /v1/organizations/{organization_id}/sources/{source_id}/findings + method: GET + data_selector: findings +- name: notifications + endpoint: + path: /v1/organizations/{organization_id}/notificationConfigs + method: POST + data_selector: notificationConfig +- name: security_result + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: security_result + endpoint: + path: /security_result + method: POST + data_selector: outcomes +- name: Onboarding + endpoint: + path: /gc/Onboarding-Journey/Security-Operations-SIEM-Step-1-OnBoarding + method: GET + data_selector: records + params: {} +- name: Data Ingest + endpoint: + path: /gc/Onboarding-Journey/Security-Operations-SIEM-Step-2-Data-Ingest + method: GET + data_selector: records + params: {} +- name: Rules + endpoint: + path: /gc/Onboarding-Journey/Security-Operations-SIEM-Step-3-Rules + method: GET + data_selector: records + params: {} +- name: Custom Dashboards + endpoint: + path: /gc/Onboarding-Journey/Security-Operations-SIEM-Step-4-Custom-Dashboards + method: GET + data_selector: records + params: {} +- name: event + endpoint: + path: /event + method: POST +- name: security_result + endpoint: + path: /path/to/security_result + method: POST + data_selector: results + params: {} +- name: security_result + endpoint: + path: /actions + method: POST + data_selector: outcomes + params: {} +- name: user_sessions + endpoint: + path: /user/sessions + method: POST + data_selector: events +- name: user + endpoint: + path: /user/activity + method: GET + data_selector: root + params: {} +- name: additional_fields + endpoint: + path: /additional/fields + method: POST + data_selector: fields + params: {} +- name: security_result + endpoint: + path: /security/result + method: POST + data_selector: result + params: {} +- name: logs + endpoint: + path: /logs + method: GET + data_selector: logs + params: {} +- name: parser_extension + endpoint: + path: /api/v1/parser/extension + method: POST + data_selector: data + params: {} +- name: systemError + endpoint: + path: /system/error + method: GET + data_selector: data + params: {} +- name: fileAccess + endpoint: + path: /file/access + method: GET + data_selector: data + params: {} +- name: userLogin + endpoint: + path: /user/login + method: GET + data_selector: data + params: {} +- name: system_error + endpoint: + path: /path/to/system_error + method: GET + data_selector: records +- name: file_access + endpoint: + path: /path/to/file_access + method: GET + data_selector: records +- name: user_login + endpoint: + path: /path/to/user_login + method: GET + data_selector: records +- name: system_error + endpoint: + path: /system/error + method: GET + data_selector: data + params: {} +- name: file_access + endpoint: + path: /file/access + method: GET + data_selector: data + params: {} +- name: user_login + endpoint: + path: /user/login + method: GET + data_selector: data + params: {} +- name: logs + endpoint: + path: /logs + method: POST + data_selector: records + params: {} +- name: systemError + endpoint: + path: /system/error + method: GET + data_selector: data + params: {} +- name: fileAccess + endpoint: + path: /file/access + method: GET + data_selector: data + params: {} +- name: userLogin + endpoint: + path: /user/login + method: GET + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Onboarding + endpoint: + path: /gc/Onboarding-Journey/Security-Command-Center-Premium-Step-1-Onboarding + method: GET +- name: Integrated Services + endpoint: + path: /gc/Onboarding-Journey/Security-Command-Center-Premium-Step-2-Integrated-Services + method: GET +- name: Cloud Logging + endpoint: + path: /gc/Onboarding-Journey/Security-Command-Center-Premium-Step-3-Cloud-Logging + method: GET +- name: Outbound Integrations + endpoint: + path: /gc/Onboarding-Journey/Security-Command-Center-Premium-Step-4-Outbound-Integrations + method: GET +- name: continuous_exports + endpoint: + path: /v1/continuousExports + method: GET + data_selector: exports + params: {} +- name: Anomaly Detection + endpoint: + path: /anomaly-detection + method: GET + data_selector: findings +- name: Sensitive Actions Service + endpoint: + path: /sensitive-actions + method: GET + data_selector: findings +- name: BigQuery Export + endpoint: + path: /bqexports + method: POST + data_selector: export + params: {} +- name: Chronicle Integration + endpoint: + path: /chronicle/integration + method: POST + data_selector: integration + params: {} +- name: Pub/Sub Notifications + endpoint: + path: /notifications + method: POST + data_selector: notification + params: {} +- name: Onboarding + endpoint: + path: /gc/Onboarding-Journey/Security-Operations-SIEM-Step-1-OnBoarding + method: GET +- name: Data Ingest + endpoint: + path: /gc/Onboarding-Journey/Security-Operations-SIEM-Step-2-Data-Ingest + method: GET +- name: Rules + endpoint: + path: /gc/Onboarding-Journey/Security-Operations-SIEM-Step-3-Rules + method: GET +- name: Custom Dashboards + endpoint: + path: /gc/Onboarding-Journey/Security-Operations-SIEM-Step-4-Custom-Dashboards + method: GET +notes: +- Users can set custom risk score thresholds for specific user actions. +- Parser may fail if fields are occasionally missing +- Detects API will be decommissioned on September 30, 2025. +- The Google Cloud Security Community will be moving to a new, dedicated platform + on Gainsight at the end of the month. +- Uses OAuth2 for authentication. +- CrowdStrike deprecated the Detects API on October 1, 2024 and this API will be decommissioned + on September 30, 2025. +- Delay in entity visibility after ingestion +- Batch shipping of logs may cause discrepancies between raw logs and UDM logs +- Community Forums for support and networking +- Resource Center for onboarding guides and learning materials +- The Google Cloud Security Community will be moving to a new, dedicated platform + on Gainsight. +- All existing posts, comments, and profile information will be migrated to the new + platform. +- Transition to Google Cloud console for technical support by December 2, 2025. +- Service recovery is ongoing due to incorrect changes to API endpoints. +- Pagination defaults to 10 alerts per page, can be increased to 25. +- CrowdStrike deprecated the Detects API on October 1, 2024. +- The Detects API will be formally decommissioned on September 30, 2025. +- Obtain API key from the Google Threat Intelligence portal. +- Delay in Entity Visibility for custom parsers +- UDM fields are not visible in Raw Log Search for logs with both Events and Entities +- Security Marks allow annotating assets or findings with additional business context. +- Technical support for Google Threat Intelligence will transition exclusively to + the Google Cloud console after December 3, 2025. +- Toxic Combinations feature is currently in Preview +- Pre-GA features are available 'as is' and might have limited support +- Pagination is supported with a default of 10 alerts per page. +- Subsequent pages accessed via a HTTP Link Header in the API response. +- The API documentation provides a feature for directly querying the REST API. +- Users can submit URLs for analysis. +- Requires setup of connected app in API +- This file cannot be downloaded +- The Mandiant-Organization ID is only available for the SaaS version under https://app.validation.mandiant.com/organizations. +- API keys are generated from https://app.validation.mandiant.com/users/user_prefs. +- Security Marks are key-value pairs used to annotate assets and findings. +- Always No for Host-CLI actions. +- Set to 'No' for benign actions. +- Toxic combinations feature is currently in Preview. +- Risk Engine runs attack path simulations approximately every six hours. +- Requires permissions for viewing Continuous Exports in Security Command Center. +- Migration of all Google reCAPTCHA keys to Google Cloud projects by the end of 2025. +- Minimum Director version 4.14.0.0 or higher is required to upgrade to version 4.14.4.0. +- Malicious webhooks can exfiltrate data or trigger unauthorized actions. +- This space is dedicated to discussing the core principles, best practices, and essential + services for building a secure foundation on Google Cloud Platform. +- Requires setup of connected app in api +- Certain actions may not be available depending on the version +- Content pack requires Director version 4.12.1.0-0 or higher. +- If you’ve enabled the Content Service, this content pack will automatically download + and be applied to your Director. +- The API keys are generated from https://app.validation.mandiant.com/users/user_prefs. +- Should be set to 'No' for benign actions. +- Welcome to the Learning resources page. Here you will find information ranging from + learning courses, product release notes, documentation, and additional resources + to expand your knowledge and enhance your Google Cloud Security skills. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Official data retention policy for reCAPTCHA - GDPR compliance +- Some objects may return nulls in deeply nested fields +- All Google reCAPTCHA keys must migrate to Google Cloud projects by the end of 2025. +- Malicious webhooks can be a significant security risk. This guide will walk you + through purging malicious webhooks using Google tools. +- Consider Webhook Signatures and Payload Validation in your Applications. +- Requires API key for access +- Ensure proper IAM roles are assigned. +- OAuth Consent Screen should be configured. +- Administer, configure, and ingest data effectively to detect threats, investigate + incidents, and respond with confidence. +- Integrate services, leverage Cloud Logging, and configure outbound integrations + for a robust security posture. +- Community is intended to be useful to you and to help you find solutions to your + product-related issues. +- Google reserves the right to use content posted by you in the Community. +- The contest starts at 8:00pm ET on Sept. 26th, 2025 and ends at 8:00pm ET on Oct. + 24th, 2025. +- Early registration will begin approximately two days before the event begins. +- Uses OAuth2 with refresh token — requires setup of connected app in Google Cloud +- Some requests may require additional verification steps +- Requires setup of connected app in Google Cloud. +- Google has been named a Leader in the 2025 Gartner® Magic Quadrant™ for SIEM. +- Your existing posts, comments, and profile information will be migrated to the new + platform. +- Service recovery is ongoing and updates are being posted on Google Cloud Status + dashboard. +- The Detects API will be decommissioned on September 30, 2025. +- Community guidelines emphasize respect and constructive interaction. +- Content may be removed if it violates community guidelines. +- This API requires OAuth2 authentication. +- Some API calls may have rate limits +- The Detects API has been deprecated and will be decommissioned on September 30, + 2025. +- All your existing posts, comments, and profile information will be migrated to the + new platform. +- Ensure OAuth2 token is valid before making API calls +- Rate limits may apply to specific endpoints +- Google has been named a Leader in the 2025 Gartner® Magic Quadrant™ for SIEM +- Community forums available for support. +- Centralized hub for learning and resources. +- Service recovery is ongoing with varying degrees of impact. +- An incorrect change to API endpoints caused a crash loop. +- Community will be moving to a new platform on July 22nd. +- Spots are limited for workshops, registration only for locals. +- While not required, it is highly recommended that candidates have at least 3 years + of security industry experience and 1+ years of hands-on experience with Google + Cloud security tooling. +- This API provides access to the Cloud Security Podcast and related webinars. +- Sorry, our virus scanner detected that this file isn't safe to download. +- The Detects API is being deprecated on September 30, 2025. +- Users should transition to the Alerts API. +- Community Events include webinars, User Groups, and Cloud Security conferences. +- UDM fields not visible in Raw Log Search for logs with both Events and Entities +- Service recovery is ongoing due to an incorrect change to API endpoints. +- Test keys do not count towards billable assessments. +- Spots are limited, so reserve yours today! +- Please register only if you live in or near the associated cities. +- Official data retention policy for reCAPTCHA is required for GDPR compliance. +- Security Marks are key-value pairs used for annotating assets and findings. +- Toxic Combinations feature is currently in Preview. +- Community resources available for onboarding and best practices. +- CrowdStrike Detects API decommissioned on September 30, 2025. The new Alerts API + has superseded this API. +- Delay in Entity Visibility +- Data retention period for reCAPTCHA v2 and v3 is 30 days +- Delay in Entity Visibility for custom parsers. +- UDM fields not visible in Raw Log Search for some logs. +- A migration of all Google reCAPTCHA keys to Google Cloud projects is required by + the end of 2025. +- Tools like Security Command Center and Chronicle generate tons of alerts every day +- Many alerts turn out to be low priority or false positives +- Using net.ip_in_range_cidr to compare entries in the data table with log IP addresses. +- Ensure IP Ranges are marked with an enriched field in the graph for better performance. +- Security Command Center API requires setup of connected app in Google Cloud. +- Pre-GA features are available 'as is' and might have limited support. +- The query returns the same count for case_count, case_sla_not_exceeded, and case_sla_exceeded. +- You can continue using keys on the old API endpoint after the migration. +- Delay in Entity Visibility for custom parser ingestion. +- UDM fields not visible in Raw Log Search when both Events and Entities are created. +- Test keys created with a testing_score are used for automated tests. +- Requires setup of connected app in Google Cloud +- Detect when a privileged user successfully authenticates from a location, device, + or ASN that has not been used by any other privileged account in the past 7 days +- Automatic escalation of incidents to Critical severity +- Delay in Entity Visibility for custom parsers — entities become visible after almost + a full day. +- Netskope deprecated their REST API v1 endpoint on January 31st, 2025. The new v2 + API has superseded v1. +- Alert fatigue is a common issue with tools like Security Command Center and Chronicle + generating many alerts. +- Comparing a custom CIDR data table with a large amount of entries (~5k) to logs. +- Historical firewall logs amount to over 100 million. +- The charge for the use of reCAPTCHA is only applicable after it is working in Google + Cloud. +- If the number of assessments exceeds 10,000 per month, users can still access the + site or app, but reCAPTCHA itself will stop functioning. +- Deprecation and shutdown policy for mobile SDKs after Q3 2025. +- You can continue using your keys on the old endpoint but are encouraged to migrate. +- Test keys may not count towards billable assessments. +- If field2 is not found or empty, it should just skip over that. +- An easy version will be to have Rule1 feeding the list of the locations, devices + and ASNs successfully authenticated from in a data table with TTL 7 days. +- A different Rule to check new logins. +- When a case is converted to an incident, the SOAR platform automatically assigns + it a Critical severity. +- Must create or request custom log type before ingestion. +- Ingestion does not validate or parse logs. +- Changes to parsers take effect only on new ingestion. +- Changes to parser logic only affect new ingestions. +- Must create or request a custom log type before ingestion. +- Changes to parser logic take effect only on new ingestion, not retroactive. +- Community Spotlight features various experts in the field. +- This community focuses on Google Cloud Security topics. +- Some objects like MAC address may have inaccurate first_seen_time. +- 'Nearly all of the mac assets I look at have entity information identical to below: + metadata.collected_timestamp: ''1970-01-01T00:00:01Z'', metadata.entity_type: ''ASSET'', + metadata.interval.start_time: ''1970-01-01T00:00:01Z'', metadata.interval.end_time: + ''9999-12-31T00:00:00Z'', metadata.source_type: ''DERIVED_CONTEXT''' +- Documentation makes it sound like entities describing assets such as a MAC address + should have first_seen_time populated. +- Custom Log Type Label for logs that don’t map to any built-in type. Must be created + (or requested) before you can ingest under it. +- Feeds only ingest — they don’t validate or parse. +- Changes take effect only on new ingestion (not retroactive). +- There is no way to use the reference tables within Dashboards. +- You can enter the tab separated list into a filter within a dashboard. +- Custom log types must be created before ingestion. +- Parser changes only affect new ingestion, not retroactive. +- Ready to embrace the power of Detection-as-Code and take your SecOps to the next + level? +- Custom log type must be created before ingestion. +- Changes in parser logic take effect only on new ingestion. +- Walk through initial setup, then dive into core features like risk assessment, threat + detection, vulnerability management, and compliance monitoring. +- The group function aggregates similar fields into a single placeholder variable. +- Uses group function to aggregate fields. +- When applying group function, it may not filter specific IPs correctly. +- Requires OAuth2 authentication with setup of a connected app in Google Cloud. +- 'Syslog can mean a couple different things. If you want to open a TCP listener (similar + to the SecOps forwarder) you can find details here: https://observiq.com/docs/resources/sources/tcp' +- 'If you''re interested in "tail"ing a syslog file, you can use a file reader. I + have an example on my github here: https://github.com/pilot006/observiq-chronicle-example-config/blob/main/config_nix.yaml' +- Data RBAC allows users to have either scoped data access or global data access. +- Most MAC assets have the first_seen_time set as 1 second after epoch. +- Documentation suggests first_seen_time should be populated for MAC address assets. +- Data RBAC does not support Looker Dashboards and is controlled through feature RBAC + in IAM. +- Reference lists will be deprecated in June 2026 and fully shutdown in September + 2026. +- With a heavy heart I am here to say there is no way to use the reference tables + within Dashboards. +- Data RBAC allows scoped and global access. +- Custom labels can be created using Yara-L. +- Scoped users have limited access to data based on the scoped assigned. +- Global users have no assigned scope and have unrestricted access to all data within + SecOps. +- Effective Data RBAC implementation in Google SecOps requires careful planning and + ongoing maintenance. +- Before defining roles, analyze your teams' responsibilities and the types of data + they need to access. +- Webinar registration requires authentication. +- Data RBAC does not restrict access to IOCs and ATI data specifically. +- Data RBAC does not support UEBA and Risk Analytics. +- Group fields of a similar type into a placeholder variable. +- Reference lists will be deprecated in June 2026 and fully shutdown in September + 2026. All Reference lists should be migrated to Data tables. +- The group function allows for grouping of fields like principal and target IPs. +- Uses group function to aggregate values from different fields. +- Data RBAC is an indispensable component of a strong security posture within the + Google SecOps platform. +- Automated workflows allow analysts to manage alerts based on predefined criteria. +- Data tables are managed via Google SecOps UI or API. +- For metrics, you need to specify whether collecting from the host or Bindplane related + to the agent. +- Data tables can be created and managed via the Google SecOps UI under 'Investigation + > Data tables' +- Ensure the Google Chronicle integration is configured to use the Chronicle API +- Adoption guides provide expert insights and practical tips for strengthening security + posture. +- Effective UEBA is not a single tool, but a layered strategy. +- The stability filter requires the device has been observed on at least 9 of the + last 30 days. +- Data RBAC allows for role-based access to specific datasets. +- No single one of these actions is a high-fidelity 'smoking gun.' +- A careful insider might successfully evade statistical detection by performing their + attack slowly within their normal working hours. +- 'Community Webinar: SecOps Forwarder Deprecation & Open Telemetry Bindplane Use + Cases' +- Enabling Data RBAC requires careful planning of roles and scopes. +- According to the Feature Deprecations page, Reference lists will be deprecated in + June 2026 and fully shutdown in September 2026. All Reference lists should be migrated + to Data tables. +- Uses OAuth2 with refresh token — requires setup of connected app in Google SecOps +- Ensure to test playbooks using the simulator to validate logic +- You must have ingested events with the new custom label that was created to test + the scope. +- Global users have no assigned scope and have unrestricted access to all data. +- Data RBAC doesn't restrict access to IOCs and ATI data specifically. +- Global data access overrides scoped data access, if both are assigned. +- If you enable Data RBAC before assigning in scopes, only users with global access + will be able to view data. +- If you enable Data RBAC after setting up and assigning scopes, scoped users will + immediately have access to scoped data. +- Once Data RBAC is enabled using the Enforce data access button, the only way to + turn off Data RBAC is to open a support ticket. +- Ensure when you turn on Data RBAC, you are ready to turn it on. +- Data RBAC is critical for security within the Google SecOps platform. +- It is important to test configurations thoroughly before deploying. +- Composite and Detection-only rules can use a match window of up to 14 days. +- A Detection is limited in the number of source events it can persist for each event + variable. +- Use rule_id for References to avoid breaking logic if a rule is renamed or duplicated. +- Analysts can manually add alerts to suppression tables. +- Ensure the Google Chronicle integration is configured to use the Chronicle API. +- Scheduled job needed to remove expired alert suppression entries. +- Composite Detections allow for multi-layered detection narratives. +- Ensure suppressions don't last indefinitely without review. +- Uses statistical analysis to detect anomalies in user behavior. +- Insider threats can be difficult to detect as they often appear as normal activity. +- The match window can be expanded in later stages. +- Detection or Detection Alert will not be generated until the match window's interval + duration has concluded. +- Utilizes various rule types including single event and composite rules. +- Consider latency between event occurrence and detection generation. +- No single action is a high-fidelity detection. +- Weak signals combined with strong signals provide a better detection strategy. +- You cannot verify outcome variables for a Curated Detection if the a Detection or + Detection Alert has never been generated in your environment. +- Composite Detections may not function with certain existing Widgets or Actions due + to the differences in the underlying JSON response. +- For longer-term detections, multi-event rules are employed rather than single-event + real-time or near real-time rules. +- Input Rules are limited to 10,000 Detections. +- 'Composite Rules count towards your multi-event rule quota: 75 for Standard, 125 + for Enterprise, and 200 for Enterprise+.' +- A single YARA-L rule is limited to a maximum of 25 Outcome variables. +- Some detection types may return nulls in deeply nested fields +- Alerts originating from Composite Detections are supported within Google SecOps + SOAR. +- Single Event rules operate in near real-time. +- When utilizing a multi-event rule, a detection or detection alert will not be generated + until the match window's interval duration has concluded. +- Composite Detection enhances and builds upon detection capability by allowing connection + of related events over time. +- The Threat Profile is a living framework used to identify significant threats to + an organization. +- Email notifications can be set up to track changes in Threat Profile. +- Latency is a critical factor for Composite Rules. +- Curated Detections can be used in Composite Detections. +- Authorization can be achieved using personal API key or Service Account API key. +- Detection is limited in the number of source events it can persist for each event + variable. +- Composite Detections enhance threat detection capabilities. +- UDM events can be enriched with context from the Entity Context Graph (ECG). +- Uses OAuth2 with refresh token — requires setup of connected app in Google Threat + Intelligence +- Notifications are deleted automatically after 7 days. +- Utilizes UDM events for detection processing. +- Detection alert generated only after the match interval has concluded. +- Composite Detections are supported within Google SecOps SOAR. +- Utilize outcome section to persist variables from Input rules to Composite Rules. +- Authorization can be achieved using your personal API key or a Service Account API + key. +- Composite Detections allow for sophisticated, multi-layered detection narratives. +- Input rules generate Detections that are used as input for Composite Rules. +- Detection creation time is not tied to the match window but to the scheduled run + frequency. +- If your Composite Rule logic needs to refer to specific Input or Detection only + rules use its rule_id value. +- Authorization can be achieved using your personal API key or a Service Account API + key, which is not tied to a specific user. +- Matches can be expanded in later stages. +- Detection alerts are consolidated into a singular alert within a SOAR case. +- Uses YARA-L syntax for rule definitions. +- Allows automated queries for phishing detection +- Supports Livehunt rules for real-time monitoring +- The Data Leaks template is a powerful monitor to use for when you want to detect + exposure of your sensitive information such as financial data, trade secrets, or + customer information. +- Applicable to customers who subscribe to either an Enterprise or Enterprise+ Google + Threat Intelligence package. +- Authorization can be achieved using a personal API key or a Service Account API + key, which is not tied to a specific user. +- Threat Profiles are a dynamic workspace that can be enriched with your own institutional + knowledge alongside our expertise. +- Guidance applicable to customers who subscribe to either an Enterprise or Enterprise+ + package. +- Data Leaks template may generate more noise than desired, a custom monitor could + be used to narrow the search results. +- Flexibility within custom monitors allows for many different ways to set up VIP + User monitoring. +- Custom monitors can be implemented for specific use cases. +- Users can leverage Lucene Text Queries for advanced searches. +- Uses OAuth2 with refresh token — requires setup of connected app in Google TI +- Custom monitors can be set up using Lucene Text Queries to reduce noise in alerts. +- Using specific terms in searches can help narrow down results. +- Boost your cloud security knowledge with our best practices page. Discover expert + advice, tips and tricks, and recommendations on Google Cloud Security tools. +- The catch-all playbook should have a priority of 3. +- Specific playbooks should have a priority of at least 2. +- Search modifiers can be combined via Boolean operators (AND, OR, NOT). +- Don't lose information when closing alerts. +- This API requires setup of a connected app. +- Actions can be configured to run automatically or manually, with options to define + timeouts and default return values for situations where the action does not return + a result within the specified time. +- Most actions have the Async Action Timeout set to 1 day and the Async Polling Interval + set to 1 hour. +- Implement Data Ingestion Pipeline +- Google Threat Intelligence provides API access for automated queries and Livehunt + rules for real-time campaign monitoring. +- Validation of feed configuration is performed by Google Security Operations. +- The Collection Agent is currently in preview. +- The bindplane ingestion pipeline uses Open Telemetry agents to collect an expanding + amount of data sources. +- In Google SecOps, enable the Collection Agent (currently in preview). +- Request a free BindPlane for Google license if you are a Google SecOps user. +- Uses API key for authentication — requires creation of an API key in VirusTotal +- When you provide credentials as part of the integration configuration, they will + not be exposed anywhere in the platform. +- To ensure that no one will be able to do any tricks, enable 'Restrict Domain' parameter. +- When action searches for the key, it will search it in the whole JSON object and + perform a match with the first value. +- Enable 'Restrict Domain' parameter to enforce domain usage in all actions. +- The guidance in this document is applicable to customers who subscribe to either + an Enterprise or Enterprise+ Google Threat Intelligence package, where custom monitors + can be implemented. +- Certain API workflows require waiting for the response to finish processing before + the next API request can be executed. +- To return data as part of JSON result in Base64 format, enable the 'Base64 Output' + parameter. +- All files are downloaded as zips. +- By using Lucene Text Queries, we can specify that we are looking for organization: + and in combination with Free Text Search of using specific terms that would generally + accompany internal sensitive document labels, this can help to reduce noise in the + alerts. +- Custom fields are available for both Case & Alert scopes. +- Once created, custom fields cannot be edited in scope or type. +- Applicable to customers who subscribe to either an Enterprise or Enterprise+ package. +- Mandatory fields do not block case closure operation. +- The Data Leaks template is a powerful monitor to use for detecting exposure of sensitive + information. +- By using Lucene Text Queries, we can specify organization names and internal sensitive + document labels to narrow the search results. +- When a telegram user_id or a channel_id contains a hyphen at the beginning of the + value, the hyphen will need to be escaped. +- Use nested loops for processing repeated fields. +- Fields are composite and may contain repeated elements. +- Guidance is applicable to customers who subscribe to either an Enterprise or Enterprise+ + package. +- The flexibility within custom monitors allows for many different ways to set up + VIP User monitoring. +- Payment card.partial_number_prefix does not accept wildcards and is a literal search + option. +- This example is for demonstration only, as UDM requires repeated fields to be structured. +- It's vital to remember that even if your log data contains a single value for a + field, if the UDM schema defines that field as repeated (e.g., principal.ip), your + parser must construct a repeated field structure. +- The merge clause appends values to JSON objects. +- Failing to clear temp completely after appending it, or incorrectly clearing only + temp.tag, will corrupt the 'tags' list, causing duplication. +- Boost your cloud security knowledge with our best practices page. +- Discover expert advice, tips and tricks, and recommendations on Google Cloud Security + tools. +- All mapped fields must strictly conform to the UDM data model structure and the + defined data type for that field. +- 'Mandatory ''Metadata.event_type'': Every UDM event necessitates a value for the + ''Metadata.event_type'' field.' +- 'Avoid Deprecated Fields: It is essential to refrain from using any fields marked + as deprecated in the UDM field list to ensure long-term compatibility.' +- All mapped fields must strictly conform to the UDM data model structure and the + defined data type for that field +- Avoid using any fields marked as deprecated in the UDM field list to ensure long-term + compatibility +- Uses a placeholder variable for mapping IP and hostname. +- The output includes nested structures with repeated fields. +- Uses JSON structure for event data. +- The event structure has repeated fields like intermediary. +- Uses event type 'GENERIC_EVENT' for parsing +- Vendor name can be set to 'myVendor' +- Product name can be set to 'myProduct' +- Uses placeholders for mapping fields without complex loops. +- The metadata.event_type field must be filled with 'GENERIC_EVENT'. +- Use the 'GENERIC_EVENT' event type. +- Uses JSON format for data input +- Includes multiple fields and placeholders +- Playbook triggers should be configured to 'all' with a level 3 priority. +- Specific playbooks should be configured with at least a level 2 priority. +- Uses 'GENERIC_EVENT' for event type +- Uses UDM schema for event mapping +- Ensure to clear the event object after each session +- Ensure all other specific playbooks are configured with at least a level 2 priority. +- Uses placeholder variables for mapping events +- Uses 'GENERIC_EVENT' as the event type +- Vendor name is set to 'myVendor' +- Product name is set to 'myProduct' +- Each action within the playbook is configured to run automatically. +- Most actions in the Marketplace are sync type, with a limit of 10 minutes for processing. +- Async actions have a default timeout of 1 day and a polling interval of 1 hour. +- Uses placeholder variables to manage repeated fields +- Event type is set to GENERIC_EVENT +- Uses GENERIC_EVENT as the mandatory event type. +- Utilize Google Threat Intelligence to create Threat Profile +- Mapping potential ATT&CK Techniques to Data Sources is essential. +- Ensure proper setup of service accounts for Google Cloud Storage access. +- Multiple collectors can be added to a single forwarder. +- Uses generic event type 'GENERIC_EVENT' in metadata +- The feedback loop integrates threat intelligence, operational enhancements, and + strategic alignment. +- Collection Agent currently in preview. +- SSH into the BindPlane VM to access default credentials and configuration. +- Deploy BindPlane OP from the GCP Marketplace. +- Configure Shared VPC roles and adjust GCP Organization Policies if required for + Marketplace deployment. +- Enable 'Restrict Domain' parameter to enforce domain used inside integration configuration + in 'Test URL' on all actions. +- To upload the file you need to prepare it in Base64 format and then submit it as + part of Body Payload. +- To return the data as part of JSON result in Base64 format, you need to enable the + 'Base64 Output' parameter. +- If you want to save the file to the case wall, then you need to enable the 'Save + To Case Wall' parameter. +- For sensitive files like malware, it’s recommended to enable the 'Password Protect + Zip' parameter with the password set to 'infected'. +- Test URL is used to test connectivity, GET method is used. +- Restrict Domain parameter enforces the domain used in Test URL. +- Dynamic capturing of composite fields is accomplished using labels type fields. +- Uses JSON fields under actions to map into UDM field. +- Uses Base64 format for file uploads. +- Enable Base64 Output for JSON result in Base64 format. +- Enable Save To Case Wall to save files to the case wall. +- Enable Password Protect Zip for sensitive files, password is 'infected'. +- Custom fields are available for both Case & Alert. +- Uses target argument to allow looping through the root of the JSON logs +- The usage of target argument is not documented in the official documentation yet. +- Custom fields are available under Setting -> SOAR Settings -> Case Data -> Custom + Fields. +- Mandatory fields are labeled with a red asterisk '*'. +- All information about custom field changes are available both in the Settings and + Case Wall. +- Uses JSON parsing for dynamic capturing of fields into UDM +- The target argument in JSON parsing is not documented officially yet +- API requires authentication +- Handles nested JSON structures efficiently. +- Supports dynamic tokenization of fields. +- The parser extension is dependent on the main parser. +- If the main parser failed to parse the input logs then the parser extension code + won’t be executed at all. +- Nested and multi-level loops are used for string concatenation in the schema. +- The API can handle repeated fields within the hierarchy. +- Uses additional.fields to provide flexibility in mapping +- GoStash allows you to build hierarchical structures in your output. +- This example shows one of the core patterns used in UDM Mapping to handle repeated + nested fields. +- Every UDM event necessitates a value for the 'Metadata.event_type' field. +- Avoid Deprecated Fields +- Fields like data.error, data.action, etc. are considered 'Recurring' fields. They + will only exist in specific log messages depending on the log type. +- Fields like timestamp, source, eventType are considered 'Mandatory' fields. They + will exist in ANY log regardless of its type. +- Uses placeholders for repeated fields. +- Some UDM fields may have non-repeating and repeating structures. +- Uses JSON logs for schema inference +- EventType is the main marker for identifying log categories +- Recursively analyzing your schema based on each different value for eventType will + give you the schema per log type. +- The JSON log structure may not be well documented and has to be discovered iteratively. +- If you are building a parser for this data source, the recurring fields must exist + in your log samples to build your parser properly. +- Uses event.idm.read_only_udm.metadata.event_type = 'GENERIC_EVENT' +- Vendor and product names can be set as 'myVendor' and 'myProduct' +- Uses special merge statement to write events to output. +- Ensure to clear the event object after writing to avoid mixing data. +- Uses placeholders for mapping fields +- Event type is mandatory +- Uses JSON format for logs. +- Logs include metadata about events. +- This API handles multiple log types including system errors, file access, and user + logins. +- Uses GENERIC_EVENT as the event_type +- Vendor name can be set to myVendor +- Product name can be set to myProduct +- Uses UDM Schema for event processing +- The UDM schema contains repeated fields +- Security Marks allow annotation of assets or findings with additional business context. +- Uses JSON structure to map events to UDM format +- SCC Deployed in Organization or Project. +- Ingest data, create rules, and build custom dashboards for efficient threat detection + and response. +- Anomaly Detection is enabled by default and requires no further action. +- Sensitive Actions Service automatically enabled on Security Command Center Premium + Tier. +- Admin access in Google Cloud is required. +- Security Command Center must be activated at the Organization level. +- Uses a special merge statement to write events to the UDM schema. +- Ensure to clear the event object after writing to avoid schema contamination. +- Uses advanced JSON tokenizations like deduplication and mapping additional fields +- Security Command Center Premium must be activated at the Organization or Project + level. +- All systems should be set to UTC time. +- Uses UDM format for structured data extraction +- Entitlement for SecOps SIEM on the account and project is required. +- Google Cloud project setup is necessary to use Google Workspace APIs. +- Entitlement for SecOps SIEM on the account and project +- Google Cloud project set up for Chronicle +- Billing Enabled for Google Cloud Project +- Parser extensions cannot drop a log message. +- Parser extensions cannot delete a field from the main parser. +- Entitlement for SecOps SIEM on the account and project. +- The parser extension is dependent on the main parser; if the main parser fails to + parse the input logs, then the parser extension won’t be executed. +- Parser Extensions cannot delete a field from the Main Parser, only replace it. +- Uses special merge statement to tokenize user.sessions into separate events +- Date format is ISO8601 with timezone America/New_York +- Uses a flat log sample for demonstration +- Uses additional.fields for flexibility in UDM events. +- Parser Extensions cannot delete a field from the Main Parser, Only Replace it. +- Parser Extensions cannot drop a log message. +- Parser Extensions cannot append to repeated fields EXCEPT additional.fields[*]{}. + It can only replace them entirely OR re-build them from the original raw log. +- When onboarding a new datasource that is not covered by the existing parsers, the + JSON log structure may not be well documented and has to be discovered iteratively. +- All required fields will be present in every single JSON log; data, eventType, source, + and timestamp. +- If the SIEM has not received enough logs to perform the validation process; you + won’t be able to run the validation process. +- All required fields will be present in every single JSON log ; data, eventType, + source and Timestamp +- Some fields can have different data types depending on the log type. +- Uses JSON log structure for events +- Requires iterative discovery for new data sources +- Compliance Manager offers a library of frameworks, primarily consisting of frequently + used cloud controls. +- Enterprise version requires programmatic management at scale. +- This feature is subject to the 'Pre-GA Offerings Terms' in the General Service Terms + section of the Service Specific Terms. +- Requires permissions for Security Command Center with 'Enterprise' at Organization + level and 'Premium' at Project level. +- Best practice to deploy at the organization level +- SCC Deployed in Organization or Project +- It is best practice to deploy at the organization level to ensure SCCP can access + and scan resources at every level of the organization. +- Admin access in Google Cloud required. +- Security Command Center Premium activated at the Organization or Project level. +- All systems set to UTC time. +- Create Google Cloud Project and Enable Chronicle API +- Configure SSO Provider for Chronicle instance +- Confirm User has required permissions +- Administrative access to the Google Cloud Project is required. +- Billing must be enabled for Google Cloud Project. +- New or existing SecOps SIEM deployment is necessary. +errors: +- '500 Internal Server Error: Check the request format or parameters.' +- field2 not found in state data +- '401 Unauthorized: Recheck API client permissions.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '500 Internal Server Error: there is an empty key in the header' +- '400: Request contains an invalid argument.' +- Technical support transition deadline approaching. +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- '400 { "error": { "code": 400, "message": "Request contains an invalid argument.", + "status": "INVALID_ARGUMENT" } }' +- 'FAILED_TO_AUTHENTICATE_TO_TARGET: Possible issues include using non-standard HTML + form fields, complicated login forms, or cookie issues' +- '401 Unauthorized: Check API key validity.' +- '401 Unauthorized: Check permissions for applying Security Marks.' +- 'FAILED_TO_AUTHENTICATE_TO_TARGET: Check authentication setup.' +- Error trying to verify recaptcha +- 'ERROR: OpenSSL SSL_read: OpenSSL/3.5.0: error:0A000126:SSL routines::unexpected + eof while reading, errno 0' +- 'Timeout: Action execution time exceeded maximum waiting time.' +- '401 Unauthorized: Recheck API key or token expiration' +- Permission denied error for the setOrgPolicy permission. +- 'INVALID_REQUEST: Check parameters sent in the request' +- 'ACCESS_DENIED: Ensure API key is valid and has permissions' +- 'INVALID_CREDENTIALS: Check client ID and secret.' +- 'PERMISSION_DENIED: Verify IAM permissions for the user.' +- 'INVALID_REQUEST: Check your parameters and try again' +- '403 Forbidden: Verify that your API key is valid' +- '401 Unauthorized: Ensure your API client has the necessary permissions.' +- '403 Forbidden: Check permissions for the requested resource' +- '429 Too Many Requests: Rate limit exceeded' +- 'Unauthorized: Check API client permissions.' +- '403 Forbidden: Check API permissions for the client' +- '404 Not Found: Verify endpoint path and parameters' +- Service impact may vary across Google Cloud Services. +- '403 Forbidden: Check API client permissions.' +- '404 Not Found: Verify endpoint URL.' +- '429 Too Many Requests: Throttle your requests.' +- 'ERROR: We''re sorry, but your computer or network may be sending automated queries.' +- '400 Bad Request: Invalid input for the reCAPTCHA verification.' +- '403 Forbidden: Access denied due to IP blocking.' +- 'FAILED_TO_AUTHENTICATE_TO_TARGET: Check authentication methods or settings.' +- '401: Unauthorized access.' +- '400 Bad Request: Check API key or parameters' +- '403 Forbidden: Validate domain and API key usage' +- '404 Not Found: Ensure the correct endpoint is used' +- 'OpenSSL SSL_read: OpenSSL/3.5.0: error:0A000126:SSL routines::unexpected eof while + reading, errno 0' +- 'empty key in header: 500 error' +- 'TIME_COMPLEXITY: Optimize queries by filtering on log types or other fields.' +- 'FAILED_TO_AUTHENTICATE_TO_TARGET: Issues may include non-standard HTML form fields, + complex login forms, or denied access by counter-measures.' +- 'Error: We''re sorry, but your computer or network may be sending automated queries.' +- 'INVALID_SECRET: Check your secret key.' +- 'INVALID_RESPONSE: Check your response token.' +- 'TIMEOUT: The request took too long to process.' +- 'timeout-or-duplicate: Ensure the request is not being sent multiple times.' +- '500 Internal Server Error: There is an empty key in the header' +- 'timeout-or-duplicate: Check for multiple submissions or network issues.' +- 'merge failure: merge source field "event" must not be empty' +- Sorry, our virus scanner detected that this file isn't safe to download. +- '403 ERROR: The request could not be satisfied' +- Request blocked. We can't connect to the server for this app or website at this + time. There might be too much traffic or a configuration error. Try again later, + or contact the app or website owner. +- Unable to find MAC addresses' entity.asset.first_seen_time +- Request blocked. We can't connect to the server for this app or website at this + time. +- 'No raw logs found: Ensure sample logs are pasted for validation.' +- 'Logs ingested but UDM fields missing: Revise parser logic.' +- '401 Unauthorized: Check OAuth scopes or token expiration' +- '404 Not Found: Verify the endpoint path' +- '429 Too Many Requests: Throttle API calls' +- '401 Unauthorized: Ensure you have the required permissions.' +- '401 Unauthorized: Check user permissions and role assignments.' +- '403 Forbidden: Check permissions for accessing the resource' +- '403 Forbidden: Ensure users have the necessary scopes and roles assigned.' +- '404 Not Found: Check if the endpoint is correct or if the resource exists.' +- If you do not have the Data Access menu available in your SIEM Settings, please + ensure you have the required permissions. +- If you still don’t have access, please reach out to your Google Cloud Security Representative, + or open a support ticket. +- Input Rules are limited to 10,000 Detections. +- 'Composite Rules count towards your multi-event rule quota: 75 for Standard, 125 + for Enterprise, and 200 for Enterprise+.' +- 'RESOURCE_NOT_FOUND: Verify the endpoint path and parameters.' +- 'UNAUTHORIZED: Check your authentication credentials.' +- A single YARA-L rule is limited to a maximum of 25 Outcome variables. +- '429 Too Many Requests: Throttle API calls or reduce frequency' +- '500 Internal Server Error: Check API status or retry after some time' +- 'DETECTION_NOT_FOUND: Check rule ID or parameters.' +- 'INVALID_INPUT_RULE: Verify input rule structure.' +- '401 Unauthorized: Recheck API key or permissions' +- 'Detection limit exceeded: Consider reducing input events or adjusting thresholds.' +- '401 Unauthorized: Check API key validity or permissions.' +- 'Timeout error: If the sync action runs for longer than 10 minutes, it will fail + with a timeout error.' +- '401 Unauthorized: Recheck API key validity' +- '401 Unauthorized: Recheck API key validity or permissions.' +- Misconfigured systems identification process may be needed. +- '401 Unauthorized: Recheck API key' +- 'INVALID_QUERY: Ensure query syntax is correct.' +- 'NOT_AUTHORIZED: Check your access rights.' +- 'dateConversionError: Issue with date formatting' +- '400 Bad Request: Check the request parameters and try again.' +- '404 Not Found: Verify the endpoint URL is correct.' +- '500 Internal Server Error: Retry after some time.' +- 'TIMEOUT: If the sync action runs for longer than 10 minutes, it will fail with + a timeout error.' +- By default, most actions have the Async Action Timeout set to 1 day. +- 'Timeout error: Optimize action configuration to handle data in smaller chunks.' +- '400 Bad Request: Check the request parameters' +- '401 Unauthorized: Ensure valid authentication tokens' +- '500 Internal Server Error: Retry the request later' +- Invalid input format +- 'Field not found: Ensure correct mapping' +- '500: Database connection failed' +- '401: Unauthorized access' +- 'FAILED_TO_AUTHENTICATE_TO_TARGET: Check login form fields or cookies' +- 'error.jsonParsingFailed: Error parsing JSON' +- '400 Bad Request: Ensure the request data is formatted correctly' +- 'error.jsonParsingFailed: Parser will fail if recurring fields do not exist in log + samples.' +- '400 Bad Request: Check the request parameters.' +- '403 Forbidden: Verify permissions for the requested resource.' +- 'Login procedure failed: Ensure POST requests are fired during custom scans.' +- 'FAILED_TO_AUTHENTICATE_TO_TARGET: Possible issues could be using non-standard HTML + form fields, complicated login forms, or not saving an authentication cookie on + successful login.' +- '400 Bad Request: Check if the required parameters are provided.' +- '403 Forbidden: Ensure proper IAM Credentials are applied.' +- '404 Not Found: The requested resource does not exist.' +auth_info: + mentioned_objects: + - securitycenter.assetSecurityMarksWriter + - securitycenter.findingSecurityMarksWriter + - OauthToken + - AuthProvider + - NamedCredential + - IAM + - Roles + - Permissions + - personal API key + - Service Account API key +client: + base_url: https://security.googlecloudcommunity.com + auth: + type: oauth2 +source_metadata: null diff --git a/growthbook/growthbook-docs.md b/growthbook/growthbook-docs.md new file mode 100644 index 00000000..b85156ea --- /dev/null +++ b/growthbook/growthbook-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete GrowthBook data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def growthbook_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.growthbook.io/api/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + sso, segment, settings + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='growthbook_migration_pipeline', + destination='duckdb', + dataset_name='growthbook_migration_data', + ) + # Load the data + load_info = pipeline.run(growthbook_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from growthbook_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Settings: Manages application settings +- Experiments: Handles A/B testing and experiment configurations +- Metrics: Provides access to various metric data. + +You will then debug the GrowthBook pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with GrowthBook support. + ```shell + dlt init dlthub:growthbook_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for GrowthBook API, as specified in @growthbook_migration-docs.yaml + Start with endpoints sso and segment and skip incremental loading for now. + Place the code in growthbook_migration_pipeline.py and name the pipeline growthbook_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python growthbook_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication method for this source uses bearer tokens, which requires a valid access token to be included in API requests for authorization. + + To get the appropriate API keys, please visit the original source at https://www.growthbook.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python growthbook_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline growthbook_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset growthbook_migration_data + The duckdb destination used duckdb:/growthbook_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline growthbook_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("growthbook_migration_pipeline").dataset() + # get s table as Pandas frame + data.s.df().head() + ``` + +## Running into errors? + +It is important to note that some objects may return nulls in deeply nested fields, and there are specific permissions required for accessing certain metrics and tables. Furthermore, the API has rate limits and may return errors if requests exceed these limits. Users are also restricted to read-only operations and cannot perform write operations. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/growthbook/growthbook-docs.yaml b/growthbook/growthbook-docs.yaml new file mode 100644 index 00000000..0d7588b8 --- /dev/null +++ b/growthbook/growthbook-docs.yaml @@ -0,0 +1,465 @@ +resources: +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects + params: + limit: 10 + offset: 0 +- name: settings + endpoint: + path: /api/v1/settings + method: GET + data_selector: settings + params: {} +- name: settings + endpoint: + path: /api/v1/settings + method: GET + data_selector: settings +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: + limit: 10 + offset: 0 +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: experiments + endpoint: + path: /experiments + method: GET + data_selector: experiments + params: {} +- name: experiment_snapshot + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: settings + endpoint: + path: /api/v1/settings + method: GET + data_selector: settings + params: + limit: 10 + offset: 0 +- name: organizations + endpoint: + path: /organizations + method: GET +- name: members + endpoint: + path: /members + method: GET +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings +- name: experiment + endpoint: + path: /experiments + method: GET + data_selector: records +- name: fact_metric + endpoint: + path: /fact_metric + method: GET + data_selector: records +- name: fact_table + endpoint: + path: /fact_table + method: GET + data_selector: records +- name: fact_table_column + endpoint: + path: /fact_table_column + method: GET + data_selector: records +- name: fact_table_filter + endpoint: + path: /fact_table_filter + method: GET + data_selector: records +- name: feature + endpoint: + path: /feature + method: GET + data_selector: records +- name: feature_definition + endpoint: + path: /feature_definition + method: GET + data_selector: records +- name: feature_environment + endpoint: + path: /feature_environment + method: GET + data_selector: records +- name: feature_experiment_ref_rule + endpoint: + path: /feature_experiment_ref_rule + method: GET + data_selector: records +- name: feature_experiment_rule + endpoint: + path: /feature_experiment_rule + method: GET + data_selector: records +- name: feature_force_rule + endpoint: + path: /feature_force_rule + method: GET + data_selector: records +- name: FeatureRolloutRule + endpoint: + path: /FeatureRolloutRule + method: GET + data_selector: records +- name: FeatureRule + endpoint: + path: /FeatureRule + method: GET + data_selector: records +- name: FeatureSafeRolloutRule + endpoint: + path: /FeatureSafeRolloutRule + method: GET + data_selector: records +- name: FeatureWithRevisions + endpoint: + path: /FeatureWithRevisions + method: GET + data_selector: records +- name: saved_group + endpoint: + path: /savedGroup + method: GET + data_selector: records + params: {} +- name: schedule_rule + endpoint: + path: /scheduleRule + method: GET + data_selector: records + params: {} +- name: sdk_connection + endpoint: + path: /sdkConnection + method: GET + data_selector: records + params: {} +- name: segment + endpoint: + path: /segment + method: GET + data_selector: records + params: {} +- name: settings + endpoint: + path: /settings + method: GET + data_selector: records + params: {} +- name: visual_change + endpoint: + path: /visualChange + method: GET + data_selector: records + params: {} +- name: visual_changeset + endpoint: + path: /visualChangeset + method: GET + data_selector: records + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects + params: {} +- name: settings + endpoint: + path: /api/v1/settings + method: GET + data_selector: settings + params: {} +- name: get_settings + endpoint: + path: /settings + method: GET + data_selector: settings +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: + limit: 10 + offset: 0 +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: metrics + endpoint: + path: /metrics + method: GET + data_selector: settings +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: sdk_connections + endpoint: + path: /sdk_connections + method: GET +- name: saved_group + endpoint: + path: /settings + method: GET + data_selector: settings + params: + limit: 10 + offset: 0 +- name: organizations + endpoint: + path: /organizations + method: GET + data_selector: settings +- name: organization_members + endpoint: + path: /organizations/members + method: GET + data_selector: settings +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings +- name: settings + endpoint: + path: /api/v1/settings + method: GET + data_selector: settings +- name: experiment + endpoint: + path: /api/v1/experiments + method: GET + data_selector: records +- name: fact_metric + endpoint: + path: /fact_metrics + method: GET + data_selector: records + params: {} +- name: fact_table + endpoint: + path: /fact_tables + method: GET + data_selector: records + params: {} +- name: SavedGroup + endpoint: + path: /SavedGroup + method: GET + data_selector: records + params: {} +- name: ScheduleRule + endpoint: + path: /ScheduleRule + method: GET + data_selector: records + params: {} +- name: SdkConnection + endpoint: + path: /SdkConnection + method: GET + data_selector: records + params: {} +- name: Segment + endpoint: + path: /Segment + method: GET + data_selector: records + params: {} +- name: Settings + endpoint: + path: /Settings + method: GET + data_selector: records + params: {} +- name: VisualChange + endpoint: + path: /VisualChange + method: GET + data_selector: records + params: {} +- name: VisualChangeset + endpoint: + path: /VisualChangeset + method: GET + data_selector: records + params: {} +- name: sso + endpoint: + path: /sso + method: POST +- name: experiment_dimensions + endpoint: + path: /app/experiment_dimensions + method: GET + data_selector: dimensions + params: {} +- name: user_dimensions + endpoint: + path: /app/user_dimensions + method: GET + data_selector: dimensions + params: {} +notes: +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects may return nulls in deeply nested fields +- Requires specific permissions for accessing fact metrics and tables. +- Revenue Metrics are displayed in USD by default. You can change your display currency + under Settings → General → Metric Settings. +- Conversions within the first X hours of being put into an experiment are ignored + (default = 0). +- The metric delay can also be negative to include some conversions before a user + is put into an experiment. +- No raw user-level events or PII are ever sent to GrowthBook. +- 'GrowthBook is warehouse native: it connects to your data warehouse and queries + it to get the results of your experiments.' +- SDK should implement reconnect logic to support both client and server dropping + the connection. +- 'The API response may contain a response header: x-sse-support: enabled' +- SSO is available as part of our Enterprise plan. +- 'For GrowthBook Cloud, you will need to send your account representative the following: + CLIENT_ID, CLIENT_SECRET, EMAIL_DOMAIN, what provider you''re using, and for some + providers, the TENANT_ID.' +- SCIM is only available with an Enterprise plan and requires Single Sign-On (SSO) + to be enabled. +- Currently, GrowthBook only supports Okta and Azure AD/Microsoft Entra ID as the + identity providers. +- If self-hosting GrowthBook on a VPN or behind a firewall, allowlist Okta's IP addresses + to ensure SCIM API calls can hit GrowthBook's SCIM server. +- If self-hosting GrowthBook on a VPN or behind a firewall, allowlist Azure AD's/Entra + ID's IP addresses to ensure the SCIM API calls can hit GrowthBook's SCIM server. +- These logs are useful for auditing what users have done, and figuring out the cause + of any issues. +- Users can only run read SELECT queries in GrowthBook. +- Write operations such as INSERT, UPDATE, DELETE, etc, are not permitted from any + user-entered SQL. +- The actual values of the targeting attributes are never sent to GrowthBook and are + only stored in memory locally within the SDK. +- ID Lists are limited to 1 MB. Using multiple, large ID Lists may impact performance + as it increases the SDK payload. +- Default display currency is USD, but you can change it under Settings → General + → Metric Settings +- Metric slices are available for Enterprise customers only. +- The use of the mongo image within the docker-compose.yml is meant to quickly get + a dev or staging environment up and running. +- For production you may want to use a more scalable and stable solution (ie. AWS + DocumentDB, Google Cloud MongoDB Atlas, Azure Cosmos DB for Mongo, etc.) +errors: +- '400: Bad Request - Often due to a missing required parameter' +- '401: Unauthorized - No valid API key provided' +- '402: Request Failed - The parameters are valid, but the request failed' +- '403: Forbidden - Provided API key does not have the required access' +- '404: Not Found - Unknown API route or requested resource' +- '429: Too Many Requests - You exceeded the rate limit of 60 requests per minute. + Try again later.' +- '5XX: Server Error - Something went wrong on GrowthBook''s end (these are rare)' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Recheck API key or authentication method' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '400 Bad Request: Check your request syntax or parameters.' +- '404 Not Found: The requested resource could not be found.' +- '500 Internal Server Error: An error occurred on the server.' +- If a user is deprovisioned in your identity provider, they will be removed from + GrowthBook. +- If you use Okta and notice that some users that you expect to be in your GrowthBook + team from your identity provider are not being added in GrowthBook, double check + that those users are assigned to the GrowthBook SCIM application in your identity + provider. +- Existing users in GrowthBook will not be affected by SCIM. +auth_info: + mentioned_objects: + - bearerAuth + - basicAuth + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://api.growthbook.io/api/v1/settings + auth: + type: bearerAuth +source_metadata: null diff --git a/handwriting_ocr/handwriting-ocr-docs.md b/handwriting_ocr/handwriting-ocr-docs.md new file mode 100644 index 00000000..c81902e6 --- /dev/null +++ b/handwriting_ocr/handwriting-ocr-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Handwriting OCR data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def handwriting_ocr_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.handwritingocr.com/api/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + documents,,convert,,cursive-translator + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='handwriting_ocr_migration_pipeline', + destination='duckdb', + dataset_name='handwriting_ocr_migration_data', + ) + # Load the data + load_info = pipeline.run(handwriting_ocr_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from handwriting_ocr_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Documents: Manage and retrieve documents uploaded for handwriting recognition. +- Conversion: Convert handwriting to text through the API. +- Cursive Translator: Translate cursive handwriting into readable text. + +You will then debug the Handwriting OCR pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Handwriting OCR support. + ```shell + dlt init dlthub:handwriting_ocr_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Handwriting OCR API, as specified in @handwriting_ocr_migration-docs.yaml + Start with endpoints documents and and skip incremental loading for now. + Place the code in handwriting_ocr_migration_pipeline.py and name the pipeline handwriting_ocr_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python handwriting_ocr_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is done using an API key, which must be included in the requests to access the endpoints. + + To get the appropriate API keys, please visit the original source at https://www.handwritingocr.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python handwriting_ocr_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline handwriting_ocr_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset handwriting_ocr_migration_data + The duckdb destination used duckdb:/handwriting_ocr_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline handwriting_ocr_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("handwriting_ocr_migration_pipeline").dataset() + # get ocument table as Pandas frame + data.ocument.df().head() + ``` + +## Running into errors? + +Tokens never expire but can be revoked or replaced at any time. Multiple active tokens are not supported. All files are encrypted both in transit and at rest. Documents are automatically deleted after 7 days by default. The API has rate limits, and excessive requests may result in being throttled. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/handwriting_ocr/handwriting-ocr-docs.yaml b/handwriting_ocr/handwriting-ocr-docs.yaml new file mode 100644 index 00000000..879c554d --- /dev/null +++ b/handwriting_ocr/handwriting-ocr-docs.yaml @@ -0,0 +1,53 @@ +resources: +- name: documents + endpoint: + path: /documents + method: GET + data_selector: documents + params: + per_page: 50 + page: 1 +- name: convert_handwriting + endpoint: + path: /api/convert + method: POST + data_selector: result + params: {} +- name: handwriting_to_text_conversion + endpoint: + path: /handwriting-to-text + method: POST + data_selector: converted_text +- name: cursive_translator + endpoint: + path: /cursive-translator + method: POST + data_selector: results +- name: documents + endpoint: + path: /api/v1/documents + method: POST + data_selector: data + params: {} +notes: +- Tokens never expire but can be revoked or replaced at any time. +- Multiple active tokens are not supported. +- All files are encrypted both in transit and at rest. +- Documents are automatically deleted after 7 days by default. +- Documents are uploaded through our secure cloud dashboard or via the API. +- Accuracy of 98% in translating cursive handwriting +- Bank-grade encryption protects your documents at every step. +- We do not train our AI models on customer data. +errors: +- '401 Unauthorized: Invalid or missing API token.' +- '429 Too Many Requests: Rate limited.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '400 Bad Request: Check input format' +- '404 Not Found: Endpoint does not exist' +- '400 Bad Request: Check the structure of your request.' +- '401 Unauthorized: Check your API key or authentication.' +auth_info: + mentioned_objects: [] +client: + base_url: https://www.handwritingocr.com/api/docs +source_metadata: null diff --git a/helcim_invoice_api/helcim-invoice-api-docs.md b/helcim_invoice_api/helcim-invoice-api-docs.md new file mode 100644 index 00000000..d4b9472a --- /dev/null +++ b/helcim_invoice_api/helcim-invoice-api-docs.md @@ -0,0 +1,154 @@ +In this guide, we'll set up a complete Helcim data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def helcim_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.helcim.com/v2/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + cards,,refunds,,payments + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='helcim_migrations_pipeline', + destination='duckdb', + dataset_name='helcim_migrations_data', + ) + # Load the data + load_info = pipeline.run(helcim_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from helcim_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Cards: Manage card information. +- Refunds: Process and manage refunds. +- Payments: Handle payment processing. +- Reverses: Reverse transactions. +- Customers: Manage customer data. +- Validate Transaction: Validate transaction details. + +You will then debug the Helcim pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Helcim support. + ```shell + dlt init dlthub:helcim_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Helcim API, as specified in @helcim_migrations-docs.yaml + Start with endpoints cards and and skip incremental loading for now. + Place the code in helcim_migrations_pipeline.py and name the pipeline helcim_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python helcim_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication uses OAuth2, which requires an access token to authorize requests. + + To get the appropriate API keys, please visit the original source at https://www.helcim.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python helcim_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline helcim_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset helcim_migrations_data + The duckdb destination used duckdb:/helcim_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline helcim_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("helcim_migrations_pipeline").dataset() + # get ard table as Pandas frame + data.ard.df().head() + ``` + +## Running into errors? + +Helcim has specific limitations regarding the transmission of sensitive card data, requiring integration with HelcimPay.js for secure tokenization. Additionally, there are rate limits in place, and exceeding these limits can block further requests until they reset. It's essential to test in a developer account and follow all security guidelines to reduce PCI compliance scope. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/helcim_invoice_api/helcim-invoice-api-docs.yaml b/helcim_invoice_api/helcim-invoice-api-docs.yaml new file mode 100644 index 00000000..db91d921 --- /dev/null +++ b/helcim_invoice_api/helcim-invoice-api-docs.yaml @@ -0,0 +1,1231 @@ +resources: +- name: invoice + endpoint: + path: /reference/createinvoice#/ + method: POST + data_selector: invoice + params: {} +- name: existing_invoice + endpoint: + path: /reference/getinvoice#/ + method: GET + data_selector: invoice + params: {} +- name: multiple_invoices + endpoint: + path: /reference/getinvoices#/ + method: GET + data_selector: invoices + params: {} +- name: update_invoice + endpoint: + path: /reference/updateinvoice#/ + method: PUT + data_selector: invoice + params: {} +- name: connection_test + endpoint: + path: /connection-test + method: GET + data_selector: object +- name: transaction + endpoint: + path: /reference/getcardtransactions#/ + method: GET +- name: card_batches + endpoint: + path: /reference/getcardbatches#/ + method: GET +- name: card_terminal + endpoint: + path: /reference/cardterminals#/ + method: GET +- name: transaction + endpoint: + path: /reference/getcardtransactions#/ + method: GET +- name: card_batches + endpoint: + path: /reference/getcardbatches#/ + method: GET +- name: card_terminals + endpoint: + path: /reference/cardterminals#/ + method: GET +- name: transaction + endpoint: + path: /reference/purchase + method: POST + data_selector: transaction + params: {} +- name: preauth + endpoint: + path: /reference/preauth + method: POST + data_selector: transaction + params: {} +- name: capture + endpoint: + path: /reference/capture + method: POST + data_selector: transaction + params: {} +- name: reverse + endpoint: + path: /reference/reverse + method: POST + data_selector: transaction + params: {} +- name: refund + endpoint: + path: /reference/refund + method: POST + data_selector: transaction + params: {} +- name: verify + endpoint: + path: /reference/verify + method: POST + data_selector: transaction + params: {} +- name: get_transactions + endpoint: + path: /reference/getcardtransactions#/ + method: GET + data_selector: transactions + params: {} +- name: get_transaction + endpoint: + path: /reference/getcardtransaction#/ + method: GET + data_selector: transaction + params: {} +- name: transaction + endpoint: + path: /reference/purchase + method: POST + data_selector: transaction + params: {} +- name: preauth + endpoint: + path: /reference/preauth + method: POST + data_selector: transaction + params: {} +- name: capture + endpoint: + path: /reference/capture + method: POST + data_selector: transaction + params: {} +- name: reverse + endpoint: + path: /reference/reverse + method: POST + data_selector: transaction + params: {} +- name: refund + endpoint: + path: /reference/refund + method: POST + data_selector: transaction + params: {} +- name: verify + endpoint: + path: /reference/verify + method: POST + data_selector: transaction + params: {} +- name: get_transactions + endpoint: + path: /reference/getcardtransactions#/ + method: GET + data_selector: transactions + params: {} +- name: get_transaction + endpoint: + path: /reference/getcardtransaction#/ + method: GET + data_selector: transaction + params: {} +- name: card_batches + endpoint: + path: /reference/getcardbatches#/ + method: GET + data_selector: card_batches +- name: card_batch + endpoint: + path: /reference/getcardbatch#/ + method: GET + data_selector: card_batch +- name: settle_card_batch + endpoint: + path: /reference/settlecardbatch#/ + method: POST + data_selector: settle_card_batch +- name: card_batches + endpoint: + path: /reference/getcardbatches#/ + method: GET + data_selector: cardBatches + params: {} +- name: card_batch + endpoint: + path: /reference/getcardbatch#/ + method: GET + data_selector: cardBatch + params: {} +- name: settle_card_batch + endpoint: + path: /reference/settlecardbatch#/ + method: POST + data_selector: settleCardBatch + params: {} +- name: card_terminal + endpoint: + path: /reference/cardterminals + method: GET +- name: card_terminal + endpoint: + path: /reference/cardterminals#/ + method: GET + data_selector: card terminal + params: {} +- name: invoice + endpoint: + path: /reference/createinvoice + method: POST + data_selector: invoice + params: {} +- name: get_invoices + endpoint: + path: /reference/getinvoices + method: GET + data_selector: invoices + params: {} +- name: get_invoice + endpoint: + path: /reference/getinvoice + method: GET + data_selector: invoice + params: {} +- name: invoice + endpoint: + path: /reference/createinvoice#/ + method: POST + data_selector: invoice + params: {} +- name: get_invoices + endpoint: + path: /reference/getinvoices + method: GET + data_selector: invoices + params: {} +- name: get_invoice + endpoint: + path: /reference/getinvoice + method: GET + data_selector: invoice + params: {} +- name: invoice + endpoint: + path: /reference/createinvoice + method: POST + data_selector: invoice + params: {} +- name: get_invoice + endpoint: + path: /reference/getinvoice + method: GET + data_selector: invoice + params: {} +- name: get_invoices + endpoint: + path: /reference/getinvoices + method: GET + data_selector: invoices + params: {} +- name: invoice + endpoint: + path: /reference/createinvoice + method: POST + data_selector: invoice + params: {} +- name: get_invoice + endpoint: + path: /reference/getinvoice + method: GET + data_selector: invoice + params: {} +- name: get_invoices + endpoint: + path: /reference/getinvoices + method: GET + data_selector: invoices + params: {} +- name: customers + endpoint: + path: /reference/getcustomers#/ + method: GET + data_selector: customers +- name: customer_card + endpoint: + path: /reference/getcustomercards#/ + method: GET + data_selector: cards +- name: customer_bank + endpoint: + path: /reference/getcustomerbankaccounts#/ + method: GET + data_selector: banks +- name: pad_agreements + endpoint: + path: /reference/getpads#/ + method: GET + data_selector: pads +- name: customer + endpoint: + path: /reference/createcustomer#/ + method: POST + data_selector: customer + params: {} +- name: card + endpoint: + path: /cards + method: POST + data_selector: card + params: {} +- name: customer + endpoint: + path: /reference/createcustomer#/ + method: POST +- name: get_customer + endpoint: + path: /reference/getcustomer#/ + method: GET +- name: get_customers + endpoint: + path: /reference/getcustomers#/ + method: GET +- name: update_customer + endpoint: + path: /reference/updatecustomer#/ + method: PUT +- name: get_customer_card + endpoint: + path: /reference/getcustomercard#/ + method: GET +- name: get_customer_cards + endpoint: + path: /reference/getcustomercards#/ + method: GET +- name: delete_customer_card + endpoint: + path: /reference/deletecustomercard#/ + method: DELETE +- name: get_customer_bank_account + endpoint: + path: /reference/getcustomerbankaccount#/ + method: GET +- name: get_customer_bank_accounts + endpoint: + path: /reference/getcustomerbankaccounts#/ + method: GET +- name: create_bank_account + endpoint: + path: /reference/createbankaccount#/ + method: POST +- name: request_new_bank_account + endpoint: + path: /reference/requestnewbankaccount#/ + method: POST +- name: get_pad + endpoint: + path: /reference/getpad#/ + method: GET +- name: get_pads + endpoint: + path: /reference/getpads#/ + method: GET +- name: update_pad + endpoint: + path: /reference/updatepad#/ + method: PUT +- name: set_customer_card_default + endpoint: + path: /reference/setcustomercarddefault#/ + method: POST +- name: set_customer_bank_account_default + endpoint: + path: /reference/setcustomerbankaccountdefault#/ + method: POST +- name: bank_account + endpoint: + path: /reference/createbankaccount + method: POST + data_selector: bankAccount +- name: customer_bank_account + endpoint: + path: /reference/getcustomerbankaccount + method: GET + data_selector: bankAccount +- name: customer_bank_accounts + endpoint: + path: /reference/getcustomerbankaccounts + method: GET + data_selector: bankAccounts +- name: request_bank_account_info + endpoint: + path: /reference/requestnewbankaccount + method: POST + data_selector: message +- name: get_all_pads_for_customer + endpoint: + path: /reference/getpads#/ + method: GET + data_selector: pad + params: {} +- name: get_pad_by_id + endpoint: + path: /reference/getpad#/ + method: GET + data_selector: pad + params: {} +- name: update_pad_by_id + endpoint: + path: /reference/updatepad#/ + method: POST + data_selector: pad + params: {} +- name: customer + endpoint: + path: /customers + method: GET + data_selector: customers +- name: payment_plan + endpoint: + path: /reference/payment-plan-create + method: POST + data_selector: '' + params: {} +- name: subscription + endpoint: + path: /reference/subscription-create + method: POST + data_selector: '' + params: {} +- name: add_on + endpoint: + path: /reference/add-on-create + method: POST + data_selector: '' + params: {} +- name: bank_account + endpoint: + path: /reference/createbankaccount#/ + method: POST +- name: customer + endpoint: + path: /reference/updatecustomer#/ + method: POST +- name: payment_plan + endpoint: + path: /reference/payment-plan-collection + method: GET +- name: create_payment_plan + endpoint: + path: /reference/payment-plan-create + method: POST +- name: update_payment_plan + endpoint: + path: /reference/payment-plan-patch + method: PATCH +- name: delete_payment_plan + endpoint: + path: /reference/payment-plan-delete + method: DELETE +- name: get_payment_plan + endpoint: + path: /reference/payment-plan-single + method: GET +- name: subscription + endpoint: + path: /reference/subscriptions-collection + method: GET + data_selector: subscriptions +- name: pad_agreement + endpoint: + path: /reference/getpads#/ + method: GET + data_selector: pad + params: {} +- name: create_pad_agreement + endpoint: + path: /reference/createbankaccount#/ + method: POST + data_selector: pad + params: {} +- name: update_pad_agreement + endpoint: + path: /reference/updatepad#/ + method: PUT + data_selector: pad + params: {} +- name: get_pad_by_id + endpoint: + path: /reference/getpad#/ + method: GET + data_selector: pad + params: {} +- name: add-ons + endpoint: + path: /reference/add-ons-collection + method: GET + data_selector: add-ons + params: {} +- name: create-add-ons + endpoint: + path: /reference/add-on-create + method: POST + data_selector: add-on + params: {} +- name: patch-add-ons + endpoint: + path: /reference/add-on-patch + method: PATCH + data_selector: add-on + params: {} +- name: delete-add-on + endpoint: + path: /reference/add-on-delete + method: DELETE + data_selector: add-on + params: {} +- name: get-add-on + endpoint: + path: /reference/add-on-single + method: GET + data_selector: add-on + params: {} +- name: payment_plan + endpoint: + path: /reference/payment-plan-create + method: POST + data_selector: payment_plan + params: {} +- name: subscription + endpoint: + path: /reference/subscription-create + method: POST + data_selector: subscription + params: {} +- name: add_on + endpoint: + path: /reference/add-on-create + method: POST + data_selector: add_on + params: {} +- name: procedure + endpoint: + path: /reference/procedure-process-payment + method: POST + data_selector: procedure + params: {} +- name: Process a subscription payment + endpoint: + path: /reference/procedure-process-payment + method: POST +- name: Get subscriptions + endpoint: + path: /reference/subscription-collection + method: GET +- name: Get subscription + endpoint: + path: /reference/subscription-single + method: GET +- name: payment_plan + endpoint: + path: /reference/payment-plan-collection + method: GET + data_selector: paymentPlans +- name: create_payment_plan + endpoint: + path: /reference/payment-plan-create + method: POST +- name: patch_payment_plan + endpoint: + path: /reference/payment-plan-patch + method: PATCH +- name: delete_payment_plan + endpoint: + path: /reference/payment-plan-delete + method: DELETE +- name: get_single_payment_plan + endpoint: + path: /reference/payment-plan-single + method: GET +- name: registered_device + endpoint: + path: /reference/getdevice#/ + method: GET +- name: registered_devices + endpoint: + path: /reference/getdevices#/ + method: GET +- name: ping_registered_device + endpoint: + path: /reference/pingdevice#/ + method: POST +- name: process_purchase_transaction + endpoint: + path: /reference/startpurchase#/ + method: POST +- name: process_debit_refund_transaction + endpoint: + path: /reference/startrefund#/ + method: POST +- name: subscription + endpoint: + path: /reference/subscriptions-collection + method: GET +- name: create_subscription + endpoint: + path: /reference/subscription-create + method: POST +- name: delete_subscription + endpoint: + path: /reference/subscription-delete + method: DELETE +- name: get_subscription + endpoint: + path: /reference/subscription-single + method: GET +- name: patch_subscriptions + endpoint: + path: /reference/subscription-patch + method: PATCH +- name: add-ons + endpoint: + path: /reference/add-ons-collection + method: GET + data_selector: add-ons + params: {} +- name: create-add-ons + endpoint: + path: /reference/add-on-create + method: POST + data_selector: add-on + params: {} +- name: patch-add-ons + endpoint: + path: /reference/add-on-patch + method: PATCH + data_selector: add-on + params: {} +- name: delete-add-on + endpoint: + path: /reference/add-on-delete + method: DELETE + data_selector: add-on + params: {} +- name: get-add-on + endpoint: + path: /reference/add-on-single + method: GET + data_selector: add-on + params: {} +- name: Process a subscription payment + endpoint: + path: /reference/procedure-process-payment + method: POST +- name: Get subscriptions + endpoint: + path: /reference/subscription-single + method: GET +- name: Send a Ping Event + endpoint: + path: /reference/pingdevice#/ + method: POST + data_selector: response + params: {} +- name: get_registered_device + endpoint: + path: /reference/getdevice#/ + method: GET +- name: get_registered_devices + endpoint: + path: /reference/getdevices#/ + method: GET +- name: ping_registered_device + endpoint: + path: /reference/pingdevice#/ + method: GET +- name: process_smart_terminal_purchase_transaction + endpoint: + path: /reference/startpurchase#/ + method: POST +- name: process_smart_terminal_debit_refund_transaction + endpoint: + path: /reference/startrefund#/ + method: POST +- name: purchase_transaction + endpoint: + path: /v2/devices/{code}/payment/purchase + method: POST + data_selector: response + params: {} +- name: refund + endpoint: + path: /v2/devices/{code}/payment/refund + method: POST + data_selector: response + params: {} +- name: ACH bank payments + endpoint: + path: /reference/achwithdraw#/ + method: POST +- name: ACH batches + endpoint: + path: /reference/getmanyachbatches#/ + method: GET +- name: process_ach_withdraw + endpoint: + path: /reference/achwithdraw#/ + method: POST + data_selector: transaction + params: {} +- name: refund_ach_transaction + endpoint: + path: /reference/achrefund#/ + method: POST + data_selector: transaction + params: {} +- name: void_ach_transaction + endpoint: + path: /reference/achvoid#/ + method: POST + data_selector: transaction + params: {} +- name: cancel_pending_ach_transaction + endpoint: + path: /reference/achcancel#/ + method: POST + data_selector: transaction + params: {} +- name: retrieve_single_ach_transaction + endpoint: + path: /reference/getachtransactionbyid#/ + method: GET + data_selector: transaction + params: {} +- name: collect_all_ach_transactions + endpoint: + path: /reference/getmanyachtransactions#/ + method: GET + data_selector: transactions + params: {} +- name: Send a Ping Event + endpoint: + path: /reference/pingdevice#/ + method: POST + data_selector: response + params: {} +- name: ach_batches + endpoint: + path: /reference/getmanyachbatches#/ + method: GET + data_selector: batches + params: {} +- name: settle_ach_batch + endpoint: + path: /reference/achbatchsettle#/ + method: POST + data_selector: null + params: {} +- name: purchase_transaction + endpoint: + path: /v2/devices/{code}/payment/purchase + method: POST + data_selector: '' + params: {} +- name: debit_refund + endpoint: + path: /v2/devices/F44Y/payment/refund + method: POST + data_selector: response + params: {} +- name: ACH withdraw + endpoint: + path: /reference/achwithdraw#/ + method: POST + data_selector: transaction +- name: Refund ACH transaction + endpoint: + path: /reference/achrefund#/ + method: POST + data_selector: transaction +- name: Void ACH transaction + endpoint: + path: /reference/achvoid#/ + method: POST + data_selector: transaction +- name: Cancel pending ACH transaction + endpoint: + path: /reference/achcancel#/ + method: POST + data_selector: transaction +- name: Retrieve single ACH transaction + endpoint: + path: /reference/getachtransactionbyid#/ + method: GET + data_selector: transaction +- name: Collect all ACH transactions + endpoint: + path: /reference/getmanyachtransactions#/ + method: GET + data_selector: transactions +- name: Collect all ACH batches + endpoint: + path: /reference/getmanyachbatches#/ + method: GET + data_selector: batches +- name: Settle ACH batch + endpoint: + path: /reference/achbatchsettle#/ + method: POST + data_selector: batch +- name: HelcimPay.js + endpoint: + path: /helcimpay.js/checkout/session + method: POST + data_selector: response + params: {} +- name: process_ach_withdraw + endpoint: + path: /reference/achwithdraw#/ + method: POST +- name: refund_ach_transaction + endpoint: + path: /reference/achrefund#/ + method: POST +- name: void_ach_transaction + endpoint: + path: /reference/achvoid#/ + method: POST +- name: cancel_pending_ach_transaction + endpoint: + path: /reference/achcancel#/ + method: POST +- name: retrieve_single_ach_transaction + endpoint: + path: /reference/getachtransactionbyid#/ + method: GET +- name: collect_all_ach_transactions + endpoint: + path: /reference/getmanyachtransactions#/ + method: GET +- name: card_terminals + endpoint: + path: /reference/cardterminals#/ + method: GET +- name: checkout_session + endpoint: + path: /v2/helcim-pay/initialize + method: POST + data_selector: response + params: {} +- name: checkout + endpoint: + path: /services/start.js + method: GET + data_selector: response + params: {} +- name: checkout_session + endpoint: + path: /reference/checkout-init + method: POST +- name: helcim_pay_logo_upload + endpoint: + path: /reference/helcim-pay-logo-upload + method: POST +- name: transaction_response + endpoint: + path: /validate-transaction + method: POST + data_selector: data +- name: payments + endpoint: + path: /payments + method: POST + data_selector: payment + params: {} +- name: refunds + endpoint: + path: /refunds + method: POST + data_selector: refund + params: {} +- name: reverses + endpoint: + path: /reverses + method: POST + data_selector: reverse + params: {} +- name: logo_upload + endpoint: + path: /reference/helcim-pay-logo-upload + method: POST + data_selector: message + params: {} +- name: HelcimPay.js + endpoint: + path: /api/helcimpayjs/checkout + method: POST + data_selector: response + params: {} +- name: Collect Card Transaction + endpoint: + path: /reference/getcardtransactions#/ + method: GET +- name: card_terminals + endpoint: + path: /reference/cardterminals#/ + method: GET +- name: helcimForm + endpoint: + path: /helcimForm + method: POST + data_selector: results +- name: checkout_session + endpoint: + path: /v2/helcim-pay/initialize + method: POST + data_selector: response + params: {} +- name: payments + endpoint: + path: /payments + method: POST +- name: payment_modal + endpoint: + path: /helcim-pay/services/start.js + method: GET + data_selector: script +- name: transaction_responses + endpoint: + path: /api/transaction-responses + method: POST + data_selector: response +- name: connected_account_registration + endpoint: + path: /v2/applications/prefill + method: POST + data_selector: data +- name: helcimForm + endpoint: + path: /js/version2.js + method: GET + data_selector: script + params: {} +- name: payments + endpoint: + path: /payments + method: POST + data_selector: transaction + params: {} +- name: transaction_responses + endpoint: + path: /transaction/responses + method: POST + data_selector: response + params: {} +- name: prefilled_registration + endpoint: + path: /v2/applications/prefill + method: POST + data_selector: 'null' + params: {} +notes: +- Integrating HelcimPay.js into your website or eCommerce store is a breeze and can + significantly enhance your customers' checkout experience! +- The Helcim Smart Terminal API is a game-changer for developers looking to create + a seamless point-of-sale experience! +- The Helcim Recurring API is perfect for developers looking to simplify subscription-based + services and automate recurring payments! +- Integrating with Helcim's Invoice API is an excellent choice for developers who + want to streamline the invoicing process for their clients! +- Helcim developer test accounts are separate from Helcim production accounts. +- By default, Helcim merchants cannot send full card numbers, expiry dates, or CVV + numbers, via the API. +- Transactions processed with test credit cards on a production account and processing + terminal, will be declined by the card networks, and charges may apply. +- Card transaction declines can be simulated in a test environment through the Payment + API endpoints if enabled for full card numbers. +- In July 2023, Helcim released our V2 API and deprecated our legacy V1 API. +- Reducing your PCI compliance scope and risk is as simple as integrating with HelcimPay.js + to process online payments. +- Integrators with the Helcim API cannot send full card numbers, expiry dates, or + CVV numbers through the Payment API by default. +- The Payment API will return an error for any attempts to do so without approval. +- Helcim has implemented API rate limits to ensure the security and availability of + our services for all merchants. +- When a merchant exceeds these limits, our system will block further requests until + the limit resets. +- All requests to the Purchase, Preauth, and Verify endpoints require a cardData object + to be passed in the body. +- Payments processed through the Payment API can be linked to existing customers or + invoices. +- Helcim supports businesses that are located in Canada or the United States and offers + both CAD and USD currencies based on the location of your business. +- Idempotency keys submitted to the Payment API are cleared after 5 minutes, ensuring + you have the opportunity to attempt transactions a second time. +- Idempotency keys submitted to the Payment API are cleared after 5 minutes. +- The generation and tracking of idempotency keys used for transactions will remain + the merchants responsibility. +- Helcim's fee for this service is a percentage of the savings generated by the lower + interchange rates, which will show on your monthly merchant statement. +- Suspected duplicate transactions will have a transaction status of 'DECLINED' returned + in the transaction response object. +- Level 2 and 3 payments capture and transmit additional data for eligible cards to + achieve lower processing fees. +- Subdomain is your business DBA with '.myhelcim.com' following it. +- The province and country values for a customer object are used for tax calculation + purposes. +- To reduce PCI compliance scope, integrate with HelcimPay.js for secure tokenization. +- A unique customerCode value is used as a reference for your customer in the Helcim + system. +- Either a contactName or businessName is required when creating a customer. +- To reduce your PCI compliance scope and capture credit card details in a secure + manner, we recommend merchants integrate with HelcimPay.js. +- We require a valid `email` stored in the `billingAddress` object for the customer. +- Payment plans can have an optional one-time set up fee. +- A single subscriber can be subscribed to multiple different payment plans and can + even have multiple subscriptions to the same payment plan. +- A PAD agreement is required in order to successfully process ACH bank payments. +- An approved PAD agreement is required in order to process ACH transactions against + a customer's bank account. +- An add-on can only be applied to a subscription if it is available on the payment + plan the subscriber is being subscribed to. +- After charging a one-time single application add-on, the Helcim system will remove + the add-on from the subscription object automatically. +- Payment plans activate immediately on creation. +- Please connect with tier2support@helcim.com and we would be happy to guide you through + the process of getting a test environment up and running. +- Please let us know that you would like to integrate with the Smart Terminal API. +- Subscription objects can represent multiple subscriptions for a single subscriber. +- Payments may be approved or declined depending on the payment processing outcome. +- If you do not currently have access to a Helcim developer test account for your + Smart Terminal API integration, please review our documentation. +- API mode will apply to all Smart Terminal devices associated with your Helcim account, + causing the built-in Helcim point of sale system to no longer be accessible on these + devices. +- API mode must be enabled in Helcim account settings. +- Webhook URL must be secure and cannot contain 'Helcim'. +- Configuring your test device before enabling API Mode will allow you to set device + specific settings such as automatic receipt printing. +- New Helcim merchants may not be approved for processing. +- If you do not currently have access to a Helcim developer test account for your + Smart Terminal API integration, please review our documentation here to get started. +- The registration process for API mode is triggered on device log in. +- Only Smart Terminal devices that are associated with your Helcim business account + can be paired with your existing point of sale software. +- Webhook URL must be valid https protocol and not contain the word Helcim. +- The endpoint can be whatever you want, however it cannot contain the word Helcim + in the URL and must have valid HTTPS in order for you to save your webhook configuration. +- It's also important to disable CSRF protection for this endpoint if the framework + you use enables them by default. +- Integrate with HelcimPay.js, our premium payment gateway solution, and get access + to a range of payment options and functionality. +- HelcimPay.js allows you to embed payments into your website or application without + handling sensitive payment information. +- Cross border ACH payments are not allowed. +- Helcim Fee Saver is not compatible with digital wallets in HelcimPay.js. +- Uploaded logo must be smaller than 2MB and must be either a JPG, JPEG, or PNG file + format. +- Your HelcimPay.js Initialization request should be made from your website or applications + secure back-end server. +- The checkoutToken and secretToken returned by the HelcimPay.js initialize endpoint + are only valid for 60 minutes after being returned. +- Another important aspect of handling webhooks is to verify the signature and timestamp + when processing them. +- HelcimPay.js requires a browser to work. +- Integrate with HelcimPay.js to embed payments securely. +- The payment modal allows for various payment types and methods. +- To validate the transaction response, compare the hash returned in the response + with your generated hash. +- HelcimPay.js can only process positive transactions. +- Digital wallets are not enabled by default. +- Helcim.js greatly reduces your scope of security and PCI compliance, by establishing + a secure connection between the cardholder's web browser and the Helcim API. +- The Helcim system will create a basic customer object based on your default customer + settings and the payment details passed by the customer in the modal. +- The Helcim system will create a basic object based on your default invoice settings. +- After you click `Save` a new Helcim.js Configuration Token and Secret Key will be + generated under the Security Settings section. +- The uploaded logo must be smaller than 2MB and must be either a JPG, JPEG, or PNG + file format. +- Testing on a developer test account is recommended when testing Helcim.js combined + with the Payment API. +- Recommended Captcha Score Threshold is 0.50. +- Amount hashing is an optional security tool available when processing Purchase or + Pre-Authorize transactions through Helcim.js. +- Ensure that the invoice that is linked has a status of 'DUE' +- Ensure that the 'Allow Partial Payment' setting is enabled in your Helcim account + Settings. +- Credit card information input fields should not have an HTML field name, only an + HTML field id. +- HTML input fields for sensitive credit card information should not have an HTML + field name, only an HTML field 'id'. +- Helcim.js will intercept your form data based on the respective HTML input elements + field ID value. +- Integrating into mobile applications must utilize a WebView wrapped in a native + app. +- The hash value returned from your validateHash() function should match the hash + value returned in the transaction response from Helcim. +- Partners can earn revenue for all payments processed through their technical integration. +- You do not need to enable Test Mode in your Helcim.js Configuration. +- Connected account registrations create production Helcim accounts. +- Webhook events will only trigger for the auto generated API token. The auto-generated + token will contain read / write permissions and admin processing privileges. Any + subsequent API tokens created by the merchant will not trigger this webhook event. +- HTML input fields for sensitive credit card information should not have an HTML + field name, only an HTML field id. +- HTML input fields for sensitive credit card information should not have an HTML + field name. +- The value of the field 'amount' is not required if Helcim.js is being used to complete + a Verify transaction, as that amount is $0.00 by default. +- Include XML on Response setting must be toggled on for XML response. +- Partners benefit from transparent pricing, full access to Helcim’s developer tools, + and dedicated technical support throughout the integration process. +- Connected account registrations also include optional functionality for pre-filling + your unique Helcim registration URL with the merchants business information. +- The partner api-token is different from your partner-token or the merchant api-token. +- Webhook events will only trigger for the auto generated API token. The auto-generated + token will contain read / write permissions and admin processing privileges. +errors: +- 400 Bad Request +- 401 Unauthorized +- 403 Unauthorized +- 'Transaction Declined: DECLINE CVV2 - Do not honor due to CVV2 mismatch\failure' +- 'Transaction Declined: PICK UP CARD - Pick up card' +- 'Transaction Declined: AMOUNT ERROR - Tran Amount Error' +- 'Transaction Declined: AMT OVER SVC LMT - Amount is more than established service + limit' +- 'Transaction Declined: APPL TYPE ERROR - Call support for help with this error' +- 'Transaction Declined: CANNOT CONVERT - Check is ok, but cannot convert. Do Not + Honor' +- 'Transaction Declined: DECLINED T4 - Do Not Honor. Failed negative check, unpaid + items' +- 'Transaction Declined: DECLINED-HELP 9999 - System Error' +- 'Transaction Declined: DUP CHECK NBR - Duplicate Check Number' +- 'Transaction Declined: DECLINED - Do Not Honor' +- 'Transaction Declined: EXPIRED CARD - Expired Card' +- 'Transaction Declined: INVALID CARD - Invalid Card' +- 'Transaction Declined: INVALID CAVV - Invalid Cardholder Authentication Verification + Value' +- 'Transaction Declined: INVALID TERM ID - Invalid Terminal ID' +- 'Transaction Declined: NETWORK ERROR - General System Error' +- 'Transaction Declined: PLEASE RETRY - Please Retry/Reenter Transaction' +- 'Transaction Declined: REQ. EXCEEDS BAL. - Req. exceeds balance' +- 'Transaction Declined: SERV NOT ALLOWED - Invalid request' +- 'Transaction Declined: CALL AUTH. CENTER - Refer to Issuer' +- '400: Bad Request' +- '401: Unauthorized' +- '403: Forbidden' +- '429: Too Many Requests' +- '500: Internal Server Error' +- '522: Service Unavailable' +- '429 Too Many Requests: Wait before sending more requests' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '409 status code: Returned if the idempotency key exists but the payload sent is + different from the previous payload.' +- 'Transaction Declined: DECLINED - Suspected duplicate transaction in the last 5 + minutes.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- Customer email address on file () is invalid. +- 'Invalid request: Ensure all required fields are included' +- 'Unauthorized: Check your API key and authentication settings' +- 'Invalid bank account details: Ensure the bank account information is correct.' +- 'PAD agreement not accepted: The PAD agreement must be accepted by the customer + to process payments.' +- 'ERR_VALIDATION_FAILED: Field fails validation' +- 'ERR_UNAUTHENTICATED: Requester is unauthenticated' +- 'ERR_UNAUTHORIZED: You are not authorized to access this resource.' +- 'ERR_INVALID_REQUEST: Request is malformed' +- 'ERR_INTERNAL: An internal error has occurred' +- 'Invalid idempotency key: the request received conflicts with a previous request + accepted by the API, often caused by an idempotency key that has been assigned to + an existing successful transaction' +- '401 Unauthorized: Verify authentication credentials.' +- '404 Not Found: Subscription not found.' +- '400 Bad Request: Check the request parameters.' +- 'Transaction Declined: INCORRECT PIN' +- 'Transaction Declined: GENERIC DECLINE' +- Failed webhook event will retry based on a specified schedule. +- '202 Accepted: Request processed correctly but action not completed' +- '403 Unauthorized: Incorrect api-token or insufficient permissions' +- '404 Device Not Found: Incorrect device code' +- '409 Device Not Listening: Device not reachable' +- '500 Internal Server Error: Unknown error processing request' +- '202 Accepted: Request was formed correctly and processed' +- '404 Device Not Found: Incorrect code sent in the request' +- '409 Device Not Listening: Device is not reachable' +- '500 Internal Server Error: Unknown error encountered' +- 'DEVICE_NOT_REGISTERED: The device code entered does not exist or does not belong + to a registered Smart Terminal.' +- 'A failed webhook event is attempted based on the following schedule: Immediately, + 5 seconds, 5 minutes, 30 minutes, 2 hours, 5 hours, 10 hours.' +- '202 Accepted: Request formed correctly but not completed' +- '404 Device Not Found: Incorrect code sent' +- Unauthorized +- No access permission +- Not allowed to send full card number +- Missing required cardData +- Missing required data +- Missing idempotency key +- Invalid line items +- Invalid phone number +- '202 Accepted: Returned when a request to the Smart Terminal API was formed correctly + and processed.' +- '403 Unauthorized: Returned when the api-token sent in the header of your request + was incorrect, or does not have the valid permissions to complete the request.' +- '404 Device Not Found: Returned when the code sent in the path parameters was not + found by the API.' +- '409 Device Not Listening: Returned when the device is not reachable.' +- '500 Internal Server Error: Returned when the Smart Terminal API encountered an + unknown error.' +- Processing a partial reverse is not possible. +- Standard processing fees will apply if Fee Saver is enabled for a checkout session + with digital wallets. +- Transaction failed! Check the event status. +- Invalid hash! Check your generated hash against the Helcim hash. +- Convenience fee can only be applied when both payment methods exist +- 'CROSS_BORDER_ACH_NOT_ALLOWED: All ACH payments must be processed in the core local + currency.' +- 'PAYMENT_IN_OPEN_BATCH: Payment must be in a closed credit card batch for refund.' +- 'CORS: Attempting to send your HelcimPay.js initialize request from your front-end + or client side code.' +- 'Invalid credit card number: Ensure the card number is correct and does not contain + spaces or special characters.' +- 'Transaction declined: Check the card''s status or available funds.' +- 'Missing required fields: Ensure all required fields are included in the request.' +- 'Card not verified: When sending payments to Payment API endpoints after verifying + card details through Helcim.js in test mode' +- Transaction failed! +- Transaction aborted! +- '400 Bad Request: Validation issues present in request payload.' +- '401 Unauthorized: You are not authorized to access this resource.' +- '500 Internal Server Error: An internal error has occurred.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- 'Card not verified: Card is not verified' +- '400 Bad Request: Validation issues with the request payload.' +- Webhook event delivery failed attempts will be retried based on the specified schedule. +auth_info: + mentioned_objects: [] +client: + base_url: https://www.helcim.com/ + auth: + type: oauth2 +source_metadata: null diff --git a/hire_it_people/hire-it-people-docs.md b/hire_it_people/hire-it-people-docs.md new file mode 100644 index 00000000..f2942051 --- /dev/null +++ b/hire_it_people/hire-it-people-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Hire IT People data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def hire_it_people_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.hireitpeople.com/api/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + dba,,jobs,,users + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='hire_it_people_migrations_pipeline', + destination='duckdb', + dataset_name='hire_it_people_migrations_data', + ) + # Load the data + load_info = pipeline.run(hire_it_people_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from hire_it_people_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Job Endpoints: Access job listings and related information. +- User Endpoints: Manage user accounts and authentication. +- Database Endpoints: Interact with various databases. +- Report Endpoints: Generate and retrieve reports. +- Contact Endpoints: Manage contact information. + +You will then debug the Hire IT People pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Hire IT People support. + ```shell + dlt init dlthub:hire_it_people_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Hire IT People API, as specified in @hire_it_people_migrations-docs.yaml + Start with endpoints dba and and skip incremental loading for now. + Place the code in hire_it_people_migrations_pipeline.py and name the pipeline hire_it_people_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python hire_it_people_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The API requires an API key for authentication, which can be included in the request headers. + + To get the appropriate API keys, please visit the original source at https://www.hireitpeople.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python hire_it_people_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline hire_it_people_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset hire_it_people_migrations_data + The duckdb destination used duckdb:/hire_it_people_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline hire_it_people_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("hire_it_people_migrations_pipeline").dataset() + # get b table as Pandas frame + data.b.df().head() + ``` + +## Running into errors? + +Some API endpoints may return null values in deeply nested fields. Additionally, ensure OAuth scopes are correctly set to avoid authorization errors. The API might have rate limits, so consider throttling requests accordingly. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/hire_it_people/hire-it-people-docs.yaml b/hire_it_people/hire-it-people-docs.yaml new file mode 100644 index 00000000..69e01536 --- /dev/null +++ b/hire_it_people/hire-it-people-docs.yaml @@ -0,0 +1,2770 @@ +resources: +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: records + params: {} +- name: Client Services + endpoint: + path: /client-services + method: GET + data_selector: records + params: {} +- name: .NET Developers/Architects Resumes + endpoint: + path: /resume-database/63-net-developers-architects-resumes + method: GET +- name: Java Developers/Architects Resumes + endpoint: + path: /resume-database/64-java-developers-architects-resumes + method: GET +- name: Informatica Developers/Architects Resumes + endpoint: + path: /resume-database/65-informatica-developers-architects-resumes + method: GET +- name: Business Analyst (BA) Resumes + endpoint: + path: /resume-database/66-business-analyst-resumes + method: GET +- name: Quality Assurance (QA) Resumes + endpoint: + path: /resume-database/67-quality-assurance-qa-resumes + method: GET +- name: Network and Systems Administrators Resumes + endpoint: + path: /resume-database/68-network-and-systems-administrators-resumes + method: GET +- name: Help Desk and Support specialists Resumes + endpoint: + path: /resume-database/69-help-desk-support-resumes + method: GET +- name: Oracle Developers Resumes + endpoint: + path: /resume-database/70-oracle-developers-resumes + method: GET +- name: SAP Resumes + endpoint: + path: /resume-database/71-sap-resumes + method: GET +- name: Web Developer Resumes + endpoint: + path: /resume-database/72-web-developer-resumes + method: GET +- name: Datawarehousing, ETL, Informatica Resumes + endpoint: + path: /resume-database/73-datawarehousing-etl-informatica-resumes + method: GET +- name: Business Intelligence, Business Object Resumes + endpoint: + path: /resume-database/74-business-intelligence-business-object-resumes + method: GET +- name: MainFrame Resumes + endpoint: + path: /resume-database/75-mainframe-resumes + method: GET +- name: Network Admin Resumes + endpoint: + path: /resume-database/76-network-admin-resumes + method: GET +- name: Oracle Resumes + endpoint: + path: /resume-database/77-oracle-resumes + method: GET +- name: ORACLE DBA Resumes + endpoint: + path: /resume-database/78-oracle-dba-resumes + method: GET +- name: Other Resumes + endpoint: + path: /resume-database/79-other-resumes + method: GET +- name: Peoplesoft Resumes + endpoint: + path: /resume-database/80-peoplesoft-resumes + method: GET +- name: Project Manager Resumes + endpoint: + path: /resume-database/81-project-manager-resumes + method: GET +- name: Quality Assurance Resumes + endpoint: + path: /resume-database/82-quality-assurance-resumes + method: GET +- name: Recruiter Resumes + endpoint: + path: /resume-database/83-recruiter-resumes + method: GET +- name: SAS Resumes + endpoint: + path: /resume-database/85-sas-resumes + method: GET +- name: Sharepoint Resumes + endpoint: + path: /resume-database/86-sharepoint-resumes + method: GET +- name: SQL Developers Resumes + endpoint: + path: /resume-database/87-sql-developers-resumes + method: GET +- name: Technical Writers Resumes + endpoint: + path: /resume-database/88-technical-writers-resumes + method: GET +- name: WebSphere Resumes + endpoint: + path: /resume-database/89-websphere-resumes + method: GET +- name: Hot Resumes + endpoint: + path: /resume-database/91-hot-resumes + method: GET +- name: .NET Developers/Architects Resumes + endpoint: + path: /resume-database/63-net-developers-architects-resumes + method: GET + data_selector: resumes + params: {} +- name: Java Developers/Architects Resumes + endpoint: + path: /resume-database/64-java-developers-architects-resumes + method: GET + data_selector: resumes + params: {} +- name: Informatica Developers/Architects Resumes + endpoint: + path: /resume-database/65-informatica-developers-architects-resumes + method: GET + data_selector: resumes + params: {} +- name: Business Analyst (BA) Resumes + endpoint: + path: /resume-database/66-business-analyst-resumes + method: GET + data_selector: resumes + params: {} +- name: Quality Assurance (QA) Resumes + endpoint: + path: /resume-database/67-quality-assurance-qa-resumes + method: GET + data_selector: resumes + params: {} +- name: Network and Systems Administrators Resumes + endpoint: + path: /resume-database/68-network-and-systems-administrators-resumes + method: GET + data_selector: resumes + params: {} +- name: Help Desk and Support specialists Resumes + endpoint: + path: /resume-database/69-help-desk-support-resumes + method: GET + data_selector: resumes + params: {} +- name: Oracle Developers Resumes + endpoint: + path: /resume-database/70-oracle-developers-resumes + method: GET + data_selector: resumes + params: {} +- name: SAP Resumes + endpoint: + path: /resume-database/71-sap-resumes + method: GET + data_selector: resumes + params: {} +- name: Web Developer Resumes + endpoint: + path: /resume-database/72-web-developer-resumes + method: GET + data_selector: resumes + params: {} +- name: Datawarehousing, ETL, Informatica Resumes + endpoint: + path: /resume-database/73-datawarehousing-etl-informatica-resumes + method: GET + data_selector: resumes + params: {} +- name: Business Intelligence, Business Object Resumes + endpoint: + path: /resume-database/74-business-intelligence-business-object-resumes + method: GET + data_selector: resumes + params: {} +- name: MainFrame Resumes + endpoint: + path: /resume-database/75-mainframe-resumes + method: GET + data_selector: resumes + params: {} +- name: Network Admin Resumes + endpoint: + path: /resume-database/76-network-admin-resumes + method: GET + data_selector: resumes + params: {} +- name: Oracle Resumes + endpoint: + path: /resume-database/77-oracle-resumes + method: GET + data_selector: resumes + params: {} +- name: ORACLE DBA Resumes + endpoint: + path: /resume-database/78-oracle-dba-resumes + method: GET + data_selector: resumes + params: {} +- name: Other Resumes + endpoint: + path: /resume-database/79-other-resumes + method: GET + data_selector: resumes + params: {} +- name: Peoplesoft Resumes + endpoint: + path: /resume-database/80-peoplesoft-resumes + method: GET + data_selector: resumes + params: {} +- name: Project Manager Resumes + endpoint: + path: /resume-database/81-project-manager-resumes + method: GET + data_selector: resumes + params: {} +- name: Quality Assurance Resumes + endpoint: + path: /resume-database/82-quality-assurance-resumes + method: GET + data_selector: resumes + params: {} +- name: Recruiter Resumes + endpoint: + path: /resume-database/83-recruiter-resumes + method: GET + data_selector: resumes + params: {} +- name: SAS Resumes + endpoint: + path: /resume-database/85-sas-resumes + method: GET + data_selector: resumes + params: {} +- name: Sharepoint Resumes + endpoint: + path: /resume-database/86-sharepoint-resumes + method: GET + data_selector: resumes + params: {} +- name: SQL Developers Resumes + endpoint: + path: /resume-database/87-sql-developers-resumes + method: GET + data_selector: resumes + params: {} +- name: Technical Writers Resumes + endpoint: + path: /resume-database/88-technical-writers-resumes + method: GET + data_selector: resumes + params: {} +- name: WebSphere Resumes + endpoint: + path: /resume-database/89-websphere-resumes + method: GET + data_selector: resumes + params: {} +- name: Hot Resumes + endpoint: + path: /resume-database/91-hot-resumes + method: GET + data_selector: resumes + params: {} +- name: EB3 to EB2 Porting + endpoint: + path: /eb3-to-eb2-porting + method: GET +- name: H1B Visa Transfer + endpoint: + path: /h1b-visa-transfer + method: GET +- name: Green Card Sponsorship + endpoint: + path: /employment-based-green-card-process + method: GET +- name: TN Visa Sponsorship + endpoint: + path: /tn-visa-sponsorship + method: GET +- name: E3 Visa Sponsorship + endpoint: + path: /e3-visa-sponsorship + method: GET +- name: OPT-CPT Sponsorship + endpoint: + path: /opt-cpt-sponsorship + method: GET +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: Visa Sponsorship + endpoint: + path: /visa-sponsorship + method: GET + data_selector: records +- name: E3 Visa Process + endpoint: + path: /e3-visa-process + method: GET + data_selector: details + params: {} +- name: Supporting Documents + endpoint: + path: /supporting-documents + method: GET + data_selector: documents + params: {} +- name: Visa Application + endpoint: + path: /visa-application + method: GET + data_selector: application + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: visa_sponsorship + endpoint: + path: /visa-sponsorship + method: GET + data_selector: records +- name: h1b_process + endpoint: + path: /h1b-visa-transfer + method: GET + data_selector: records +- name: gc_process + endpoint: + path: /employment-based-green-card-process + method: GET + data_selector: records +- name: OPT-CPT Sponsorship + endpoint: + path: /opt-cpt-sponsorship + method: GET +- name: H1B Visa Transfer + endpoint: + path: /h1b-visa-transfer + method: GET +- name: Green Card Sponsorship + endpoint: + path: /employment-based-green-card-process + method: GET +- name: EB3 to EB2 Porting + endpoint: + path: /eb3-to-eb2-porting + method: GET +- name: TN Visa Sponsorship + endpoint: + path: /tn-visa-sponsorship + method: GET +- name: E3 Visa Sponsorship + endpoint: + path: /e3-visa-sponsorship + method: GET +- name: lca_posting_notice + endpoint: + path: /lca-posting-notices + method: GET + data_selector: records + params: {} +- name: LCA Posting Notice + endpoint: + path: /lca-posting-notices + method: GET +- name: electronic_lca_posting_notice + endpoint: + path: /hire-it-global-lca-posting-notices + method: GET +- name: electronic_perm_posting_notice + endpoint: + path: /electronic-perm-posting-notice + method: GET + data_selector: notices +- name: electronic_lca_posting_notice_1 + endpoint: + path: /hire-it-global-lca-posting-notices/electronic-lca-posting-notice-i-200-21355-780505 + method: GET +- name: electronic_lca_posting_notice_2 + endpoint: + path: /hire-it-global-lca-posting-notices/electronic-lca-posting-notice-i-200-20197-716637 + method: GET +- name: electronic_lca_posting_notice_3 + endpoint: + path: /hire-it-global-lca-posting-notices/electronic-lca-posting-notice-i-200-21286-643421 + method: GET +- name: electronic_lca_posting_notice_4 + endpoint: + path: /hire-it-global-lca-posting-notices/electronic-lca-posting-notice-i-200-21280-630939 + method: GET +- name: electronic_lca_posting_notice_5 + endpoint: + path: /hire-it-global-lca-posting-notices/electronic-lca-posting-notice-i-200-21273-618156 + method: GET +- name: electronic_lca_posting_notice_6 + endpoint: + path: /hire-it-global-lca-posting-notices/electronic-lca-posting-notice-i-200-21172-416198 + method: GET +- name: electronic_lca_posting_notice_7 + endpoint: + path: /hire-it-global-lca-posting-notices/electronic-lca-posting-notice-i-200-21264-597962 + method: GET +- name: electronic_lca_posting_notice_8 + endpoint: + path: /hire-it-global-lca-posting-notices/electronic-lca-posting-notice-i-200-21159-379851-3 + method: GET +- name: electronic_lca_posting_notice_9 + endpoint: + path: /hire-it-global-lca-posting-notices/electronic-lca-posting-notice-i-200-21159-378491-3 + method: GET +- name: electronic_lca_posting_notice_10 + endpoint: + path: /hire-it-global-lca-posting-notices/electronic-lca-posting-notice-i-200-21162-391919-1 + method: GET +- name: E3 Visa Process + endpoint: + path: /e3-visa-process + method: GET + data_selector: details + params: {} +- name: electronic_perm_posting_notice + endpoint: + path: /electronic-perm-posting-notice + method: GET + data_selector: notices + params: {} +- name: EB3 to EB2 Porting + endpoint: + path: /eb3-to-eb2-porting + method: GET + data_selector: '' + params: {} +- name: E3 Visa Process + endpoint: + path: /e3-visa-process + method: GET + data_selector: details + params: {} +- name: Supporting Documents + endpoint: + path: /supporting-documents + method: GET + data_selector: documents + params: {} +- name: Period of Stay + endpoint: + path: /period-of-stay + method: GET + data_selector: stay_info + params: {} +- name: Spouses and Family of E-3 Visa Holders + endpoint: + path: /spouses-family + method: GET + data_selector: family_info + params: {} +- name: resume + endpoint: + path: /resume-database + method: GET + data_selector: resumes + params: {} +- name: resumes + endpoint: + path: /resume-database + method: GET + data_selector: item +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: .NET Developers/Architects Resumes + endpoint: + path: /resume-database/63-net-developers-architects-resumes + method: GET +- name: Java Developers/Architects Resumes + endpoint: + path: /resume-database/64-java-developers-architects-resumes + method: GET +- name: Informatica Developers/Architects Resumes + endpoint: + path: /resume-database/65-informatica-developers-architects-resumes + method: GET +- name: Business Analyst (BA) Resumes + endpoint: + path: /resume-database/66-business-analyst-resumes + method: GET +- name: Quality Assurance (QA) Resumes + endpoint: + path: /resume-database/67-quality-assurance-qa-resumes + method: GET +- name: Network and Systems Administrators Resumes + endpoint: + path: /resume-database/68-network-and-systems-administrators-resumes + method: GET +- name: Help Desk and Support specialists Resumes + endpoint: + path: /resume-database/69-help-desk-support-resumes + method: GET +- name: Oracle Developers Resumes + endpoint: + path: /resume-database/70-oracle-developers-resumes + method: GET +- name: SAP Resumes + endpoint: + path: /resume-database/71-sap-resumes + method: GET +- name: Web Developer Resumes + endpoint: + path: /resume-database/72-web-developer-resumes + method: GET +- name: Datawarehousing, ETL, Informatica Resumes + endpoint: + path: /resume-database/73-datawarehousing-etl-informatica-resumes + method: GET +- name: Business Intelligence, Business Object Resumes + endpoint: + path: /resume-database/74-business-intelligence-business-object-resumes + method: GET +- name: MainFrame Resumes + endpoint: + path: /resume-database/75-mainframe-resumes + method: GET +- name: Network Admin Resumes + endpoint: + path: /resume-database/76-network-admin-resumes + method: GET +- name: Oracle Resumes + endpoint: + path: /resume-database/77-oracle-resumes + method: GET +- name: ORACLE DBA Resumes + endpoint: + path: /resume-database/78-oracle-dba-resumes + method: GET +- name: Other Resumes + endpoint: + path: /resume-database/79-other-resumes + method: GET +- name: Peoplesoft Resumes + endpoint: + path: /resume-database/80-peoplesoft-resumes + method: GET +- name: Project Manager Resumes + endpoint: + path: /resume-database/81-project-manager-resumes + method: GET +- name: Quality Assurance Resumes + endpoint: + path: /resume-database/82-quality-assurance-resumes + method: GET +- name: Recruiter Resumes + endpoint: + path: /resume-database/83-recruiter-resumes + method: GET +- name: SAS Resumes + endpoint: + path: /resume-database/85-sas-resumes + method: GET +- name: Sharepoint Resumes + endpoint: + path: /resume-database/86-sharepoint-resumes + method: GET +- name: SQL Developers Resumes + endpoint: + path: /resume-database/87-sql-developers-resumes + method: GET +- name: Technical Writers Resumes + endpoint: + path: /resume-database/88-technical-writers-resumes + method: GET +- name: WebSphere Resumes + endpoint: + path: /resume-database/89-websphere-resumes + method: GET +- name: Hot Resumes + endpoint: + path: /resume-database/91-hot-resumes + method: GET +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: Contact + endpoint: + path: /contacts + method: GET + data_selector: records + params: {} +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: records + params: {} +- name: Sr.CRM Developer + endpoint: + path: /resume-database/63-net-developers-architects-resumes/628290-sr-crm-developer-resume-saint-louis-mo + method: GET + data_selector: Short Description + params: {} +- name: Senior QA Analyst/Mobile Tester + endpoint: + path: /resume-database/82-quality-assurance-resumes/628289-senior-qa-analyst-mobile-tester-resume-miami-lakes-fl-6 + method: GET + data_selector: Short Description + params: {} +- name: .Net Developer + endpoint: + path: /resume-database/63-net-developers-architects-resumes/628288-net-developer-resume-westborough-ma-6 + method: GET + data_selector: Short Description + params: {} +- name: SAS Programmer/Analyst + endpoint: + path: /resume-database/85-sas-resumes/628287-sas-programmer-analyst-resume-houston-tx-2 + method: GET + data_selector: Short Description + params: {} +- name: Sr.UI Developer + endpoint: + path: /resume-database/72-web-developer-resumes/628286-sr-ui-developer-resume-san-jose-ca-33 + method: GET + data_selector: Short Description + params: {} +- name: Application support + endpoint: + path: /resume-database/68-network-and-systems-administrators-resumes/628285-application-support-resume-va-3 + method: GET + data_selector: Short Description + params: {} +- name: Network Engineer + endpoint: + path: /resume-database/76-network-admin-resumes/628284-network-engineer-resume-new-york-ny-34 + method: GET + data_selector: Short Description + params: {} +- name: SQL Server BI Developer + endpoint: + path: /resume-database/87-sql-developers-resumes/628283-sql-server-bi-developer-resume-bridgeton-nj + method: GET + data_selector: Short Description + params: {} +- name: INFORMATICA ARCHITECT + endpoint: + path: /resume-database/74-business-intelligence-business-object-resumes/628282-informatica-architect-resume-cincinnati-oh-2 + method: GET + data_selector: Short Description + params: {} +- name: IOS Developer + endpoint: + path: /resume-database/64-java-developers-architects-resumes/628281-ios-developer-resume-colorado-springs-co-2 + method: GET + data_selector: Short Description + params: {} +- name: UNIX-Systems Administrator + endpoint: + path: /resume-database/76-network-admin-resumes/628280-unix-systems-administrator-resume-va + method: GET + data_selector: Short Description + params: {} +- name: Team Technical Lead + endpoint: + path: /resume-database/73-datawarehousing-etl-informatica-resumes/628279-team-technical-lead-cincinnati-oh + method: GET + data_selector: Short Description + params: {} +- name: Project Technical Lead + endpoint: + path: /resume-database/73-datawarehousing-etl-informatica-resumes/628278-project-technical-lead-resume-cincinnati-oh + method: GET + data_selector: Short Description + params: {} +- name: Team Technical Lead + endpoint: + path: /resume-database/65-informatica-developers-architects-resumes/628277-team-technical-lead-resume-4 + method: GET + data_selector: Short Description + params: {} +- name: J2EE Developer + endpoint: + path: /resume-database/64-java-developers-architects-resumes/628276-j2ee-developer-resume-oakland-ca-2 + method: GET + data_selector: Short Description + params: {} +- name: J2EE Developer + endpoint: + path: /resume-database/64-java-developers-architects-resumes/628275-j2ee-developer-resume-oakland-ca-1 + method: GET + data_selector: Short Description + params: {} +- name: Java Developer + endpoint: + path: /resume-database/64-java-developers-architects-resumes/628274-java-developer-resume-dallas-tx-206 + method: GET + data_selector: Short Description + params: {} +- name: Teradata DBA + endpoint: + path: /resume-database/78-oracle-dba-resumes/628273-teradata-dba-resume-hoffman-estates-il-4 + method: GET + data_selector: Short Description + params: {} +- name: Teradata DBA + endpoint: + path: /resume-database/70-oracle-developers-resumes/628272-teradata-dba-resume-hoffman-estates-il-2 + method: GET + data_selector: Short Description + params: {} +- name: Teradata DBA + endpoint: + path: /resume-database/78-oracle-dba-resumes/628271-teradata-dba-resume-hoffman-estates-il-2 + method: GET + data_selector: Short Description + params: {} +- name: .Net Developer + endpoint: + path: /resume-database/63-net-developers-architects-resumes/628270-net-developer-resume-westborough-ma-6 + method: GET + data_selector: Short Description + params: {} +- name: .Net Developer + endpoint: + path: /resume-database/63-net-developers-architects-resumes/628269-net-developer-resume-fremont-ca-12 + method: GET + data_selector: Short Description + params: {} +- name: .Net Developer + endpoint: + path: /resume-database/63-net-developers-architects-resumes/628268-net-developer-resume-westborough-ma-4 + method: GET + data_selector: Short Description + params: {} +- name: Sr Java Developer + endpoint: + path: /resume-database/64-java-developers-architects-resumes/628267-sr-java-developer-resume-chicago-il-150 + method: GET + data_selector: Short Description + params: {} +- name: Java/J2EE developer + endpoint: + path: /resume-database/64-java-developers-architects-resumes/628266-java-j2ee-developer-resume-kansas-city-ks-3 + method: GET + data_selector: Short Description + params: {} +- name: Sr. Java Developer + endpoint: + path: /resume-database/64-java-developers-architects-resumes/628265-sr-java-developer-resume-kansas-city-ks-1 + method: GET + data_selector: Short Description + params: {} +- name: Network Support Engineer + endpoint: + path: /resume-database/76-network-admin-resumes/628264-network-support-engineer-resume-bridgewater-nj-2 + method: GET + data_selector: Short Description + params: {} +- name: Network Support Engineer + endpoint: + path: /resume-database/68-network-and-systems-administrators-resumes/628263-network-support-engineer-resume-bridgewater-nj-1 + method: GET + data_selector: Short Description + params: {} +- name: Network Support Engineer + endpoint: + path: /resume-database/68-network-and-systems-administrators-resumes/628262-network-support-engineer-resume-bridgewater-nj + method: GET + data_selector: Short Description + params: {} +- name: resumes + endpoint: + path: /resume-database + method: GET + data_selector: item +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: .NET Technologies + endpoint: + path: /resume-database/.net-technologies + method: GET + data_selector: technologies + params: {} +- name: Languages + endpoint: + path: /resume-database/languages + method: GET + data_selector: languages + params: {} +- name: IDE + endpoint: + path: /resume-database/ide + method: GET + data_selector: ide + params: {} +- name: UML + endpoint: + path: /resume-database/uml + method: GET + data_selector: uml + params: {} +- name: Scripting and Markup + endpoint: + path: /resume-database/scripting-and-markup + method: GET + data_selector: scripting_and_markup + params: {} +- name: Databases + endpoint: + path: /resume-database/databases + method: GET + data_selector: databases + params: {} +- name: Operating Systems + endpoint: + path: /resume-database/operating-systems + method: GET + data_selector: operating_systems + params: {} +- name: Reporting Tools + endpoint: + path: /resume-database/reporting-tools + method: GET + data_selector: reporting_tools + params: {} +- name: workflow + endpoint: + path: /services/data/vXX.X/sobjects/Workflow + method: GET + data_selector: records + params: {} +- name: resume + endpoint: + path: /resume-database/628255-senior-net-developer-resume-jersey-city-nj-9 + method: GET + data_selector: resume_data + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: forms +- name: job_seekers + endpoint: + path: /jobs + method: GET + data_selector: jobs +- name: technical_skills + endpoint: + path: /technical/skills + method: GET + data_selector: skills + params: {} +- name: professional_experience + endpoint: + path: /professional/experience + method: GET + data_selector: experience + params: {} +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: records + params: {} +- name: Client Services + endpoint: + path: /client-services + method: GET + data_selector: records + params: {} +- name: Visa Sponsorship + endpoint: + path: /visa-sponsorship + method: GET + data_selector: records + params: {} +- name: confidential_1 + endpoint: + path: /services/data/vXX.X/sobjects/Confidential1 + method: GET + data_selector: records + params: {} +- name: confidential_2 + endpoint: + path: /services/data/vXX.X/sobjects/Confidential2 + method: GET + data_selector: records + params: {} +- name: confidential_3 + endpoint: + path: /services/data/vXX.X/sobjects/Confidential3 + method: GET + data_selector: records + params: {} +- name: confidential_4 + endpoint: + path: /services/data/vXX.X/sobjects/Confidential4 + method: GET + data_selector: records + params: {} +- name: confidential_5 + endpoint: + path: /services/data/vXX.X/sobjects/Confidential5 + method: GET + data_selector: records + params: {} +- name: Oracle SCM Modules + endpoint: + path: /resume-database + method: GET + data_selector: records + params: {} +- name: professional_experience + endpoint: + path: /resume/professional_experience + method: GET + data_selector: experiences + params: {} +- name: technical_skills + endpoint: + path: /resume/technical_skills + method: GET + data_selector: skills + params: {} +- name: summary + endpoint: + path: /resume/summary + method: GET + data_selector: summary + params: {} +- name: ios_developer + endpoint: + path: /api/ios_developer + method: GET + data_selector: records +- name: java_developer + endpoint: + path: /api/java_developer + method: GET + data_selector: records +- name: build_and_release_management + endpoint: + path: /resume-database/hire + method: GET + data_selector: results +- name: build_release_engineer + endpoint: + path: /resume-database/hire?title=build%2Frelease+engineer+resume+&url=https%3A%2F%2Fwww.hireitpeople.com%2Fresume-database%2F68-network-and-systems-administrators-resumes%2F628101-build-release-engineer-resume-ny-4 + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: ETL_Process + endpoint: + path: /services/data/vXX.X/sobjects/ETL_Process + method: GET + data_selector: records +- name: Data_Warehouse + endpoint: + path: /services/data/vXX.X/sobjects/Data_Warehouse + method: GET + data_selector: records +- name: Teradata Database + endpoint: + path: /databases + method: GET + data_selector: databases +- name: Informatica_Mappings + endpoint: + path: /api/mappings + method: GET + data_selector: records + params: {} +- name: data_extraction + endpoint: + path: /services/data/extract + method: POST + data_selector: data + params: {} +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET +- name: Jobs + endpoint: + path: /jobs + method: GET +- name: Resume Database + endpoint: + path: /resume-database + method: GET +- name: Contact + endpoint: + path: /contacts + method: GET +- name: BPEL Process + endpoint: + path: /services/BPEL + method: POST + data_selector: records +- name: SOAP Services + endpoint: + path: /services/SOAP + method: GET + data_selector: records +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: Contact Support + endpoint: + path: /contacts + method: GET + data_selector: records + params: {} +- name: Test Lead + endpoint: + path: /test_lead_resume + method: GET + data_selector: resume_data +- name: SAP BW + endpoint: + path: /sap/bw/endpoint + method: GET + data_selector: records + params: {} +- name: SAP HANA + endpoint: + path: /sap/hana/endpoint + method: GET + data_selector: records + params: {} +- name: mobile_application_testing + endpoint: + path: /resume-database/hire + method: GET + data_selector: records +- name: SAP HANA + endpoint: + path: /saphana + method: GET + data_selector: records + params: {} +- name: SAP Basis + endpoint: + path: /sapbasis + method: GET + data_selector: records + params: {} +- name: Quality Center + endpoint: + path: /services/data/vXX.X/sobjects/QualityCenter + method: GET + data_selector: records + params: {} +- name: ALM + endpoint: + path: /services/data/vXX.X/sobjects/ALM + method: GET + data_selector: records + params: {} +- name: SAPBW + endpoint: + path: /services/data/vXX.X/sobjects/SAPBW + method: GET + data_selector: records + params: {} +- name: Quality Center + endpoint: + path: /services/data/vXX.X/sobjects/QualityCenter + method: GET + data_selector: records +- name: HP ALM + endpoint: + path: /services/data/vXX.X/sobjects/HP_ALM + method: GET + data_selector: records +- name: Supply Chain Modules + endpoint: + path: /services/data/vXX.X/sobjects/SupplyChainModules + method: GET + data_selector: records +- name: Financials Modules + endpoint: + path: /services/data/vXX.X/sobjects/FinancialsModules + method: GET + data_selector: records +- name: report + endpoint: + path: /report + method: GET + data_selector: records +- name: universe + endpoint: + path: /universe + method: GET + data_selector: records +- name: Order Management + endpoint: + path: /services/data/vXX.X/sobjects/OrderManagement + method: GET + data_selector: records +- name: Inventory + endpoint: + path: /services/data/vXX.X/sobjects/Inventory + method: GET + data_selector: records +- name: Purchase Order + endpoint: + path: /services/data/vXX.X/sobjects/PurchaseOrder + method: GET + data_selector: records +- name: Bill of Materials + endpoint: + path: /services/data/vXX.X/sobjects/BillOfMaterials + method: GET + data_selector: records +- name: system_administration + endpoint: + path: /system_administration + method: GET + data_selector: records + params: {} +- name: application_support + endpoint: + path: /application_support + method: GET + data_selector: records + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: job_seekers + endpoint: + path: /jobs + method: GET + data_selector: records + params: {} +- name: application_support + endpoint: + path: /application/support + method: GET + data_selector: records + params: {} +- name: build_and_release_management + endpoint: + path: /api/build_and_release_management + method: GET + data_selector: records + params: {} +- name: configuration_management + endpoint: + path: /api/configuration_management + method: GET + data_selector: records + params: {} +- name: build_and_release_management + endpoint: + path: /resume-database/hire?title=scm+analyst+and+release+engineer+resume+&url=https%3A%2F%2Fwww.hireitpeople.com%2Fresume-database%2F68-network-and-systems-administrators-resumes%2F628248-scm-analyst-and-release-engineer-resume-bentonville-ar-1 + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: forms +- name: contact + endpoint: + path: /contacts + method: GET + data_selector: contact_info +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: ETL_Consultant + endpoint: + path: /resume-database/hire?title=etl+consultant+resume+&url=https%3A%2F%2Fwww.hireitpeople.com%2Fresume-database%2F73-datawarehousing-etl-informatica-resumes%2F627999-etl-consultant-resume-dallas-tx + method: GET + data_selector: resume + params: {} +- name: ETL Process + endpoint: + path: /etl/process + method: POST + data_selector: processes + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: records + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: dashboards + endpoint: + path: /api/3.10/sites/{siteId}/dashboards + method: GET + data_selector: dashboards + params: {} +- name: reports + endpoint: + path: /api/3.10/sites/{siteId}/reports + method: GET + data_selector: reports + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET +- name: contact + endpoint: + path: /contacts + method: GET +- name: job_seekers + endpoint: + path: /jobs + method: GET +- name: Cognos Report + endpoint: + path: /resume-database + method: GET + data_selector: reports + params: {} +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET +- name: Browse Jobs + endpoint: + path: /jobs + method: GET +- name: Upload Resume + endpoint: + path: /upload-resume + method: GET +- name: Employee Benefits + endpoint: + path: /employee-benefits + method: GET +- name: Resume Marketing + endpoint: + path: /resume-marketing + method: GET +- name: US Citizens/Green Cards + endpoint: + path: /us-citizens-green-cards-employment + method: GET +- name: Visa Sponsorship + endpoint: + path: /visa-sponsorship + method: GET +- name: resume + endpoint: + path: /resume-database + method: GET + data_selector: records +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET +- name: Job Seekers + endpoint: + path: /jobs + method: GET +- name: database + endpoint: + path: /databases + method: GET + data_selector: databases +- name: tables + endpoint: + path: /tables + method: GET + data_selector: tables +- name: database_objects + endpoint: + path: /services/data/vXX.X/sobjects/DatabaseObject + method: GET + data_selector: records + params: {} +- name: sql_loader + endpoint: + path: /services/data/vXX.X/sobjects/SQLLoader + method: GET + data_selector: records + params: {} +- name: SOA Services + endpoint: + path: /services/soa + method: GET + data_selector: services + params: {} +- name: BPEL Processes + endpoint: + path: /services/bpel + method: GET + data_selector: processes + params: {} +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: forms + params: {} +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: jobs + params: {} +- name: SOAP Services + endpoint: + path: /services/soap + method: POST + data_selector: response + params: {} +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: forms + params: {} +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: job_listings + params: {} +- name: BPEL Process + endpoint: + path: /bpel/process + method: POST + data_selector: process + params: {} +- name: Web Service + endpoint: + path: /web/service + method: GET + data_selector: service + params: {} +- name: application_support + endpoint: + path: /resume/application_support + method: GET + data_selector: records +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: records +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET +- name: contact + endpoint: + path: /contacts + method: GET +- name: jobs + endpoint: + path: /jobs + method: GET +- name: resume_database + endpoint: + path: /resume-database + method: GET +- name: database + endpoint: + path: /databases + method: GET + data_selector: databases +- name: resumes + endpoint: + path: /resume-database + method: GET + data_selector: resumes + params: {} +- name: resumes + endpoint: + path: /resume-database + method: GET + data_selector: records + params: {} +- name: database + endpoint: + path: /services/data/vXX.X/sobjects/Database + method: GET + data_selector: records + params: {} +- name: SAPBW + endpoint: + path: /services/data/SAPBW + method: GET + data_selector: records +- name: SAPHANA + endpoint: + path: /services/data/SAPHANA + method: GET + data_selector: records +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: jobs + endpoint: + path: /jobs + method: GET + data_selector: records +- name: resume_database + endpoint: + path: /resume-database + method: GET + data_selector: records +- name: visa_sponsorship + endpoint: + path: /visa-sponsorship + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: resumes + endpoint: + path: /resume-database + method: GET +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: records +- name: Teradata DBA + endpoint: + path: /dba + method: GET + data_selector: records + params: {} +- name: Teradata DBA + endpoint: + path: /services/data/vXX.X/sobjects/TeradataDBA + method: GET + data_selector: records + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: job_seekers + endpoint: + path: /jobs + method: GET + data_selector: records + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: contact_support + endpoint: + path: /contacts + method: GET + data_selector: records +- name: job_seekers + endpoint: + path: /jobs + method: GET + data_selector: records +- name: BPEL Process + endpoint: + path: /services/bpel + method: POST + data_selector: records +- name: ESB Services + endpoint: + path: /services/esb + method: GET + data_selector: records +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: browse_jobs + endpoint: + path: /jobs + method: GET + data_selector: records +- name: upload_resume + endpoint: + path: /upload-resume + method: POST + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: ETL Developer + endpoint: + path: /resume-database/hire?title=etl+consultant+resume+&url=https%3A%2F%2Fwww.hireitpeople.com%2Fresume-database%2F73-datawarehousing-etl-informatica-resumes%2F627999-etl-consultant-resume-dallas-tx + method: GET +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: Resume Database + endpoint: + path: /resume-database + method: GET + data_selector: records +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: job_seekers + endpoint: + path: /jobs + method: GET + data_selector: records +- name: ETL Processes + endpoint: + path: /etl/processes + method: GET + data_selector: records +- name: dashboard + endpoint: + path: /api/v1.0/dashboards + method: GET + data_selector: dashboards + params: {} +- name: reports + endpoint: + path: /api/v1.0/reports + method: GET + data_selector: reports + params: {} +- name: General Ledger + endpoint: + path: /api/general_ledger + method: GET + data_selector: records +- name: Accounts Payable + endpoint: + path: /api/accounts_payable + method: GET + data_selector: records +- name: Accounts Receivable + endpoint: + path: /api/accounts_receivable + method: GET + data_selector: records +- name: Billing + endpoint: + path: /api/billing + method: GET + data_selector: records +- name: ssrs_report + endpoint: + path: /ssrs/report + method: GET + data_selector: reports + params: {} +- name: Peoplesoft Application + endpoint: + path: /services/data/vXX.X/sobjects/PeoplesoftApplication + method: GET + data_selector: records +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: forms +- name: job_seekers + endpoint: + path: /jobs + method: GET + data_selector: jobs +- name: Peoplesoft Applications + endpoint: + path: /peoplesoft/applications + method: GET + data_selector: applications +- name: report + endpoint: + path: /report + method: GET + data_selector: reports + params: {} +- name: model + endpoint: + path: /model + method: GET + data_selector: models + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: job_seekers + endpoint: + path: /jobs + method: GET + data_selector: records +- name: Data management specialist Resume Rochester, MN + endpoint: + path: /resume-database/75-mainframe-resumes/623773-data-management-specialist-resume-rochester-mn-1 + method: GET + data_selector: summary + params: {} +- name: Sr. EAI Middleware Developer Resume NC + endpoint: + path: /resume-database/75-mainframe-resumes/622751-sr-eai-middleware-developer-resume-nc + method: GET + data_selector: summary + params: {} +- name: Mainframe Developer Resume San Jose, CA + endpoint: + path: /resume-database/75-mainframe-resumes/622610-mainframe-developer-resume-san-jose-ca + method: GET + data_selector: summary + params: {} +- name: Mainframe Developer Resume Boston, MA + endpoint: + path: /resume-database/75-mainframe-resumes/619999-mainframe-developer-resume-boston-ma-4 + method: GET + data_selector: summary + params: {} +- name: Mainframe Developer Resume Minneapolis + endpoint: + path: /resume-database/75-mainframe-resumes/619915-mainframe-developer-resume-minneapolis + method: GET + data_selector: summary + params: {} +- name: Sr Mainframe Developer Resume East Chicago, Indiana + endpoint: + path: /resume-database/75-mainframe-resumes/613470-sr-mainframe-developer-resume-east-chicago-indiana + method: GET + data_selector: summary + params: {} +- name: Senior Programmer Analyst Resume Colorado Springs + endpoint: + path: /resume-database/75-mainframe-resumes/613357-senior-programmer-analyst-resume-colorado-springs-4 + method: GET + data_selector: summary + params: {} +- name: Mainframe developer Resume IL + endpoint: + path: /resume-database/75-mainframe-resumes/613312-mainframe-developer-resume-il-9 + method: GET + data_selector: summary + params: {} +- name: Mainframe developer Resume IL + endpoint: + path: /resume-database/75-mainframe-resumes/613311-mainframe-developer-resume-il-8 + method: GET + data_selector: summary + params: {} +- name: Mainframe Consultant Resume + endpoint: + path: /resume-database/75-mainframe-resumes/613310-mainframe-consultant-resume-27 + method: GET + data_selector: summary + params: {} +- name: Senior QA Analyst/Mobile Tester Resume + endpoint: + path: /resume-database/82-quality-assurance-resumes/628289-senior-qa-analyst-mobile-tester-resume-miami-lakes-fl-6 + method: GET +- name: Test Lead Resume + endpoint: + path: /resume-database/82-quality-assurance-resumes/628250-test-lead-resume-plano-tx-12 + method: GET +- name: QA Analyst Resume + endpoint: + path: /resume-database/82-quality-assurance-resumes/628202-qa-analyst-resume-san-francisco-ca-46 + method: GET +- name: Mobile Application tester Resume + endpoint: + path: /resume-database/82-quality-assurance-resumes/628193-mobile-application-tester-resume-plano-tx + method: GET +- name: QC/ALM Administrator Resume + endpoint: + path: /resume-database/82-quality-assurance-resumes/628140-qc-alm-administrator-resume-issaquah-wa + method: GET +- name: Oracle SCM Tester Resume + endpoint: + path: /resume-database/82-quality-assurance-resumes/628112-oracle-scm-tester-resume-santa-clarita-ca-2 + method: GET +- name: Software Quality Assurance Resume + endpoint: + path: /resume-database/82-quality-assurance-resumes/628110-software-quality-assurance-resume-dallas-tx-1 + method: GET +- name: QA Analyst Resume + endpoint: + path: /resume-database/82-quality-assurance-resumes/628038-qa-analyst-resume-gaithersburg-md-3 + method: GET +- name: Senior Quality Analyst Resume + endpoint: + path: /resume-database/82-quality-assurance-resumes/628031-senior-quality-analyst-resume-minneapolis-mn-2 + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Web Services Testing + endpoint: + path: /services/data/v1.0/web_services_testing + method: GET + data_selector: records + params: {} +- name: Automation Testing + endpoint: + path: /services/data/v1.0/automation_testing + method: GET + data_selector: records + params: {} +- name: qc_project + endpoint: + path: /services/data/vXX.X/sobjects/QCProject + method: GET + data_selector: records + params: {} +- name: Network Engineer Resumes + endpoint: + path: /resume-database/76-network-admin-resumes + method: GET + data_selector: records +- name: UNIX-Systems Administrator Resumes + endpoint: + path: /resume-database/76-network-admin-resumes + method: GET + data_selector: records +- name: Network Support Engineer Resumes + endpoint: + path: /resume-database/76-network-admin-resumes + method: GET + data_selector: records +- name: Application support Resumes + endpoint: + path: /resume-database/76-network-admin-resumes + method: GET + data_selector: records +- name: SCM Analyst and Release Engineer Resumes + endpoint: + path: /resume-database/76-network-admin-resumes + method: GET + data_selector: records +- name: Storage Administrator Resumes + endpoint: + path: /resume-database/76-network-admin-resumes + method: GET + data_selector: records +- name: Order Management + endpoint: + path: /services/data/vXX.X/sobjects/OrderManagement + method: GET + data_selector: records + params: {} +- name: Inventory + endpoint: + path: /services/data/vXX.X/sobjects/Inventory + method: GET + data_selector: records + params: {} +- name: Purchase Order + endpoint: + path: /services/data/vXX.X/sobjects/PurchaseOrder + method: GET + data_selector: records + params: {} +- name: Bill of Materials + endpoint: + path: /services/data/vXX.X/sobjects/BillOfMaterials + method: GET + data_selector: records + params: {} +- name: Accounts Payable + endpoint: + path: /services/data/vXX.X/sobjects/AccountsPayable + method: GET + data_selector: records + params: {} +- name: Accounts Receivable + endpoint: + path: /services/data/vXX.X/sobjects/AccountsReceivable + method: GET + data_selector: records + params: {} +- name: General Ledger + endpoint: + path: /services/data/vXX.X/sobjects/GeneralLedger + method: GET + data_selector: records + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: job_seekers + endpoint: + path: /jobs + method: GET + data_selector: records +- name: visa_sponsorship + endpoint: + path: /visa-sponsorship + method: GET + data_selector: records +- name: resume_database + endpoint: + path: /resume-database + method: GET + data_selector: records +- name: system_administration + endpoint: + path: /system/administration + method: GET + data_selector: records +- name: financial_reporting + endpoint: + path: /financial/reporting + method: GET + data_selector: records +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET +- name: job_seekers + endpoint: + path: /jobs + method: GET +- name: UNIX System Administration + endpoint: + path: /application/support/unix_system_administration + method: GET + data_selector: records +- name: Financial Reporting Applications + endpoint: + path: /application/support/financial_reporting + method: GET + data_selector: records +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET +- name: Job Seekers + endpoint: + path: /jobs + method: GET +- name: resume + endpoint: + path: /resume-database + method: GET + data_selector: resumes + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: job_seekers + endpoint: + path: /jobs + method: GET + data_selector: records + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: jobs + endpoint: + path: /jobs + method: GET + data_selector: records +- name: upload_resume + endpoint: + path: /upload-resume + method: POST + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: database + endpoint: + path: /database/oracle + method: GET + data_selector: databases +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET +- name: Browse Jobs + endpoint: + path: /jobs + method: GET +- name: Upload Resume + endpoint: + path: /upload-resume + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: SharePoint Sites + endpoint: + path: /sites + method: GET + data_selector: records +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: records + params: {} +- name: Teradata DBA + endpoint: + path: /v1/teradata/dbas + method: GET + data_selector: records +- name: document_library + endpoint: + path: /_api/web/lists/getbytitle('Documents')/items + method: GET + data_selector: value +- name: site_collection + endpoint: + path: /_api/site/collections + method: GET + data_selector: value +- name: database + endpoint: + path: /databases + method: GET + data_selector: databases +- name: users + endpoint: + path: /users + method: GET + data_selector: users +- name: site_collection + endpoint: + path: /sites/{siteId}/lists + method: GET + data_selector: value + params: {} +- name: document_library + endpoint: + path: /sites/{siteId}/drives + method: GET + data_selector: value + params: {} +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: Contact + endpoint: + path: /contacts + method: GET + data_selector: records +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: records +- name: Visa Sponsorship + endpoint: + path: /visa-sponsorship + method: GET + data_selector: records +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: records + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET +- name: job_seekers + endpoint: + path: /jobs + method: GET +- name: Oracle Database Administration + endpoint: + path: /database/admin + method: GET + data_selector: records + params: {} +- name: Oracle Database + endpoint: + path: /services/oracle/database + method: GET + data_selector: records +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: forms +- name: resume_database + endpoint: + path: /resume-database + method: GET + data_selector: resumes +- name: job_seekers + endpoint: + path: /jobs + method: GET + data_selector: jobs +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: Resume Database + endpoint: + path: /resume-database + method: GET + data_selector: records +- name: Job Listings + endpoint: + path: /jobs + method: GET + data_selector: records +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +- name: Job Seekers + endpoint: + path: /jobs + method: GET + data_selector: records +- name: financials + endpoint: + path: /services/data/v9.2/sobjects/Financials + method: GET + data_selector: records + params: {} +- name: supply_chain + endpoint: + path: /services/data/v9.2/sobjects/SupplyChain + method: GET + data_selector: records + params: {} +- name: EmployeeForms + endpoint: + path: /forms-checklists + method: GET + data_selector: forms + params: {} +- name: JobSeekers + endpoint: + path: /jobs + method: GET + data_selector: job_listings + params: {} +- name: VisaSponsorship + endpoint: + path: /visa-sponsorship + method: GET + data_selector: visa_options + params: {} +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET +- name: contact + endpoint: + path: /contacts + method: GET +- name: browse_jobs + endpoint: + path: /jobs + method: GET +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: forms + params: {} +- name: job_seekers + endpoint: + path: /jobs + method: GET + data_selector: jobs + params: {} +- name: resumes + endpoint: + path: /resume-database + method: GET + data_selector: resumes + params: {} +- name: quality_center + endpoint: + path: /services/data/vXX.X/sobjects/QualityCenter + method: GET + data_selector: records + params: {} +- name: Order Management + endpoint: + path: /services/data/vXX.X/sobjects/OrderManagement + method: GET + data_selector: records + params: {} +- name: Inventory + endpoint: + path: /services/data/vXX.X/sobjects/Inventory + method: GET + data_selector: records + params: {} +- name: Purchase Order + endpoint: + path: /services/data/vXX.X/sobjects/PurchaseOrder + method: GET + data_selector: records + params: {} +- name: Bill of Materials + endpoint: + path: /services/data/vXX.X/sobjects/BillOfMaterials + method: GET + data_selector: records + params: {} +- name: Accounts Payable + endpoint: + path: /services/data/vXX.X/sobjects/AccountsPayable + method: GET + data_selector: records + params: {} +- name: General Ledger + endpoint: + path: /services/data/vXX.X/sobjects/GeneralLedger + method: GET + data_selector: records + params: {} +- name: Employee Forms + endpoint: + path: /forms-checklists + method: GET +- name: Resume Database + endpoint: + path: /resume-database + method: GET +- name: Jobs + endpoint: + path: /jobs + method: GET +- name: Visa Sponsorship + endpoint: + path: /visa-sponsorship + method: GET +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET +- name: contact + endpoint: + path: /contacts + method: GET +- name: browse_jobs + endpoint: + path: /jobs + method: GET +- name: upload_resume + endpoint: + path: /upload-resume + method: POST +- name: resume_database + endpoint: + path: /resume-database + method: GET +- name: resumes + endpoint: + path: /resume-database + method: GET + data_selector: records +- name: document_library + endpoint: + path: /_api/web/lists/getByTitle('Documents')/items + method: GET + data_selector: value +- name: site + endpoint: + path: /_api/sites + method: GET + data_selector: value +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records + params: {} +- name: contact + endpoint: + path: /contacts + method: GET + data_selector: records + params: {} +- name: site + endpoint: + path: /_api/web + method: GET + data_selector: d + params: {} +- name: list + endpoint: + path: /_api/web/lists + method: GET + data_selector: d + params: {} +- name: documents + endpoint: + path: /_api/web/lists/getbytitle('Documents')/items + method: GET + data_selector: value +- name: users + endpoint: + path: /_api/web/siteusers + method: GET + data_selector: value +- name: employee_forms + endpoint: + path: /forms-checklists + method: GET + data_selector: records +notes: +- Some objects like Contact may return nulls in deeply nested fields +- We will send you necessary documents including a job offer letter, once employment + is offered by our Company. +- We have good Track record with Immigration and our detailed documentation ensures + E3 Visa approvals. +- E-3 applicants can secure visas within days of applying. +- Approval from USCIS is not required for E-3 application. +- Provides assistance with OPT/CPT and H1B sponsorship. +- We keep everything Transparent - Period. +- We are experts in performing a smooth and worry free Immigration Process +- We always Comply with the USCIS and USDOL Regulations +- We have over 20 Years of Expertise in handling Non-Immigrant work visas +- Initial Period of Stay is 2 years and Extension of Stay is up to 2 years per extension. +- 'Initial Period of Stay: 2 years' +- 'Extension of Stay: Up to 2 years per extension; no maximum number of extensions, + with some exceptions.' +- Uses cookies for various functionalities. +- RSS feed of the most recent resumes on Hire IT People. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Involved in full life cycle of software development like Requirement Analysis, Design, + Implementation and Testing. +- Used Telerik controls like RadGrid, Rad Auto Complete Box, Data Forms, Bread Crumb, + raddocking, etc. for an overall look and feel consistency and did prototyping on + these controls. +- Provided 24/7 Production Support for both MQ and Message Broker applications. +- Website uses cookies to ensure the best experience +- Data is available in RSS format. +- Supports various data sources including Oracle, Teradata, DB2, and Flat Files. +- Involves performance tuning and optimization techniques. +- Involved in all phases of Software Development Life-Cycle (SDLC) for the application. +- Followed Agile Methodology - Extreme Programming. +- Product development is an Agile (SCRUM) methodology, where progress and task assignment + is discussed in everyday meetings. +- Developed applications using various Microsoft .NET technologies including ASP.NET + MVC and Web API +- This API does not require authentication. +- This website uses cookies to ensure you get the best experience on our website. +- Experience in both Waterfall (Software Development Life Cycle -SDLC) and Agile Project + Environment. +- Strong experience in administration of HP Suite and well experience in installation + of QTP and Quality Center 10 & ALM 11,11.52, 12.X version on a clustering and load + balancing environment. +- Extensively used Defect/Bug tracking system with the use of tools like HP Quality + Center +- Extensive experience in Quote to Cash Cycle (Order Management, Accounts Receivables, + Cash Management, Inventory, General Ledger) +- Working experience in Procure to pay cycle (i-Procurement, Purchasing, Account Payables, + Fixed Assets) +- Experience in Troubleshooting Hardware, Storage, File System Full Errors, Application + Bottlenecks, System Recovery, Crash dump analysis, and Performance tuning. +- 24x7 processing without sacrificing maintainability or agility. +- Contains experience in various technologies and roles in development. +- Focus on Java and iOS development. +- Experience in Unix and Linux environments. +- Broad experience in different technology platforms. +- Working experience in using RESTful web-services. +- Experience with various build tools and CI/CD practices +- Proficient in multiple programming languages and scripting +- Over 10+ years of progressive IT experience including 3+ years of experience in + Big Data Technologies namely Hadoop, Spark and MongoDB in Banking & Financial (Credit + Card), Insurance (Personal and Commercial) domains +- Possess good understanding of Massive Parallel Processing (MPP) databases and its + data storage and processing methodology +- 'Provides configuration services on multiple platforms in the test environment running + on one or more IT Platforms: Maven, Client/server, Jenkins, MSBuild, Microsoft Windows + NT, OS/390, UNIX.' +- Uses cookies to ensure the best experience on the website. +- Involves various transformations like sorter, aggregator, lookup, Expression, filters, + Update Strategy, Joiner, Router etc in Mappings. +- Extensive experience with database languages such as SQL and PL/SQL. +- Highly experienced in designing and testing Node fail over tests +- Handled efficient way of data and DDL backups and environment refreshes +- Extensively used Informatica Transformation like Router, Filter, Lookup, Joiner, + Aggregator, Sorter, Rank, Stored Procedure Transformation. +- Extensively used Informatica IDQ for matching/removing duplicate data. +- Involved in performance tuning of the informatica mappings, sessions and oracle. +- Extracted sources from flat-files, DB2 & oracle and load them into Oracle & Teradata. +- Extensively used SQL*Loader for data loading +- Requires setup of Oracle database and tools +- Uses various adapters including FTP Adapter, DB Adapter, and Oracle Application + Adapter. +- Involved in various phases of Software Development Life Cycle (SDLC) such as modeling, + system analysis and design, code generation. +- Developed and Registered Various ESB services. +- Extensive experience in Web Service Orchestration using Oracle BPEL Manager +- Good working experience on SOA/Web Services (SOAP, WSDL, UDDI) +- Extensively used web services (SOAP) to validate the data between different applications. +- In-depth knowledge of SSO/SSL configuration for SAP ABAP and Java systems. +- Experience in setting up and maintaining Transport Management System (TMS). +- Experience in automation and manual testing of websites and web-based clients using + Selenium, Junit, TestNG and Selenium Web Driver. +- Experience in performing Homogenous System copy +- Good knowledge of HP-UX, Windows operating systems during basis activity +- Uses Quality Center and ALM for defect tracking and bug reporting +- Experience in EDI transactions and HIPAA compliance +- Some objects like SAPBW may return nulls in deeply nested fields +- Extensive experience in testing of Oracle e-Business Suite +- Involved in different kinds of meetings with the developers and team members +- Extensive testing is needed across all SCM modules. +- Experience in UNIX System Administration and Production Support. +- Proficient in installation and management of enterprise-level server hardware. +- 24x7 processing without sacrificing maintainability or agility +- Experience with various build tools and version control systems. +- Managed software configurations in UNIX and Windows environments. +- Documented all build and release process related items. +- Managed software configurations and builds in a UNIX and Windows environment. +- This site uses cookies to ensure best experience. +- Strong knowledge of complete System Software Development Life Cycle(SDLC) of Data + warehousing. +- Requires setup of connected app in api +- Ensure Tableau Server is properly configured for API access. +- Extensive experience in Multiple Relational Databases including SQL Server, Oracle + & DB2. +- Extensively used MLoad, FLoad and Fast Export for high volume flat files. +- Experience in using Oracle tools like SQL Loader, Toad, SQL Navigator, SQL Developer + and Data Loader. +- Proficient in writing Stored Procedures, Functions, Packages and Database Triggers + using PL/SQL. +- Extensively worked on Exception handling which allows the BPEL processes to handle + exceptions. +- Implemented web service Security using Weblogic Web Service policies. +- Extensive experience in Oracle SOA Suite and related technologies. +- Good knowledge in various domains including healthcare and finance. +- Experience in 24x7 production and technical support. +- Extensive experience in Web Service Orchestration using Oracle BPEL Manager, Oracle + Enterprise Service Bus (ESB) and Oracle Service Bus (OSB). +- Experience in integrating Oracle EBS using Oracle Applications Adapter. +- Experience with Oracle 9i, 10g, 11g, 12c databases. +- Proactive monitoring using Statspack, AWR, ADDM. +- Proactive monitoring through OEM 10G GRID Control. +- Day-to-Day Maintenance of multiple 10G RAC environments on ASM. +- Experience in applying support packs (SPAM) and add-ons / plug-ins (SAINT) +- Good Knowledge of Creating different POC, RFP OS/DB Migration, SAP Fiori +- Experience with Teradata utilities on UNIX and Mainframes (COBOL) environment. +- Expert in physical database design, logical modelling and development of pro-active + processes for monitoring capacity and performance. +- Experienced in archiving, restoring and recovering data on Teradata using ARC utility + and TARA GUI. +- Efficient in housekeeping and maintaining database through regular cleanup of old + logs, deleting old data, collecting statistics and tuning queries for efficient + database running. +- Website provides IT staff augmentation services +- Involves complex XSLT transformations and exception handling +- Developed SOAP services and WSDLs for integration +- This API provides access to employee forms, job listings, and resume uploads. +- Experience in Database Administration on Production databases +- Involved in different scenarios of OLTP and data warehouse farms +- Experience in creating development, test, stage, production, RAC and standby databases + for OLTP, DSS and Data Warehousing +- Extensively worked with XML files as the Source and Target, used transformations + like XML Generator and XML Parser to transform XML files. +- Extensive knowledge about the concepts of PeopleSoft Time and Labor. +- Implementation of PeopleSoft HCM and Global Payroll version 9.0. +- Integration of payroll with benefits. +- Extensive experience with Informatica Power Center and various databases. +- Tableau APIs do not require authentication for accessing public dashboards. +- Involved in upgrading PeopleSoft applications from release 8.45 to 9.2. +- Primarily responsible for maintaining and implementing PeopleSoft GL, PO and AP + modules. +- Involved in Single sign-on Integration between Peoplesoft applications and also + Non PeopleSoft Applications. +- Extensive experience with Cognos BI Suite for report development. +- Installation and configuration required for environment setup. +- Involves technical and functional consulting for PeopleSoft Financials +- Requires knowledge of ERP implementation and software development life cycle +- Extensive experience in testing Web applications and Thick Client applications. +- Experience in mobile testing using Appium. +- Responsible for HP ALM Admin with Installing, Configuring and customizing the Quality + Center application +- Extensively tested Trading Community Architecture (TCA) +- Involved in functional testing of various modules +- Uses various tools for system administration and automation tasks. +- Experience in handling both UNIX and Linux environments. +- Experience in installing, configuring and implementing the RAID Technologies using + various tools. +- Experience in configuring Oracle Real Application Clusters (RAC). +- This website uses cookies to ensure you get the best experience. +- Website does not require authentication for accessing resume data. +- Experience in client/server connectivity Query Optimization, Performance Tuning + and Database Consistency Checks using DBCC commands. +- Proactive monitoring in identifying bottlenecks in the application and database + using Statspack, AWR, ADDM and 12c OEM Cloud Control Monitoring. +- Uses OAuth2 with refresh token — requires setup of connected app in SharePoint +- Strong knowledge in implementing different Authentication methods (Windows, Forms) +- Extensively used MLoad, FLoad and Fast Export Teradata tools both in ETL and UNIX + scripts for high volume flat files. +- Implemented data export from one environment to another environment using Fast Export + and Fast Load. +- Some objects may return nulls in deeply nested fields +- High expertise in cross database coding/design skills( Oracle, Teradata and SQLServer) +- Excellent track record in tuning ETL and SQL Jobs within the batch window +- Requires Azure AD application registration for OAuth2 +- Pagination may vary based on the endpoint +- Requires setup of connected app in SharePoint +- Experience in installation and configuration of oracle 10g, 11g, 12c on various + platforms like Confidential - AIX, SUN SOLARIS, HP-UX, Red Hat Linux and Windows. +- Experience in creating development, test, stage, production, RAC and standby databases + for OLTP, DSS and Data Warehousing using customized shell scripts. +- Expertise in installation and configuration of oracle 10g, 11g, 12c on various platforms + like AIX, SUN SOLARIS, HP-UX, Red Hat Linux and Windows. +- Experience in Requirement Gathering, JAD sessions, Writing Specifications, Testing, + UAT. +- Extensively used SQL and Excel for Data Analysis. +- Uses PeopleSoft for various HR functions including Payroll, Benefits Administration, + and Time Management. +- Involves complex configurations and multi-currency setups. +- Involved in Single sign-on Integration between Peoplesoft applications (HRMS, Financials, + EPM, CS, Portal), and also Non PeopleSoft Applications with Enterprise Portal. +- Involved in Hardware capacity planning to accommodate the future user growth and + Software requirements. +- Involved in implementing STAT for Object migration & Versioning, Involved in migrating + projects thru STAT. +- The API provides various endpoints related to PeopleSoft services. +- Involved in testing Web services transactions like automatic bill payment +- Used Jenkins as continuous integration server to run automated test suites. +- Extensively worked on database testing (Oracle, SQL Server) and validating the applications + against the database. +- Involved in testing SOA Scripts in SOA, Involved in SOA regression frame work. +- No authentication required for accessing public endpoints. +- Uses cookies to ensure best experience on the website. +- Requires setup of Azure AD application for authentication +- Some fields may return null if permissions are not granted +- Uses OAuth2 with refresh token — requires app registration in Azure AD +- Uses OAuth2 with refresh token — requires setup of Azure AD application +errors: +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- Documentation errors may lead to delays in processing. +- Incomplete applications will not be accepted. +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- 'USER_NOT_FOUND: Check the user ID or credentials.' +- 'REQUEST_TIMEOUT: Increase the timeout setting.' +- '404 Not Found: Check the URL for correctness' +- Performance issues may arise if the mapping is not optimized. +- Performing mapping to identify the customer profitability, customer lifetime value, + and to understand customer segmentation, attrition analysis, and affinity analysis. +- 'SQL_TIMEOUT: Check query for performance issues' +- 'DATA_INTEGRITY_ERROR: Ensure all constraints are met' +- 'SOAP Fault: Check request parameters' +- 'WSDL Error: Validate WSDL structure' +- 'INVALID_REQUEST: Check the endpoint and parameters used.' +- 'BUILD_FAILED: Check for script errors or missing dependencies' +- 'CONFIGURATION_ERROR: Verify configuration settings and environment variables' +- '401 Unauthorized: Check your credentials.' +- '403 Forbidden: Check permissions and access rights.' +- '404 Not Found: Verify the endpoint URL and resource availability.' +- 'INVALID_REQUEST: Check the request parameters and format.' +- 'UNAUTHORIZED: Verify user permissions and credentials.' +- 'ORA-00001: Unique constraint violated' +- 'ORA-00942: table or view does not exist' +- 'Locking issues: Resolve common database issues like Locking, Free Space, connectivity + issues.' +- 'Patch application: Applying patches whenever required.' +- '400 Bad Request: Check request parameters' +- '500 Internal Server Error: Review server logs for details' +- 'REPORT_NOT_FOUND: Ensure the report ID is correct.' +- 'INVALID_MODEL: Check the model configuration.' +- '401 Unauthorized: Check client_id and client_secret' +- '403 Forbidden: Ensure you have permission to access this resource' +- '404 Not Found: Verify the endpoint path' +- 'INVALID_CREDENTIALS: Check username and password.' +- 'DATA_NOT_FOUND: Verify the requested data exists.' +- 'TIMEOUT: Increase the timeout settings for the request.' +- '401 Unauthorized: Check OAuth token validity' +- '403 Forbidden: Verify user permissions' +- '404 Not Found: Ensure the endpoint is correct' +- '403 Forbidden: Check permissions for the requested resource' +- '401 Unauthorized: Verify the token is valid and has the necessary permissions' +- '404 Not Found: Ensure the endpoint exists and is correctly specified' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential + - OAuth + - SharePointToken + - AzureAD + - OAuthToken + - SharePointClient +client: + base_url: https://www.hireitpeople.com +source_metadata: null diff --git a/hodlhodl/hodlhodl-docs.md b/hodlhodl/hodlhodl-docs.md new file mode 100644 index 00000000..dacdea00 --- /dev/null +++ b/hodlhodl/hodlhodl-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Hodl Hodl data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def hodl_hodl_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://accounts.hodlhodl.com/api/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + users/me,,offers,,payment_methods + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='hodl_hodl_migration_pipeline', + destination='duckdb', + dataset_name='hodl_hodl_migration_data', + ) + # Load the data + load_info = pipeline.run(hodl_hodl_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from hodl_hodl_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- User Endpoints: Access user-related information and settings. +- Offer Endpoints: Manage and retrieve offers available on the platform. +- Country Endpoints: Get the list of countries supported by the service. +- Currency Endpoints: Access information regarding available currencies. +- Payment Method Endpoints: List and manage payment methods. + +You will then debug the Hodl Hodl pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Hodl Hodl support. + ```shell + dlt init dlthub:hodl_hodl_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Hodl Hodl API, as specified in @hodl_hodl_migration-docs.yaml + Start with endpoints users/me and and skip incremental loading for now. + Place the code in hodl_hodl_migration_pipeline.py and name the pipeline hodl_hodl_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python hodl_hodl_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Hodl Hodl uses OAuth2 for authentication, requiring users to be registered and have API access enabled in their account settings. An API key will be provided after enabling access. + + To get the appropriate API keys, please visit the original source at https://www.hodlhodl.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python hodl_hodl_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline hodl_hodl_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset hodl_hodl_migration_data + The duckdb destination used duckdb:/hodl_hodl_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline hodl_hodl_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("hodl_hodl_migration_pipeline").dataset() + # get sers/m table as Pandas frame + data.sers/m.df().head() + ``` + +## Running into errors? + +Users must be registered with Hodl Hodl and enable API access in the User Account settings to use the API. Bear in mind that there are rate limits in place, specifically 2 requests per 60 seconds. Additionally, authorization tokens must be included in the headers, and users may need to provide identification for dispute resolution. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/hodlhodl/hodlhodl-docs.yaml b/hodlhodl/hodlhodl-docs.yaml new file mode 100644 index 00000000..ccc68b63 --- /dev/null +++ b/hodlhodl/hodlhodl-docs.yaml @@ -0,0 +1,89 @@ +resources: +- name: countries + endpoint: + path: /api/v1/countries + method: GET +- name: currencies + endpoint: + path: /api/v1/currencies + method: GET +- name: offers + endpoint: + path: /api/v1/offers + method: GET +- name: payment_methods + endpoint: + path: /api/v1/payment_methods + method: GET +- name: chat_messages + endpoint: + path: /users/me + method: GET + data_selector: user + params: + filters.country: '' +- name: contracts + endpoint: + path: /users/me + method: GET + data_selector: user + params: + filters.country: '' +- name: user + endpoint: + path: /api/v1/users/me + method: GET + data_selector: user +- name: users_me + endpoint: + path: /api/v1/users/me + method: GET + data_selector: user + params: + filters.country: Global +- name: user_info + endpoint: + path: /api/v1/users/me + method: GET + data_selector: user +- name: payment_method_instructions + endpoint: + path: /api/v1/users/me + method: GET + data_selector: payment_method_instructions +- name: user + endpoint: + path: /api/v1/users/me + method: GET + data_selector: user +- name: user + endpoint: + path: /users/me + method: GET + data_selector: user + params: {} +notes: +- Authorization token must be included in the headers. +- total fee consists of trading fee and transaction fee +- list of all payment methods could be obtained by querying Payment methods resource +- You can view (list, delete) only payment method instructions which you have created. +- Uses OAuth2 for authentication +- You must be a registered User of Hodl Hodl with enabled API access in the User Account + settings. +- After enabling the API, you will be given an API key, which will be required to + access the API. +- Users may be required to provide ID for dispute resolution. +errors: +- 'not_found: The requested entity wasn’t found' +- 'missing_parameter: Required root parameter of the request is omitted' +- 'rate_limit_exceeded: Rate limit is 2 per 60s' +- 'not_available: Service is temporarily unavailable' +- '401 Unauthorized: Recheck OAuth token.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +auth_info: + mentioned_objects: [] +client: + base_url: https://accounts.hodlhodl.com + auth: + type: oauth2 +source_metadata: null diff --git a/hostex/hostex-docs.md b/hostex/hostex-docs.md new file mode 100644 index 00000000..c4cef45e --- /dev/null +++ b/hostex/hostex-docs.md @@ -0,0 +1,158 @@ +In this guide, we'll set up a complete Hostex data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def hostex_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.hostex.io/v3/oauth", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "revoke", "authorizations" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='hostex_pipeline', + destination='duckdb', + dataset_name='hostex_data', + ) + # Load the data + load_info = pipeline.run(hostex_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from hostex’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **/v3/properties**: Endpoint to manage property listings and details. +- **/v3/room_types**: Endpoint to retrieve and manage different types of rooms available. +- **/v3/reservations**: Endpoint for creating and managing reservations; appears multiple times in the list. +- **/v3/reservations/{reservation_code}**: Endpoint to access specific reservation details using a unique reservation code. +- **/v3/reservations/{stay_code}**: Endpoint to access reservation details using a unique stay code; appears multiple times in the list. +- **/v3/custom_channels**: Endpoint to manage custom communication channels. +- **/v3/income_methods**: Endpoint for handling different methods of income associated with properties. +- **/v3/availabilities**: Endpoint to check property availability; appears multiple times in the list. +- **/v3/listings/calendar**: Endpoint to view and manage listings' calendars. +- **/v3/listings/inventories**: Endpoint to manage inventory for property listings. +- **/v3/listings/prices**: Endpoint to manage pricing for property listings. +- **/v3/listings/restrictions**: Endpoint to set restrictions on property listings. +- **/v3/conversations**: Endpoint to manage conversations related to bookings and inquiries. +- **/v3/conversations/{conversation_id}**: Endpoint to access specific conversation details using a unique conversation ID. + +You will then debug the Hostex pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Hostex support. + ```shell + dlt init dlthub:hostex duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Hostex API, as specified in @hostex-docs.yaml + Start with endpoints revoke and authorizations and skip incremental loading for now. + Place the code in hostex_pipeline.py and name the pipeline hostex_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python hostex_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Each API request must be authenticated with a valid `Hostex-Access-Token` passed in the request header. + + To get the appropriate API keys, please visit the original source at https://hostex-openapi.readme.io/reference/overview. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python hostex_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline hostex load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset hostex_data + The duckdb destination used duckdb:/hostex.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline hostex_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("hostex_pipeline").dataset() + # get "revoke" table as Pandas frame + data."revoke".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/hostex/hostex-docs.yaml b/hostex/hostex-docs.yaml new file mode 100644 index 00000000..c5b0f80c --- /dev/null +++ b/hostex/hostex-docs.yaml @@ -0,0 +1,64 @@ +client: + auth: Each API request must be authenticated with a valid `Hostex-Access-Token` + passed in the request header. + most_recurring_base_url: https://api.hostex.io + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://hostex-openapi.readme.io/reference/query-properties': + - /v3/properties +- 'endpoints source: https://hostex-openapi.readme.io/reference/query-room-types': + - /v3/room\_types +- 'endpoints source: https://hostex-openapi.readme.io/reference/query-reservations': + - /v3/reservations +- 'endpoints source: https://hostex-openapi.readme.io/reference/create-reservation': + - /v3/reservations +- 'endpoints source: https://hostex-openapi.readme.io/reference/cancel-reservation-1': + - /v3/reservations/{reservation\_code +- 'endpoints source: https://hostex-openapi.readme.io/reference/update-check-in-details': + - /v3/reservations/{stay\_code +- 'endpoints source: https://hostex-openapi.readme.io/reference/query-custom-channels': + - /v3/custom\_channels +- 'endpoints source: https://hostex-openapi.readme.io/reference/query-income-methods': + - /v3/income\_methods +- 'endpoints source: https://hostex-openapi.readme.io/reference/query-custom-fields': + - /v3/reservations/{stay\_code +- 'endpoints source: https://hostex-openapi.readme.io/reference/update-custom-fields': + - /v3/reservations/{stay\_code +- 'endpoints source: https://hostex-openapi.readme.io/reference/move-reservation-to-box': + - /v3/reservations/{stay\_code +- 'endpoints source: https://hostex-openapi.readme.io/reference/allocate-reservation': + - /v3/reservations/{stay\_code +- 'endpoints source: https://hostex-openapi.readme.io/reference/query-availabilities': + - /v3/availabilities +- 'endpoints source: https://hostex-openapi.readme.io/reference/update-availabilities': + - /v3/availabilities +- 'endpoints source: https://hostex-openapi.readme.io/reference/query-listing-calendars': + - /v3/listings/calendar +- 'endpoints source: https://hostex-openapi.readme.io/reference/update-listing-inventories': + - /v3/listings/inventories +- 'endpoints source: https://hostex-openapi.readme.io/reference/update-listing-prices': + - /v3/listings/prices +- 'endpoints source: https://hostex-openapi.readme.io/reference/update-listing-restrictions': + - /v3/listings/restrictions +- 'endpoints source: https://hostex-openapi.readme.io/reference/query-conversations': + - /v3/conversations +- 'endpoints source: https://hostex-openapi.readme.io/reference/get-conversation-details': + - /v3/conversations/{conversation\_id +- 'endpoints source: https://hostex-openapi.readme.io/reference/send-message': + - /v3/conversations/{conversation\_id +- 'endpoints source: https://hostex-openapi.readme.io/reference/query-reviews': + - /v3/reviews +- 'endpoints source: https://hostex-openapi.readme.io/reference/create-review': + - /v3/reviews/{reservation\_code +- 'endpoints source: https://hostex-openapi.readme.io/reference/query-webhooks': + - /v3/webhooks +- 'endpoints source: https://hostex-openapi.readme.io/reference/create-webhook': + - /v3/webhooks +- 'endpoints source: https://hostex-openapi.readme.io/reference/delete-webhook': + - /v3/webhooks/{id +- 'endpoints source: https://hostex-openapi.readme.io/reference/supported-channels': + - https://ebooking.meituan.com +- 'endpoints source: https://hostex-openapi.readme.io/reference/obtain-token': + - /v3/oauth/authorizations +- 'endpoints source: https://hostex-openapi.readme.io/reference/revoke-token': + - /v3/oauth/revoke diff --git a/humblefax/humblefax-docs.md b/humblefax/humblefax-docs.md new file mode 100644 index 00000000..b75f715d --- /dev/null +++ b/humblefax/humblefax-docs.md @@ -0,0 +1,148 @@ +In this guide, we'll set up a complete HumbleFax data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def humblefax_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.humblefax.com/", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "attachment", "tmpFax" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='humblefax_pipeline', + destination='duckdb', + dataset_name='humblefax_data', + ) + # Load the data + load_info = pipeline.run(humblefax_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from humblefax’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Temporary Fax**: Endpoint for handling temporary fax operations. +- **Send Fax by ID**: Endpoint to send a fax using a specific unique identifier (e.g., `/fax/12345/send`). +- **Send Temporary Fax by ID**: Endpoint to send a temporary fax using a specific unique identifier (e.g., `/tmpFax/651b17fab46c18.89226873/send`). +- **Attachment Access**: Endpoint for accessing attachments related to a specific temporary fax (e.g., `/attachment/651b17fab46c18.89226873`). + +You will then debug the HumbleFax pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with HumbleFax support. + ```shell + dlt init dlthub:humblefax duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for HumbleFax API, as specified in @humblefax-docs.yaml + Start with endpoints attachment and tmpFax and skip incremental loading for now. + Place the code in humblefax_pipeline.py and name the pipeline humblefax_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python humblefax_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + To authenticate with the HumbleFax API, you need an API Access Key (used as the login) and an API Secret Key (used as the password), which can be obtained by creating an API login and selecting the "New Keys" icon on the top of the page; you will apply these credentials using HTTP Basic Authentication in your requests. + + To get the appropriate API keys, please visit the original source at https://api.humblefax.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python humblefax_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline humblefax load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset humblefax_data + The duckdb destination used duckdb:/humblefax.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline humblefax_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("humblefax_pipeline").dataset() + # get "attachment" table as Pandas frame + data."attachment".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/humblefax/humblefax-docs.yaml b/humblefax/humblefax-docs.yaml new file mode 100644 index 00000000..722ecfd7 --- /dev/null +++ b/humblefax/humblefax-docs.yaml @@ -0,0 +1,13 @@ +client: + auth: To authenticate with the HumbleFax API, you need an API Access Key (used as + the login) and an API Secret Key (used as the password), which can be obtained + by creating an API login and selecting the "New Keys" icon on the top of the page; + you will apply these credentials using HTTP Basic Authentication in your requests. + most_recurring_base_url: https://api.humblefax.com + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://api.humblefax.com/': + - /tmpFax + - /fax/12345/send + - /tmpFax/651b17fab46c18.89226873/send + - /attachment/651b17fab46c18.89226873 diff --git a/icann_community_api/icann-community-api-docs.md b/icann_community_api/icann-community-api-docs.md new file mode 100644 index 00000000..712fa6ba --- /dev/null +++ b/icann_community_api/icann-community-api-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete ICANN data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def icann_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://account.icann.org/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + ec,,rfq,,rfp + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='icann_migration_pipeline', + destination='duckdb', + dataset_name='icann_migration_data', + ) + # Load the data + load_info = pipeline.run(icann_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from icann_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- General Information: Access to various general resources and information from ICANN. +- RFPs: Endpoints related to Requests for Proposals which are open for participation from suppliers. +- Correspondence: Access to various letters and correspondence published by ICANN. + +You will then debug the ICANN pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with ICANN support. + ```shell + dlt init dlthub:icann_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for ICANN API, as specified in @icann_migration-docs.yaml + Start with endpoints ec and and skip incremental loading for now. + Place the code in icann_migration_pipeline.py and name the pipeline icann_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python icann_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + ICANN uses OAuth2 for authentication, which requires the setup of a connected app to obtain access tokens. + + To get the appropriate API keys, please visit the original source at https://www.icann.org/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python icann_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline icann_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset icann_migration_data + The duckdb destination used duckdb:/icann_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline icann_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("icann_migration_pipeline").dataset() + # get table as Pandas frame + data..df().head() + ``` + +## Running into errors? + +Some endpoints may return nulls in deeply nested fields, and blocking certain cookies may impact the browsing experience. Additionally, certain functionalities may require JavaScript enabled, and the setup of a connected app is necessary for using the API effectively. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/icann_community_api/icann-community-api-docs.yaml b/icann_community_api/icann-community-api-docs.yaml new file mode 100644 index 00000000..745da67d --- /dev/null +++ b/icann_community_api/icann-community-api-docs.yaml @@ -0,0 +1,8118 @@ +resources: +- name: domains + endpoint: + path: /v1/domains + method: GET +- name: tlds + endpoint: + path: /v1/tlds + method: GET +- name: iana_registrars + endpoint: + path: /v1/iana-registrars + method: GET +- name: TLD Search + endpoint: + path: /v1/domainmetrica/tld + method: GET + data_selector: example_tld + params: {} +- name: IANA Registrar Search + endpoint: + path: /v1/domainmetrica/registrar + method: GET + data_selector: example_IANAID + params: {} +- name: Domain Search + endpoint: + path: /v1/domainmetrica/domain + method: GET + data_selector: example.com + params: {} +- name: courses_and_learning + endpoint: + path: /fr/beginners/courses-and-learning + method: GET +- name: history + endpoint: + path: /fr/history + method: GET +- name: acronyms_and_terms + endpoint: + path: /fr/icann-acronyms-and-terms + method: GET +- name: regional_team_contact + endpoint: + path: /fr/beginners/connect-with-your-regional-team + method: GET +- name: find_your_group + endpoint: + path: /fr/beginners/find-your-icann-group + method: GET +- name: events + endpoint: + path: https://www.icann.org/en/engagement-calendar + method: GET +- name: nextgen_and_fellowship_programs + endpoint: + path: /fr/beginners/programs-for-professionals-and-students + method: GET +- name: icann83_fellowship_program + endpoint: + path: /fellowshipprogram + method: GET +- name: Introduction to ICANN + endpoint: + path: /curricula/59e886bb-f5b2-4e07-a565-f769099c853e + method: GET + data_selector: records +- name: Registrant Basics + endpoint: + path: /online-courses/15c8a57c-9e5a-49bb-8b25-c36ab00a473c + method: GET + data_selector: records +- name: DNS Fundamentals + endpoint: + path: /online-courses/53780f75-d6c7-41c4-850f-e32e37f2b3de + method: GET + data_selector: records +- name: Policy Development Fundamentals + endpoint: + path: /online-courses/6bd2768c-3a4e-4946-a857-885a051e2124 + method: GET + data_selector: records +- name: Unconscious Bias + endpoint: + path: /online-courses/364fbaa2-51c2-4eef-bc4e-37b245d8f67a + method: GET + data_selector: records +- name: Constructive Dialog + endpoint: + path: /online-courses/cebe767d-4011-4494-b400-80da2c8d5c06 + method: GET + data_selector: records +- name: events + endpoint: + path: /engagement-calendar + method: GET + data_selector: results + params: {} +- name: Domain Abuse Activity Reporting + endpoint: + path: /octo-ssr/daar + method: GET +- name: ICANN Domain Metrica + endpoint: + path: /octo-ssr/metrica-en + method: GET +- name: ITHI Metrics + endpoint: + path: https://ithi.research.icann.org/ + method: GET +- name: ICANN Monitoring System API + endpoint: + path: /mosapi + method: GET +- name: event + endpoint: + path: /engagement-calendar + method: GET + data_selector: results + params: {} +- name: fellowship_participants + endpoint: + path: /resources/pages/fellowship-participants-2016-04-19-en + method: GET +- name: fellowship_statistics + endpoint: + path: /resources/pages/fellowship-statistics-2018-03-02-en + method: GET +- name: fellowship_faqs + endpoint: + path: /resources/pages/fellowship-faqs-2015-07-10-en + method: GET +- name: terms_conditions + endpoint: + path: /resources/pages/terms-conditions-2012-02-25-en + method: GET +- name: selection_criteria + endpoint: + path: /resources/pages/fellowship-applicant-criteria-2016-09-08-en + method: GET +- name: fellowship_mentoring + endpoint: + path: /resources/pages/fellowship-mentoring-2018-10-15-en + method: GET +- name: fellowship_selection_committee + endpoint: + path: /resources/pages/committee-2012-02-25-en + method: GET +- name: fellowship_post_meeting_reports + endpoint: + path: /resources/pages/fellowship-post-meeting-reports-2018-11-16-en + method: GET +- name: social_media_links + endpoint: + path: /social_media_links + method: GET + data_selector: links + params: {} +- name: board_member + endpoint: + path: /en/board/directors + method: GET + data_selector: members + params: {} +- name: CEO Reports to the Board + endpoint: + path: /en/ceo-corner/ceo-reports-to-the-board + method: GET + data_selector: reports + params: {} +- name: Organizational Objectives + endpoint: + path: /en/blogs/details/icanns-organizational-objectives-for-fiscal-year-2026-08-07-2025-en + method: GET + data_selector: objectives + params: {} +- name: ombuds + endpoint: + path: /ombuds + method: GET + data_selector: records +- name: complaints_submission + endpoint: + path: /resources/pages/complains-office-terms-conditions-2022-12-20-en + method: GET +- name: complaints_report + endpoint: + path: /complaints-report + method: GET +- name: complaints + endpoint: + path: /resources/pages/complains-office-terms-conditions-2022-12-20-en + method: GET + data_selector: complaints_data + params: {} +- name: press_releases + endpoint: + path: /resources/pages/press-releases-en + method: GET +- name: announcements + endpoint: + path: /en/announcements + method: GET +- name: blogs + endpoint: + path: /en/blogs + method: GET +- name: fact_sheet + endpoint: + path: /en/system/files/files/icann-fact-sheet-03jan25-en.pdf + method: GET +- name: media_assets + endpoint: + path: /media-assets-en + method: GET +- name: board_members + endpoint: + path: /en/board/directors + method: GET +- name: executives + endpoint: + path: /resources/pages/icann-executives-2024-10-15-en + method: GET +- name: cookie_policy + endpoint: + path: /privacy/cookies + method: GET + data_selector: cookies +- name: privacy_policy + endpoint: + path: /privacy/policy + method: GET + data_selector: policy +- name: cookie_policy + endpoint: + path: /privacy/cookies + method: GET +- name: privacy_policy + endpoint: + path: /privacy/policy + method: GET +- name: terms_of_service + endpoint: + path: /data-protection/terms-of-service + method: GET +- name: ATRT + endpoint: + path: /resources/reviews/specific-reviews/atrt + method: GET + data_selector: records +- name: CCT + endpoint: + path: /resources/reviews/specific-reviews/cct + method: GET + data_selector: records +- name: RDS + endpoint: + path: /resources/reviews/specific-reviews/whois + method: GET + data_selector: records +- name: SSR + endpoint: + path: /resources/reviews/specific-reviews/ssr + method: GET + data_selector: records +- name: Articles of Incorporation + endpoint: + path: /en/governance/articles-of-incorporation + method: GET +- name: Board Code of Conduct + endpoint: + path: /en/governance/code-of-conduct + method: GET +- name: Board Conflicts of Interest Policy + endpoint: + path: /en/governance/conflicts-of-interest-policy + method: GET +- name: Board Governance Guidelines + endpoint: + path: /en/governance/guidelines + method: GET +- name: Board Meeting Transcripts, Minutes, and Resolutions + endpoint: + path: /en/board-activities-and-meetings + method: GET +- name: Board Statements of Interest + endpoint: + path: /en/governance/statements-of-interest + method: GET +- name: Bylaws + endpoint: + path: /en/governance/bylaws + method: GET +- name: Delegation of Authority Guidelines + endpoint: + path: /en/governance/delegation-of-authority-guidelines + method: GET +- name: locations + endpoint: + path: /locations + method: GET +- name: help + endpoint: + path: /help + method: GET +- name: dispute_resolution + endpoint: + path: /help/dispute-resolution + method: GET +- name: privacy_policy + endpoint: + path: /data-protection/privacy-policy + method: GET +- name: terms_of_service + endpoint: + path: /data-protection/terms-of-service + method: GET +- name: cookies_policy + endpoint: + path: /data-protection/cookies-policy + method: GET +- name: ALAC Review + endpoint: + path: /reviews/org/alac + method: GET +- name: ccNSO Review + endpoint: + path: /reviews/org/ccnso + method: GET +- name: GNSO Review + endpoint: + path: /reviews/org/gnso + method: GET +- name: NomCom Review + endpoint: + path: /reviews/org/nomcom + method: GET +- name: RSSAC Review + endpoint: + path: /reviews/org/rssac + method: GET +- name: SSAC Review + endpoint: + path: /reviews/org/ssac + method: GET +- name: ASO Review + endpoint: + path: /reviews/org/aso + method: GET +- name: 2024 Complete Report + endpoint: + path: /en/system/files/files/annual-report-2024-en.pdf + method: GET +- name: 2023 Complete Report + endpoint: + path: /en/system/files/files/annual-report-2023-en.pdf + method: GET +- name: 2022 Complete Report + endpoint: + path: /en/system/files/files/annual-report-2022-en.pdf + method: GET +- name: 2021 Complete Report + endpoint: + path: /en/system/files/files/annual-report-2021-en.pdf + method: GET +- name: 2020 Complete Report + endpoint: + path: /en/system/files/files/annual-report-2020-en.pdf + method: GET +- name: 2019 Complete Report + endpoint: + path: /en/system/files/files/annual-report-2019-en.pdf + method: GET +- name: 2018 Complete Report + endpoint: + path: /en/system/files/files/annual-report-2018-en.pdf + method: GET +- name: 2017 Complete Report + endpoint: + path: /en/system/files/files/annual-report-2017-en.pdf + method: GET +- name: 2016 Complete Report + endpoint: + path: /en/system/files/files/annual-report-2016-en.pdf + method: GET +- name: 2015 Complete Report + endpoint: + path: /en/system/files/files/annual-report-2015-en.pdf + method: GET +- name: 2014 Complete Report + endpoint: + path: /en/system/files/files/annual-report-2014-en.pdf + method: GET +- name: 2013 Complete Report + endpoint: + path: /en/about/annual-report/annual-report-2013-en.pdf + method: GET +- name: 2012 Complete Report + endpoint: + path: /en/about/annual-report/annual-report-2012-en.pdf + method: GET +- name: 2011 Complete Report + endpoint: + path: /en/about/annual-report/annual-report-2011-en.pdf + method: GET +- name: 2010 Complete Report + endpoint: + path: /en/about/annual-report/annual-report-2010-en.pdf + method: GET +- name: 2009 Complete Report + endpoint: + path: /en/about/annual-report/annual-report-2009-en.pdf + method: GET +- name: 2008 Complete Report + endpoint: + path: /en/about/annual-report/annual-report-2008-en.pdf + method: GET +- name: 2006 – 2007 + endpoint: + path: /en/about/annual-report/annual-report-2006-2007-en.pdf + method: GET +- name: 2005 – 2006 + endpoint: + path: /en/about/annual-report/annual-report-2005-2006-en.pdf + method: GET +- name: Accountability and Transparency Review + endpoint: + path: /resources/reviews/specific-reviews/atrt + method: GET + data_selector: records +- name: Competition, Consumer Trust and Consumer Choice Review + endpoint: + path: /resources/reviews/specific-reviews/cct + method: GET + data_selector: records +- name: Registration Directory Service Review + endpoint: + path: /resources/reviews/specific-reviews/whois + method: GET + data_selector: records +- name: Security, Stability, and Resiliency Review + endpoint: + path: /resources/reviews/specific-reviews/ssr + method: GET + data_selector: records +- name: Current Financial Data + endpoint: + path: /resources/pages/current-2012-02-25-en +- name: Historical Financial Data + endpoint: + path: /resources/pages/historical-2012-02-25-en +- name: General Financial Information + endpoint: + path: /resources/pages/general-2014-01-06-en +- name: Lobbying Disclosures & Contribution Reports + endpoint: + path: /resources/pages/lobbying-disclosures-contributions-2015-11-18-en +- name: Current Financial Data + endpoint: + path: /resources/pages/current-2012-02-25-en +- name: Historical Financial Data + endpoint: + path: /resources/pages/historical-2012-02-25-en +- name: General Financial Information + endpoint: + path: /resources/pages/general-2014-01-06-en +- name: Lobbying Disclosures & Contribution Reports + endpoint: + path: /resources/pages/lobbying-disclosures-contributions-2015-11-18-en +- name: RFP_NomCom_Recruiting_Services_2025 + endpoint: + path: /en/announcements/details/icann-request-for-proposal-nomcom-recruiting-services-15-09-2025-en + method: GET + data_selector: data +- name: RFP_Community_Priority_Evaluation + endpoint: + path: /en/announcements/details/icann-request-for-proposal-community-priority-evaluation-20-08-2025-en + method: GET + data_selector: data +- name: RFI_New_gTLD_Program_Next_Round_Auctions + endpoint: + path: /en/announcements/details/icann-rfi-new-gtld-program-next-round-auctions-18-08-2025-en + method: GET + data_selector: data +- name: RFI_Geographic_Names_Panel_Reserved_Names_Panel + endpoint: + path: /en/announcements/details/icann-request-for-information-geographic-names-panel-and-reserved-names-panel-18-08-2025-en + method: GET + data_selector: data +- name: RFI_Evaluator_Panels_String_Similarity_Variant_Justification + endpoint: + path: /en/announcements/details/icann-rfi-evaluator-panels-for-string-similarity-and-variant-justification-20-06-2025-en + method: GET + data_selector: data +- name: RFP_Interpretation_Equipment_Technical_Support + endpoint: + path: /en/announcements/details/icann-request-for-proposal-interpretation-equipment-and-technical-support-03-06-2025-en + method: GET + data_selector: data +- name: RFP_Internal_Audit_Services + endpoint: + path: /en/announcements/details/icann-request-for-proposal-internal-audit-services-14-04-2025-en + method: GET + data_selector: data +- name: closed_rfps_2025 + endpoint: + path: /closed_rfps/2025 + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2024 + endpoint: + path: /closed_rfps/2024 + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_investment_advisor + endpoint: + path: /closed_rfps/investment_advisor + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_domain_name_consumer_surveys + endpoint: + path: /closed_rfps/domain_name_consumer_surveys + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_global_tmc + endpoint: + path: /closed_rfps/global_tmc + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_intranet_application + endpoint: + path: /closed_rfps/intranet_application + method: GET + data_selector: rfps + params: {} +- name: NomCom Recruiting Services 2025 + endpoint: + path: /en/announcements/details/icann-request-for-proposal-nomcom-recruiting-services-15-09-2025-en + method: GET + data_selector: records + params: + opened: 15 September 2025 + deadline: 17 October 2025 +- name: Community Priority Evaluation (CPE) + endpoint: + path: /en/announcements/details/icann-request-for-proposal-community-priority-evaluation-20-08-2025-en + method: GET + data_selector: records + params: + opened: 20 August 2025 + deadline: 13 October 2025 +- name: New gTLD Program Next Round Auctions + endpoint: + path: /en/announcements/details/icann-rfi-new-gtld-program-next-round-auctions-18-08-2025-en + method: GET + data_selector: records + params: + opened: 18 August 2025 + deadline: 3 October 2025 +- name: Geographic Names Panel and Reserved Names Panel + endpoint: + path: /en/announcements/details/icann-request-for-information-geographic-names-panel-and-reserved-names-panel-18-08-2025-en + method: GET + data_selector: records + params: + opened: 18 August 2025 + deadline: 3 October 2025 +- name: Evaluator Panels for String Similarity and Variant Justification + endpoint: + path: /en/announcements/details/icann-rfi-evaluator-panels-for-string-similarity-and-variant-justification-20-06-2025-en + method: GET + data_selector: records + params: + opened: 20 June 2025 + deadline: 11 August 2025 +- name: Interpretation Equipment and Technical Support + endpoint: + path: /en/announcements/details/icann-request-for-proposal-interpretation-equipment-and-technical-support-03-06-2025-en + method: GET + data_selector: records + params: + opened: 3 June 2025 + deadline: 11 July 2025 +- name: Internal Audit Services + endpoint: + path: /en/announcements/details/icann-request-for-proposal-internal-audit-services-14-04-2025-en + method: GET + data_selector: records + params: + opened: 14 April 2025 + deadline: 19 May 2025 +- name: RFPs + endpoint: + path: /rfps + method: GET + data_selector: rfps + params: {} +- name: 2025 Closed RFPs + endpoint: + path: /2025/closed + method: GET + data_selector: rfps +- name: 2024 Closed RFPs + endpoint: + path: /2024/closed + method: GET + data_selector: rfps +- name: RFI + endpoint: + path: /rfi + method: GET + data_selector: responses + params: + opened: 12 April 2023 + deadline: 5 May 2023 +- name: RFP + endpoint: + path: /rfp + method: GET + data_selector: proposals + params: + opened: 20 March 2023 + deadline: 23 April 2023 +- name: RFQ + endpoint: + path: /rfq + method: GET + data_selector: quotations + params: + opened: 25 January 2023 + deadline: 9 February 2023 +- name: ICANN80 RFP + endpoint: + path: /icann80-rfp + method: GET + data_selector: RFPs + params: + opened: 16 November 2023 + deadline: 19 January 2024 +- name: Internal Audit Services RFI + endpoint: + path: /internal-audit-services-rfi + method: GET + data_selector: RFIs + params: + opened: 13 November 2023 + deadline: 6 December 2023 +- name: Registry System Testing RFP + endpoint: + path: /registry-system-testing-rfp + method: GET + data_selector: RFPs + params: + opened: 13 October 2023 + deadline: 27 October 2023 +- name: IMRS Cluster Colocation RFP + endpoint: + path: /imrs-cluster-colocation-rfp + method: GET + data_selector: RFPs + params: + opened: 9 October 2023 + deadline: 3 November 2023 +- name: IMRS Cluster Connectivity RFP + endpoint: + path: /imrs-cluster-connectivity-rfp + method: GET + data_selector: RFPs + params: + opened: 9 October 2023 + deadline: 3 November 2023 +- name: gTLD Application Lifecycle System RFP + endpoint: + path: /gtld-application-lifecycle-system-rfp + method: GET + data_selector: RFPs + params: + opened: 14 August 2023 + deadline: 1 September 2023 +- name: Middle East Domain Name Industry Study RFP + endpoint: + path: /middle-east-domain-name-industry-study-rfp + method: GET + data_selector: RFPs + params: + opened: 8 June 2023 + deadline: 17 July 2023 +- name: The Grant Program RFP + endpoint: + path: /grant-program-rfp + method: GET + data_selector: RFPs + params: + opened: 5 June 2023 + deadline: 7 July 2023 +- name: ICANN CEO Search Recruiting Services RFP + endpoint: + path: /icann-ceo-search-recruiting-services-rfp + method: GET + data_selector: RFPs + params: + opened: 22 June 2023 + deadline: 14 July 2023 +- name: 2022 Closed RFPs + endpoint: + path: /en/announcements/details/icann-request-for-proposal-software-engineering-staff-augmentation-21-12-2022-en + method: GET + data_selector: records + params: + open_date: 21 December 2022 + deadline: 26 January 2023 +- name: NomCom Recruiting Services RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-nominating-committee-recruiting-services-31-08-2022-en + method: GET + data_selector: records + params: + open_date: 31 August 2022 + deadline: 10 October 2022 +- name: PTI SOC2 & SOC3 Audits RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-rfp-pti-soc2-soc3-audits-08-08-2022-en + method: GET + data_selector: records + params: + open_date: 8 August 2022 + deadline: 20 September 2022 +- name: Africa Domain Name System Study 2022 RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-rfp-africa-domain-name-system-study-2022-27-06-2022-en + method: GET + data_selector: records + params: + open_date: 27 June 2022 + deadline: 8 August 2022 +- name: IMRS Cluster (Africa) Colocation RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-imrs-cluster-africa-colocation-23-03-2022-en + method: GET + data_selector: records + params: + open_date: 23 March 2022 + deadline: 20 April 2022 +- name: IMRS Cluster (Africa) Connectivity RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-imrs-cluster-africa-connectivity-23-03-2022-en + method: GET + data_selector: records + params: + open_date: 23 March 2022 + deadline: 20 April 2022 +- name: Server Refresh 2022 RFQ + endpoint: + path: /en/announcements/details/icann-request-for-quotation-rfq-server-refresh-2022-15-03-2022-en + method: GET + data_selector: records + params: + open_date: 15 March 2022 + deadline: 12 April 2022 +- name: Network Equipment Refresh 2022 RFQ + endpoint: + path: /en/announcements/details/icann-request-for-quotation-rfq-network-equipment-refresh-2022-15-03-2022-en + method: GET + data_selector: records + params: + open_date: 15 March 2022 + deadline: 12 April 2022 +- name: Top-Level Domain Operating Model Study RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-top-level-domain-operating-model-study-04-03-2022-en + method: GET + data_selector: records + params: {} +- name: 2022 Closed RFPs + endpoint: + path: /en/announcements/details/icann-request-for-proposal-software-engineering-staff-augmentation-21-12-2022-en + method: GET + data_selector: records + params: + incremental: updated_at +- name: NomCom Recruiting Services RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-nominating-committee-recruiting-services-31-08-2022-en + method: GET + data_selector: records + params: {} +- name: PTI SOC2 & SOC3 Audits RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-rfp-pti-soc2-soc3-audits-08-08-2022-en + method: GET + data_selector: records + params: {} +- name: Africa Domain Name System Study 2022 RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-rfp-africa-domain-name-system-study-2022-27-06-2022-en + method: GET + data_selector: records + params: {} +- name: IMRS Cluster (Africa) Colocation RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-imrs-cluster-africa-colocation-23-03-2022-en + method: GET + data_selector: records + params: {} +- name: IMRS Cluster (Africa) Connectivity RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-imrs-cluster-africa-connectivity-23-03-2022-en + method: GET + data_selector: records + params: {} +- name: Server Refresh 2022 RFQ + endpoint: + path: /en/announcements/details/icann-request-for-quotation-rfq-server-refresh-2022-15-03-2022-en + method: GET + data_selector: records + params: {} +- name: Network Equipment Refresh 2022 RFQ + endpoint: + path: /en/announcements/details/icann-request-for-quotation-rfq-network-equipment-refresh-2022-15-03-2022-en + method: GET + data_selector: records + params: {} +- name: Top-Level Domain Operating Model Study RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-top-level-domain-operating-model-study-04-03-2022-en + method: GET + data_selector: records + params: {} +- name: ICANN Requests for Proposals + endpoint: + path: /api/icann/rfps + method: GET + data_selector: rfps + params: {} +- name: closed_rfps + endpoint: + path: /en/announcements + method: GET + data_selector: rfps + params: {} +- name: gTLD Program RFP + endpoint: + path: /rfp/gTLD_Program + method: GET + data_selector: responses + params: + opened: 4 March 2022 + deadline: 4 April 2022 +- name: ICANN75 Vendor Services RFP + endpoint: + path: /rfp/ICANN75_Vendor_Services + method: GET + data_selector: responses + params: + opened: 25 February 2022 + deadline: 18 March 2022 +- name: DEI Consulting Services RFP + endpoint: + path: /rfp/DEI_Consulting_Services + method: GET + data_selector: responses + params: + opened: 14 January 2022 + deadline: 11 February 2022 +- name: End User Survey RFP + endpoint: + path: /rfp/End_User_Survey + method: GET + data_selector: responses + params: + opened: 14 January 2022 + deadline: 7 February 2022 +- name: closed_rfps + endpoint: + path: /news/announcement-2019-12-23-en + method: GET + data_selector: records +- name: open_rfps + endpoint: + path: /news/announcement-2019-12-23-en + method: GET + data_selector: records +- name: 2021_closed_rfps + endpoint: + path: /en/announcements/closed-rfps/2021 + method: GET + data_selector: rfps + params: {} +- name: 2020_closed_rfps + endpoint: + path: /en/announcements/closed-rfps/2020 + method: GET + data_selector: rfps + params: {} +- name: RFP EBERO Services + endpoint: + path: /news/announcement-2018-10-17-en + method: GET + data_selector: records + params: {} +- name: RFP Meetings Shipping and Logistics + endpoint: + path: /news/announcement-2018-10-09-en + method: GET + data_selector: records + params: {} +- name: ICANN65 Vendor Services RFP + endpoint: + path: /news/announcement-2018-09-21-en + method: GET + data_selector: records + params: {} +- name: RFP DNSSEC KSK Management Tools + endpoint: + path: /news/announcement-2018-09-12-en + method: GET + data_selector: records + params: {} +- name: RFI Meetings Shipping and Logistics + endpoint: + path: /news/announcement-2018-08-31-en + method: GET + data_selector: records + params: {} +- name: ICANN64 Vendor Services RFP + endpoint: + path: /news/announcement-2018-08-06-en + method: GET + data_selector: records + params: {} +- name: RFP ccNSO Review + endpoint: + path: /news/announcement-2018-04-26-en + method: GET + data_selector: records + params: {} +- name: RFP Open Data Platform + endpoint: + path: /news/announcement-2018-03-12-en + method: GET + data_selector: records + params: {} +- name: ICANN63 Vendor Services RFP + endpoint: + path: /news/announcement-2018-02-16-en + method: GET + data_selector: records + params: {} +- name: RFP Rights Protection Mechanisms Survey + endpoint: + path: /news/announcement-2018-01-29-en + method: GET + data_selector: records + params: {} +- name: rfq_server_equipment_refresh_2020 + endpoint: + path: /news/announcement-2019-12-23-en + method: GET + data_selector: RFPs + params: {} +- name: rfq_network_equipment_refresh_2020 + endpoint: + path: /news/announcement-2-2019-12-23-en + method: GET + data_selector: RFPs + params: {} +- name: rfp_imrs_cluster_singapore_colocation + endpoint: + path: /news/announcement-3-2019-12-23-en + method: GET + data_selector: RFPs + params: {} +- name: rfp_imrs_cluster_singapore_connectivity + endpoint: + path: /news/announcement-4-2019-12-23-en + method: GET + data_selector: RFPs + params: {} +- name: rfp_registrar_registry_compliance_audit_services + endpoint: + path: /news/announcement-2-2019-11-27-en + method: GET + data_selector: RFPs + params: {} +- name: icann68_vendor_services + endpoint: + path: /news/announcement-2019-10-10-en + method: GET + data_selector: RFPs + params: {} +- name: rfi_compliance_audit_services + endpoint: + path: /news/announcement-2-2019-09-27-en + method: GET + data_selector: RFPs + params: {} +- name: rfp_retirement_plan_fiduciary_advisor + endpoint: + path: /news/announcement-2019-07-24-en + method: GET + data_selector: RFPs + params: {} +- name: icann67_vendor_services + endpoint: + path: /news/announcement-2019-07-23-en + method: GET + data_selector: RFPs + params: {} +- name: rfp_name_collision_analysis_project_study_1 + endpoint: + path: /news/announcement-2019-07-22-en + method: GET + data_selector: RFPs + params: {} +- name: rfp_technical_compliance_monitoring_system + endpoint: + path: /news/announcement-2019-04-10-en + method: GET + data_selector: RFPs + params: {} +- name: icann66_vendor_services + endpoint: + path: /news/announcement-2019-02-07-en + method: GET + data_selector: RFPs + params: {} +- name: 2018 Closed RFPs + endpoint: + path: /news/announcement-2018-10-17-en + method: GET + data_selector: records + params: {} +- name: ICANN65 Vendor Services RFP + endpoint: + path: /news/announcement-2018-09-12-en + method: GET + data_selector: records + params: {} +- name: ICANN Meetings Shipping and Logistics + endpoint: + path: /news/announcement-2018-10-09-en + method: GET + data_selector: records + params: {} +- name: DNSSEC KSK Management Tools + endpoint: + path: /news/announcement-2018-09-12-en + method: GET + data_selector: records + params: {} +- name: ICANN's Open Data Platform + endpoint: + path: /news/announcement-2018-03-12-en + method: GET + data_selector: records + params: {} +- name: Rights Protection Mechanisms Survey + endpoint: + path: /news/announcement-2018-01-29-en + method: GET + data_selector: records + params: {} +- name: ICANN62 Vendor Services RFP + endpoint: + path: /icann62/vendor-services + method: GET + data_selector: proposals + params: + opened: 17 November 2017 + deadline: 15 December 2017 +- name: ICANN People Survey RFP + endpoint: + path: /icann-people-survey + method: GET + data_selector: proposals + params: + opened: 8 November 2017 + deadline: 13 December 2017 +- name: ICANN Engineering & IT Outsourcing RFP + endpoint: + path: /icann-engineering-it-outsourcing + method: GET + data_selector: proposals + params: + opened: 8 November 2017 + deadline: 7 December 2017 +- name: Technical Compliance Monitoring System RFP + endpoint: + path: /technical-compliance-monitoring + method: GET + data_selector: proposals + params: + opened: 6 November 2017 + deadline: 4 December 2017 +- name: Address Validation Solutions RFI + endpoint: + path: /address-validation-solutions + method: GET + data_selector: proposals + params: + opened: 26 October 2017 + deadline: 27 November 2017 +- name: gTLD Marketplace Health Index Assessment RFP + endpoint: + path: /gtld-marketplace-health-index-assessment + method: GET + data_selector: proposals + params: + opened: 22 September 2017 + deadline: 30 October 2017 +- name: Registrar Data Escrow Services RFP + endpoint: + path: /registrar-data-escrow-services + method: GET + data_selector: proposals + params: + opened: 17 August 2017 + deadline: 6 October 2017 +- name: Human Rights Impact Assessment RFP + endpoint: + path: /human-rights-impact-assessment + method: GET + data_selector: proposals + params: + opened: 15 August 2017 + deadline: 8 September 2017 +- name: PTI Service Organization Control Audits RFP + endpoint: + path: /pti-soc-audits + method: GET + data_selector: proposals + params: + opened: 11 August 2017 + deadline: 8 September 2017 +- name: ICANN61 Vendor Services RFP + endpoint: + path: /icann61/vendor-services + method: GET + data_selector: proposals + params: + opened: 31 July 2017 + deadline: 18 August 2017 +- name: SSAC Organizational Review RFP + endpoint: + path: /ssac-organizational-review + method: GET + data_selector: proposals + params: + opened: 7 July 2017 + deadline: 4 August 2017 +- name: RSSAC Organizational Review RFP + endpoint: + path: /rssac-organizational-review + method: GET + data_selector: proposals + params: + opened: 5 June 2017 + deadline: 10 July 2017 +- name: NomCom Review RFP + endpoint: + path: /nomcom-review + method: GET + data_selector: proposals + params: + opened: 19 January 2017 +- name: NomCom Assessment + endpoint: + path: /nomcom-assessment + method: GET + data_selector: results + params: + opened: 19 January 2017 + deadline: 17 February 2017 +- name: Ombudsman Assessment + endpoint: + path: /ombudsman-assessment + method: GET + data_selector: results + params: + opened: 9 January 2017 + deadline: 31 January 2017 +- name: ICANN62 Vendor Services RFP + endpoint: + path: /icann62/vendor-services-rfp + method: GET + data_selector: records + params: + opened: 17 November 2017 + deadline: 15 December 2017 +- name: ICANN People Survey RFP + endpoint: + path: /icann-people-survey-rfp + method: GET + data_selector: records + params: + opened: 8 November 2017 + deadline: 13 December 2017 +- name: ICANN Engineering & IT Outsourcing RFP + endpoint: + path: /icann-engineering-it-outsourcing-rfp + method: GET + data_selector: records + params: + opened: 8 November 2017 + deadline: 7 December 2017 +- name: Technical Compliance Monitoring System RFP + endpoint: + path: /technical-compliance-monitoring-system-rfp + method: GET + data_selector: records + params: + opened: 6 November 2017 + deadline: 4 December 2017 +- name: Address Validation Solutions RFI + endpoint: + path: /address-validation-solutions-rfi + method: GET + data_selector: records + params: + opened: 26 October 2017 + deadline: 27 November 2017 +- name: gTLD Marketplace Health Index Assessment RFP + endpoint: + path: /gtld-marketplace-health-index-assessment-rfp + method: GET + data_selector: records + params: + opened: 22 September 2017 + deadline: 30 October 2017 +- name: ICANN Designated Agent for Registrar Data Escrow Services RFP + endpoint: + path: /icann-designated-agent-rde-services-rfp + method: GET + data_selector: records + params: + opened: 17 August 2017 + deadline: 6 October 2017 +- name: Human Rights Impact Assessment RFP + endpoint: + path: /human-rights-impact-assessment-rfp + method: GET + data_selector: records + params: + opened: 15 August 2017 + deadline: 8 September 2017 +- name: PTI Service Organization Control Audits RFP + endpoint: + path: /pti-service-organization-control-audits-rfp + method: GET + data_selector: records + params: + opened: 11 August 2017 + deadline: 8 September 2017 +- name: ICANN61 Vendor Services RFP + endpoint: + path: /icann61/vendor-services-rfp + method: GET + data_selector: records + params: + opened: 31 July 2017 + deadline: 18 August 2017 +- name: SSAC Organizational Review RFP + endpoint: + path: /ssac-organizational-review-rfp + method: GET + data_selector: records + params: + opened: 7 July 2017 + deadline: 4 August 2017 +- name: RSSAC Organizational Review RFP + endpoint: + path: /rssac-organizational-review-rfp + method: GET + data_selector: records + params: + opened: 5 June 2017 + deadline: 10 July 2017 +- name: NomCom Review RFP + endpoint: + path: /nomcom-review-rfp + method: GET + data_selector: records +- name: 2016 Closed RFPs + endpoint: + path: /news/announcement-2-2016-12-12-en + method: GET + data_selector: records + params: {} +- name: Managed Print Services RFP + endpoint: + path: /news/announcement-2016-11-29-en + method: GET + data_selector: records + params: {} +- name: DNS Abuse Study + endpoint: + path: /news/announcement-2016-08-02-en + method: GET + data_selector: records + params: {} +- name: Content Strategy RFP + endpoint: + path: /news/announcement-2016-04-14-en + method: GET + data_selector: records + params: {} +- name: LA Copiers RFQ + endpoint: + path: /news/announcement-2016-04-07-en + method: GET + data_selector: records + params: {} +- name: Router Refresh + endpoint: + path: /news/announcement-2-2016-02-29-en + method: GET + data_selector: records + params: {} +- name: Document Management System RFP + endpoint: + path: /news/announcement-2016-02-19-en + method: GET + data_selector: records + params: {} +- name: Print Services RFP + endpoint: + path: /news/announcement-2016-02-03-en + method: GET + data_selector: records + params: {} +- name: Review of the At-Large Community + endpoint: + path: /news/announcement-2016-01-21-en + method: GET + data_selector: records + params: {} +- name: NomCom Review RFP + endpoint: + path: /NomComReviewRFP + method: GET + data_selector: records + params: + incremental: opened +- name: Ombudsman Assessment RFP + endpoint: + path: /OmbudsmanAssessmentRFP + method: GET + data_selector: records + params: {} +- name: RFP_Real_time_Transcription_Services + endpoint: + path: /news/announcement-2-2016-12-12-en + method: GET + data_selector: records +- name: Managed_Print_Services_RFP + endpoint: + path: /news/announcement-2016-11-29-en + method: GET + data_selector: records +- name: DNS_Abuse_Study + endpoint: + path: /news/announcement-2016-08-02-en + method: GET + data_selector: records +- name: Content_Strategy_RFP + endpoint: + path: /news/announcement-2016-04-14-en + method: GET + data_selector: records +- name: LA_Copiers_RFQ + endpoint: + path: /news/announcement-2016-04-07-en + method: GET + data_selector: records +- name: Router_Refresh_RFQ + endpoint: + path: /news/announcement-2-2016-02-29-en + method: GET + data_selector: records +- name: Document_Management_System_RFP + endpoint: + path: /news/announcement-2016-02-19-en + method: GET + data_selector: records +- name: Print_Services_RFP + endpoint: + path: /news/announcement-2016-02-03-en + method: GET + data_selector: records +- name: Review_of_At_Large_Community + endpoint: + path: /news/announcement-2016-01-21-en + method: GET + data_selector: records +- name: oracle_cloud_implementation_services_rfp + endpoint: + path: /rfp/oracle-cloud-implementation-services + method: GET + data_selector: records + params: + opened: 14 December 2015 + deadline: 30 December 2015 +- name: dns_industry_study_africa + endpoint: + path: /rfp/dns-industry-study-africa + method: GET + data_selector: records + params: + opened: 10 December 2015 + deadline: 4 January 2016 +- name: latin_america_caribbean_dns_marketplace_study + endpoint: + path: /rfp/latin-america-caribbean-dns-marketplace-study + method: GET + data_selector: records + params: + opened: 25 September 2015 + deadline: 2 November 2015 +- name: trademark_clearinghouse_independent_review + endpoint: + path: /rfp/trademark-clearinghouse-independent-review + method: GET + data_selector: records + params: + opened: 7 August 2015 + deadline: 28 August 2015 +- name: erp_rfp + endpoint: + path: /rfp/enterprise-resource-planning + method: GET + data_selector: records + params: + opened: 30 June 2015 + deadline: 22 July 2015 +- name: procurement_application_rfp + endpoint: + path: /rfp/procurement-application + method: GET + data_selector: records + params: + opened: 30 June 2015 + deadline: 22 July 2015 +- name: reference_lgrs_for_second_level + endpoint: + path: /rfp/reference-lgrs-for-second-level + method: GET + data_selector: records + params: + opened: 5 June 2015 + deadline: 30 June 2015 +- name: root_stability_study + endpoint: + path: /rfp/root-stability-study + method: GET + data_selector: records + params: + opened: 5 June 2015 + deadline: 2 July 2015 +- name: singapore_office_fit_out_rfp + endpoint: + path: /rfp/singapore-office-fit-out + method: GET + data_selector: records + params: + opened: 19 May 2015 + deadline: 29 May 2015 +- name: meetings_microphone_request_for_quotation + endpoint: + path: /rfq/meetings-microphone + method: GET + data_selector: records + params: + opened: 14 May 2015 + deadline: 22 May 2015 +- name: kmf_security_system_upgrade_rfq + endpoint: + path: /rfq/kmf-security-system-upgrade + method: GET + data_selector: records + params: + opened: 8 May 2015 + deadline: 26 May 2015 +- name: intranet_portal_application_rfp + endpoint: + path: /rfp/intranet-portal-application + method: GET + data_selector: records + params: + opened: 4 April 2015 + deadline: 20 April 2015 +- name: insurance_brokerage_rfp + endpoint: + path: /rfp/insurance-brokerage + method: GET + data_selector: records + params: + opened: 31 March 2015 + deadline: 19 April 2015 +- name: Oracle Cloud Implementation Services RFP + endpoint: + path: /2015-12-14/oracle-cloud-implementation-services + method: GET + data_selector: details + params: + published: '2015-12-14' + deadline: '2015-12-30' +- name: Study About the Domain Name System (DNS) Industry in Africa + endpoint: + path: /2015-12-10/dns-africa-study + method: GET + data_selector: details + params: + published: '2015-12-10' + deadline: '2016-01-04' +- name: Latin America and Caribbean DNS Marketplace Study + endpoint: + path: /2015-09-25/lac-dns-study + method: GET + data_selector: details + params: + published: '2015-09-25' + deadline: '2015-11-02' +- name: Trademark Clearinghouse Independent Review + endpoint: + path: /2015-08-07/tmch-independent-review + method: GET + data_selector: details + params: + published: '2015-08-07' + deadline: '2015-08-28' +- name: Enterprise Resource Planning (ERP) RFP + endpoint: + path: /2015-06-30/erp-rfp + method: GET + data_selector: details + params: + published: '2015-06-30' + deadline: '2015-07-22' +- name: LGR Toolset RFP + endpoint: + path: /news/announcement-2-2015-03-19-en + method: GET + data_selector: records + params: {} +- name: Middle East DNS Study RFP + endpoint: + path: /news/announcement-2-2015-03-16-en + method: GET + data_selector: records + params: {} +- name: LGR Toolset RFP + endpoint: + path: /news/announcement-2-2015-03-19-en + method: GET + data_selector: records + params: + opened: 31 March 2015 + deadline: 19 April 2015 + awarded_to: Arthur J. Gallagher Insurance Brokers of California, Inc. +- name: Middle East DNS Study RFP + endpoint: + path: /news/announcement-2-2015-03-16-en + method: GET + data_selector: records + params: + opened: 16 March 2015 + deadline: 13 April 2015 + awarded_to: European Registry for Internet Domains +- name: closed_rfps_2014 + endpoint: + path: /news/closed_rfps_2014 + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2013 + endpoint: + path: /news/closed_rfps_2013 + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2012 + endpoint: + path: /news/closed_rfps_2012 + method: GET + data_selector: rfps + params: {} +- name: 2014 Closed RFPs + endpoint: + path: /news/announcement-2014-12-23-en + method: GET + data_selector: records + params: {} +- name: Travel Management RFP + endpoint: + path: /news/announcement-2014-10-08-en + method: GET + data_selector: records + params: {} +- name: Economic Study RFP + endpoint: + path: /news/announcement-2014-09-08-en + method: GET + data_selector: records + params: {} +- name: Office Supplies RFP + endpoint: + path: /news/announcement-2014-09-03-en + method: GET + data_selector: records + params: {} +- name: IANA Customer Satisfaction Survey RFP + endpoint: + path: /news/announcement-2014-06-23-en + method: GET + data_selector: records + params: {} +- name: closed_rfps_2011 + endpoint: + path: /en/news/rfps/closed-2011 + method: GET + data_selector: records +- name: closed_rfps_2010 + endpoint: + path: /en/news/rfps/closed-2010 + method: GET + data_selector: records +- name: closed_rfps_2009 + endpoint: + path: /en/news/rfps/closed-2009 + method: GET + data_selector: records +- name: closed_rfps_2008 + endpoint: + path: /en/news/rfps/closed-2008 + method: GET + data_selector: records +- name: closed_rfps_2007 + endpoint: + path: /en/news/rfps/closed-2007 + method: GET + data_selector: records +- name: closed_rfps_2006 + endpoint: + path: /en/news/rfps/closed-2006 + method: GET + data_selector: records +- name: closed_rfps_2004 + endpoint: + path: /en/news/rfps/closed-2004 + method: GET + data_selector: records +- name: closed_rfps_2003 + endpoint: + path: /en/news/rfps/closed-2003 + method: GET + data_selector: records +- name: closed_rfps_2002 + endpoint: + path: /en/news/rfps/closed-2002 + method: GET + data_selector: records +- name: closed_rfps_2001 + endpoint: + path: /en/news/rfps/closed-2001 + method: GET + data_selector: records +- name: closed_rfps_2011 + endpoint: + path: /en/news/rfps/2011-closed + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2010 + endpoint: + path: /en/news/rfps/2010-closed + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2009 + endpoint: + path: /en/news/rfps/2009-closed + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2008 + endpoint: + path: /en/news/rfps/2008-closed + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2007 + endpoint: + path: /en/news/rfps/2007-closed + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2006 + endpoint: + path: /en/news/rfps/2006-closed + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2004 + endpoint: + path: /en/news/rfps/2004-closed + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2003 + endpoint: + path: /en/news/rfps/2003-closed + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2002 + endpoint: + path: /en/news/rfps/2002-closed + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2001 + endpoint: + path: /en/news/rfps/2001-closed + method: GET + data_selector: rfps + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records +- name: Accountability Mechanisms + endpoint: + path: /en/news/in-focus/accountability/mechanisms + method: GET +- name: Document Disclosure + endpoint: + path: /en/about/transparency + method: GET +- name: Independent Review Process + endpoint: + path: /resources/pages/irp-2012-02-25-en + method: GET +- name: Request for Reconsideration + endpoint: + path: /groups/board/governance/reconsideration + method: GET +- name: Empowered Community + endpoint: + path: /ec + method: GET +- name: Employee Anonymous Hotline Policy and Procedures + endpoint: + path: /employee-anonymous-hotline-policy-procedures-whistleblower + method: GET +- name: Dispute Resolution + endpoint: + path: /en/help/dispute-resolution + method: GET +- name: Domain Name Dispute Resolution + endpoint: + path: /en/help/dndr + method: GET +- name: ICANN Lookup + endpoint: + path: https://lookup.icann.org/ + method: GET +- name: dispute_resolution + endpoint: + path: /en/help/dispute-resolution + method: GET + data_selector: data + params: {} +- name: whois_data_problem_report + endpoint: + path: /wdprs.internic.net/ + method: POST + data_selector: data + params: {} +- name: Dispute Resolution + endpoint: + path: /en/help/dispute-resolution + method: GET + data_selector: records +- name: Domain Name Transfer + endpoint: + path: /en/resources/registrars/transfers + method: GET + data_selector: records +- name: Unauthorized Transfer + endpoint: + path: /en/help/dndr/tdrp + method: GET + data_selector: records +- name: Trademark Infringement + endpoint: + path: /en/help/dndr/udrp + method: GET + data_selector: records +- name: report_problem + endpoint: + path: /help/name-collision/report-problems + method: GET +- name: guide_name_collision + endpoint: + path: /system/files/files/name-collision-mitigation-01aug14-en.pdf + method: GET +- name: faq_name_collision + endpoint: + path: /resources/pages/name-collision-it-pros-faqs-2014-08-01-en + method: GET +- name: name_collision_occurrence_management_framework + endpoint: + path: /system/files/files/name-collision-framework-30jul14-en.pdf + method: GET +- name: Privacy Policy + endpoint: + path: /en/data-protection/privacy-policy + method: GET +- name: New gTLD Program Personal Data Privacy Statement + endpoint: + path: /en/applicants/agb/program-privacy + method: GET +- name: Terms of Service + endpoint: + path: /en/data-protection/terms-of-service + method: GET +- name: Cookies Policy + endpoint: + path: /en/data-protection/cookies-policy + method: GET +- name: Notice of Applicant Privacy + endpoint: + path: /en/data-protection/notice-of-applicant-privacy + method: GET +- name: Guide to Name Collision Identification and Mitigation for IT Professionals + endpoint: + path: /en/system/files/files/name-collision-mitigation-01aug14-en.pdf + method: GET +- name: 'Frequently Asked Questions: Name Collision for IT Professionals' + endpoint: + path: /resources/pages/name-collision-it-pros-faqs-2014-08-01-en + method: GET +- name: Name Collision Occurrence Management Framework + endpoint: + path: /en/system/files/files/name-collision-framework-30jul14-en.pdf + method: GET +- name: Privacy Policy + endpoint: + path: /en/data-protection/privacy-policy + method: GET +- name: New gTLD Program Personal Data Privacy Statement + endpoint: + path: /en/applicants/agb/program-privacy + method: GET +- name: Terms of Service + endpoint: + path: /en/data-protection/terms-of-service + method: GET +- name: Cookies Policy + endpoint: + path: /en/data-protection/cookies-policy + method: GET +- name: Notice of Applicant Privacy + endpoint: + path: /en/data-protection/notice-of-applicant-privacy + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: announcements + endpoint: + path: /en/announcements + method: GET + data_selector: results + params: {} +- name: open_proceedings + endpoint: + path: /en/public-comment/open-proceedings + method: GET + data_selector: proceedings + params: {} +- name: closed_proceedings + endpoint: + path: /en/public-comment/closed-proceedings + method: GET + data_selector: proceedings + params: {} +- name: pending_reports + endpoint: + path: /en/public-comment/pending-reports + method: GET + data_selector: reports + params: {} +- name: announcements + endpoint: + path: /en/announcements + method: GET + data_selector: results +- name: reports + endpoint: + path: /en/ceo-corner/ceo-reports-to-the-board + method: GET + data_selector: reports + params: {} +- name: members + endpoint: + path: /en/rssac/members + method: GET +- name: faq + endpoint: + path: /en/rssac/faq + method: GET +- name: meetings + endpoint: + path: /en/rssac/meetings + method: GET +- name: publications + endpoint: + path: /en/rssac/publications + method: GET +- name: Open Proceedings + endpoint: + path: /en/public-comment/open-proceedings + method: GET +- name: Upcoming Proceedings + endpoint: + path: /en/public-comment/upcoming-proceedings + method: GET +- name: Closed Proceedings + endpoint: + path: /en/public-comment/closed-proceedings + method: GET +- name: Recent Submissions + endpoint: + path: /en/public-comment/recent-submissions + method: GET +- name: CEO Report + endpoint: + path: /en/ceo-corner/ceo-reports-to-the-board + method: GET + data_selector: reports + params: {} +- name: About the SSAC + endpoint: + path: /en/ssac/about + method: GET + data_selector: content + params: {} +- name: Current Members + endpoint: + path: /en/ssac/members + method: GET + data_selector: members + params: {} +- name: Publications + endpoint: + path: /en/ssac/publications + method: GET + data_selector: publications + params: {} +- name: SSAC Activities + endpoint: + path: /en/ssac/activities + method: GET + data_selector: activities + params: {} +- name: GE-015 + endpoint: + path: /en/files/government-engagement-ge/ge-015-10-09-2025-en.pdf + method: GET + data_selector: records +- name: GE-014 + endpoint: + path: /en/files/government-engagement-ge/ge-014-15-12-2023-en.pdf + method: GET + data_selector: records +- name: GE-013 + endpoint: + path: /en/files/government-engagement-ge/ge-013-12-07-2023-en.pdf + method: GET + data_selector: records +- name: GE-012 + endpoint: + path: /en/files/government-engagement-ge/ge-012-13-03-2023-en.pdf + method: GET + data_selector: records +- name: GE-011 + endpoint: + path: /en/files/government-engagement-ge/ge-011-06-06-2022-en.pdf + method: GET + data_selector: records +- name: GE-010 + endpoint: + path: /en/files/government-engagement-ge/ge-010-31jan22-en.pdf + method: GET + data_selector: records +- name: GE-009 + endpoint: + path: /en/files/government-engagement-ge/ge-009-03jun21-en.pdf + method: GET + data_selector: records +- name: GE-008 + endpoint: + path: /en/files/government-engagement-ge/ge-008-28may21-en.pdf + method: GET + data_selector: records +- name: GE-007 + endpoint: + path: /en/files/government-engagement-ge/ge-007-29apr21-en.pdf + method: GET + data_selector: records +- name: GE-006 + endpoint: + path: /en/files/government-engagement-ge/ge-006-19jan21-en.pdf + method: GET + data_selector: records +- name: GE-005 + endpoint: + path: /en/files/government-engagement-ge/ge-005-15jul20-en.pdf + method: GET + data_selector: records +- name: GE-004 + endpoint: + path: /en/files/government-engagement-ge/ge-004-15jul20-en.pdf + method: GET + data_selector: records +- name: GE-003 + endpoint: + path: /en/files/government-engagement-ge/ge-003-07may20-en.pdf + method: GET + data_selector: records +- name: GE-002 + endpoint: + path: /en/files/government-engagement-ge/ge-002-03apr20-en.pdf + method: GET + data_selector: records +- name: GE-001 + endpoint: + path: /en/files/government-engagement-ge/ge-001-28feb20-en.pdf + method: GET + data_selector: records +- name: 2019-3 + endpoint: + path: /en/files/government-engagement-ge/legislative-regulatory-30jan19-en.pdf + method: GET + data_selector: records +- name: 2018-Q4 + endpoint: + path: /en/files/government-engagement-ge/legislative-regulatory-fy18-28aug18-en.pdf + method: GET + data_selector: records +- name: 2018-Q3 + endpoint: + path: /en/files/government-engagement-ge/legislative-regulatory-fy18-23apr18-en.pdf + method: GET + data_selector: records +- name: document_015 + endpoint: + path: /en/files/government-engagement-ge/ge-015-10-09-2025-en.pdf + method: GET + data_selector: document + params: {} +- name: document_014 + endpoint: + path: /en/files/government-engagement-ge/ge-014-15-12-2023-en.pdf + method: GET + data_selector: document + params: {} +- name: document_013 + endpoint: + path: /en/files/government-engagement-ge/ge-013-12-07-2023-en.pdf + method: GET + data_selector: document + params: {} +- name: document_012 + endpoint: + path: /en/files/government-engagement-ge/ge-012-13-03-2023-en.pdf + method: GET + data_selector: document + params: {} +- name: document_011 + endpoint: + path: /en/files/government-engagement-ge/ge-011-06-06-2022-en.pdf + method: GET + data_selector: document + params: {} +- name: document_010 + endpoint: + path: /en/files/government-engagement-ge/ge-010-31jan22-en.pdf + method: GET + data_selector: document + params: {} +- name: document_009 + endpoint: + path: /en/files/government-engagement-ge/ge-009-03jun21-en.pdf + method: GET + data_selector: document + params: {} +- name: document_008 + endpoint: + path: /en/files/government-engagement-ge/ge-008-28may21-en.pdf + method: GET + data_selector: document + params: {} +- name: document_007 + endpoint: + path: /en/files/government-engagement-ge/ge-007-29apr21-en.pdf + method: GET + data_selector: document + params: {} +- name: document_006 + endpoint: + path: /en/files/government-engagement-ge/ge-006-19jan21-en.pdf + method: GET + data_selector: document + params: {} +- name: document_005 + endpoint: + path: /en/files/government-engagement-ge/ge-005-15jul20-en.pdf + method: GET + data_selector: document + params: {} +- name: document_004 + endpoint: + path: /en/files/government-engagement-ge/ge-004-15jul20-en.pdf + method: GET + data_selector: document + params: {} +- name: document_003 + endpoint: + path: /en/files/government-engagement-ge/ge-003-07may20-en.pdf + method: GET + data_selector: document + params: {} +- name: document_002 + endpoint: + path: /en/files/government-engagement-ge/ge-002-03apr20-en.pdf + method: GET + data_selector: document + params: {} +- name: document_001 + endpoint: + path: /en/files/government-engagement-ge/ge-001-28feb20-en.pdf + method: GET + data_selector: document + params: {} +- name: publications + endpoint: + path: /octo-publications + method: GET + data_selector: publications + params: {} +- name: registrant_information + endpoint: + path: /icann-acronyms-and-terms/en/G0101 + method: GET + data_selector: registrant + params: {} +- name: courses + endpoint: + path: /api/courses + method: GET + data_selector: courses +- name: registrant_info + endpoint: + path: /icann-acronyms-and-terms/en/G0101 + method: GET + data_selector: info + params: {} +- name: domain_name + endpoint: + path: /icann-acronyms-and-terms/en/G0168 + method: GET + data_selector: info + params: {} +- name: registrar_info + endpoint: + path: /icann-acronyms-and-terms/en/G0123 + method: GET + data_selector: info + params: {} +- name: ICANN Introduction + endpoint: + path: /learn/icann/#/curricula/59e886bb-f5b2-4e07-a565-f769099c853e + method: GET +- name: Registrant Basics + endpoint: + path: /learn/icann/#/online-courses/15c8a57c-9e5a-49bb-8b25-c36ab00a473c + method: GET +- name: DNS Fundamentals + endpoint: + path: /learn/icann/#/online-courses/53780f75-d6c7-41c4-850f-e32e37f2b3de + method: GET +- name: Policy Development Fundamentals + endpoint: + path: /learn/icann/#/online-courses/6bd2768c-3a4e-4946-a857-885a051e2124 + method: GET +- name: Unconscious Bias + endpoint: + path: /learn/icann/#/online-courses/364fbaa2-51c2-4eef-bc4e-37b245d8f67a + method: GET +- name: Constructive Dialog + endpoint: + path: /learn/icann/#/online-courses/cebe767d-4011-4494-b400-80da2c8d5c06 + method: GET +- name: courses + endpoint: + path: /courses + method: GET + data_selector: courses + params: {} +- name: courses_and_learnings + endpoint: + path: /zh/beginners/courses-and-learning + method: GET + data_selector: records +- name: Introduction à l’ICANN + endpoint: + path: /#/curricula/59e886bb-f5b2-4e07-a565-f769099c853e + method: GET + data_selector: course_details + params: {} +- name: Notions de base pour les titulaires de noms de domaine + endpoint: + path: /#/online-courses/15c8a57c-9e5a-49bb-8b25-c36ab00a473c + method: GET + data_selector: course_details + params: {} +- name: Les fondamentaux du système des noms de domaine + endpoint: + path: /#/online-courses/53780f75-d6c7-41c4-850f-e32e37f2b3de + method: GET + data_selector: course_details + params: {} +- name: Les fondamentaux de l’élaboration de politiques + endpoint: + path: /#/online-courses/6bd2768c-3a4e-4946-a857-885a051e2124 + method: GET + data_selector: course_details + params: {} +- name: Préjugés inconscients + endpoint: + path: /#/online-courses/364fbaa2-51c2-4eef-bc4e-37b245d8f67a + method: GET + data_selector: course_details + params: {} +- name: Dialogue constructif + endpoint: + path: /#/online-courses/cebe767d-4011-4494-b400-80da2c8d5c06 + method: GET + data_selector: course_details + params: {} +- name: courses + endpoint: + path: /courses + method: GET + data_selector: courses +- name: Introduction à l’ICANN + endpoint: + path: /learn.icann.org/#/curricula/59e886bb-f5b2-4e07-a565-f769099c853e + method: GET +- name: Notions de base pour les titulaires de noms de domaine + endpoint: + path: /learn.icann.org/#/online-courses/15c8a57c-9e5a-49bb-8b25-c36ab00a473c + method: GET +- name: Les fondamentaux du système des noms de domaine + endpoint: + path: /learn.icann.org/#/online-courses/53780f75-d6c7-41c4-850f-e32e37f2b3de + method: GET +- name: Les fondamentaux de l’élaboration de politiques + endpoint: + path: /learn.icann.org/#/online-courses/6bd2768c-3a4e-4946-a857-885a051e2124 + method: GET +- name: Préjugés inconscients + endpoint: + path: /learn.icann.org/#/online-courses/364fbaa2-51c2-4eef-bc4e-37b245d8f67a + method: GET +- name: Dialogue constructif + endpoint: + path: /learn.icann.org/#/online-courses/cebe767d-4011-4494-b400-80da2c8d5c06 + method: GET +- name: Find Your ICANN Group + endpoint: + path: /en/beginners/find-your-icann-group + method: GET +- name: courses + endpoint: + path: /api/courses + method: GET +- name: Find Your ICANN Group + endpoint: + path: /en/beginners/find-your-icann-group + method: GET +- name: ICANN's Technical Mission + endpoint: + path: /en/system/files/files/te-01-01jul24-en.pdf + method: GET +- name: DNS101 + endpoint: + path: /en/system/files/files/te-02-01jul24-en.pdf + method: GET +- name: DNSSEC101 + endpoint: + path: /en/system/files/files/te-03-01jul24-en.pdf + method: GET +- name: Advanced DNS + endpoint: + path: /en/system/files/files/te-04-01jul24-en.pdf + method: GET +- name: Advanced DNSSEC + endpoint: + path: /en/system/files/files/te-05-01jul24-en.pdf + method: GET +- name: Registry Operations for ccTLDs + endpoint: + path: /en/system/files/files/te-06-01jul24-en.pdf + method: GET +- name: 'OSINT: Fighting DNS Abuse (DNS Abuse for LEAs)' + endpoint: + path: /en/system/files/files/te-07-01jul24-en.pdf + method: GET +- name: 'DNS Abuse: Threats and Mitigation' + endpoint: + path: /en/system/files/files/te-08-01jul24-en.pdf + method: GET +- name: Introduction to RDAP for Domain Names Registrations + endpoint: + path: /en/system/files/files/te-09-01jul24-en.pdf + method: GET +- name: DNS Ecosystem Security + endpoint: + path: /en/system/files/files/te-10-01jul24-en.pdf + method: GET +- name: DNS for Internet Service Providers + endpoint: + path: /en/system/files/files/te-11-01jul24-en.pdf + method: GET +- name: Network Operation Security + endpoint: + path: /en/system/files/files/te-12-01jul24-en.pdf + method: GET +- name: 'UA: Email Address Internationalization (EAI)' + endpoint: + path: /en/system/files/files/te-13-01jul24-en.pdf + method: GET +- name: 'UA: Universal Acceptance for Java Developers' + endpoint: + path: /en/system/files/files/te-14-01jul24-en.pdf + method: GET +- name: 'Credential Management Lifecycle: Operational Best Practices' + endpoint: + path: /en/system/files/files/te-15-01jul24-en.pdf + method: GET +- name: ICANN's Technical Mission + endpoint: + path: /en/system/files/files/te-01-01jul24-en.pdf + method: GET +- name: DNS101 + endpoint: + path: /en/system/files/files/te-02-01jul24-en.pdf + method: GET +- name: DNSSEC101 + endpoint: + path: /en/system/files/files/te-03-01jul24-en.pdf + method: GET +- name: Advanced DNS + endpoint: + path: /en/system/files/files/te-04-01jul24-en.pdf + method: GET +- name: Advanced DNSSEC + endpoint: + path: /en/system/files/files/te-05-01jul24-en.pdf + method: GET +- name: Registry Operations for ccTLDs + endpoint: + path: /en/system/files/files/te-06-01jul24-en.pdf + method: GET +- name: 'OSINT: Fighting DNS Abuse (DNS Abuse for LEAs)' + endpoint: + path: /en/system/files/files/te-07-01jul24-en.pdf + method: GET +- name: 'DNS Abuse: Threats and Mitigation' + endpoint: + path: /en/system/files/files/te-08-01jul24-en.pdf + method: GET +- name: Introduction to RDAP for Domain Names Registrations + endpoint: + path: /en/system/files/files/te-09-01jul24-en.pdf + method: GET +- name: DNS Ecosystem Security + endpoint: + path: /en/system/files/files/te-10-01jul24-en.pdf + method: GET +- name: DNS for Internet Service Providers + endpoint: + path: /en/system/files/files/te-11-01jul24-en.pdf + method: GET +- name: Network Operation Security + endpoint: + path: /en/system/files/files/te-12-01jul24-en.pdf + method: GET +- name: 'UA: Email Address Internationalization (EAI)' + endpoint: + path: /en/system/files/files/te-13-01jul24-en.pdf + method: GET +- name: 'UA: Universal Acceptance for Java Developers' + endpoint: + path: /en/system/files/files/te-14-01jul24-en.pdf + method: GET +- name: 'Credential Management Lifecycle: Operational Best Practices' + endpoint: + path: /en/system/files/files/te-15-01jul24-en.pdf + method: GET +- name: webinar_series + endpoint: + path: /beginners/virtual-program-webinar-series + method: GET + data_selector: recordings + params: {} +- name: 'ICANN for Beginners: An Introduction' + endpoint: + path: /recordings/introduction + method: GET + data_selector: recordings + params: {} +- name: 'ICANN for Beginners: Universal Acceptance' + endpoint: + path: /recordings/universal_acceptance + method: GET + data_selector: recordings + params: {} +- name: 'ICANN for Beginners: Policy and Advice Development' + endpoint: + path: /recordings/policy_advice_development + method: GET + data_selector: recordings + params: {} +- name: application_dates + endpoint: + path: /resources/pages/nextgen-application-dates + method: GET +- name: eligibility_criteria + endpoint: + path: /resources/pages/nextgen-eligibility + method: GET +- name: announcements + endpoint: + path: /en/announcements + method: GET +- name: announcements + endpoint: + path: /en/announcements + method: GET + data_selector: results + params: {} +- name: application_dates + endpoint: + path: /resources/pages/nextgen-application-dates + method: GET + data_selector: application_dates + params: {} +- name: eligibility_criteria + endpoint: + path: /resources/pages/nextgen-eligibility + method: GET + data_selector: eligibility + params: {} +- name: selection_criteria + endpoint: + path: /resources/pages/nextgen-selection-criteria + method: GET + data_selector: selection_criteria + params: {} +- name: announcements + endpoint: + path: /en/announcements + method: GET + data_selector: results + params: {} +- name: announcements + endpoint: + path: /en/announcements + method: GET + data_selector: results +- name: press_release + endpoint: + path: /resources/press-material + method: GET + data_selector: press_releases + params: {} +- name: press_release_2025_10_15 + endpoint: + path: /resources/press-material/release-2025-10-15-en + method: GET +- name: press_release_2025_06_10 + endpoint: + path: /resources/press-material/release-2025-06-10-en + method: GET +- name: press_release_2025_05_28 + endpoint: + path: /resources/press-material/release-2025-05-28-en + method: GET +- name: press_release_2025_05_20 + endpoint: + path: /resources/press-material/release-2025-05-20-en + method: GET +- name: press_release_2025_04_28 + endpoint: + path: /resources/press-material/release-2025-04-28-en + method: GET +- name: press_release_2025_02_27 + endpoint: + path: /resources/press-material/release-2025-02-27-en + method: GET +- name: press_release_2025_02_18 + endpoint: + path: /resources/press-material/release-2025-02-18-en + method: GET +- name: Africa Regional Reports + endpoint: + path: /en/system/files/files/annual-africa-regional-report-30jun21-en.pdf + method: GET + data_selector: records +- name: Asia Pacific Regional Reports + endpoint: + path: /en/system/files/files/apac-regional-report-30jun21-en.pdf + method: GET + data_selector: records +- name: Eastern Europe and Central Asia Regional Reports + endpoint: + path: /en/system/files/files/annual-eeca-regional-report-30jun21-en.pdf + method: GET + data_selector: records +- name: Europe Regional Reports + endpoint: + path: /en/system/files/files/annual-europe-regional-report-30jun21-en.pdf + method: GET + data_selector: records +- name: Latin America and the Caribbean Regional Reports + endpoint: + path: /en/system/files/files/lac-regional-report-30jun21-en.pdf + method: GET + data_selector: records +- name: Middle East Regional Reports + endpoint: + path: /en/system/files/files/annual-middle-east-regional-report-30jun21-en.pdf + method: GET + data_selector: records +- name: North America Regional Reports + endpoint: + path: /en/system/files/files/annual-na-regional-report-30jun21-en.pdf + method: GET + data_selector: records +- name: Africa Regional Plan + endpoint: + path: /en/system/files/files/africa-regional-plan-fy21-25-01jul20-en.pdf + method: GET +- name: Africa Regional Report + endpoint: + path: /en/system/files/files/annual-africa-regional-report-30jun21-en.pdf + method: GET +- name: APAC Regional Plan + endpoint: + path: /en/system/files/files/apac-regional-plan-fy21-achievements-fy22-highlights-31aug21-en.pdf + method: GET +- name: Asia Pacific Regional Report + endpoint: + path: /en/system/files/files/apac-regional-report-30jun21-en.pdf + method: GET +- name: EECA Regional Report + endpoint: + path: /en/system/files/files/annual-eeca-regional-report-30jun21-en.pdf + method: GET +- name: Europe Regional Report + endpoint: + path: /en/system/files/files/annual-europe-regional-report-30jun21-en.pdf + method: GET +- name: Latin American and the Caribbean Strategic Plan + endpoint: + path: /en/system/files/files/lac-strategic-plan-24nov21-en.pdf + method: GET +- name: Latin America and the Caribbean Regional Report + endpoint: + path: /en/system/files/files/lac-regional-report-30jun21-en.pdf + method: GET +- name: Middle East Regional Plan + endpoint: + path: /en/system/files/files/meac-regional-plan-fy21-25-26jun20-en.pdf + method: GET +- name: Middle East Regional Report + endpoint: + path: /en/system/files/files/annual-middle-east-regional-report-30jun21-en.pdf + method: GET +- name: North America Regional Engagement Plan + endpoint: + path: /en/system/files/files/na-engagement-plan-fy2021-2025-24aug21-en.pdf + method: GET +- name: North America Regional Report + endpoint: + path: /en/system/files/files/annual-na-regional-report-30jun21-en.pdf + method: GET +- name: Implementation Projects In Progress + endpoint: + path: /implementation/projects/in-progress + method: GET + data_selector: projects +- name: Implementation Projects In Queue + endpoint: + path: /implementation/projects/in-queue + method: GET + data_selector: projects +- name: Implementation Projects Pending Board Action + endpoint: + path: /implementation/projects/pending-board-action + method: GET + data_selector: projects +- name: Policy Development Processes + endpoint: + path: /policy/development/processes + method: GET + data_selector: processes +- name: Implementation Projects In Progress + endpoint: + path: /projects/in-progress + method: GET + data_selector: projects +- name: Implementation Projects In Queue + endpoint: + path: /projects/in-queue + method: GET + data_selector: projects +- name: Implementation Projects Pending Board Action + endpoint: + path: /projects/pending-board-action + method: GET + data_selector: projects +- name: Policy Development Processes + endpoint: + path: /pdp/in-progress + method: GET + data_selector: processes +- name: Policy Status Reports + endpoint: + path: /policy-status-reports + method: GET + data_selector: reports +- name: public_comment + endpoint: + path: /en/public-comment + method: GET + data_selector: submissions + params: {} +- name: public_comment + endpoint: + path: /public-comment/other-public-consultations + method: GET +- name: accredited_registrars + endpoint: + path: /en/contracted-parties/accredited-registrars + method: GET +- name: registry_operators + endpoint: + path: /en/contracted-parties/registry-operators + method: GET +- name: consensus_policies + endpoint: + path: /en/contracted-parties/consensus-policies + method: GET +- name: advisories + endpoint: + path: /en/contracted-parties/advisories + method: GET +- name: ccTLDs + endpoint: + path: /resources/pages/cctlds-21-2012-02-25-en + method: GET +- name: Complaints Office + endpoint: + path: /complaints-office + method: GET +- name: Contractual Compliance + endpoint: + path: /en/resources/compliance + method: GET +- name: Internationalized Domain Names + endpoint: + path: /resources/pages/idn-2012-02-25-en + method: GET +- name: Policy + endpoint: + path: /resources/pages/policy-01-2012-02-25-en + method: GET +- name: Registrars + endpoint: + path: /resources/pages/registrars-0d-2012-02-25-en + method: GET +- name: Registries + endpoint: + path: /resources/pages/registries-46-2012-02-25-en + method: GET +- name: registrant + endpoint: + path: /resources/pages/domain-name-registrants + method: GET + data_selector: registrants +- name: Reconsideration Process + endpoint: + path: /en/about/governance/bylaws#IV + method: GET + data_selector: Reconsideration Request + params: {} +- name: Independent Review Process + endpoint: + path: /en/about/governance/bylaws#IV + method: GET + data_selector: IRP Request + params: {} +- name: Ombudsman + endpoint: + path: /en/about/governance/bylaws#V + method: GET + data_selector: Ombudsman Function + params: {} +- name: Empowered Community + endpoint: + path: /ec + method: GET + data_selector: Empowered Community Overview + params: {} +- name: contractual_compliance_monthly_metrics + endpoint: + path: /resources/pages/contractual-compliance-monthly-metrics + method: GET + data_selector: metrics + params: {} +- name: audit_reports + endpoint: + path: /resources/pages/contractual-compliance-audit-reports + method: GET + data_selector: reports + params: {} +- name: Government Engagement Publications + endpoint: + path: /en/government-engagement/publications + method: GET +- name: Community Contribution Opportunities + endpoint: + path: /en/government-engagement/community-contribution-opportunities + method: GET +- name: ICANN org Submissions to External Bodies + endpoint: + path: /en/government-engagement/submissions-to-external-bodies + method: GET +- name: Government Engagement Public Reporting + endpoint: + path: /en/government-engagement/public-reporting + method: GET +- name: registrant_info + endpoint: + path: /resources/pages/domain-name-registrants + method: GET + data_selector: registrants + params: {} +- name: board_meetings + endpoint: + path: /csvdownload + method: GET + data_selector: records + params: {} +- name: audit_reports + endpoint: + path: /resources/pages/contractual-compliance-audit-reports-2025-09-15-en + method: GET +- name: enforcement_dns_abuse_mitigation + endpoint: + path: /resources/pages/enforcement-dns-abuse-mitigation-requirements-periodic-reviews-2025-09-15-en + method: GET +- name: monthly_reports + endpoint: + path: /resources/pages/contractual-compliance-monthly-reports-2025-09-15-en + method: GET +- name: GE Publications + endpoint: + path: /government-engagement/publications + method: GET +- name: Community Contribution Opportunities + endpoint: + path: /government-engagement/community-contribution-opportunities + method: GET +- name: ICANN org Submissions to External Bodies + endpoint: + path: /government-engagement/submissions-to-external-bodies + method: GET +- name: Government Engagement Public Reporting + endpoint: + path: /government-engagement/public-reporting + method: GET +- name: Risk Committee Meeting Agenda + endpoint: + path: /en/board-activities-and-meetings/materials/agenda-meeting-of-the-risk-committee-of-the-board-brc-30-05-2025-en + method: GET + data_selector: documents +- name: Technical Committee Meeting Agenda + endpoint: + path: /en/board-activities-and-meetings/materials/agenda-meeting-of-the-technical-committee-of-the-board-btc-27-05-2025-en + method: GET + data_selector: documents +- name: Finance Committee Meeting Agenda + endpoint: + path: /en/board-activities-and-meetings/materials/agenda-meeting-of-the-finance-committee-of-the-board-bfc-20-05-2025-en + method: GET + data_selector: documents +- name: Governance Committee Meeting Agenda + endpoint: + path: /en/board-activities-and-meetings/materials/agenda-meeting-of-the-governance-committee-of-the-board-bgc-19-05-2025-en + method: GET + data_selector: documents +- name: ICANN Board Special Meeting Agenda + endpoint: + path: /en/board-activities-and-meetings/materials/agenda-special-meeting-of-the-icann-board-19-05-2025-en + method: GET + data_selector: documents +- name: Secretary's Notice of Designation of Board Seat 10 + endpoint: + path: /en/board-activities-and-meetings/materials/secretarys-notice-16-05-2025-en + method: GET + data_selector: documents +- name: Secretary's Notice of Appointment of Non-Voting Liaisons + endpoint: + path: /en/board-activities-and-meetings/materials/secretarys-notice-15-05-2025-en + method: GET + data_selector: documents +- name: ICANN Board Hanoi Workshop Recording + endpoint: + path: /rec/play/5l7ZqNGEh6XaSZ80bMd46rTm3DGoDW8ARAwT5icXu4ZEDn4AEZ6KuHp5qJpHyn2lhuJmvbr69xnMh1Lv.B9Qy_1kNkFkIcKQF + method: GET + data_selector: recording +- name: Regular Meeting of the ICANN Board Agenda + endpoint: + path: /en/board-activities-and-meetings/materials/agenda-regular-meeting-of-the-icann-board-03-05-2025-en + method: GET + data_selector: documents +- name: board_activities + endpoint: + path: /en/board-activities-and-meetings + method: GET +- name: board_meeting + endpoint: + path: /en/board-activities-and-meetings + method: GET + data_selector: records +- name: risk_committee_meeting + endpoint: + path: /en/board-activities-and-meetings/materials/agenda-meeting-of-the-risk-committee-of-the-board-brc-30-05-2025-en + method: GET + data_selector: documents + params: {} +- name: technical_committee_meeting + endpoint: + path: /en/board-activities-and-meetings/materials/agenda-meeting-of-the-technical-committee-of-the-board-btc-27-05-2025-en + method: GET + data_selector: documents + params: {} +- name: finance_committee_meeting + endpoint: + path: /en/board-activities-and-meetings/materials/agenda-meeting-of-the-finance-committee-of-the-board-bfc-20-05-2025-en + method: GET + data_selector: documents + params: {} +- name: governance_committee_meeting + endpoint: + path: /en/board-activities-and-meetings/materials/agenda-meeting-of-the-governance-committee-of-the-board-bgc-19-05-2025-en + method: GET + data_selector: documents + params: {} +- name: icann_board_special_meeting + endpoint: + path: /en/board-activities-and-meetings/materials/agenda-special-meeting-of-the-icann-board-19-05-2025-en + method: GET + data_selector: documents + params: {} +- name: funded_projects + endpoint: + path: /en/grant-program/first-cycle-funded-projects + method: GET + data_selector: projects +- name: Activities + endpoint: + path: /en/board-activities-and-meetings + method: GET +- name: Applicant Guide + endpoint: + path: /en/system/files/files/icann-grant-program-applicant-guide-15mar24-en.pdf + method: GET + data_selector: document +- name: Privacy Policy List of Third Party Providers + endpoint: + path: /en/system/files/files/icann-grant-program-privacy-policy-list-third-party-providers-23dec24-en.pdf + method: GET + data_selector: document +- name: Grant Program Data Retention Policy + endpoint: + path: /en/system/files/files/grant-program-data-retention-policy-15mar24-en.pdf + method: GET + data_selector: document +- name: Grant Program Application Terms and Conditions + endpoint: + path: /en/system/files/files/grant-program-application-terms-conditions-22mar24-en.pdf + method: GET + data_selector: document +- name: first_cycle_funded_projects + endpoint: + path: /en/grant-program/first-cycle-funded-projects + method: GET + data_selector: projects +- name: abuse_dns_abuse_registrar + endpoint: + path: /compliance/s/abuse-domain + method: GET +- name: abuse_dns_abuse_registry + endpoint: + path: /compliance/s/abuse-contact + method: GET +- name: transfer + endpoint: + path: /compliance/s/transfer + method: GET +- name: renewal_redemption + endpoint: + path: /compliance/s/renewal-redemption + method: GET +- name: registration_data_inaccurate + endpoint: + path: /compliance/s/registration-data + method: GET +- name: domain_name_suspended_deleted + endpoint: + path: /compliance/s/registration-data + method: GET +- name: whois_service_not_operational + endpoint: + path: /compliance/s/registration-data + method: GET +- name: udrp + endpoint: + path: /compliance/s/udrp + method: GET +- name: urs + endpoint: + path: /compliance/s/urs + method: GET +- name: picdrp + endpoint: + path: /compliance/s/picdrp + method: GET +- name: rrdrp + endpoint: + path: /compliance/s/rrdrp + method: GET +- name: trademark_pddrp + endpoint: + path: /compliance/s/trademark-post-delegation-dispute + method: GET +- name: privacy_proxy + endpoint: + path: /compliance/s/privacy-proxy + method: GET +- name: zone_file_access + endpoint: + path: /compliance/s/zfa + method: GET +- name: reserved_names + endpoint: + path: /compliance/s/reserved-names + method: GET +- name: code_of_conduct + endpoint: + path: /compliance/s/code-of-conduct + method: GET +- name: generic_registrar_complaint + endpoint: + path: /compliance/s/generic-registrar + method: GET +- name: generic_registry_complaint + endpoint: + path: /compliance/s/generic-registry + method: GET +- name: complaint + endpoint: + path: /complaints-office + method: GET + data_selector: complaints + params: {} +- name: WSIS+20 Review + endpoint: + path: /files/government-engagement-ge/wsis20-review-fact-sheet-31-07-2024-en.pdf + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Footprints of 20 Years of the Internet Governance Forum + endpoint: + path: /en/files/government-engagement-ge/footprints-20-years-igf-06-06-2025-en.pdf + method: GET +- name: 'ICANN''s Commitment to WSIS+20: Progress and Opportunities' + endpoint: + path: /en/blogs/details/icanns-commitment-to-wsis20-progress-and-opportunities-05-02-2025-en + method: GET +- name: 'Global Digital Compact Endorsement: ICANN’s Position' + endpoint: + path: /en/blogs/details/global-digital-compact-endorsement-icanns-position-19-12-2024-en + method: GET +- name: 'ICANN Forum Insights: WSIS+20 Review and the Future of Internet Governance' + endpoint: + path: /en/blogs/details/icann-forum-insights-wsis20-review-and-the-future-of-internet-governance-21-10-2024-en + method: GET +- name: Key Takeaways from the U.N. Global Digital Compact Process + endpoint: + path: /en/blogs/details/key-takeaways-from-the-un-global-digital-compact-process-04-10-2024-en + method: GET +- name: ICANN Voices Support for an Open, Global, and Interoperable Internet + endpoint: + path: /en/blogs/details/icann-voices-support-for-an-open-global-and-interoperable-internet-23-08-2024-en + method: GET +- name: 'Internet Governance and the Global Digital Compact: ICANN''s Observations' + endpoint: + path: /en/blogs/details/internet-governance-and-the-global-digital-compact-icanns-observations-15-07-2024-en + method: GET +- name: ICANN's World Summit on the Information Society 20-Year Review Outreach Efforts + endpoint: + path: /en/blogs/details/icanns-world-summit-on-the-information-society-20-year-review-outreach-efforts-02-04-2024-en + method: GET +- name: 'The Global Digital Compact: A Top-Down Attempt to Minimize the Role of the + Technical Community' + endpoint: + path: /en/blogs/details/the-global-digital-compact-a-top-down-attempt-to-minimize-the-role-of-the-technical-community-21-08-2023-en + method: GET +- name: 'U.N. Secretary General Policy Report: Considerations for the ICANN Community' + endpoint: + path: /en/blogs/details/un-secretary-general-policy-report-considerations-for-the-icann-community-13-06-2023-en + method: GET +- name: WSIS+20 Review Process - Information for the Broader ICANN Community + endpoint: + path: /en/files/government-engagement-ge/ge-012-13-03-2023-en.pdf + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Organizational Objectives + endpoint: + path: /en/blogs/details/icanns-organizational-objectives-for-fiscal-year-2026-08-07-2025-en + method: GET + data_selector: records + params: {} +- name: Latest CEO Report to the Board + endpoint: + path: /en/ceo-corner?latest-ceo-report=true + method: GET + data_selector: records + params: {} +- name: All CEO Reports to the Board + endpoint: + path: /en/ceo-corner/ceo-reports-to-the-board + method: GET + data_selector: records + params: {} +- name: a_record + endpoint: + path: /en/icann-acronyms-and-terms/a-record-en + method: GET + data_selector: record + params: {} +- name: aaaa_record + endpoint: + path: /en/icann-acronyms-and-terms/aaaa-record-en + method: GET + data_selector: record + params: {} +- name: accountability_transparency_review + endpoint: + path: /en/icann-acronyms-and-terms/accountability-and-transparency-review-en + method: GET + data_selector: record + params: {} +- name: advisory_committee + endpoint: + path: /en/icann-acronyms-and-terms/advisory-committee-en + method: GET + data_selector: record + params: {} +- name: Domain Name System + endpoint: + path: /en/icann-acronyms-and-terms/domain-name-system-en + method: GET + data_selector: records +- name: petition + endpoint: + path: /en/icann-acronyms-and-terms/petition-en + method: GET + data_selector: records +- name: Punycode + endpoint: + path: /en/icann-acronyms-and-terms/punycode-en + method: GET + data_selector: records +- name: A record + endpoint: + path: /en/icann-acronyms-and-terms/a-record-en + method: GET + data_selector: records +- name: Domain Name System + endpoint: + path: /en/icann-acronyms-and-terms/domain-name-system-en + method: GET + data_selector: records +- name: Internet Protocol version 4 + endpoint: + path: /en/icann-acronyms-and-terms/internet-protocol-version-4-en + method: GET + data_selector: records +- name: acronym + endpoint: + path: /en/icann-acronyms-and-terms + method: GET + data_selector: terms + params: {} +- name: acronyms_and_terms + endpoint: + path: /en/icann-acronyms-and-terms + method: GET +- name: Internationalized Domain Names in Applications + endpoint: + path: /en/icann-acronyms-and-terms/internationalized-domain-names-in-applications + method: GET +- name: Competition, Consumer Trust, and Consumer Choice Review + endpoint: + path: /en/icann-acronyms-and-terms/competition-consumer-trust-and-consumer-choice-review-en + method: GET + data_selector: term_details +- name: ICANN Bylaws + endpoint: + path: /en/icann-acronyms-and-terms/icann-bylaws-en + method: GET + data_selector: bylaws_details +- name: New gTLD Program + endpoint: + path: /en/icann-acronyms-and-terms/new-generic-top-level-domains-program-en + method: GET + data_selector: gTLD_program_details +- name: acronyms + endpoint: + path: /en/icann-acronyms-and-terms + method: GET + data_selector: terms + params: {} +- name: string + endpoint: + path: /en/icann-acronyms-and-terms/string-en + method: GET + data_selector: records +- name: specific_reviews + endpoint: + path: /en/icann-acronyms-and-terms/specific-reviews-en + method: GET +- name: accountability_and_transparency_review + endpoint: + path: /en/icann-acronyms-and-terms/accountability-and-transparency-review-en + method: GET +- name: security_stability_and_resiliency_of_the_dns_review + endpoint: + path: /en/icann-acronyms-and-terms/security-stability-and-resiliency-of-the-domain-name-system-dns-review-en + method: GET +- name: competition_consumer_trust_and_choice_review + endpoint: + path: /en/icann-acronyms-and-terms/competition-consumer-trust-and-consumer-choice-review-en + method: GET +- name: registration_directory_service_review + endpoint: + path: /en/icann-acronyms-and-terms/registration-directory-service-review-en + method: GET +- name: AAAA record + endpoint: + path: /en/icann-acronyms-and-terms/aaaa-record-en + method: GET + data_selector: record + params: {} +- name: Accountability and Transparency Review + endpoint: + path: /en/icann-acronyms-and-terms/accountability-and-transparency-review-en + method: GET + data_selector: records +- name: ICANN Bylaws + endpoint: + path: /en/icann-acronyms-and-terms/icann-bylaws-en + method: GET +- name: acronyms_and_terms + endpoint: + path: /en/icann-acronyms-and-terms + method: GET + data_selector: terms + params: {} +- name: Registration Directory Service Review + endpoint: + path: /en/icann-acronyms-and-terms/registration-directory-service-review-en + method: GET + data_selector: records +- name: SSR Review + endpoint: + path: /en/icann-acronyms-and-terms/security-stability-and-resiliency-of-the-domain-name-system-dns-review-en + method: GET + data_selector: data +- name: RDS Review + endpoint: + path: /en/icann-acronyms-and-terms/registration-directory-service-review-en + method: GET + data_selector: data +- name: CCT Review + endpoint: + path: /en/icann-acronyms-and-terms/competition-consumer-trust-and-consumer-choice-review-en + method: GET + data_selector: data +- name: ATRT Review + endpoint: + path: /en/icann-acronyms-and-terms/accountability-and-transparency-review-en + method: GET + data_selector: data +- name: acronyms_terms + endpoint: + path: /en/icann-acronyms-and-terms + method: GET + data_selector: terms + params: {} +- name: Address Supporting Organization + endpoint: + path: /en/icann-acronyms-and-terms/address-supporting-organization-en + method: GET + data_selector: records +- name: Generic Names Supporting Organization + endpoint: + path: /en/icann-acronyms-and-terms/generic-names-supporting-organization-en + method: GET +- name: Number Resource Organization + endpoint: + path: /en/icann-acronyms-and-terms/number-resource-organization-en + method: GET +- name: Latin American and Caribbean Country Code Top-Level Domain Association + endpoint: + path: /en/icann-acronyms-and-terms/latin-american-and-caribbean-country-code-top-level-domain-association-en + method: GET + data_selector: term + params: {} +- name: Root Server System Advisory Committee + endpoint: + path: /en/icann-acronyms-and-terms/root-server-system-advisory-committee-en + method: GET + data_selector: records +- name: security_and_stability_advisory_committee + endpoint: + path: /en/icann-acronyms-and-terms/security-and-stability-advisory-committee-en + method: GET +- name: africa_top_level_domains_organization + endpoint: + path: /en/icann-acronyms-and-terms/africa-top-level-domains-organization-en + method: GET +- name: North American Regional At-Large Organization + endpoint: + path: /en/icann-acronyms-and-terms/north-american-regional-at-large-organization-en + method: GET +- name: Asian, Australasian, and Pacific Islands Regional At-Large Organization + endpoint: + path: /en/icann-acronyms-and-terms/asian-australasian-and-pacific-islands-regional-at-large-organization-en + method: GET +- name: Latin American and Caribbean Country Code Top-Level Domain Association + endpoint: + path: /en/icann-acronyms-and-terms/latin-american-and-caribbean-country-code-top-level-domain-association-en + method: GET +- name: European Regional At-Large Organization + endpoint: + path: /en/icann-acronyms-and-terms/european-regional-at-large-organization-en + method: GET +- name: Asia Pacific Top Level Domain Association + endpoint: + path: /en/icann-acronyms-and-terms/asia-pacific-top-level-domain-association-en + method: GET +- name: acronyms_and_terms + endpoint: + path: /en/icann-acronyms-and-terms + method: GET + data_selector: terms + params: {} +- name: Council of European National Top-Level Domain Registries + endpoint: + path: /en/icann-acronyms-and-terms/council-of-european-national-top-level-domain-registries-en + method: GET +- name: Latin American and Caribbean Country Code Top-Level Domain Association + endpoint: + path: /en/icann-acronyms-and-terms/latin-american-and-caribbean-country-code-top-level-domain-association-en + method: GET +- name: Africa Top Level Domains Organization + endpoint: + path: /en/icann-acronyms-and-terms/africa-top-level-domains-organization-en + method: GET +- name: Asia Pacific Top Level Domain Association + endpoint: + path: /en/icann-acronyms-and-terms/asia-pacific-top-level-domain-association-en + method: GET +- name: Anti-Phishing Working Group + endpoint: + path: /en/icann-acronyms-and-terms/anti-phishing-working-group-en + method: GET +- name: asia_pacific_network_information_centre + endpoint: + path: /en/icann-acronyms-and-terms/asia-pacific-network-information-centre-en + method: GET + data_selector: records + params: {} +- name: african_network_information_centre + endpoint: + path: /en/icann-acronyms-and-terms/african-network-information-centre-en + method: GET + data_selector: records + params: {} +- name: anycast_instance + endpoint: + path: /en/icann-acronyms-and-terms/anycast-instance-en + method: GET + data_selector: records +- name: Latin American and Caribbean Internet Addresses Registry + endpoint: + path: /en/icann-acronyms-and-terms/latin-american-and-caribbean-internet-addresses-registry-en + method: GET +- name: internet_protocol_address + endpoint: + path: /en/icann-acronyms-and-terms/internet-protocol-address-en + method: GET + data_selector: records +- name: African Regional At-Large Organization + endpoint: + path: /en/icann-acronyms-and-terms/african-regional-at-large-organization-en + method: GET + data_selector: term_details + params: {} +- name: new_generic_top_level_domain + endpoint: + path: /en/icann-acronyms-and-terms/new-generic-top-level-domain + method: GET + data_selector: records +- name: Regional At-Large Organization + endpoint: + path: /en/icann-acronyms-and-terms/regional-at-large-organization + method: GET +- name: acronyms_terms + endpoint: + path: /en/icann-acronyms-and-terms + method: GET + data_selector: terms + params: {} +- name: Asian, Australasian, and Pacific Islands Regional At-Large Organization + endpoint: + path: /en/icann-acronyms-and-terms/asian-australasian-and-pacific-islands-regional-at-large-organization-en + method: GET + data_selector: records +- name: Latin American and Caribbean Islands Regional At-Large Organization + endpoint: + path: /en/icann-acronyms-and-terms/latin-american-and-caribbean-islands-regional-at-large-organization-en + method: GET + data_selector: related_terms + params: {} +- name: Public Forum + endpoint: + path: /en/icann-acronyms-and-terms/public-forum-en + method: GET + data_selector: records +- name: ICANN Public Meeting + endpoint: + path: /en/icann-acronyms-and-terms/icann-public-meeting-en + method: GET + data_selector: records +- name: ICANN Community + endpoint: + path: /en/icann-acronyms-and-terms/icann-community-en + method: GET + data_selector: records +- name: ICANN Board of Directors + endpoint: + path: /en/icann-acronyms-and-terms/icann-board-of-directors-en + method: GET + data_selector: records +- name: Community Forum + endpoint: + path: /en/icann-acronyms-and-terms/community-forum-en + method: GET + data_selector: records +- name: Annual General Meeting + endpoint: + path: /en/icann-acronyms-and-terms/annual-general-meeting-en + method: GET + data_selector: records +- name: ICANN Public Meeting + endpoint: + path: /en/icann-acronyms-and-terms/icann-public-meeting-en + method: GET +- name: phishing + endpoint: + path: /en/icann-acronyms-and-terms/phishing-en + method: GET + data_selector: records +- name: anycast_instance + endpoint: + path: /en/icann-acronyms-and-terms/anycast-instance-en + method: GET +- name: Internet Protocol address + endpoint: + path: /en/icann-acronyms-and-terms/internet-protocol-address-en + method: GET + data_selector: records +- name: public_comments + endpoint: + path: /en/news/public-comment + method: GET + data_selector: forums + params: {} +- name: supporting_organisations + endpoint: + path: /en/structure/ + method: GET + data_selector: organisations + params: {} +- name: blog + endpoint: + path: /blog/ + method: GET + data_selector: posts + params: {} +- name: board_meetings + endpoint: + path: /en/groups/board/meetings + method: GET + data_selector: meetings + params: {} +- name: announcements + endpoint: + path: /en/news/announcements + method: GET + data_selector: announcements + params: {} +- name: public_meetings + endpoint: + path: /en/meetings/ + method: GET + data_selector: meetings + params: {} +- name: applicant + endpoint: + path: /en/icann-acronyms-and-terms/applicant-en + method: GET + data_selector: term_description + params: {} +- name: new_generic_top_level_domain + endpoint: + path: /en/icann-acronyms-and-terms/new-generic-top-level-domain-en + method: GET +- name: applied_for_generic_top_level_domain_string + endpoint: + path: /en/icann-acronyms-and-terms/applied-for-generic-top-level-domain-string-en + method: GET +- name: internationalized_domain_name + endpoint: + path: /en/icann-acronyms-and-terms/internationalized-domain-name-en + method: GET +- name: public_comment + endpoint: + path: /en/news/public-comment + method: GET + data_selector: comments + params: {} +- name: blog + endpoint: + path: /blog + method: GET + data_selector: posts + params: {} +- name: meetings + endpoint: + path: /en/meetings/ + method: GET + data_selector: sessions + params: {} +- name: application_submission_period + endpoint: + path: /en/icann-acronyms-and-terms/application-submission-period-en + method: GET + data_selector: records +- name: fellowship_application + endpoint: + path: /resources/pages/fellowship-application + method: GET + data_selector: application_data + params: {} +- name: fellowship_statistics + endpoint: + path: /resources/pages/fellowship-statistics-2018-03-02-en + method: GET + data_selector: statistics_data + params: {} +- name: New Generic Top-Level Domains Program + endpoint: + path: /en/icann-acronyms-and-terms/new-generic-top-level-domains-program-en + method: GET + data_selector: records +- name: application_round + endpoint: + path: /en/icann-acronyms-and-terms/application-round-en + method: GET + data_selector: records +- name: petition + endpoint: + path: /en/icann-acronyms-and-terms/petition-en + method: GET + data_selector: records +- name: terms + endpoint: + path: /en/icann-acronyms-and-terms + method: GET +- name: Fellowship Selection Committee Responsibilities + endpoint: + path: /fellowship-selection-committee/responsibilities + method: GET + data_selector: responsibilities + params: {} +- name: Terms of Service + endpoint: + path: /fellowship-selection-committee/terms-of-service + method: GET + data_selector: terms_of_service + params: {} +- name: Application Assessment and Decision-Making Process + endpoint: + path: /fellowship-selection-committee/application-assessment + method: GET + data_selector: assessment_process + params: {} +- name: fellowship_application + endpoint: + path: /fellowshipapplications + method: POST + data_selector: application + params: {} +- name: fellowship_participants + endpoint: + path: /fellowshipparticipants + method: GET + data_selector: participants + params: {} +- name: CEO Reports + endpoint: + path: /en/ceo-corner/ceo-reports-to-the-board + method: GET + data_selector: reports + params: {} +- name: Organizational Objectives + endpoint: + path: /en/blogs/details/icanns-organizational-objectives-for-fiscal-year-2026-08-07-2025-en + method: GET + data_selector: objectives + params: {} +- name: public_comments + endpoint: + path: /en/news/public-comment + method: GET +- name: blog + endpoint: + path: /blog + method: GET +- name: announcements + endpoint: + path: /en/news/announcements + method: GET +- name: meetings + endpoint: + path: /en/meetings/ + method: GET +- name: public_comment + endpoint: + path: /en/news/public-comment + method: GET + data_selector: comments + params: {} +- name: blog + endpoint: + path: /blog + method: GET + data_selector: posts + params: {} +- name: meetings + endpoint: + path: /en/meetings + method: GET + data_selector: sessions + params: {} +- name: fellowship_participants + endpoint: + path: /resources/pages/fellowship-participants-2016-04-19-en + method: GET + data_selector: participants +- name: fellowship_statistics + endpoint: + path: /resources/pages/fellowship-statistics-2018-03-02-en + method: GET + data_selector: statistics +- name: fellowship_faqs + endpoint: + path: /resources/pages/fellowship-faqs-2015-07-10-en + method: GET + data_selector: faqs +- name: fellowship_terms_conditions + endpoint: + path: /resources/pages/terms-conditions-2012-02-25-en + method: GET + data_selector: terms +- name: fellowship_selection_criteria + endpoint: + path: /resources/pages/fellowship-applicant-criteria-2016-09-08-en + method: GET + data_selector: criteria +- name: public_comment + endpoint: + path: /en/news/public-comment + method: GET +- name: accountability + endpoint: + path: /en/news/in-focus/accountability + method: GET +- name: continuity + endpoint: + path: /en/news/in-focus/continuity + method: GET +- name: dnssec + endpoint: + path: /en/news/in-focus/dnssec + method: GET +- name: global_addressing + endpoint: + path: /en/news/in-focus/global-addressing + method: GET +- name: gnso_improvements + endpoint: + path: /en/improvements/ + method: GET +- name: tld_acceptance + endpoint: + path: /en/news/in-focus/tld-acceptance + method: GET +- name: travel_support + endpoint: + path: /en/news/in-focus/travel-support + method: GET +- name: ccnso_survey + endpoint: + path: /surveys/ccnso-meeting-participation-survey-01feb08.pdf + method: GET +- name: ccnso_idn_timtable + endpoint: + path: /workinggroups/idn-time-table-19dec07.htm + method: GET +- name: contractual_compliance + endpoint: + path: /en/resources/compliance + method: GET +- name: fellowship_program + endpoint: + path: /en/about/participate/fellowships + method: GET +- name: idn_fast_track + endpoint: + path: /en/resources/idn/fast-track + method: GET +- name: improving_institutional_confidence + endpoint: + path: /en/jpa/iic/ + method: GET +- name: independent_reviews + endpoint: + path: /en/groups/reviews + method: GET +- name: internationalized_domain_names + endpoint: + path: /en/resources/idn + method: GET +- name: ipv6_policy + endpoint: + path: /en/news/announcements/announcement-14jul06-en.htm + method: GET +- name: joint_project_agreement + endpoint: + path: /en/jpa/ + method: GET +- name: meetings_for_next_decade + endpoint: + path: /en/meetings2010/ + method: GET +- name: new_gtld_program + endpoint: + path: /en/topics/new-gtld-program.htm + method: GET +- name: new_registry_services + endpoint: + path: /en/resources/registries/rsep/archive + method: GET +- name: new_sponsored_tld_applications + endpoint: + path: /en/tlds/stld-apps-19mar04/ + method: GET +- name: presidents_strategy_committee_consultations + endpoint: + path: /en/psc/ + method: GET +- name: reconsideration_and_independent_review + endpoint: + path: /en/news/in-focus/accountability/reconsideration-review + method: GET +- name: registrar_accreditation_agreement_amendments + endpoint: + path: /en/topics/raa/ + method: GET +- name: strategic_and_operating_planning + endpoint: + path: /en/about/planning + method: GET +- name: verisign_settlement + endpoint: + path: /en/topics/verisign-settlement.htm + method: GET +- name: verisign_wildcard + endpoint: + path: /en/topics/wildcard-history.html + method: GET +- name: whois_services + endpoint: + path: /en/topics/whois-services/ + method: GET +- name: wsis_and_igf + endpoint: + path: /en/wsis/wsis-igf.html + method: GET +- name: Fellowship Selection Committee Membership + endpoint: + path: /fellowship/membership + method: GET + data_selector: members +- name: Fellowship Selection Committee Responsibilities + endpoint: + path: /fellowship/responsibilities + method: GET + data_selector: responsibilities +- name: Terms of Service + endpoint: + path: /fellowship/terms + method: GET + data_selector: terms +- name: Application Assessment and Decision-Making Process + endpoint: + path: /fellowship/application-assessment + method: GET + data_selector: assessment +- name: Current Members + endpoint: + path: /fellowship/current-members + method: GET + data_selector: current_members +- name: Past Members + endpoint: + path: /fellowship/past-members + method: GET + data_selector: past_members +- name: CEO Reports to the Board + endpoint: + path: /en/ceo-corner/ceo-reports-to-the-board + method: GET +- name: Organizational Objectives + endpoint: + path: /en/blogs/details/icanns-organizational-objectives-for-fiscal-year-2026-08-07-2025-en + method: GET +- name: Latest CEO Blogs + endpoint: + path: /en/ceo-corner/latest-ceo-blogs + method: GET +- name: public_comment + endpoint: + path: /en/news/public-comment + method: GET + data_selector: records +- name: accountability + endpoint: + path: /en/news/in-focus/accountability + method: GET + data_selector: records +- name: continuity + endpoint: + path: /en/news/in-focus/continuity + method: GET + data_selector: records +- name: dnssec + endpoint: + path: /en/news/in-focus/dnssec + method: GET + data_selector: records +- name: global_addressing + endpoint: + path: /en/news/in-focus/global-addressing + method: GET + data_selector: records +- name: gnso_improvements + endpoint: + path: /en/improvements/ + method: GET + data_selector: records +- name: tld_acceptance + endpoint: + path: /en/news/in-focus/tld-acceptance + method: GET + data_selector: records +- name: travel_support + endpoint: + path: /en/news/in-focus/travel-support + method: GET + data_selector: records +- name: Reconsideration Process + endpoint: + path: /en/about/governance/bylaws#IV + method: GET + data_selector: none + params: {} +- name: Independent Review Process + endpoint: + path: /en/about/governance/bylaws#IV + method: GET + data_selector: none + params: {} +- name: Ombudsman + endpoint: + path: /en/about/governance/bylaws#V + method: GET + data_selector: none + params: {} +- name: Empowered Community + endpoint: + path: /ec + method: GET + data_selector: none + params: {} +- name: ombuds_support + endpoint: + path: /ombuds + method: GET + data_selector: support_resources +- name: ombuds_activity_reports + endpoint: + path: /en/system/files/files/community-report-31mar25-en.pdf + method: GET + data_selector: records +- name: ombudsman_investigation_reports + endpoint: + path: /en/help/ombudsman/documents/complaint-new-gtld-publicity-08mar12-en.pdf + method: GET + data_selector: records +- name: ombuds + endpoint: + path: /ombuds + method: GET +- name: complaints_office + endpoint: + path: /complaints-office + method: GET +- name: Audit Reports + endpoint: + path: /resources/pages/contractual-compliance-audit-reports-2025-09-15-en + method: GET + data_selector: records +- name: Contracted Parties + endpoint: + path: /en/contracted-parties + method: GET + data_selector: records +- name: Domain Name Registrants + endpoint: + path: /resources/pages/domain-name-registrants-2017-06-20-en + method: GET + data_selector: records +- name: WHOIS and Registration Data Directory Services + endpoint: + path: /resources/pages/whois-rdds-2023-11-02-en + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/ec/correspondence + method: GET + data_selector: records + params: {} +- name: DIDP + endpoint: + path: /resources/pages/didp-2023-01-24-en + method: GET + data_selector: documents +- name: DIDP Process + endpoint: + path: /en/system/files/files/revised-didp-response-process-2023-21jan23-en.pdf + method: GET + data_selector: process +- name: DIDP Requests and Responses + endpoint: + path: /resources/pages/governance/transparency-en + method: GET + data_selector: requests +- name: specific_reviews + endpoint: + path: /resources/reviews/specific-reviews + method: GET + data_selector: reviews + params: {} +- name: organizational_reviews + endpoint: + path: /resources/reviews/org + method: GET + data_selector: reviews + params: {} +- name: Ombuds Activity Reports + endpoint: + path: /en/system/files/files/community-report-31mar25-en.pdf + method: GET +- name: Ombudsman Investigation Reports + endpoint: + path: /en/system/files/files/atrt3-investigation-report-2019-382-22may19-en.pdf + method: GET +- name: Complaint as to New gTLD Publicity + endpoint: + path: /en/help/ombudsman/documents/complaint-new-gtld-publicity-08mar12-en.pdf + method: GET +- name: Complaint as to Election + endpoint: + path: /en/help/ombudsman/documents/complaint-election-16nov11-en.pdf + method: GET +- name: Report on Incivility within ICANN + endpoint: + path: /ombudsman/documents/incivility-within-icann-29oct09-en.pdf + method: GET +- name: Report on the Call for Volunteers with the Implementation Recommendation Team + endpoint: + path: /ombudsman/documents/report-call-for-volunteers-irt-sep09.pdf + method: GET +- name: Report on the repayment of per diem expenses + endpoint: + path: /ombudsman/documents/per-diem-expense-repayment-report-21apr09.pdf + method: GET +- name: Report concerning the repayment of expenses + endpoint: + path: /ombudsman/documents/repayment-expenses-report-17sep08.pdf + method: GET +- name: Report on a Complaint Regarding ALAC Voting Procedures + endpoint: + path: /ombudsman/documents/repayment-expenses-report-17sep08.pdf + method: GET +- name: Review of Steps Taken to Implement Recommendations Made to the Board of Directors + endpoint: + path: /ombudsman/documents/review-26sep06.pdf + method: GET +- name: Report on the At Large Advisory Committee and the Non Certification Vote for + the Application for At-Large Status + endpoint: + path: /ombudsman/documents/report-15feb07.pdf + method: GET +- name: ALAC Response to the Ombudsman Recommendations + endpoint: + path: /ombudsman/alac-response-ombudsman-28oct08-en.pdf + method: GET +- name: Accountability and Transparency Review + endpoint: + path: /resources/reviews/specific-reviews/atrt + method: GET + data_selector: reviews + params: {} +- name: Competition, Consumer Trust and Consumer Choice Review + endpoint: + path: /resources/reviews/specific-reviews/cct + method: GET + data_selector: reviews + params: {} +- name: Registration Directory Service Review + endpoint: + path: /resources/reviews/specific-reviews/whois + method: GET + data_selector: reviews + params: {} +- name: Security, Stability, and Resiliency Review + endpoint: + path: /resources/reviews/specific-reviews/ssr + method: GET + data_selector: reviews + params: {} +- name: compliance_metrics + endpoint: + path: /resources/pages/cct-metrics-compliance-2016-06-27-en + method: GET + data_selector: records +- name: registries_metrics + endpoint: + path: /resources/pages/cct-metrics-registries-2016-06-27-en + method: GET + data_selector: records +- name: registrars_metrics + endpoint: + path: /resources/pages/cct-metrics-registrars-2016-06-27-en + method: GET + data_selector: records +- name: domain_name_registrations_metrics + endpoint: + path: /resources/pages/cct-metrics-domain-name-registration-2016-06-27-en + method: GET + data_selector: records +- name: rights_protection_mechanisms_metrics + endpoint: + path: /resources/pages/cct-metrics-rpm-2016-06-27-en + method: GET + data_selector: records +- name: WHOIS Data Problem Report + endpoint: + path: /wdprs + method: POST + data_selector: report + params: {} +- name: Transfer Policy + endpoint: + path: /transfer-policy + method: GET + data_selector: policy + params: {} +- name: recommendations + endpoint: + path: /resources/work-stream-2-implementation + method: GET + data_selector: recommendations + params: {} +- name: latest_updates + endpoint: + path: /en/system/files/files + method: GET + data_selector: updates + params: {} +- name: correspondence + endpoint: + path: /en/ec/correspondence + method: GET + data_selector: correspondence_records +- name: closeout_report + endpoint: + path: /en/system/files/files/enhancing-effectiveness-multistakeholder-model-project-closeout-report-feb-2025-19jun25-en.pdf + method: GET +- name: enhancing_effectiveness_report + endpoint: + path: /en/system/files/files/enhancing-effectiveness-multistakeholder-model-14oct20-en.pdf + method: GET +- name: blog_next_steps_monitoring + endpoint: + path: https://www.icann.org/en/blogs/details/next-steps-for-monitoring-the-effectiveness-of-icanns-multistakeholder-model-19-06-2025-en + method: GET +- name: blog_implementation + endpoint: + path: /news/blog/enhancing-the-effectiveness-of-icann-s-multistakeholder-model-moves-into-implementation + method: GET +- name: blog_next_steps_enhancing + endpoint: + path: /news/blog/next-steps-to-enhancing-the-effectiveness-of-icann-s-multistakeholder-model + method: GET +- name: DIDP + endpoint: + path: /resources/pages/didp-2023-01-24-en + method: GET + data_selector: documents +- name: Specific Reviews + endpoint: + path: /resources/reviews/specific-reviews + method: GET + data_selector: data +- name: Organizational Reviews + endpoint: + path: /resources/reviews/org + method: GET + data_selector: data +- name: ATRT + endpoint: + path: /resources/reviews/specific-reviews/atrt + method: GET + data_selector: records + params: {} +- name: CCT + endpoint: + path: /resources/reviews/specific-reviews/cct + method: GET + data_selector: records + params: {} +- name: RDS + endpoint: + path: /resources/reviews/specific-reviews/whois + method: GET + data_selector: records + params: {} +- name: SSR + endpoint: + path: /resources/reviews/specific-reviews/ssr + method: GET + data_selector: records + params: {} +- name: Coordination Group + endpoint: + path: /resources/pages/coordination-group + method: GET + data_selector: records + params: {} +- name: Coordination Group + endpoint: + path: /coordination_group + method: GET + data_selector: group_members + params: {} +- name: registry_agreements + endpoint: + path: /en/registry-agreements + method: GET + data_selector: data + params: {} +- name: agreement + endpoint: + path: /en/registry-agreements + method: GET + data_selector: records + params: {} +- name: Public Comment + endpoint: + path: /en/public-comment + method: GET + data_selector: submissions +- name: Accountability Mechanisms + endpoint: + path: /en/news/in-focus/accountability/mechanisms + method: GET + data_selector: mechanisms +- name: Annual Transparency Report + endpoint: + path: /resources/transparency-report + method: GET + data_selector: report +- name: cookie_policy + endpoint: + path: /privacy/cookies + method: GET +- name: privacy_policy + endpoint: + path: /privacy/policy + method: GET +- name: terms_of_service + endpoint: + path: /data-protection/terms-of-service + method: GET +- name: recommendations_to_improve_diversity + endpoint: + path: /resources/work-stream-2-implementation/improve-diversity-en + method: GET +- name: recommendations_for_guidelines_for_standards_of_conduct + endpoint: + path: /resources/work-stream-2-implementation/standards-of-conduct-en + method: GET +- name: recommendation_for_framework_of_interpretation_for_human_rights + endpoint: + path: /resources/work-stream-2-implementation/framework-interpretation-human-rights-en + method: GET +- name: recommendations_on_jurisdiction + endpoint: + path: /resources/work-stream-2-implementation/jurisdiction-en + method: GET +- name: recommendations_for_improving_the_icann_office_of_the_ombuds + endpoint: + path: /resources/work-stream-2-implementation/improving-ombudsman-en + method: GET +- name: recommendations_to_increase_so_ac_accountability + endpoint: + path: /resources/work-stream-2-implementation/increase-so-ac-accountability-en + method: GET +- name: recommendations_to_improve_staff_accountability + endpoint: + path: /resources/work-stream-2-implementation/improve-staff-accountability-en + method: GET +- name: recommendations_to_improve_icann_transparency + endpoint: + path: /resources/work-stream-2-implementation/improve-icann-transparency-en + method: GET +- name: 2013 Registrar Accreditation Agreement + endpoint: + path: /en/system/files/files/registrar-accreditation-agreement-30apr23-en.docx + method: GET + data_selector: files + params: {} +- name: 2013 RAA + endpoint: + path: /resources/pages/approved-with-specs-2013-09-17-en + method: GET + data_selector: files + params: {} +- name: 2009 Registrar Accreditation Agreement + endpoint: + path: /en/resources/registrars/raa/ra-agreement-21may09-en.htm + method: GET + data_selector: files + params: {} +- name: 2001 Registrar Accreditation Agreement + endpoint: + path: /en/resources/registrars/raa/raa-17may01-en.htm + method: GET + data_selector: files + params: {} +- name: locations + endpoint: + path: /locations + method: GET +- name: help + endpoint: + path: /en/help + method: GET +- name: data_protection + endpoint: + path: /en/data-protection + method: GET +- name: Current Financial Data + endpoint: + path: /resources/pages/current-2012-02-25-en +- name: Historical Financial Data + endpoint: + path: /resources/pages/historical-2012-02-25-en +- name: General Financial Information + endpoint: + path: /resources/pages/general-2014-01-06-en +- name: Lobbying Disclosures & Contribution Reports + endpoint: + path: /resources/pages/lobbying-disclosures-contributions-2015-11-18-en +- name: annual_disclosure_payments + endpoint: + path: /resources/pages/annual-disclosure-payments-suppliers-2024-06-07-en + method: GET +- name: annual_disclosure_payments + endpoint: + path: /resources/pages/annual-disclosure-payments-suppliers-2024-06-07-en +- name: Coordination Group + endpoint: + path: /path/to/coordination_group + method: GET + data_selector: records + params: {} +- name: payments_to_suppliers + endpoint: + path: /en/system/files/files/annual-disclosure-payments-suppliers-18oct24-en.pdf + method: GET + data_selector: records +- name: agreement + endpoint: + path: /en/registry-agreements + method: GET + data_selector: records + params: {} +- name: agreement + endpoint: + path: /en/registry-agreements + method: GET + data_selector: records +- name: lobbying_disclosure_2017_q4 + endpoint: + path: /en/system/files/files/lobbying-disclosure-31dec17-en.pdf + method: GET + data_selector: file +- name: lobbying_disclosure_2017_q3 + endpoint: + path: /en/system/files/files/lobbying-disclosure-30sep17-en.pdf + method: GET + data_selector: file +- name: lobbying_disclosure_2017_q2 + endpoint: + path: /en/system/files/files/lobbying-disclosure-30jun17-en.pdf + method: GET + data_selector: file +- name: lobbying_disclosure_2017_q1 + endpoint: + path: /en/system/files/files/lobbying-disclosure-31mar17-en.pdf + method: GET + data_selector: file +- name: contribution_report_organization_2017_year_end + endpoint: + path: /en/system/files/files/lobbying-contribution-organization-31dec17-en.pdf + method: GET + data_selector: file +- name: contribution_report_organization_2017_mid_year + endpoint: + path: /en/system/files/files/lobbying-contribution-organization-30jun17-en.pdf + method: GET + data_selector: file +- name: contribution_report_lobbyist_2017_year_end_burns + endpoint: + path: /en/system/files/files/lobbying-contribution-lobbyist-31dec17-en.pdf + method: GET + data_selector: file +- name: contribution_report_lobbyist_2017_year_end_hedlund + endpoint: + path: /en/system/files/files/lobbying-contribution-lobbyist-hedlund-31dec17-en.pdf + method: GET + data_selector: file +- name: contribution_report_lobbyist_2017_mid_year + endpoint: + path: /en/system/files/files/lobbying-contribution-lobbyist-30jun17-en.pdf + method: GET + data_selector: file +- name: cookies_policy + endpoint: + path: /privacy/cookies + method: GET + data_selector: cookies_details +- name: privacy_policy + endpoint: + path: /privacy/policy + method: GET + data_selector: privacy_details +- name: 2013 Registrar Accreditation Agreement + endpoint: + path: /en/system/files/files/registrar-accreditation-agreement-30apr23-en.docx + method: GET + data_selector: data + params: {} +- name: 2013 Registrar Accreditation Agreement Redline + endpoint: + path: /en/system/files/files/registrar-accreditation-agreement-redline-30apr23-en.docx + method: GET + data_selector: data + params: {} +- name: 2013 RAA PDF + endpoint: + path: /en/system/files/files/registrar-accreditation-agreement-30apr23-en.pdf + method: GET + data_selector: data + params: {} +- name: 2013 RAA Redline PDF + endpoint: + path: /en/system/files/files/registrar-accreditation-agreement-redline-30apr23-en.pdf + method: GET + data_selector: data + params: {} +- name: 2013 RAA HTML + endpoint: + path: /resources/pages/registrar-accreditation-agreement-2023-06-08-en + method: GET + data_selector: data + params: {} +- name: 2013 RAA Redline HTML + endpoint: + path: /en/system/files/files/registrar-accreditation-agreement-redline-30apr23.htm + method: GET + data_selector: data + params: {} +- name: strategic_plan + endpoint: + path: /en/system/files/files/strategic-plan-2026-2030-13mar25-en.pdf + method: GET + data_selector: content + params: {} +- name: public_comment_summary_report + endpoint: + path: /en/system/files/files/budget-plan-operating-plan-and-strategy-plan/summary-report-draft-icann-strategic-plan-operating-plan-framework-fy26-30-27-11-2024-en.pdf + method: GET + data_selector: content + params: {} +- name: Strategic Plan FY21-25 + endpoint: + path: /resources/pages/strategic-plan-fy2021-2025-2023-11-22-en + method: GET + data_selector: records + params: {} +- name: ICANN for Beginners + endpoint: + path: /en/beginners + method: GET + data_selector: records + params: {} +- name: Current Financial Data + endpoint: + path: /resources/pages/current-2012-02-25-en + method: GET +- name: Historical Financial Data + endpoint: + path: /resources/pages/historical-2012-02-25-en + method: GET +- name: General Financial Information + endpoint: + path: /resources/pages/general-2014-01-06-en + method: GET +- name: Lobbying Disclosures & Contribution Reports + endpoint: + path: /resources/pages/lobbying-disclosures-contributions-2015-11-18-en + method: GET +- name: fy25_community_trend_session_data + endpoint: + path: /en/system/files/files/fy25-community-trends-session-data-01oct23-en.xlsx + method: GET +- name: fy25_strategic_outlook_trend_report + endpoint: + path: /en/system/files/files/fy25-strategic-outlook-trend-03nov23-en.pdf + method: GET +- name: fy24_community_trend_session_data + endpoint: + path: /en/system/files/files/fy24-community-trend-sessions-data-18may22-en.xlsx + method: GET +- name: fy24_strategic_outlook_trend_report + endpoint: + path: /en/system/files/files/fy24-strategic-outlook-trends-report-18nov22-en.pdf + method: GET +- name: fy23_community_trend_session_data + endpoint: + path: /en/system/files/files/fy23-community-trend-sessions-data-21may21-en.xlsx + method: GET +- name: fy23_strategic_outlook_trend_report + endpoint: + path: /en/system/files/files/fy23-strategic-outlook-trends-report-03nov21-en.pdf + method: GET +- name: fy22_community_trend_session_data + endpoint: + path: /en/system/files/files/trend-sessions-outputs-2020-22apr20-en.xlsx + method: GET +- name: fy22_strategic_outlook_trend_report + endpoint: + path: /en/system/files/files/strategic-outlook-trends-report-2020-en.pdf + method: GET +- name: speeches + endpoint: + path: /speeches + method: GET + data_selector: records +- name: presentation + endpoint: + path: /en/news/presentations + method: GET + data_selector: records + params: {} +- name: annual_disclosure_payments_suppliers + endpoint: + path: /en/system/files/files/annual-disclosure-payments-suppliers-18oct24-en.pdf + method: GET +- name: payments_fiscal_year_2024 + endpoint: + path: /en/system/files/files/annual-disclosure-payments-suppliers-18oct24-en.pdf + method: GET +- name: payments_fiscal_year_2023 + endpoint: + path: /en/system/files/files/annual-disclosure-payments-suppliers-28jun24-en.pdf + method: GET +- name: payments_fiscal_year_2022 + endpoint: + path: /en/system/files/files/annual-disclosure-payments-suppliers-07jun24-en.pdf + method: GET +- name: lobbying_disclosures + endpoint: + path: /resources/pages/lobbying-disclosures-contributions-2015-11-18-en + method: GET +- name: contribution_reports + endpoint: + path: /resources/pages/lobbying-disclosures-contributions-2015-11-18-en + method: GET +- name: presentation + endpoint: + path: /en/news/presentations/future-of-the-internet-facts-15jun06-en.pdf + method: GET + data_selector: records + params: {} +- name: presentation + endpoint: + path: /en/news/presentations/new-overview-cctlds-30may06-en.pdf + method: GET + data_selector: records + params: {} +- name: presentation + endpoint: + path: /en/news/presentations/new-presentation-af-madrid-centr-ga-26may06-en.pdf + method: GET + data_selector: records + params: {} +- name: presentation + endpoint: + path: /en/news/presentations/new-e-stasseville-12may06-en.pdf + method: GET + data_selector: records + params: {} +- name: presentation + endpoint: + path: /en/news/presentations/new-presentation-gp-wellington-25mar06-en.pdf + method: GET + data_selector: records + params: {} +- name: lobbying_disclosure_2017_q4 + endpoint: + path: /en/system/files/files/lobbying-disclosure-31dec17-en.pdf + method: GET +- name: lobbying_disclosure_2017_q3 + endpoint: + path: /en/system/files/files/lobbying-disclosure-30sep17-en.pdf + method: GET +- name: lobbying_disclosure_2017_q2 + endpoint: + path: /en/system/files/files/lobbying-disclosure-30jun17-en.pdf + method: GET +- name: lobbying_disclosure_2017_q1 + endpoint: + path: /en/system/files/files/lobbying-disclosure-31mar17-en.pdf + method: GET +- name: contribution_report_organization_2017_year_end + endpoint: + path: /en/system/files/files/lobbying-contribution-organization-31dec17-en.pdf + method: GET +- name: contribution_report_organization_2017_mid_year + endpoint: + path: /en/system/files/files/lobbying-contribution-organization-30jun17-en.pdf + method: GET +- name: contribution_report_lobbyist_2017_year_end_burns + endpoint: + path: /en/system/files/files/lobbying-contribution-lobbyist-31dec17-en.pdf + method: GET +- name: contribution_report_lobbyist_2017_year_end_hedlund + endpoint: + path: /en/system/files/files/lobbying-contribution-lobbyist-hedlund-31dec17-en.pdf + method: GET +- name: contribution_report_lobbyist_2017_mid_year + endpoint: + path: /en/system/files/files/lobbying-contribution-lobbyist-30jun17-en.pdf + method: GET +- name: IDN-enabled User Environments + endpoint: + path: /en/news/presentations/hotta-idn-kl-21jul04-en.pdf + method: GET +- name: IDN in Korea + endpoint: + path: /en/news/presentations/ahngu-idn-kl-21jul04-en.pdf + method: GET +- name: Experience on Whois Database + endpoint: + path: /en/news/presentations/hsu-idn-kl-21jul04-en.pdf + method: GET +- name: The Tunisian experience in managing Arabic Domain Names + endpoint: + path: /en/news/presentations/sidhom-idn-kl-21jul04-en.pdf + method: GET +- name: CNNIC's Efforts & Experiences in IDN + endpoint: + path: /en/news/presentations/wu-idn-kl-21jul04-en.pdf + method: GET +- name: A Secretariat for the ccNSO + endpoint: + path: /en/news/presentations/thrush-ccnso-kl-20jul04-en.pdf + method: GET +- name: Local Laws - and their impact on DNS stability + endpoint: + path: /en/news/presentations/ng-ccnso-kl-20jul04-en.pdf + method: GET +- name: Functions and Requirements of a Secretariat + endpoint: + path: /en/news/presentations/tso-ccnso-kl-20jul04-en.pdf + method: GET +- name: Internet Stability + endpoint: + path: /en/news/presentations/darnell-ccnso-kl-20jul04-en.pdf + method: GET +- name: Stability - Best Practice for ccTLDs + endpoint: + path: /en/news/presentations/twomey-ccnso-kl-20jul04-en.pdf + method: GET +- name: A ccNSO position on WSIS + endpoint: + path: /en/news/presentations/peter-ccnso-kl-20jul04-en.pdf + method: GET +- name: WSIS Informational Briefing + endpoint: + path: /en/news/presentations/cade-wsis-20jul04-en.pdf + method: GET +- name: 'Workshop on WSIS: Issues of Relevance to ICANN' + endpoint: + path: /en/news/presentations/kummer-wgig-kl-20jul04-en.pdf + method: GET +- name: What's Happening at ICANN/IANA + endpoint: + path: /en/news/presentations/barton-ccnso-kl-19jul04-en.pdf + method: GET +- name: Report of the Election Manager to Members of the ccNSO on the First ccNSO + Council Elections + endpoint: + path: /en/news/presentations/gery-ccnso-kl-19jul04-en.pdf + method: GET +- name: Accountability Frameworks + endpoint: + path: /en/news/presentations/verhoef-ccnso-kl-19jul04-en.pdf + method: GET +- name: ccNSO Rules ccNSO Rules and Procedures + endpoint: + path: /en/news/presentations/farrar-ccnso-kl-19jul04-en.pdf + method: GET +- name: Changing A cctld manager + endpoint: + path: /en/news/presentations/thrush-ccnso-kl-19jul04-en.pdf + method: GET +- name: presentation + endpoint: + path: /en/news/presentations + method: GET + data_selector: records +- name: strategic_plan + endpoint: + path: /system/files/files/strategic-plan-2026-2030-13mar25-en.pdf + method: GET + data_selector: files + params: {} +- name: draft_strategic_plan + endpoint: + path: /en/system/files/files/draft-strategic-plan-fy26-30-2024-en.pdf + method: GET +- name: public_comment_summary + endpoint: + path: /en/system/files/files/budget-plan-operating-plan-and-strategy-plan/summary-report-draft-icann-strategic-plan-operating-plan-framework-fy26-30-27-11-2024-en.pdf + method: GET +- name: strategic_plan_2021_2025_english + endpoint: + path: /en/system/files/files/strategic-plan-2021-2025-24jun19-en.pdf + method: GET + data_selector: document + params: {} +- name: strategic_plan_2021_2025_spanish + endpoint: + path: /es/system/files/files/strategic-plan-2021-2025-24jun19-es.pdf + method: GET + data_selector: document + params: {} +- name: strategic_plan_2021_2025_french + endpoint: + path: /fr/system/files/files/strategic-plan-2021-2025-24jun19-fr.pdf + method: GET + data_selector: document + params: {} +- name: strategic_plan_2021_2025_russian + endpoint: + path: /ru/system/files/files/strategic-plan-2021-2025-24jun19-ru.pdf + method: GET + data_selector: document + params: {} +- name: strategic_plan_2021_2025_chinese + endpoint: + path: /zh/system/files/files/strategic-plan-2021-2025-24jun19-zh.pdf + method: GET + data_selector: document + params: {} +- name: strategic_plan_2021_2025_arabic + endpoint: + path: /ar/system/files/files/strategic-plan-2021-2025-24jun19-ar.pdf + method: GET + data_selector: document + params: {} +- name: FY25 Community Trend Session Data + endpoint: + path: /en/system/files/files/fy25-community-trends-session-data-01oct23-en.xlsx + method: GET +- name: FY25 Strategic Outlook Trend Report + endpoint: + path: /en/system/files/files/fy25-strategic-outlook-trend-03nov23-en.pdf + method: GET +- name: FY24 Community Trend Session Data + endpoint: + path: /en/system/files/files/fy24-community-trend-sessions-data-18may22-en.xlsx + method: GET +- name: FY24 Strategic Outlook Trend Report + endpoint: + path: /en/system/files/files/fy24-strategic-outlook-trends-report-18nov22-en.pdf + method: GET +- name: FY23 Community Trend Sessions Data + endpoint: + path: /en/system/files/files/fy23-community-trend-sessions-data-21may21-en.xlsx + method: GET +- name: FY23 Strategic Outlook Trend Report + endpoint: + path: /en/system/files/files/fy23-strategic-outlook-trends-report-03nov21-en.pdf + method: GET +- name: FY22 Community Trend Sessions Data + endpoint: + path: /en/system/files/files/trend-sessions-outputs-2020-22apr20-en.xlsx + method: GET +- name: FY22 Strategic Outlook Trend Report + endpoint: + path: /en/system/files/files/strategic-outlook-trends-report-2020-en.pdf + method: GET +- name: strategic_plan + endpoint: + path: /en/system/files/files/strategic-plan-2016-2020-10oct14-en.pdf + method: GET + data_selector: documents + params: {} +- name: Chamber of Commerce + endpoint: + path: /en/news/presentations/uschamber-ajm-22jun01-en.pdf + method: GET + data_selector: records + params: {} +- name: Gulf Cooperation Council Regional ccTLD Meeting + endpoint: + path: /en/news/presentations/dubai-cctld-update-17jun01-en.pdf + method: GET + data_selector: records + params: {} +- name: NASK Domain Seminar + endpoint: + path: /en/news/presentations/vitzthum-nask-11jun01-en.pdf + method: GET + data_selector: records + params: {} +- name: Vice President/General Counsel Report + endpoint: + path: /en/news/presentations/touton-vp-report-03jun01-en.pdf + method: GET + data_selector: records + params: {} +- name: IANA-ccTLD Workgroup + endpoint: + path: /en/news/presentations/vitzthum-iana-cctld-workgroup-02jun01-en.pdf + method: GET + data_selector: records + params: {} +- name: Orientation Workshop + endpoint: + path: /en/news/presentations/touton-stockholm-orientation-01jun01-en.pdf + method: GET + data_selector: records + params: {} +- name: ICANN Meeting Orientation + endpoint: + path: /en/news/presentations/touton-stockholm-orientation-01jun01-en.pdf + method: GET + data_selector: records + params: {} +- name: ccTLD Constituency Meeting + endpoint: + path: /en/news/presentations/vitzthum-stockholm-31may01-en.pdf + method: GET + data_selector: records + params: {} +- name: 'AfriNIC: "ICANN and Emerging RIRs"' + endpoint: + path: /en/news/presentations/afrinic-ajm-13may01-en.pdf + method: GET + data_selector: records + params: {} +- name: 'AFNOG: "ccTLD Issues"' + endpoint: + path: /en/news/presentations/afnog-ajm-07may01-en.pdf + method: GET + data_selector: records + params: {} +- name: 'RIPE 39 DNR Forum: "Update: New TLDs"' + endpoint: + path: /en/news/presentations/ripe39-dnr-ajm-may01-en.pdf + method: GET + data_selector: records + params: {} +- name: ccTLD Agreement Update + endpoint: + path: /en/news/presentations/melbourne-cctld-update-12mar01-en.pdf + method: GET + data_selector: records + params: {} +- name: Orientation Workshop + endpoint: + path: /en/news/presentations/melbourne-orientation-ajm-10mar01-en.pdf + method: GET + data_selector: records + params: {} +- name: 'ICANN-Studienkreis: "Quick Introduction to At Large 2000"' + endpoint: + path: /en/news/presentations/icann-studienkreis-zuerich-ajm-03feb01-en.pdf + method: GET + data_selector: records + params: {} +- name: 'RIPE 38: "So What''s New at ICANN?"' + endpoint: + path: /en/news/presentations/ripe38-ajm-26jan01-en.pdf + method: GET + data_selector: records + params: {} +- name: 'TWNIC Symposium: "ICANN: Structure and Issues"' + endpoint: + path: /en/news/presentations/twnic-ajm-18jan01-en.pdf + method: GET + data_selector: records + params: {} +- name: 'CNNIC Symposium: "ICANN: Structure and Issues"' + endpoint: + path: /en/news/presentations/cnnic-ajm-12jan00-en.pdf + method: GET + data_selector: records + params: {} +- name: 'LACNIC Open Meeting: "Introduction to ICANN"' + endpoint: + path: /en/news/presentations/lacnic-ajm-06dec00-en.pdf + method: GET + data_selector: records + params: {} +- name: Boalt Hall Speaker Series + endpoint: + path: /en/news/presentations/boalt-speakerseries-touton-20nov00-en.pdf + method: GET + data_selector: records + params: {} +- name: 'Orientation Workshop: "ICANN for Beginners"' + endpoint: + path: /en/news/presentations/mdr-orientation-ajm-13nov00-en.pdf + method: GET + data_selector: records + params: {} +- name: 'ASO Open Meeting: "ICANN Update"' + endpoint: + path: /en/news/presentations/apnic-ajm-26oct01-en.pdf + method: GET + data_selector: records + params: {} +- name: 'MIT: "ICANN: Myth and Reality"' + endpoint: + path: /en/news/presentations/mit-ajm-04oct00-en.pdf + method: GET + data_selector: records + params: {} +- name: 'Danish Internet Forum: "Cybersquatting eller domænehamstring"' + endpoint: + path: /en/news/presentations/difo-ajm-06sep00-en.pdf + method: GET + data_selector: records + params: {} +- name: IETF – Report on the IANA + endpoint: + path: /en/news/presentations/ietf-schipper-touton-02aug00-en.pdf + method: GET + data_selector: records + params: {} +- name: 'Orientation Workshop: "ICANN for Beginners"' + endpoint: + path: /en/news/presentations/yokohama-orientation-ajm-13jul00-en.pdf + method: GET + data_selector: records + params: {} +- name: ASO Orientation + endpoint: + path: /en/news/presentations/aso-arano-13jul00-en.pdf + method: GET + data_selector: records + params: {} +- name: 'Seoul ICANN Workshop: "ICANN: Globally At Large?"' + endpoint: + path: /en/news/presentations/seoul-ajm-10jul00-en.pdf + method: GET + data_selector: records + params: {} +- name: 'U.S. Chamber of Commerce: "ICANN: Myth & Reality"' + endpoint: + path: /en/news/presentations/uscoc-ajm-20jun00-en.pdf + method: GET + data_selector: records + params: {} +- name: 'Bertelsmann Foundation: "ICANN Elections - Theory & Practice"' + endpoint: + path: /en/news/presentations/bertelsmann-ajm-15jun00-en.pdf + method: GET + data_selector: records + params: {} +- name: 'ICANN: ¿Gobierno de Internet?' + endpoint: + path: /en/news/presentations/icann-pisanty-en.pdf + method: GET + data_selector: records + params: {} +- name: RIPE 36 -- Local IR Working Group + endpoint: + path: /en/news/presentations/budapest-touton-17may00-en.pdf + method: GET + data_selector: records + params: {} +- name: AfriNIC + endpoint: + path: /en/news/presentations/afrinic-wong-07may00-en.pdf + method: GET + data_selector: records + params: {} +- name: 'TIES Workshop: "ICANN: Myth & Reality"' + endpoint: + path: /en/news/presentations/ties-ajm-07apr00-en.pdf + method: GET + data_selector: records + params: {} +- name: CyberBeat1 + endpoint: + path: /en/news/presentations/cyberbeat1-paris-ajm-05apr00-en.pdf + method: GET + data_selector: records + params: {} +- name: CyberBeat1 + endpoint: + path: /en/news/presentations/cyberbeat1-london-ajm-03apr00-en.pdf + method: GET + data_selector: records + params: {} +- name: ICANN + endpoint: + path: /en/news/presentations/icann-un-cerf-en.pdf + method: GET + data_selector: records + params: {} +- name: 'ICANN-Studienkreis: "Ziele, Grundsätze, und Mechanismen"' + endpoint: + path: /en/news/presentations/icann-studienkreis-leipzig-ajm-30mar00-en.pdf + method: GET + data_selector: records + params: {} +- name: 'ISOC-IL: "The ICANN Experiment"' + endpoint: + path: /en/news/presentations/isoc-il-ajm-13mar00-en.pdf + method: GET + data_selector: records + params: {} +- name: RIPE 35 - Plenary + endpoint: + path: /en/news/presentations/ripe35-plenary-ajm-24feb00-en.pdf + method: GET + data_selector: records + params: {} +- name: RIPE 35 - Local IR Working Group + endpoint: + path: /en/news/presentations/ripe35-lirwg-ajm-23feb00-en.pdf + method: GET + data_selector: records + params: {} +- name: CENTR + endpoint: + path: /en/news/presentations/centr-pisa-ajm-10dec99-en.pdf + method: GET + data_selector: records + params: {} +- name: 'IST99: "Internet / Governance"' + endpoint: + path: /en/news/presentations/ist-ajm-22nov99-en.pdf + method: GET + data_selector: records + params: {} +- name: IANA and ICANN + endpoint: + path: /en/news/presentations/iana-icann-cerf-01jul99-en.pdf + method: GET + data_selector: records + params: {} +- name: FTAA Joint Public-Private Sector Committee of Experts + endpoint: + path: /en/news/presentations/ftaa-touton-14jun99-en.pdf + method: GET + data_selector: records + params: {} +- name: Update on ENUM + endpoint: + path: /en/news/presentations/schink-enum-rio-25mar03-en.pdf + method: GET + data_selector: records + params: {} +- name: speeches + endpoint: + path: /speeches + method: GET + data_selector: records +- name: speeches_presentations_publications + endpoint: + path: /en/news/presentations + method: GET + data_selector: presentations + params: {} +- name: presentation + endpoint: + path: /en/news/presentations + method: GET + data_selector: presentations +- name: presentations + endpoint: + path: /en/news/presentations + method: GET + data_selector: records +- name: presentation + endpoint: + path: /en/news/presentations + method: GET + data_selector: records +- name: presentations + endpoint: + path: /en/news/presentations + method: GET + data_selector: records +- name: NomCom Recruiting Services 2025 + endpoint: + path: /en/announcements/details/icann-request-for-proposal-nomcom-recruiting-services-15-09-2025-en + method: GET + data_selector: records + params: {} +- name: Community Priority Evaluation (CPE) + endpoint: + path: /en/announcements/details/icann-request-for-proposal-community-priority-evaluation-20-08-2025-en + method: GET + data_selector: records + params: {} +- name: New gTLD Program Next Round Auctions + endpoint: + path: /en/announcements/details/icann-rfi-new-gtld-program-next-round-auctions-18-08-2025-en + method: GET + data_selector: records + params: {} +- name: Geographic Names Panel and Reserved Names Panel + endpoint: + path: /en/announcements/details/icann-request-for-information-geographic-names-panel-and-reserved-names-panel-18-08-2025-en + method: GET + data_selector: records + params: {} +- name: Evaluator Panels for String Similarity and Variant Justification + endpoint: + path: /en/announcements/details/icann-rfi-evaluator-panels-for-string-similarity-and-variant-justification-20-06-2025-en + method: GET + data_selector: records + params: {} +- name: Interpretation Equipment and Technical Support + endpoint: + path: /en/announcements/details/icann-request-for-proposal-interpretation-equipment-and-technical-support-03-06-2025-en + method: GET + data_selector: records + params: {} +- name: Internal Audit Services + endpoint: + path: /en/announcements/details/icann-request-for-proposal-internal-audit-services-14-04-2025-en + method: GET + data_selector: records + params: {} +- name: closed_rfps_2025 + endpoint: + path: /closed_rfps/2025 + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2024 + endpoint: + path: /closed_rfps/2024 + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2023 + endpoint: + path: /closed_rfps/2023 + method: GET + data_selector: rfps + params: {} +- name: RFP_2023_Closed + endpoint: + path: /icann/rfps/2023 + method: GET + data_selector: rfps + params: {} +- name: RFI + endpoint: + path: /rfi + method: GET +- name: RFP + endpoint: + path: /rfp + method: GET +- name: RFQ + endpoint: + path: /rfq + method: GET +- name: NomCom Recruiting Services 2025 + endpoint: + path: /en/announcements/details/icann-request-for-proposal-nomcom-recruiting-services-15-09-2025-en + method: GET +- name: Community Priority Evaluation (CPE) + endpoint: + path: /en/announcements/details/icann-request-for-proposal-community-priority-evaluation-20-08-2025-en + method: GET +- name: New gTLD Program Next Round Auctions + endpoint: + path: /en/announcements/details/icann-rfi-new-gtld-program-next-round-auctions-18-08-2025-en + method: GET +- name: Geographic Names Panel and Reserved Names Panel + endpoint: + path: /en/announcements/details/icann-request-for-information-geographic-names-panel-and-reserved-names-panel-18-08-2025-en + method: GET +- name: Evaluator Panels for String Similarity and Variant Justification + endpoint: + path: /en/announcements/details/icann-rfi-evaluator-panels-for-string-similarity-and-variant-justification-20-06-2025-en + method: GET +- name: Interpretation Equipment and Technical Support + endpoint: + path: /en/announcements/details/icann-request-for-proposal-interpretation-equipment-and-technical-support-03-06-2025-en + method: GET +- name: Internal Audit Services + endpoint: + path: /en/announcements/details/icann-request-for-proposal-internal-audit-services-14-04-2025-en + method: GET +- name: 2025 Closed RFPs + endpoint: + path: /icann/2025-closed-rfps + method: GET + data_selector: rfps + params: {} +- name: 2024 Closed RFPs + endpoint: + path: /icann/2024-closed-rfps + method: GET + data_selector: rfps + params: {} +- name: closed_rfps + endpoint: + path: /rfps/closed + method: GET + data_selector: rfps + params: {} +- name: open_rfis + endpoint: + path: /rfis/open + method: GET + data_selector: rfis + params: {} +- name: 2022 Closed RFPs + endpoint: + path: /en/announcements/details/icann-request-for-proposal-software-engineering-staff-augmentation-21-12-2022-en + method: GET + data_selector: records + params: {} +- name: NomCom Recruiting Services RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-nominating-committee-recruiting-services-31-08-2022-en + method: GET + data_selector: records + params: {} +- name: PTI SOC2 & SOC3 Audits RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-rfp-pti-soc2-soc3-audits-08-08-2022-en + method: GET + data_selector: records + params: {} +- name: Africa Domain Name System Study 2022 RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-rfp-africa-domain-name-system-study-2022-27-06-2022-en + method: GET + data_selector: records + params: {} +- name: IMRS Cluster (Africa) Colocation RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-imrs-cluster-africa-colocation-23-03-2022-en + method: GET + data_selector: records + params: {} +- name: IMRS Cluster (Africa) Connectivity RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-imrs-cluster-africa-connectivity-23-03-2022-en + method: GET + data_selector: records + params: {} +- name: Server Refresh 2022 RFQ + endpoint: + path: /en/announcements/details/icann-request-for-quotation-rfq-server-refresh-2022-15-03-2022-en + method: GET + data_selector: records + params: {} +- name: Network Equipment Refresh 2022 RFQ + endpoint: + path: /en/announcements/details/icann-request-for-quotation-rfq-network-equipment-refresh-2022-15-03-2022-en + method: GET + data_selector: records + params: {} +- name: Top-Level Domain Operating Model Study RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-top-level-domain-operating-model-study-04-03-2022-en + method: GET + data_selector: records + params: {} +- name: RFI + endpoint: + path: /rfi + method: GET + data_selector: responses + params: + opened: 12 April 2023 + deadline: 5 May 2023 +- name: RFP + endpoint: + path: /rfp + method: GET + data_selector: responses + params: + opened: 20 March 2023 + deadline: 23 April 2023 +- name: RFQ + endpoint: + path: /rfq + method: GET + data_selector: responses + params: + opened: 25 January 2023 + deadline: 9 February 2023 +- name: RFP_Operating_Model_Study + endpoint: + path: /en/announcements/details/icann-request-for-proposal-rfp-operating-model-study + method: GET + data_selector: records + params: + opened: 4 March 2022 + deadline: 4 April 2022 +- name: RFP_ICANN75_Vendor_Services + endpoint: + path: /en/announcements/details/icann75-vendor-services-rfp + method: GET + data_selector: records + params: + opened: 25 February 2022 + deadline: 18 March 2022 +- name: RFP_DEI_Consulting_Services + endpoint: + path: /en/announcements/details/icann-request-for-proposal-rfp-dei-consulting-services-14-1-2022-en + method: GET + data_selector: records + params: + opened: 14 January 2022 + deadline: 11 February 2022 +- name: RFP_End_User_Survey + endpoint: + path: /en/announcements/details/icann-request-for-proposal-rfp-end-user-survey-14-1-2022-en + method: GET + data_selector: records + params: + opened: 14 January 2022 + deadline: 7 February 2022 +- name: closed_rfps + endpoint: + path: /en/announcements/closed-rfps + method: GET + data_selector: rfps + params: {} +- name: open_rfps + endpoint: + path: /en/announcements/open-rfps + method: GET + data_selector: rfps + params: {} +- name: vendor_services_rfps + endpoint: + path: /en/announcements/vendor-services-rfps + method: GET + data_selector: rfps + params: {} +- name: 2022 Closed RFPs + endpoint: + path: /en/announcements/details/icann-request-for-proposal-software-engineering-staff-augmentation-21-12-2022-en + method: GET + data_selector: records + params: {} +- name: NomCom Recruiting Services RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-nominating-committee-recruiting-services-31-08-2022-en + method: GET + data_selector: records + params: {} +- name: PTI SOC2 & SOC3 Audits RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-rfp-pti-soc2-soc3-audits-08-08-2022-en + method: GET + data_selector: records + params: {} +- name: Africa Domain Name System Study 2022 RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-rfp-africa-domain-name-system-study-2022-27-06-2022-en + method: GET + data_selector: records + params: {} +- name: IMRS Cluster (Africa) Colocation RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-imrs-cluster-africa-colocation-23-03-2022-en + method: GET + data_selector: records + params: {} +- name: IMRS Cluster (Africa) Connectivity RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-imrs-cluster-africa-connectivity-23-03-2022-en + method: GET + data_selector: records + params: {} +- name: Server Refresh 2022 RFQ + endpoint: + path: /en/announcements/details/icann-request-for-quotation-rfq-server-refresh-2022-15-03-2022-en + method: GET + data_selector: records + params: {} +- name: Network Equipment Refresh 2022 RFQ + endpoint: + path: /en/announcements/details/icann-request-for-quotation-rfq-network-equipment-refresh-2022-15-03-2022-en + method: GET + data_selector: records + params: {} +- name: Top-Level Domain Operating Model Study RFP + endpoint: + path: /en/announcements/details/icann-request-for-proposal-top-level-domain-operating-model-study-04-03-2022-en + method: GET + data_selector: records + params: {} +- name: closed_rfps + endpoint: + path: /news/closed-rfps + method: GET + data_selector: rfps + params: {} +- name: open_rfps + endpoint: + path: /news/open-rfps + method: GET + data_selector: rfps + params: {} +- name: rfi_compliance_audit_services + endpoint: + path: /news/compliance-audit-services + method: GET + data_selector: rfi + params: {} +- name: ICANN RFP for Operating Model Study + endpoint: + path: /icann/rfp/operating-model-study + method: GET + data_selector: records + params: + opened: 4 March 2022 + deadline: 4 April 2022 +- name: ICANN75 Vendor Services RFP + endpoint: + path: /icann/rfp/icann75-vendor-services + method: GET + data_selector: records + params: + opened: 25 February 2022 + deadline: 18 March 2022 +- name: Diversity, Equity, and Inclusion Consulting Services RFP + endpoint: + path: /icann/rfp/dei-consulting-services + method: GET + data_selector: records + params: + opened: 14 January 2022 + deadline: 11 February 2022 +- name: End User Survey RFP + endpoint: + path: /icann/rfp/end-user-survey + method: GET + data_selector: records + params: + opened: 14 January 2022 + deadline: 7 February 2022 +- name: ICANN EBERO Services RFP + endpoint: + path: /news/announcement-2018-10-17-en + method: GET + data_selector: records + params: {} +- name: ICANN Meetings Shipping and Logistics RFP + endpoint: + path: /news/announcement-2018-10-09-en + method: GET + data_selector: records + params: {} +- name: ICANN65 Vendor Services RFP + endpoint: + path: /news/announcement-2018-09-21-en + method: GET + data_selector: records + params: {} +- name: DNSSEC KSK Management Tools RFP + endpoint: + path: /news/announcement-2018-09-12-en + method: GET + data_selector: records + params: {} +- name: ICANN Meetings Shipping and Logistics RFI + endpoint: + path: /news/announcement-2018-08-31-en + method: GET + data_selector: records + params: {} +- name: ICANN64 Vendor Services RFP + endpoint: + path: /news/announcement-2018-08-06-en + method: GET + data_selector: records + params: {} +- name: ccNSO Review RFP + endpoint: + path: /news/announcement-2018-04-26-en + method: GET + data_selector: records + params: {} +- name: ICANN's Open Data Platform RFP + endpoint: + path: /news/announcement-2018-03-12-en + method: GET + data_selector: records + params: {} +- name: ICANN63 Vendor Services RFP + endpoint: + path: /news/announcement-2018-02-16-en + method: GET + data_selector: records + params: {} +- name: Rights Protection Mechanisms Survey RFP + endpoint: + path: /news/announcement-2018-01-29-en + method: GET + data_selector: records + params: {} +- name: 2021 Closed RFPs + endpoint: + path: /en/announcements/2021-closed-rfps + method: GET + data_selector: rfps + params: {} +- name: 2020 Closed RFPs + endpoint: + path: /en/announcements/2020-closed-rfps + method: GET + data_selector: rfps + params: {} +- name: closed_rfps + endpoint: + path: /news/closed_rfps + method: GET + data_selector: rfps + params: {} +- name: open_rfps + endpoint: + path: /news/open_rfps + method: GET + data_selector: rfps + params: {} +- name: rfi_compliance_audit_services + endpoint: + path: /news/compliance_audit_services_rfi + method: GET + data_selector: rfi + params: {} +- name: ICANN62 Vendor Services RFP + endpoint: + path: /icann62/vendor-services-rfp + method: GET + data_selector: data + params: + opened: 17 November 2017 + deadline: 15 December 2017 +- name: ICANN People Survey RFP + endpoint: + path: /icann-people-survey-rfp + method: GET + data_selector: data + params: + opened: 8 November 2017 + deadline: 13 December 2017 +- name: ICANN Engineering & IT Outsourcing RFP + endpoint: + path: /icann-engineering-it-outsourcing-rfp + method: GET + data_selector: data + params: + opened: 8 November 2017 + deadline: 7 December 2017 +- name: Technical Compliance Monitoring System RFP + endpoint: + path: /technical-compliance-monitoring-system + method: GET + data_selector: data + params: + opened: 6 November 2017 + deadline: 4 December 2017 +- name: Address Validation Solutions RFI + endpoint: + path: /address-validation-solutions + method: GET + data_selector: data + params: + opened: 26 October 2017 + deadline: 27 November 2017 +- name: gTLD Marketplace Health Index Assessment RFP + endpoint: + path: /gtld-marketplace-health-index-assessment + method: GET + data_selector: data + params: + opened: 22 September 2017 + deadline: 30 October 2017 +- name: ICANN Designated Agent for Registrar Data Escrow Services RFP + endpoint: + path: /icann-designated-agent-rde-services + method: GET + data_selector: data + params: + opened: 17 August 2017 + deadline: 6 October 2017 +- name: Human Rights Impact Assessment RFP + endpoint: + path: /human-rights-impact-assessment + method: GET + data_selector: data + params: + opened: 15 August 2017 + deadline: 8 September 2017 +- name: PTI Service Organization Control Audits RFP + endpoint: + path: /pti-soc2-soc3-audits + method: GET + data_selector: data + params: + opened: 11 August 2017 + deadline: 8 September 2017 +- name: ICANN61 Vendor Services RFP + endpoint: + path: /icann61/vendor-services-rfp + method: GET + data_selector: data + params: + opened: 31 July 2017 + deadline: 18 August 2017 +- name: SSAC Organizational Review RFP + endpoint: + path: /ssac-review + method: GET + data_selector: data + params: + opened: 7 July 2017 + deadline: 4 August 2017 +- name: RSSAC Organizational Review RFP + endpoint: + path: /rssac-review + method: GET + data_selector: data + params: + opened: 5 June 2017 + deadline: 10 July 2017 +- name: NomCom Review RFP + endpoint: + path: /nomcom-review + method: GET + data_selector: data + params: + opened: 19 January 2017 +- name: ebero_services_rfp + endpoint: + path: /news/announcement-2018-10-17-en + method: GET + data_selector: records + params: + opened: 17 October 2018 + deadline: 3 December 2018 +- name: shipping_logistics_rfp + endpoint: + path: /news/announcement-2018-10-09-en + method: GET + data_selector: records + params: + opened: 9 October 2018 + deadline: 29 October 2018 +- name: vendor_services_icann65_rfp + endpoint: + path: /news/announcement-2018-09-21-en + method: GET + data_selector: records + params: + opened: 21 September 2018 + deadline: 22 October 2018 +- name: dnssec_ksk_management_tools_rfp + endpoint: + path: /news/announcement-2018-09-12-en + method: GET + data_selector: records + params: + opened: 12 September 2018 + deadline: 10 October 2018 +- name: shipping_logistics_rfi + endpoint: + path: /news/announcement-2018-08-31-en + method: GET + data_selector: records + params: + opened: 31 August 2018 + deadline: 21 September 2018 +- name: vendor_services_icann64_rfp + endpoint: + path: /news/announcement-2018-08-06-en + method: GET + data_selector: records + params: + opened: 6 August 2018 + deadline: 31 August 2018 +- name: ccnso_review_rfp + endpoint: + path: /news/announcement-2018-04-26-en + method: GET + data_selector: records + params: + opened: 26 April 2018 + deadline: 24 May 2018 +- name: open_data_platform_rfp + endpoint: + path: /news/announcement-2018-03-12-en + method: GET + data_selector: records + params: + opened: 12 March 2018 + deadline: 18 April 2018 +- name: vendor_services_icann63_rfp + endpoint: + path: /news/announcement-2018-02-16-en + method: GET + data_selector: records + params: + opened: 16 February 2018 + deadline: 21 March 2018 +- name: rights_protection_mechanisms_survey_rfp + endpoint: + path: /news/announcement-2018-01-29-en + method: GET + data_selector: records + params: + opened: 29 January 2018 + deadline: 9 March 2018 +- name: NomCom Review RFP + endpoint: + path: /nomcom-review-rfp + method: GET + data_selector: data + params: {} +- name: Ombudsman Assessment RFP + endpoint: + path: /ombudsman-assessment-rfp + method: GET + data_selector: data + params: {} +- name: 2016 Closed RFPs + endpoint: + path: /news/announcement-2-2016-12-12-en + method: GET + data_selector: records + params: {} +- name: Managed Print Services RFP + endpoint: + path: /news/announcement-2016-11-29-en + method: GET + data_selector: records + params: {} +- name: DNS Abuse Study + endpoint: + path: /news/announcement-2016-08-02-en + method: GET + data_selector: records + params: {} +- name: Content Strategy RFP + endpoint: + path: /news/announcement-2016-04-14-en + method: GET + data_selector: records + params: {} +- name: LA Copiers RFQ + endpoint: + path: /news/announcement-2016-04-07-en + method: GET + data_selector: records + params: {} +- name: Router Refresh RFQ + endpoint: + path: /news/announcement-2016-02-29-en + method: GET + data_selector: records + params: {} +- name: Document Management System RFP + endpoint: + path: /news/announcement-2016-02-19-en + method: GET + data_selector: records + params: {} +- name: Print Services RFP + endpoint: + path: /news/announcement-2016-02-03-en + method: GET + data_selector: records + params: {} +- name: Review of the At-Large Community + endpoint: + path: /news/announcement-2016-01-21-en + method: GET + data_selector: records + params: {} +- name: ICANN62 Vendor Services RFP + endpoint: + path: /icann/rfps/icann62-vendor-services + method: GET + data_selector: rfp_data + params: + opened: 17 November 2017 + deadline: 15 December 2017 +- name: ICANN People Survey RFP + endpoint: + path: /icann/rfps/icann-people-survey + method: GET + data_selector: rfp_data + params: + opened: 8 November 2017 + deadline: 13 December 2017 +- name: ICANN Engineering & IT Outsourcing RFP + endpoint: + path: /icann/rfps/icann-engineering-it-outsourcing + method: GET + data_selector: rfp_data + params: + opened: 8 November 2017 + deadline: 7 December 2017 +- name: Technical Compliance Monitoring System RFP + endpoint: + path: /icann/rfps/technical-compliance-monitoring + method: GET + data_selector: rfp_data + params: + opened: 6 November 2017 + deadline: 4 December 2017 +- name: Address Validation Solutions RFI + endpoint: + path: /icann/rfis/address-validation-solutions + method: GET + data_selector: rfi_data + params: + opened: 26 October 2017 + deadline: 27 November 2017 +- name: gTLD Marketplace Health Index Assessment RFP + endpoint: + path: /icann/rfps/gtld-marketplace-health-index-assessment + method: GET + data_selector: rfp_data + params: + opened: 22 September 2017 + deadline: 30 October 2017 +- name: Registrar Data Escrow Services RFP + endpoint: + path: /icann/rfps/registrar-data-escrow-services + method: GET + data_selector: rfp_data + params: + opened: 17 August 2017 + deadline: 6 October 2017 +- name: Human Rights Impact Assessment RFP + endpoint: + path: /icann/rfps/human-rights-impact-assessment + method: GET + data_selector: rfp_data + params: + opened: 15 August 2017 + deadline: 8 September 2017 +- name: PTI Service Organization Control Audits RFP + endpoint: + path: /icann/rfps/pti-service-organization-control-audits + method: GET + data_selector: rfp_data + params: + opened: 11 August 2017 + deadline: 8 September 2017 +- name: ICANN61 Vendor Services RFP + endpoint: + path: /icann/rfps/icann61-vendor-services + method: GET + data_selector: rfp_data + params: + opened: 31 July 2017 + deadline: 18 August 2017 +- name: SSAC Organizational Review RFP + endpoint: + path: /icann/rfps/ssac-organizational-review + method: GET + data_selector: rfp_data + params: + opened: 7 July 2017 + deadline: 4 August 2017 +- name: RSSAC Organizational Review RFP + endpoint: + path: /icann/rfps/rssac-organizational-review + method: GET + data_selector: rfp_data + params: + opened: 5 June 2017 + deadline: 10 July 2017 +- name: NomCom Review RFP + endpoint: + path: /icann/rfps/nomcom-review + method: GET + data_selector: rfp_data + params: + opened: 19 January 2017 +- name: NomCom Review + endpoint: + path: /RFP/NomComReview + method: GET + data_selector: RFP timeline + params: + opened: 19 January 2017 + deadline: 17 February 2017 +- name: Ombudsman Assessment + endpoint: + path: /RFP/OmbudsmanAssessment + method: GET + data_selector: RFP timeline + params: + opened: 9 January 2017 + deadline: 31 January 2017 +- name: closed_rfps + endpoint: + path: /news/closed_rfps + method: GET + data_selector: rfps +- name: open_rfps + endpoint: + path: /news/open_rfps + method: GET + data_selector: rfps +- name: Oracle Cloud Implementation Services RFP + endpoint: + path: /2015-12-14/oracle-cloud-implementation-services-rfp + method: GET + data_selector: RFPs + params: + opened: 14 December 2015 + deadline: 30 December 2015 +- name: Study About the Domain Name System (DNS) Industry and Business in Africa + endpoint: + path: /2015-12-10/dns-industry-africa-study + method: GET + data_selector: RFPs + params: + opened: 10 December 2015 + deadline: 4 January 2016 +- name: Latin America and Caribbean DNS Marketplace Study + endpoint: + path: /2015-09-25/lac-dns-marketplace-study + method: GET + data_selector: RFPs + params: + opened: 25 September 2015 + deadline: 2 November 2015 +- name: Trademark Clearinghouse Independent Review + endpoint: + path: /2015-08-07/tmch-independent-review + method: GET + data_selector: RFPs + params: + opened: 7 August 2015 + deadline: 28 August 2015 +- name: Enterprise Resource Planning (ERP) RFP + endpoint: + path: /2015-06-30/erp-rfp + method: GET + data_selector: RFPs + params: + opened: 30 June 2015 + deadline: 22 July 2015 +- name: Procurement Application RFP + endpoint: + path: /2015-06-30/procurement-application-rfp + method: GET + data_selector: RFPs + params: + opened: 30 June 2015 + deadline: 22 July 2015 +- name: Reference LGRs for the Second Level + endpoint: + path: /2015-06-05/reference-lgrs-second-level + method: GET + data_selector: RFPs + params: + opened: 5 June 2015 + deadline: 30 June 2015 +- name: Root Stability Study + endpoint: + path: /2015-06-05/root-stability-study + method: GET + data_selector: RFPs + params: + opened: 5 June 2015 + deadline: 2 July 2015 +- name: Singapore Office Fit Out RFP + endpoint: + path: /2015-05-19/singapore-office-fit-out + method: GET + data_selector: RFPs + params: + opened: 19 May 2015 + deadline: 29 May 2015 +- name: Meetings Microphone Request for Quotation + endpoint: + path: /2015-05-14/meetings-microphone-rfq + method: GET + data_selector: RFPs + params: + opened: 14 May 2015 + deadline: 22 May 2015 +- name: KMF Security System Upgrade RFQ + endpoint: + path: /2015-05-08/kmf-security-system-upgrade + method: GET + data_selector: RFPs + params: + opened: 8 May 2015 + deadline: 26 May 2015 +- name: Intranet Portal Application RFP + endpoint: + path: /2015-04-04/intranet-portal-application + method: GET + data_selector: RFPs + params: + opened: 4 April 2015 + deadline: 20 April 2015 +- name: Insurance Brokerage RFP + endpoint: + path: /2015-03-31/insurance-brokerage + method: GET + data_selector: RFPs + params: + opened: 31 March 2015 + deadline: 19 April 2015 +- name: LGR Toolset RFP + endpoint: + path: /news/announcement-2-2015-03-19-en + method: GET + data_selector: details + params: + opened: 31 March 2015 + deadline: 19 April 2015 + awarded_to: Arthur J. Gallagher Insurance Brokers of California, Inc. +- name: Middle East DNS Study RFP + endpoint: + path: /news/announcement-2-2015-03-16-en + method: GET + data_selector: details + params: + opened: 16 March 2015 + deadline: 13 April 2015 + awarded_to: European Registry for Internet Domains +- name: closed_rfps_2014 + endpoint: + path: /news/closed_rfps/2014 + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2013 + endpoint: + path: /news/closed_rfps/2013 + method: GET + data_selector: rfps + params: {} +- name: closed_rfps_2012 + endpoint: + path: /news/closed_rfps/2012 + method: GET + data_selector: rfps + params: {} +- name: Oracle Cloud Implementation Services RFP + endpoint: + path: /rfs/oracle-cloud-implementation-services + method: GET + data_selector: data + params: + opened: 14 December 2015 + deadline: 30 December 2015 + awarded_to: Zensar Technologies, Inc., Infovity Inc., Emtec Consulting Services + LLC +- name: Study About the Domain Name System Industry in Africa + endpoint: + path: /rfs/dns-industry-africa + method: GET + data_selector: data + params: + opened: 10 December 2015 + deadline: 4 January 2016 + awarded_to: South African Communications Forum (SACF) +- name: Latin America and Caribbean DNS Marketplace Study + endpoint: + path: /rfs/latam-caribbean-dns-marketplace + method: GET + data_selector: data + params: + opened: 25 September 2015 + deadline: 2 November 2015 + awarded_to: Oxford Information Labs Limited +- name: Trademark Clearinghouse Independent Review + endpoint: + path: /rfs/tmch-independent-review + method: GET + data_selector: data + params: + opened: 7 August 2015 + deadline: 28 August 2015 + awarded_to: Analysis Group, Inc. +- name: Enterprise Resource Planning RFP + endpoint: + path: /rfs/enterprise-resource-planning + method: GET + data_selector: data + params: + opened: 30 June 2015 + deadline: 22 July 2015 + awarded_to: Oracle America Inc +- name: Procurement Application RFP + endpoint: + path: /rfs/procurement-application + method: GET + data_selector: data + params: + opened: 30 June 2015 + deadline: 22 July 2015 + awarded_to: Oracle America Inc and SciQuest, Inc +- name: Reference LGRs for the Second Level + endpoint: + path: /rfs/reference-lgrs-second-level + method: GET + data_selector: data + params: + opened: 5 June 2015 + deadline: 30 June 2015 + awarded_to: Sheypa LLC +- name: Root Stability Study + endpoint: + path: /rfs/root-stability-study + method: GET + data_selector: data + params: + opened: 5 June 2015 + deadline: 2 July 2015 + awarded_to: Netherlands Organisation for Applied Scientific Research (TNO) +- name: Singapore Office Fit Out RFP + endpoint: + path: /rfs/singapore-office-fit-out + method: GET + data_selector: data + params: + opened: 19 May 2015 + deadline: 29 May 2015 + awarded_to: ID21 Pte Ltd +- name: Meetings Microphone Request for Quotation + endpoint: + path: /rfs/meetings-microphone + method: GET + data_selector: data + params: + opened: 14 May 2015 + deadline: 22 May 2015 + awarded_to: Congress Rental +- name: KMF Security System Upgrade RFQ + endpoint: + path: /rfs/kmf-security-system-upgrade + method: GET + data_selector: data + params: + opened: 8 May 2015 + deadline: 26 May 2015 + awarded_to: Ollivier Corporation +- name: Intranet Portal Application RFP + endpoint: + path: /rfs/intranet-portal-application + method: GET + data_selector: data + params: + opened: 4 April 2015 + deadline: 20 April 2015 + awarded_to: Jive Software Inc +- name: Insurance Brokerage RFP + endpoint: + path: /rfs/insurance-brokerage + method: GET + data_selector: data + params: + opened: 31 March 2015 + deadline: 19 April 2015 +- name: newsletter_archive_2015 + endpoint: + path: /resources/pages/newsletter-2015 + method: GET + data_selector: records +- name: LGR Toolset RFP + endpoint: + path: /news/announcement-2-2015-03-19-en + method: GET + data_selector: RFP + params: + opened: 31 March 2015 + deadline: 19 April 2015 + awarded_to: Arthur J. Gallagher Insurance Brokers of California, Inc. +- name: Middle East DNS Study RFP + endpoint: + path: /news/announcement-2-2015-03-16-en + method: GET + data_selector: RFP + params: + opened: 16 March 2015 + deadline: 13 April 2015 + awarded_to: European Registry for Internet Domains +- name: 2014 Closed RFPs + endpoint: + path: /news/closed-2014-rfps + method: GET + data_selector: rfps + params: {} +- name: 2013 Closed RFPs + endpoint: + path: /news/closed-2013-rfps + method: GET + data_selector: rfps + params: {} +- name: 2012 Closed RFPs & EOIs + endpoint: + path: /news/closed-2012-rfps + method: GET + data_selector: rfps + params: {} +- name: January 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-01-02-en + method: GET + data_selector: records +- name: February 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-02-06-en + method: GET + data_selector: records +- name: March 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-03-06-en + method: GET + data_selector: records +- name: April 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-04-03-en + method: GET + data_selector: records +- name: May 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-05-01-en + method: GET + data_selector: records +- name: June 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-06-05-en + method: GET + data_selector: records +- name: July 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-07-03-en + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: correspondence_records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records + params: {} +- name: January 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-01-02-en + method: GET +- name: February 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-02-06-en + method: GET +- name: March 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-03-06-en + method: GET +- name: April 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-04-03-en + method: GET +- name: May 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-05-01-en + method: GET +- name: June 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-06-05-en + method: GET +- name: July 2015 + endpoint: + path: /resources/newsletter/newsletter-2015-07-03-en + method: GET +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: correspondence_records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: cookie_policy + endpoint: + path: /privacy/cookies + method: GET +- name: privacy_policy + endpoint: + path: /data-protection/privacy-policy + method: GET +- name: correspondence + endpoint: + path: /system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: documents + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: locations + endpoint: + path: /locations + method: GET + data_selector: records +- name: complaints_office + endpoint: + path: /complaints-office + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: correspondence_records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: letters + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: correspondence_records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: Privacy Preference Center + endpoint: + path: /privacy-preference-center + method: GET + data_selector: data +- name: Cookie Policy + endpoint: + path: /privacy/cookies + method: GET + data_selector: data +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: correspondence_records +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: letters + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: letters + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: documents + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: letters + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: correspondence_records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: letter + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: correspondence + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: letters + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: letters + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: correspondence_records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: documents + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: letters + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: documents + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: letters + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: letters + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: locations + endpoint: + path: /locations + method: GET + data_selector: records +- name: complaints_office + endpoint: + path: /complaints-office + method: GET + data_selector: records +- name: letter_from_goran_marby_to_elliot_noss + endpoint: + path: /en/system/files/correspondence/marby-to-noss-04sep18-en.pdf + method: GET + data_selector: records +- name: letter_from_akram_atallah_to_graeme_bunton + endpoint: + path: /en/system/files/correspondence/atallah-to-bunton-06jun18-en.pdf + method: GET + data_selector: records +- name: letter_from_dean_marks_&_steve_metalitz_to_akram_atallah_&_cyrus_namazi + endpoint: + path: /en/system/files/correspondence/marks-metalitz-to-atallah-namazi-10may18-en.pdf + method: GET + data_selector: records +- name: letter_from_graeme_bunton_to_akram_atallah + endpoint: + path: /en/system/files/correspondence/bunton-to-atallah-04may18-en.pdf + method: GET + data_selector: records +- name: letter_from_alan_greenberg_to_theresa_swinehart + endpoint: + path: /en/system/files/correspondence/greenberg-to-swinehart-05jun18-en.pdf + method: GET + data_selector: records +- name: letter_from_theresa_swinehart_to_alan_greenberg + endpoint: + path: /en/system/files/correspondence/swinehart-to-greenberg-19jun18-en.pdf + method: GET + data_selector: records +- name: letter_from_larisa_gurnick_to_so_ac_chairs + endpoint: + path: /en/system/files/correspondence/gurnick-to-soac-chairs-05jun18-en.pdf + method: GET + data_selector: records +- name: letter_from_khaled_koubaa_to_supporting_organizations_and_advisory_committee_chairs + endpoint: + path: /en/system/files/correspondence/koubaa-to-soac-chairs-23mar18-en.pdf + method: GET + data_selector: records +- name: letter_from_so_ac_chairs_to_khaled_koubaa + endpoint: + path: /en/system/files/correspondence/soac-to-koubaa-13mar18-en.pdf + method: GET + data_selector: records +- name: letter_from_khaled_koubaa_to_so_ac_chairs + endpoint: + path: /en/system/files/correspondence/koubaa-to-soac-chairs-03mar18-en.pdf + method: GET + data_selector: records +- name: letter_from_so_ac_chairs_to_theresa_swinehart + endpoint: + path: /en/system/files/correspondence/greenberg-et-al-to-swinehart-21feb18-en.pdf + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: letters + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records + params: {} +- name: correspondence_letters + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: notice_of_price_increase + endpoint: + path: /en/system/files/correspondence/notice_of_price_increase + method: GET + data_selector: correspondence +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: files + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: correspondence_records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence/ + method: GET + data_selector: correspondences + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: correspondence_records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: documents + params: {} +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/system/files/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/correspondence + method: GET + data_selector: correspondence_records + params: {} +- name: correspondence + endpoint: + path: /en/news/correspondence + method: GET + data_selector: records +- name: Privacy Preference Center + endpoint: + path: /privacy-preference-center + method: GET + data_selector: preferences + params: {} +- name: correspondence + endpoint: + path: /resources/pages/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /en/correspondence + method: GET + data_selector: titles + params: {} +- name: Contact Us + endpoint: + path: /contact + method: GET + data_selector: records +- name: Accountability And Transparency + endpoint: + path: /accountability-transparency + method: GET + data_selector: records +- name: Data Protection + endpoint: + path: /data-protection + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /resources/pages/correspondence + method: GET + data_selector: correspondence_records + params: {} +- name: correspondence + endpoint: + path: /en/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /resources/pages/correspondence-2006 + method: GET + data_selector: correspondence_records +- name: correspondence + endpoint: + path: /en/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /resources/pages/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /en/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /resources/pages/correspondence + method: GET + data_selector: records +- name: correspondence + endpoint: + path: /resources/pages/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /resources/pages/correspondence + method: GET + data_selector: records + params: {} +- name: correspondence + endpoint: + path: /resources/pages/correspondence + method: GET + data_selector: correspondence_records +- name: correspondence_2005 + endpoint: + path: /resources/pages/correspondence-2005 + method: GET + data_selector: records +- name: correspondence_2004 + endpoint: + path: /resources/pages/correspondence-2004 + method: GET + data_selector: correspondence_records +notes: +- Some objects may return nulls in deeply nested fields +- Uses cookies to improve browsing experience and analyze traffic. +- Uses cookies to improve browsing experience, analyze traffic, and provide personalized + content. +- This page is available only with JavaScript enabled +- ICANN coordinates the allocation and assignment of names in the root zone of the + DNS. +- Blocking some types of cookies may impact your experience of the site and the services + we are able to offer. +- The Fellowship application round for ICANN85 Community Forum is now closed. +- The next application round for ICANN86 Policy Forum will be opened on November 10, + 2025 at 23:59 UTC time. +- Requires setup of connected app in api +- ICANN is not responsible for profile content or verification of user details. +- The Ombuds is independent entity, reporting directly to the ICANN Board. +- The Ombuds cannot make, change, or set aside a policy, administrative or Board or + staff decision. +- Complaints are handled transparently and may be published. +- Personal information will be redacted as appropriate. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Conducted by community-led review teams +- Adhere to the standards and criteria documented in Operating Standards for Specific + Reviews +- Some parts of the site will not then work if cookies are blocked. +- Public RFPs and RFIs are open for participation. +- The RFP is open for responses from various dates depending on the specific RFP. +- Public RFPs allow any prospective supplier to submit a proposal. +- Participants who have used the ICANN sourcing tool can continue using the same credentials. +- Indications of interest should be emailed to specific ICANN email addresses for + each request. +- The RFI is open for responses from 12 April 2023 through 5 May 2023. +- The RFP is open for responses from 20 March 2023 through 23 April 2023. +- The RFI is open for responses from 27 January 2023 through 24 February 2023. +- The RFP is open for responses from 26 January 2023 through 24 February 2023. +- The RFQ is open for responses from 25 January 2023 through 9 February 2023. +- Participants who have already used the ICANN sourcing tool may continue to use the + same credentials. +- Indications of interest should be emailed to the respective email addresses provided + in each RFP. +- Responses should be electronically submitted using ICANN's sourcing tool. +- RFPs are open for a limited time and specific deadlines must be met. +- Indications of interest must be emailed to the specified email addresses. +- Proposals should be electronically submitted using ICANN's sourcing tool. +- Indications of interest are to be received by emailing NomComReview-RFP@icann.org. +- Proposals should be electronically submitted by 23:59 PST on the respective due + dates using ICANN's sourcing tool. +- Indications of interest are to be received by emailing NomComReview-RFP@icann.org +- Proposals should be electronically submitted by 23:59 PST on 17 February 2017 using + ICANN's sourcing tool +- RFPs detail timelines and contact information for submissions. +- All email correspondence related to this RFP should be addressed to LGRToolset-rfp@icann.org +- All email correspondence related to this RFP should be addressed to MEDNSStudy-rfp@icann.org +- Data contains various correspondence details related to ICANN. +- ICANN does not resolve individual complaints. +- For legal matters, consult an attorney. +- ICANN does not resolve individual complaints regarding registrar services. +- A name collision occurs when an attempt to resolve a name used in a private name + space results in a query to the public Domain Name System (DNS). +- ICANN has made a commitment to mitigate and manage name collision occurrence. +- IDNs are domain names that include characters used in the local representation of + languages that are not written with the twenty-six letters of the basic Latin alphabet. +- The "hostname rule" requires that all domain names of the type under consideration + here are stored in the DNS using only the ASCII characters listed above, with the + one further addition of the hyphen "-". +- Instances where there is a reasonable belief of demonstrable, severe harm as a consequence + of a name collision should be reported. +- This Privacy Policy applies to all electronic collection and use of Personal Information, + including via any mobile version of the websites, mobile applications, electronic + mail, and other electronic services. +- 'Cookies exempt from consent: Strictly necessary cookies guarantee functions without + which you would not be able to use the Website as intended.' +- 'Cookies subject to consent: All other cookies that are not strictly necessary to + use the Website still fulfil important tasks.' +- This Privacy Policy applies to all electronic collection and use of Personal Information. +- Cookies used to improve user experience and provide customized content. +- Cookies exempt from consent are strictly necessary for website functionality. +- Uses cookies to improve browsing experience +- Some objects like Contact may return nulls in deeply nested fields +- Proceedings are open for a minimum of 40 days with exceptions as documented in the + ICANN Bylaws or ICANN community operational procedures. +- Rights include access to information from your registrar regarding processes for + registering, managing, transferring, renewing, and restoring your domain name registration. +- Registrants manage their domain name settings through their registrar. +- Requires setup of connected app in ICANN. +- ICANN offers online courses and workshops for beginners. +- You need to create an ICANN account to use the ICANN Learn platform. +- Interactive webinars covering specific topics related to ICANN. +- Interactive webinars moderated by ICANN staff and community members. +- Applications are currently closed. +- Applications are currently closed for ICANN86. +- NextGen participants must secure their own visas for travel at their own expense. +- Policy Update increases your access to ICANN policy information, and you can get + it delivered through a free online subscription. +- ICANN policy is developed by the community in a bottom-up, multistakeholder fashion. +- We use cookies to improve your browsing experience, analyze our traffic, and provide + you with personalized content as described in our Cookie Policy. +- Requires setup of connected app in ICANN +- Public Comment is a vital part of ICANN's multistakeholder model. +- All Public Comment submissions are public and archived. +- Information regarding rights and responsibilities of domain name registrants +- Reconsideration Requests must be submitted within fifteen days. +- Independent Review Process requires requests to be filed within thirty days. +- Enforcement activities include addressing external complaints, proactive monitoring + to ensure contracted parties comply with the agreements. +- The registrant manages their domain name settings through their registrar. +- ICANN is implementing a new accreditation program for privacy and proxy service + providers. +- Uses cookies to improve browsing experience and analyze traffic +- For more information on our cookie practices see our Cookie Policy. +- More general information on our privacy practices, please review our Privacy Policy. +- Download results to .csv file +- The ICANN Grant Program funds projects aligned with ICANN's mission. +- The total net auction proceeds fund amounts to $217 million as of 30 June 2023. +- The total amount available for grants in this first cycle is $10 million. +- Applications can be submitted for grant awards between $50,000 and $500,000. +- The total net auction proceeds fund amounts to $217 million as of 30 June 2023 and + are segregated from ICANN's general Operations. +- The maximum project duration is 24 months. +- ICANN's Contractual Compliance authority is limited to the obligations set forth + in agreements with registrars and registry operators. +- ICANN has no contractual authority to address complaints involving country code + top-level domains (ccTLDs). +- Fostering meaningful connections is more crucial than ever. +- The WSIS+20 Outreach Network aims to support facilitating and leveraging the power + of collective collaboration. +- The project seeks to preserve the organization’s institutional memory by capturing + stories from key figures who helped shape ICANN’s past and present. +- This is a living project that will constantly be evolving and expanding. +- Multilingual tool for explaining acronyms and terms. +- ICANN has hundreds of acronyms and terms, which can be confusing. +- We created this multilingual tool to help explain what these terms mean and facilitate + your work within the ICANN community. +- Translated versions of acronyms and terms are also available in Arabic, Chinese, + French, Russian, and Spanish. +- ICANN has hundreds of acronyms and terms which can be confusing. +- Translated versions of acronyms and terms are available in Arabic, Chinese, French, + Russian, and Spanish. +- ICANN frequently reviews its structure and processes to keep up to speed. +- Public comment boxes allow for direct interaction with ICANN processes. +- If ICANN meeting is held virtually, the Fellowship Program will also be held virtually. +- Selection Committee members shall serve a total of two years. +- Fellows must comply with all local laws and legislation during travel. +- Fellows are responsible for obtaining their own insurance. +- Uses cookies for managing consent preferences +- Public comment boxes allow for direct interaction into ICANN's processes. +- ICANN meetings are free and open to all. +- Selection Committee members serve a two-year term, with up to 45 Fellowships available + per round. +- DNSSEC works by digitally signing each DNS record so that any tampering of that + record can be detected. +- To help reap the full benefits of DNSSEC we recommend support DNSSEC validation + on DNS resolution services. +- Active but incomplete applications will NOT be considered once application window + is closed. +- Fellows agree to abide by the ICANN Community Travel Support Guidelines. +- ICANN's Risk Management Framework creates a holistic view of significant risks to + the organization's mission. +- Emergency Response Planning teams manage tactical response and receive guidance + from the Crisis Management Team. +- DNSSEC has the potential of becoming a critical link for a wide range of industry + applications. +- Uses cookies for consent management +- The revised Guidelines are in effect as of 1 July 2020. +- ICANN org will update its travel guidance as global public health conditions permit. +- The website uses cookies to improve browsing experience. +- The Ombuds provides an independent and internal evaluation of complaints. +- Issues raised are completely confidential. +- Online Dispute Resolution schemes must promote respectful online communication. +- Online Dispute Resolution schemes must provide for confidentiality and data security + as required by national, regional and international law. +- The Standards are based on the current literature and research in the field of Online + Dispute Resolution. +- These Standards of Practice attempt to consider all of the collected wisdom of various + bodies. +- ICANN's DIDP ensures public access to information unless confidentiality is required. +- Reviews are conducted in a transparent, consistent, efficient, and predictable manner. +- Implementation status of recommendations includes Complete, In progress, Not started. +- ICANN's Documentary Information Disclosure Policy (DIDP) ensures public access to + information unless confidentiality is required. +- Participation is open to anyone who wishes to engage in this process. +- Feedback should be submitted via the publicly archived mailing list. +- The Coordination Group will meet in mid-July, tentatively on 16-18 July. +- Selected candidates should be prepared to meet in mid-July 2014. +- The Coordination Group may be supported by an independent Secretariat funded by + ICANN and selected through an open process. +- Transparency is a fundamental aspect of the success of the multistakeholder decision-making + model. +- Uses cookies for user preference management. +- The English language version of this Agreement (and all referenced specifications) + is the official and controlling version and translations are provided for reference + only. +- Uses OAuth2 for authentication. +- The Coordination Group will meet in mid-July, tentatively on 16-18 July, to finalize + its modes of operation, working methods and begin its work. +- Communities represented in the Coordination Group are urged to launch their internal + processes to select their representatives, per the number of seats allocated. +- The Coordination Group may be supported by an independent Secretariat (funded by + ICANN and selected through an open process) that provides administrative and logistical + support. +- Disclosure must be conducted in compliance with all applicable laws and contractual + obligations +- ICANN considers the impact of confidentiality obligations within contracts +- This version of the agreement was approved by the ICANN Board on 21 January 2024. +- The 2024 global amendment to existing registrar accreditation agreements is effective + 5 April 2024. +- The strategic planning process is inclusive and involves community participation. +- Disclosure must be conducted in compliance with all applicable laws and contractual + obligations. +- Starting with FY24, ICANN will target to release this information within 120 days + of the conclusion of the fiscal year. +- Some data may return nulls in deeply nested fields +- The strategic planning process for fiscal years 2026–2030 spans from September 2023 + to April 2025. +- 'The process consists of six phases: Environmental Scan and Analysis, Strategy Development, + Implementation Strategy Development, Public Comment, Plan Consideration and Adoption, + Empowered Community Process.' +- Public RFPs available for any prospective provider to participate. +- RFPs are published periodically and may have specific timelines. +- RFPs are open for specific periods, usually with a deadline for submissions. +- Indications of interest are to be received via specified email addresses. +- Indications of interest are to be received by emailing the respective email addresses + for each RFP. +- Proposals should be electronically submitted by 23:59 PST on 17 February 2017 using + ICANN's sourcing tool. +- Indications of interest are to be received via email. +- RFPs are published periodically and have specific deadlines. +- Participation requires submission via ICANN's sourcing tool. +- Participants provide intent to bid by 25 March 2015 by 23:59 UTC. +- Participants submit complete proposals by 13 April 2015 by 23:59 UTC. +- All email correspondence related to RFPs should be addressed to the respective email + provided in each RFP. +- Participants provide intent to bid by 25 March 2015 by 23:59 UTC +- Participants submit any questions to ICANN by 25 March 2015 by 23:59 UTC +- All email correspondence related to RFPs should be addressed to the respective email + mentioned in each RFP section. +- Multiple correspondence documents available for reference. +- Data includes correspondence related to ICANN issues and decisions. +- Published correspondence data from ICANN +- Data includes correspondence related to ICANN activities +- Documents are in PDF format +- Data includes various correspondence items published by ICANN. +- Includes various correspondence published by ICANN +- No authentication required for accessing correspondence data. +- Contains various correspondence related to ICANN +- Publicly accessible correspondence data. +- The documentation contains various correspondence titles and links to PDF files. +- Published correspondence from ICANN +- Data includes correspondence details from ICANN. +- Data includes correspondence related to ICANN and various stakeholders. +- Data includes correspondence from ICANN published on various dates. +- Data includes correspondence from various dates and authors related to ICANN. +- Published dates vary throughout the correspondence. +- Contains various correspondence documents and communications. +- Data is published regularly with various correspondence. +- Contains various correspondence letters from ICANN. +- This API contains correspondence published by ICANN. +- Correspondence includes various letters published on different dates. +- Published documents related to ICANN Board communications +- Contains various letters and correspondence related to ICANN. +- Published dates indicate when the correspondence was made available. +- The API provides access to various correspondence documents published by ICANN. +- Various letters published on different dates. +- Contains letters published by ICANN Board and Committees. +- Contains various letters and correspondence regarding ICANN activities +- Various letters and correspondences published by ICANN. +- The correspondence includes various letters associated with ICANN activities and + publications. +- Data includes letters published by ICANN +- Contains various letters and documents related to ICANN Board and policies. +- Data includes various letters and correspondences related to ICANN. +- Published dates may vary for each correspondence. +- Includes various letters and reports published by ICANN +- Includes various letters and documents related to ICANN activities. +- Contains letters and communications published by ICANN. +- Documents dated from 2020 regarding ICANN correspondence. +- Data consists of correspondence letters published on specific dates. +- Contains various letters and reports related to ICANN. +- Contains various letters and communications from ICANN. +- Contains various letters and correspondence related to ICANN +- Contains various letters and correspondences related to ICANN. +- Blocking some types of cookies may impact user experience +- Document collection related to correspondence from ICANN. +- Published correspondence related to ICANN activities from 2019. +- All correspondence is published on the ICANN website. +- Documents pertain to various letters and correspondence related to ICANN. +- Data consists of correspondence published by ICANN. +- Includes multiple letters and dates +- Data consists of letters and correspondence published by ICANN. +- The correspondence includes various letters and documents related to ICANN operations. +- Published dates are available for each correspondence +- Documents are linked to their respective titles +- Multiple correspondence letters are published with varying dates and authors. +- This API provides access to various correspondence documents related to ICANN. +- Contains letters and correspondence related to ICANN. +- Published correspondence from ICANN Board and related entities +- Contains various letters published by ICANN. +- Published letters from various dates in 2019 +- Data includes various letters and correspondence related to ICANN. +- Various letters published with dates and authorship from ICANN. +- Data includes various letters related to ICANN activities and correspondence. +- Contains various letters and correspondence from ICANN +- Published letters from ICANN for the year 2018 +- Contains correspondence related to GDPR and domain name system. +- Data consists of various letters and correspondence published by ICANN. +- This source contains correspondence related to GDPR impact on the Domain Name System + and WHOIS. +- Contains correspondence related to ICANN published dates +- Various letters regarding GDPR Impact on the Domain Name System and WHOIS. +- Data includes various letters and correspondences from ICANN published in 2017 +- Documentation is extensive and covers various correspondence. +- The correspondence includes various letters published on different dates. +- Published letters from ICANN correspondence in 2017. +- Multiple letters and correspondence from various individuals and organizations. +- Titles include correspondence letters and reports. +- Data exposure issue +- Published correspondence by ICANN from various dates. +- Documents are published periodically with specific dates. +- Publicly available correspondence from ICANN +- Data includes correspondence related to gTLD applications and other ICANN activities. +- Data includes correspondence between ICANN officials and various stakeholders. +- Contains various letters and documents related to ICANN and its operations. +- Data exposure issue reported +- Data includes various correspondences related to ICANN and new gTLD applications. +- Documentation may contain links to external PDF files. +- Contains various letters and correspondence regarding gTLD applications and ICANN + issues. +- Published dates may vary and are provided in the correspondence details. +- This is a collection of correspondence related to gTLD applications. +- Data includes various correspondence related to new gTLD applications. +- No specific API endpoints or authentication details provided in the documentation. +- Data includes various correspondences related to ICANN and gTLD applications. +- Data includes correspondence related to ICANN and gTLD applications. +- Documentation contains various correspondence related to new gTLD applications. +- Published documents related to ICANN correspondence. +- Data includes correspondence titles, dates, sender affiliations, issues, and related + correspondence. +- Data contains correspondence from 2011 regarding ICANN. +- The data consists of various correspondences from ICANN in 2010. +- Contains correspondence related to ICANN and various stakeholders. +- Contains correspondence related to ICANN. +- Cookies are used to improve browsing experience and analyze traffic. +- Data includes correspondence from various ICANN members and stakeholders. +- Uses cookies to improve browsing experience. +- Uses OAuth2 for authentication +errors: +- '400: ''Bad Request''' +- '401: ''Not Authorised''' +- '429: ''Too Many Requests''' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '404 Not Found: Check the endpoint path or resource availability.' +- Instances where there is a reasonable belief of demonstrable, severe harm as a consequence + of a name collision should be reported. +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- 'APPLICATION_CLOSED: Applications are currently not being accepted.' +- 'APPLICATION_CLOSED: Active but incomplete applications will NOT be considered once + application window is closed.' +- 'INVALID_DOCUMENTS: Must present valid travel documents prior to booking.' +- '400 Bad Request: Check the request format.' +- '404 Not Found: The requested resource does not exist.' +- '404 Not Found: Check the endpoint or resource path.' +- '404 Not Found: Check the document URL for correctness.' +auth_info: + mentioned_objects: + - Ombuds + - OauthToken + - AuthProvider + - NamedCredential + - ICANN Account + - Authorization + - ICANN Board + - client_id + - OAuth +client: + base_url: https://account.icann.org + auth: + type: oauth2 +source_metadata: null diff --git a/infraon/infraon-docs.md b/infraon/infraon-docs.md new file mode 100644 index 00000000..80114fef --- /dev/null +++ b/infraon/infraon-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Infraon Infinity data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def infraon_infinity_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://docs.infraon.io/infraon-infinity-api-guide/v", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + tag,,tasks,,chat + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='infraon_infinity_migrations_pipeline', + destination='duckdb', + dataset_name='infraon_infinity_migrations_data', + ) + # Load the data + load_info = pipeline.run(infraon_infinity_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from infraon_infinity_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Tasks: Manage tasks and their status. +- Chat: Handle chat-related functionalities. +- Tickets: Interact with ticketing system for issues. +- Profile: Access user profile information. + +You will then debug the Infraon Infinity pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Infraon Infinity support. + ```shell + dlt init dlthub:infraon_infinity_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Infraon Infinity API, as specified in @infraon_infinity_migrations-docs.yaml + Start with endpoints tag and and skip incremental loading for now. + Place the code in infraon_infinity_migrations_pipeline.py and name the pipeline infraon_infinity_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python infraon_infinity_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication method used is OAuth2, specifically the refresh token flow. A connected app setup is required for successful authentication. + + To get the appropriate API keys, please visit the original source at https://docs.infraon.io/infraon-infinity-api-guide/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python infraon_infinity_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline infraon_infinity_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset infraon_infinity_migrations_data + The duckdb destination used duckdb:/infraon_infinity_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline infraon_infinity_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("infraon_infinity_migrations_pipeline").dataset() + # get a table as Pandas frame + data.a.df().head() + ``` + +## Running into errors? + +Ensure that a connected app is properly set up for OAuth2 authentication. Be aware that certain API endpoints may return nulls in deeply nested fields. Additionally, access to specific data may require appropriate user permissions. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/infraon/infraon-docs.yaml b/infraon/infraon-docs.yaml new file mode 100644 index 00000000..1e438ba2 --- /dev/null +++ b/infraon/infraon-docs.yaml @@ -0,0 +1,9987 @@ +resources: +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: users + endpoint: + path: /services/data/vXX.X/sobjects/User + method: GET + data_selector: records +- name: Dashboard + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/dashboard + method: GET +- name: Assets + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/assets + method: GET +- name: Ticket Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/ticket-management + method: GET +- name: Request Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/request-management + method: GET +- name: Problem Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/problem-management + method: GET +- name: Change Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/change-management + method: GET +- name: Release Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/release-management + method: GET +- name: Event Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/event-management + method: GET +- name: Reports + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/report + method: GET +- name: SLA + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/sla-management + method: GET +- name: Network Diagram + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/network-diagram + method: GET +- name: Topology + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/topology + method: GET +- name: Geomap + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/geomap + method: GET +- name: Infraon Configuration + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/infraon-configuration + method: GET +- name: active_users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/active-users + method: GET +- name: leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/leaves + method: GET +- name: my_leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/my-leaves + method: GET +- name: password_policy + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/password-policy + method: GET +- name: requesters + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/requesters + method: GET +- name: roles_privileges + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/roles-and-privileges + method: GET +- name: teams + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/teams + method: GET +- name: users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/users + method: GET +- name: shift_configuration + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/shift-configuration + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Dashboard + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/dashboard + method: GET +- name: Assets + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/assets + method: GET +- name: Ticket Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/ticket-management + method: GET +- name: Request Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/request-management + method: GET +- name: Problem Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/problem-management + method: GET +- name: Change Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/change-management + method: GET +- name: Release Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/release-management + method: GET +- name: Event Management + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/event-management + method: GET +- name: Reports + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/report + method: GET +- name: SLA + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/sla-management + method: GET +- name: Network Diagram + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/network-diagram + method: GET +- name: Topology + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/topology + method: GET +- name: Geomap + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/geomap + method: GET +- name: Infraon Configuration + endpoint: + path: /infraon-help/explore-more/video-library-infraon-infinity/infraon-configuration + method: GET +- name: active_users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/active-users + method: GET +- name: leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/leaves + method: GET +- name: my_leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/my-leaves + method: GET +- name: password_policy + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/password-policy + method: GET +- name: requesters + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/requesters + method: GET +- name: roles_privileges + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/roles-and-privileges + method: GET +- name: teams + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/teams + method: GET +- name: users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/users + method: GET +- name: shift_configuration + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/shift-configuration + method: GET +- name: Default Dashboard + endpoint: + path: /dashboards/default + method: GET + data_selector: widgets + params: {} +- name: Ticket Summary Dashboard + endpoint: + path: /dashboards/ticket_summary + method: GET + data_selector: widgets + params: {} +- name: Asset Summary Dashboard + endpoint: + path: /dashboards/asset_summary + method: GET + data_selector: widgets + params: {} +- name: Release Dashboard + endpoint: + path: /dashboards/release + method: GET + data_selector: widgets + params: {} +- name: purchase_order + endpoint: + path: /api/purchase_order + method: POST + data_selector: data + params: {} +- name: purchase_order + endpoint: + path: /purchase_order + method: GET + data_selector: POs + params: {} +- name: Active users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/active-users + method: GET +- name: Leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/leaves + method: GET +- name: My Leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/my-leaves + method: GET +- name: Password Policy + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/password-policy + method: GET +- name: Requesters + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/requesters + method: GET +- name: Roles & Privileges + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/roles-and-privileges + method: GET +- name: Teams + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/teams + method: GET +- name: Users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/users + method: GET +- name: Shift Configuration + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/shift-configuration + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: ticket + endpoint: + path: /api/tickets + method: GET + data_selector: records +- name: Ticket Management + endpoint: + path: /infraon-help/infinity-user-guide/ticket-management + method: GET +- name: purchase_order + endpoint: + path: /purchase-order + method: GET + data_selector: records + params: {} +- name: ticket + endpoint: + path: /tickets + method: GET + data_selector: tickets + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: problems + endpoint: + path: /problems + method: GET + data_selector: problems + params: {} +- name: IMACD Process + endpoint: + path: /api/imacd/process + method: GET + data_selector: processes +- name: change_request + endpoint: + path: /api/change_requests + method: POST + data_selector: data + params: {} +- name: active_users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/active-users + method: GET +- name: leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/leaves + method: GET +- name: my_leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/my-leaves + method: GET +- name: password_policy + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/password-policy + method: GET +- name: requesters + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/requesters + method: GET +- name: roles_privileges + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/roles-and-privileges + method: GET +- name: teams + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/teams + method: GET +- name: users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/users + method: GET +- name: shift_configuration + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/shift-configuration + method: GET +- name: business_service + endpoint: + path: /business_service + method: GET + data_selector: services + params: {} +- name: request_logging + endpoint: + path: /request/logging + method: POST + data_selector: requests + params: + state: Open + status: New +- name: request_categorization + endpoint: + path: /request/categorization + method: PUT + data_selector: requests + params: + status: Assign +- name: request_diagnosis + endpoint: + path: /request/diagnosis + method: GET + data_selector: requests + params: + state: In progress + status: Analysis +- name: request_escalation + endpoint: + path: /request/escalation + method: PATCH + data_selector: requests + params: + state: In progress + status: Escalated +- name: request_resolution + endpoint: + path: /request/resolution + method: POST + data_selector: requests + params: + state: Resolved + status: Waiting for closure +- name: request_closure + endpoint: + path: /request/closure + method: DELETE + data_selector: requests + params: + state: Closed + status: Completed +- name: ticket + endpoint: + path: /api/tickets + method: GET + data_selector: tickets +- name: report + endpoint: + path: /api/reports + method: GET + data_selector: reports +- name: problem + endpoint: + path: /problems + method: POST + data_selector: problems + params: {} +- name: change_requests + endpoint: + path: /change-requests + method: GET + data_selector: requests + params: {} +- name: active_users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/active-users + method: GET +- name: leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/leaves + method: GET +- name: my_leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/my-leaves + method: GET +- name: password_policy + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/password-policy + method: GET +- name: requesters + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/requesters + method: GET +- name: roles_privileges + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/roles-and-privileges + method: GET +- name: teams + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/teams + method: GET +- name: users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/users + method: GET +- name: shift_configuration + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/shift-configuration + method: GET +- name: active_users + endpoint: + path: /infraon/active-users + method: GET +- name: leaves + endpoint: + path: /infraon/leaves + method: GET +- name: my_leaves + endpoint: + path: /infraon/my-leaves + method: GET +- name: password_policy + endpoint: + path: /infraon/password-policy + method: GET +- name: requesters + endpoint: + path: /infraon/requesters + method: GET +- name: roles_privileges + endpoint: + path: /infraon/roles-and-privileges + method: GET +- name: teams + endpoint: + path: /infraon/teams + method: GET +- name: users + endpoint: + path: /infraon/users + method: GET +- name: shift_configuration + endpoint: + path: /infraon/shift-configuration + method: GET +- name: events + endpoint: + path: /api/v1/events + method: GET + data_selector: data + params: {} +- name: aiops_events + endpoint: + path: /api/v1/aiops/events + method: GET + data_selector: data + params: {} +- name: business_service + endpoint: + path: /business-service + method: GET + data_selector: records +- name: active_users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/active-users + method: GET +- name: leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/leaves + method: GET +- name: my_leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/my-leaves + method: GET +- name: password_policy + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/password-policy + method: GET +- name: requesters + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/requesters + method: GET +- name: roles_privileges + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/roles-and-privileges + method: GET +- name: teams + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/teams + method: GET +- name: users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/users + method: GET +- name: shift_configuration + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/shift-configuration + method: GET +- name: schema + endpoint: + path: /schema/ + method: GET +- name: active_users + endpoint: + path: /infraon-configuration/user-management/active-users + method: GET +- name: leaves + endpoint: + path: /infraon-configuration/user-management/leaves + method: GET +- name: my_leaves + endpoint: + path: /infraon-configuration/user-management/my-leaves + method: GET +- name: password_policy + endpoint: + path: /infraon-configuration/user-management/password-policy + method: GET +- name: requesters + endpoint: + path: /infraon-configuration/user-management/requesters + method: GET +- name: roles_privileges + endpoint: + path: /infraon-configuration/user-management/roles-and-privileges + method: GET +- name: teams + endpoint: + path: /infraon-configuration/user-management/teams + method: GET +- name: users + endpoint: + path: /infraon-configuration/user-management/users + method: GET +- name: shift_configuration + endpoint: + path: /infraon-configuration/user-management/shift-configuration + method: GET +- name: auth_token + endpoint: + path: /ux/api-token/ + method: POST + data_selector: ANY_ADDITIONAL_PROPERTY +- name: password_encryption + endpoint: + path: /ux/password_js_encrypt/ + method: POST + data_selector: ANY_ADDITIONAL_PROPERTY +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: announcement + endpoint: + path: /ux/common/announcement/announcements/ + method: GET + data_selector: response + params: + items_per_page: '1' + page: '1' +- name: create_announcement + endpoint: + path: /ux/common/announcement/announcements/ + method: POST + data_selector: response + params: {} +- name: get_announcement_by_id + endpoint: + path: /ux/common/announcement/announcements/{id}/ + method: GET + data_selector: response + params: {} +- name: edit_announcement + endpoint: + path: /ux/common/announcement/announcements/{id}/ + method: PUT + data_selector: response + params: {} +- name: delete_announcement + endpoint: + path: /ux/common/announcement/announcements/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: change_announcement + endpoint: + path: /ux/common/announcement/announcements/change-ancmt/ + method: GET + data_selector: No content + params: {} +- name: announcement_options + endpoint: + path: /ux/common/announcement/announcements/options/ + method: GET + data_selector: No content + params: {} +- name: sla_management + endpoint: + path: /api/v1/sla + method: GET + data_selector: data + params: {} +- name: api_config_profiles + endpoint: + path: /ux/common/apiregister/profile/ + method: GET + data_selector: response + params: + items_per_page: '1' + page: '1' +- name: create_api_config + endpoint: + path: /ux/common/apiregister/profile/ + method: POST + data_selector: no_content + params: {} +- name: get_api_config_by_id + endpoint: + path: /ux/common/apiregister/profile/{id}/ + method: GET + data_selector: response + params: {} +- name: edit_api_config + endpoint: + path: /ux/common/apiregister/profile/{id}/ + method: PUT + data_selector: response + params: {} +- name: delete_api_config + endpoint: + path: /ux/common/apiregister/profile/{id}/ + method: DELETE + data_selector: None + params: {} +- name: all_api_list + endpoint: + path: /ux/common/apiregister/profile/allapi-list/ + method: GET + data_selector: None + params: {} +- name: api_search + endpoint: + path: /ux/common/apiregister/profile/api_search/ + method: GET + data_selector: None + params: {} +- name: api_options + endpoint: + path: /ux/common/apiregister/profile/options/ + method: GET + data_selector: None + params: {} +- name: verify_api + endpoint: + path: /ux/common/apiregister/profile/verify_api/ + method: POST + data_selector: None + params: {} +- name: Active users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/active-users + method: GET +- name: Leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/leaves + method: GET +- name: My Leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/my-leaves + method: GET +- name: Password Policy + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/password-policy + method: GET +- name: Requesters + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/requesters + method: GET +- name: Roles & Privileges + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/roles-and-privileges + method: GET +- name: Teams + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/teams + method: GET +- name: Users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/users + method: GET +- name: Shift Configuration + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/shift-configuration + method: GET +- name: async_tasks + endpoint: + path: /ux/common/async_tasks + method: GET +- name: async_tasks + endpoint: + path: /ux/common/async_tasks/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: async_tasks_post + endpoint: + path: /ux/common/async_tasks/ + method: POST + data_selector: object + params: {} +- name: async_tasks_get_by_id + endpoint: + path: /ux/common/async_tasks/{id}/ + method: GET + data_selector: object + params: {} +- name: async_tasks_put_by_id + endpoint: + path: /ux/common/async_tasks/{id}/ + method: PUT + data_selector: object + params: {} +- name: async_tasks_delete_by_id + endpoint: + path: /ux/common/async_tasks/{id}/ + method: DELETE + data_selector: object + params: {} +- name: async_tasks_disable_task + endpoint: + path: /ux/common/async_tasks/disable_task/ + method: GET + data_selector: object + params: {} +- name: async_tasks_enable_task + endpoint: + path: /ux/common/async_tasks/enable_task/ + method: GET + data_selector: object + params: {} +- name: Active users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/active-users + method: GET +- name: Leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/leaves + method: GET +- name: My Leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/my-leaves + method: GET +- name: Password Policy + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/password-policy + method: GET +- name: Requesters + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/requesters + method: GET +- name: Roles & Privileges + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/roles-and-privileges + method: GET +- name: Teams + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/teams + method: GET +- name: Users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/users + method: GET +- name: Shift Configuration + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/shift-configuration + method: GET +- name: business_rule + endpoint: + path: /ux/common/business_rule/business_rule + method: GET + data_selector: records + params: {} +- name: business_rule_list + endpoint: + path: /ux/common/business_rule/business_rule/ + method: GET + data_selector: object[] + params: + items_per_page: 1 + page: 1 +- name: business_rule_create + endpoint: + path: /ux/common/business_rule/business_rule/ + method: POST + data_selector: No content +- name: business_rule_detail + endpoint: + path: /ux/common/business_rule/business_rule/{id}/ + method: GET + data_selector: object + params: {} +- name: business_rule_edit + endpoint: + path: /ux/common/business_rule/business_rule/{id}/ + method: PUT + data_selector: object +- name: delete_business_rule + endpoint: + path: /ux/common/business_rule/business_rule/{id}/ + method: DELETE +- name: create_business_rule_csv + endpoint: + path: /ux/common/business_rule/business_rule/create-csv/ + method: POST +- name: download_rule_csv + endpoint: + path: /ux/common/business_rule/business_rule/download_rule_csv/ + method: GET +- name: multi_delete_business_rule + endpoint: + path: /ux/common/business_rule/business_rule/multidelete/ + method: POST +- name: options_business_rule + endpoint: + path: /ux/common/business_rule/business_rule/options/ + method: GET +- name: rule_count_business_rule + endpoint: + path: /ux/common/business_rule/business_rule/rule_count/ + method: GET +- name: upload_business_rule_csv + endpoint: + path: /ux/common/business_rule/business_rule/upload-csv/ + method: POST +- name: business_rule + endpoint: + path: /ux/common/business_rule/business_rule/upload-csv/ + method: POST + data_selector: Response + params: {} +- name: Active users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/active-users + method: GET +- name: Leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/leaves + method: GET +- name: My Leaves + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/my-leaves + method: GET +- name: Password Policy + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/password-policy + method: GET +- name: Requesters + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/requesters + method: GET +- name: Roles & Privileges + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/roles-and-privileges + method: GET +- name: Teams + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/teams + method: GET +- name: Users + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/users + method: GET +- name: Shift Configuration + endpoint: + path: /infraon-help/infinity-user-guide/infraon-configuration/user-management/shift-configuration + method: GET +- name: business_service + endpoint: + path: /ux/common/business_service/business_service/ + method: GET + data_selector: '[]' + params: + items_per_page: 1 + page: 1 +- name: create_business_service + endpoint: + path: /ux/common/business_service/business_service/ + method: POST + data_selector: null + params: {} +- name: schema + endpoint: + path: /schema/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY +- name: business_service + endpoint: + path: /ux/common/business_service/business_service/{id}/ + method: GET + data_selector: response + params: {} +- name: breach_status + endpoint: + path: /ux/common/business_service/business_service/breach-status/ + method: GET + data_selector: response + params: {} +- name: image_options + endpoint: + path: /ux/common/business_service/business_service/image-options/ + method: GET + data_selector: response + params: {} +- name: auth_token + endpoint: + path: /api-token/ + method: POST + data_selector: ANY_ADDITIONAL_PROPERTY +- name: encrypted_password + endpoint: + path: /password_js_encrypt/ + method: POST + data_selector: ANY_ADDITIONAL_PROPERTY +- name: service_catalogue + endpoint: + path: /ux/common/catalogue/servicecatalogue/ + method: GET + data_selector: response + params: {} +- name: service_details + endpoint: + path: /ux/common/catalogue/servicecatalogue/{id}/ + method: GET + data_selector: response + params: {} +- name: announcements + endpoint: + path: /ux/common/announcement/announcements/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: create_announcement + endpoint: + path: /ux/common/announcement/announcements/ + method: POST + data_selector: No content +- name: get_announcement_by_id + endpoint: + path: /ux/common/announcement/announcements/{id}/ + method: GET + data_selector: No content +- name: edit_announcement + endpoint: + path: /ux/common/announcement/announcements/{id}/ + method: PUT + data_selector: No content +- name: edit_service + endpoint: + path: /ux/common/catalogue/servicecatalogue/{id}/ + method: PUT + data_selector: Response + params: + id: string +- name: delete_service + endpoint: + path: /ux/common/catalogue/servicecatalogue/{id}/ + method: DELETE + data_selector: No content + params: + id: string +- name: patch_service + endpoint: + path: /ux/common/catalogue/servicecatalogue/{id}/ + method: PATCH + data_selector: Response + params: + id: string +- name: add_attachment + endpoint: + path: /ux/common/catalogue/servicecatalogue/add-attachment/ + method: POST + data_selector: Response + params: {} +- name: add_catalogue + endpoint: + path: /ux/common/catalogue/servicecatalogue/add-catalogue/ + method: POST + data_selector: No content + params: {} +- name: add_service + endpoint: + path: /ux/common/catalogue/servicecatalogue/add-service/ + method: POST + data_selector: No content + params: {} +- name: delete_announcement + endpoint: + path: /ux/common/announcement/announcements/{id}/ + method: DELETE + data_selector: '' + params: + id: string +- name: view_or_edit_announcements + endpoint: + path: /ux/common/announcement/announcements/change-ancmt/ + method: GET + data_selector: '' + params: {} +- name: view_or_edit_options + endpoint: + path: /ux/common/announcement/announcements/options/ + method: GET + data_selector: '' + params: {} +- name: attachment + endpoint: + path: /ux/common/catalogue/servicecatalogue/attachment/ + method: GET + data_selector: records +- name: classification + endpoint: + path: /ux/common/catalogue/servicecatalogue/classification/ + method: GET + data_selector: records +- name: history + endpoint: + path: /ux/common/catalogue/servicecatalogue/history/ + method: GET + data_selector: records +- name: is_catalogue_exist + endpoint: + path: /ux/common/catalogue/servicecatalogue/is-catalogue-exist/ + method: GET + data_selector: records +- name: options_config + endpoint: + path: /ux/common/catalogue/servicecatalogue/options-config/ + method: GET + data_selector: records +- name: delete_catalogue + endpoint: + path: /ux/common/catalogue/servicecatalogue/delete-catalogue/ + method: POST +- name: delete_service + endpoint: + path: /ux/common/catalogue/servicecatalogue/delete-service/ + method: POST +- name: service_list + endpoint: + path: /servicecatalogue/service-list/ + method: GET + data_selector: No content +- name: service_classes + endpoint: + path: /servicecatalogue/service_classes/ + method: GET + data_selector: application/json +- name: services + endpoint: + path: /servicecatalogue/services/ + method: GET + data_selector: application/json +- name: update_catalogue + endpoint: + path: /servicecatalogue/update-catalogue/ + method: POST + data_selector: No content +- name: update_service + endpoint: + path: /servicecatalogue/update-service/ + method: POST + data_selector: No content +- name: api_config_profiles + endpoint: + path: /ux/common/apiregister/profile/ + method: GET + data_selector: response + params: + items_per_page: 1 + page: 1 +- name: create_api_config + endpoint: + path: /ux/common/apiregister/profile/ + method: POST + data_selector: response + params: {} +- name: get_api_config + endpoint: + path: /ux/common/apiregister/profile/{id}/ + method: GET + data_selector: response + params: {} +- name: edit_api_config + endpoint: + path: /ux/common/apiregister/profile/{id}/ + method: PUT + data_selector: response + params: {} +- name: blacklist_whitelist + endpoint: + path: /ux/common/cmdb/blackwhitelist/ + method: GET + data_selector: records + params: + items_per_page: '1' + page: '1' +- name: delete_api_config + endpoint: + path: /ux/common/apiregister/profile/{id}/ + method: DELETE +- name: all_api_list + endpoint: + path: /ux/common/apiregister/profile/allapi-list/ + method: GET +- name: api_search + endpoint: + path: /ux/common/apiregister/profile/api_search/ + method: GET +- name: options + endpoint: + path: /ux/common/apiregister/profile/options/ + method: GET +- name: verify_api + endpoint: + path: /ux/common/apiregister/profile/verify_api/ + method: POST +- name: async_tasks + endpoint: + path: /ux/common/async_tasks/ + method: GET +- name: blackwhitelist + endpoint: + path: /blackwhitelist/ + method: POST + data_selector: No content +- name: blackwhitelist_item + endpoint: + path: /blackwhitelist/{id}/ + method: GET + data_selector: No content +- name: blackwhitelist_item_update + endpoint: + path: /blackwhitelist/{id}/ + method: PUT + data_selector: No content +- name: blackwhitelist_item_delete + endpoint: + path: /blackwhitelist/{id}/ + method: DELETE + data_selector: No content +- name: blackwhitelist_options + endpoint: + path: /blackwhitelist/options/ + method: GET + data_selector: No content +- name: cmdb_category + endpoint: + path: /ux/common/cmdb/category/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY + params: {} +- name: async_tasks + endpoint: + path: /ux/common/async_tasks/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: async_task_details + endpoint: + path: /ux/common/async_tasks/{id}/ + method: GET + data_selector: object +- name: create_async_task + endpoint: + path: /ux/common/async_tasks/ + method: POST + data_selector: object +- name: update_async_task + endpoint: + path: /ux/common/async_tasks/{id}/ + method: PUT + data_selector: object +- name: delete_async_task + endpoint: + path: /ux/common/async_tasks/{id}/ + method: DELETE +- name: disable_async_task + endpoint: + path: /ux/common/async_tasks/disable_task/ + method: GET + data_selector: object +- name: enable_async_task + endpoint: + path: /ux/common/async_tasks/enable_task/ + method: GET + data_selector: object +- name: create_category + endpoint: + path: /ux/common/cmdb/category/ + method: POST + data_selector: Response + params: {} +- name: get_category + endpoint: + path: /ux/common/cmdb/category/{id}/ + method: GET + data_selector: No content + params: {} +- name: update_category + endpoint: + path: /ux/common/cmdb/category/{id}/ + method: PUT + data_selector: No content + params: {} +- name: delete_category + endpoint: + path: /ux/common/cmdb/category/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: all_options + endpoint: + path: /ux/common/cmdb/category/all_options/ + method: GET + data_selector: No content + params: {} +- name: audit_template_options + endpoint: + path: /ux/common/cmdb/category/audit_template_options/ + method: GET + data_selector: No content + params: {} +- name: custom_options + endpoint: + path: /ux/common/cmdb/category/custom_options/ + method: GET + data_selector: No content + params: {} +- name: dropdown_options_for_all_tab + endpoint: + path: /ux/common/cmdb/category/dropdown_options_for_all_tab/ + method: GET + data_selector: No content + params: {} +- name: business_rule + endpoint: + path: /ux/common/business_rule/business_rule + method: GET +- name: consumable + endpoint: + path: /ux/common/cmdb/consumable/ + method: GET + data_selector: records + params: {} +- name: consumable_id + endpoint: + path: /ux/common/cmdb/consumable/{id}/ + method: GET + data_selector: records + params: {} +- name: distribute_stock + endpoint: + path: /ux/common/cmdb/consumable/distribute_stock/ + method: POST + data_selector: records + params: {} +- name: options + endpoint: + path: /ux/common/cmdb/consumable/options/ + method: GET + data_selector: records + params: {} +- name: stocks_ci_id + endpoint: + path: /ux/common/cmdb/consumable/stocks/{ci_id}/ + method: GET + data_selector: records + params: {} +- name: business_rule_list + endpoint: + path: /ux/common/business_rule/business_rule/ + method: GET + data_selector: object[] + params: + items_per_page: integerRequired + page: integerRequired +- name: business_rule_create + endpoint: + path: /ux/common/business_rule/business_rule/ + method: POST + data_selector: No content +- name: business_rule_detail + endpoint: + path: /ux/common/business_rule/business_rule/{id}/ + method: GET + data_selector: object +- name: business_rule_edit + endpoint: + path: /ux/common/business_rule/business_rule/{id}/ + method: PUT + data_selector: object +- name: purchase_order_config + endpoint: + path: /ux/common/purchase_order/config + method: GET +- name: report_api + endpoint: + path: /ux/common/report/api + method: GET +- name: services + endpoint: + path: /ux/common/services/services + method: GET +- name: delete_business_rule + endpoint: + path: /ux/common/business_rule/business_rule/{id}/ + method: DELETE + data_selector: No content +- name: create_business_rule_csv + endpoint: + path: /ux/common/business_rule/business_rule/create-csv/ + method: POST + data_selector: Response object +- name: download_rule_csv + endpoint: + path: /ux/common/business_rule/business_rule/download_rule_csv/ + method: GET + data_selector: Response object +- name: multidelete_business_rule + endpoint: + path: /ux/common/business_rule/business_rule/multidelete/ + method: POST + data_selector: Response object +- name: options_business_rule + endpoint: + path: /ux/common/business_rule/business_rule/options/ + method: GET + data_selector: Response object +- name: rule_count_business_rule + endpoint: + path: /ux/common/business_rule/business_rule/rule_count/ + method: GET + data_selector: Response object +- name: upload_business_rule_csv + endpoint: + path: /ux/common/business_rule/business_rule/upload-csv/ + method: POST + data_selector: Response object +- name: item_classification + endpoint: + path: /ux/common/cmdb/item-classification/ + method: GET + data_selector: response + params: + items_per_page: items_per_page + page: page +- name: business_rule + endpoint: + path: /ux/common/business_rule/business_rule/upload-csv/ + method: POST + data_selector: Response + params: {} +- name: item_classification_create + endpoint: + path: /item-classification/ + method: POST + data_selector: No content +- name: item_classification_get + endpoint: + path: /item-classification/{id}/ + method: GET + data_selector: Response object +- name: business_service + endpoint: + path: /ux/common/business_service/business_service/ + method: GET + data_selector: records + params: + items_per_page: 1 + page: 1 +- name: create_business_service + endpoint: + path: /ux/common/business_service/business_service/ + method: POST + data_selector: none + params: {} +- name: edit_ci_classification + endpoint: + path: /item-classification/{id}/ + method: PUT + data_selector: response + params: + id: string +- name: delete_ci_classification + endpoint: + path: /item-classification/{id}/ + method: DELETE + data_selector: response + params: + id: string +- name: get_default_item_classifications + endpoint: + path: /item-classification/default-item-classifications/ + method: GET + data_selector: response + params: {} +- name: delete_classification_config + endpoint: + path: /item-classification/delete-classification-config/ + method: POST + data_selector: response + params: {} +- name: delete_sub_classification + endpoint: + path: /item-classification/delete-sub-classification/ + method: POST + data_selector: response + params: {} +- name: get_item_classifications_tree + endpoint: + path: /item-classification/item-classifications-tree/ + method: GET + data_selector: response + params: {} +- name: get_options + endpoint: + path: /item-classification/options/ + method: GET + data_selector: response + params: {} +- name: pin_item_classifications + endpoint: + path: /item-classification/pin-item-classifications/ + method: POST + data_selector: response + params: {} +- name: business_service + endpoint: + path: /ux/common/business_service/business_service/{id}/ + method: GET + data_selector: response +- name: breach_status + endpoint: + path: /ux/common/business_service/business_service/breach-status/ + method: GET + data_selector: response +- name: image_options + endpoint: + path: /ux/common/business_service/business_service/image-options/ + method: GET + data_selector: response +- name: item_classification + endpoint: + path: /ux/common/cmdb/item-classification/pin-item-classifications/ + method: POST + data_selector: Response + params: {} +- name: purchase_order_config + endpoint: + path: /ux/common/purchase_order/config/ + method: GET + data_selector: Response + params: {} +- name: report_api + endpoint: + path: /ux/common/report/api/ + method: GET + data_selector: Response + params: {} +- name: services + endpoint: + path: /ux/common/services/services/ + method: GET + data_selector: Response + params: {} +- name: delete_service_profile + endpoint: + path: /ux/common/services/services/delete-service-profile/ + method: GET + data_selector: No content + params: {} +- name: ethernet_service_profiles + endpoint: + path: /ux/common/services/services/ethernet-service-profiles/ + method: GET + data_selector: No content + params: {} +- name: ethernet_services + endpoint: + path: /ux/common/services/services/ethernet-services/ + method: GET + data_selector: No content + params: {} +- name: service_catalogue + endpoint: + path: /ux/common/catalogue/servicecatalogue + method: GET +- name: service_details + endpoint: + path: /ux/common/catalogue/servicecatalogue/{id} + method: GET +- name: create_service + endpoint: + path: /ux/common/catalogue/servicecatalogue + method: POST +- name: service_catalogue + endpoint: + path: /ux/common/catalogue/servicecatalogue/ + method: GET + data_selector: records + params: {} +- name: service_details + endpoint: + path: /ux/common/catalogue/servicecatalogue/{id}/ + method: GET + data_selector: records + params: {} +- name: licenses + endpoint: + path: /ux/common/cmdb/license + method: GET + data_selector: records +- name: license + endpoint: + path: /ux/common/cmdb/license/ + method: GET + data_selector: licenses + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: license_details + endpoint: + path: /ux/common/cmdb/license/details/ + method: GET + data_selector: licenses +- name: user_search + endpoint: + path: /ux/common/cmdb/license/usersearch/ + method: GET + data_selector: users +- name: asset_search + endpoint: + path: /ux/common/cmdb/license/assetsearch/ + method: GET + data_selector: assets +- name: edit_service + endpoint: + path: /ux/common/catalogue/servicecatalogue/{id}/ + method: PUT + data_selector: Response + params: {} +- name: delete_service + endpoint: + path: /ux/common/catalogue/servicecatalogue/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: patch_service + endpoint: + path: /ux/common/catalogue/servicecatalogue/{id}/ + method: PATCH + data_selector: Response + params: {} +- name: add_attachment + endpoint: + path: /ux/common/catalogue/servicecatalogue/add-attachment/ + method: POST + data_selector: Response + params: {} +- name: add_catalogue + endpoint: + path: /ux/common/catalogue/servicecatalogue/add-catalogue/ + method: POST + data_selector: No content + params: {} +- name: add_service + endpoint: + path: /ux/common/catalogue/servicecatalogue/add-service/ + method: POST + data_selector: No content + params: {} +- name: cmdb_profile + endpoint: + path: /ux/common/cmdb/profile/ + method: GET +- name: cmdb + endpoint: + path: /ux/common/cmdb/profile + method: GET +- name: attachment + endpoint: + path: /servicecatalogue/attachment/ + method: GET + data_selector: records +- name: classification + endpoint: + path: /servicecatalogue/classification/ + method: GET + data_selector: records +- name: history + endpoint: + path: /servicecatalogue/history/ + method: GET + data_selector: records +- name: is_catalogue_exist + endpoint: + path: /servicecatalogue/is-catalogue-exist/ + method: GET + data_selector: records +- name: options_config + endpoint: + path: /servicecatalogue/options-config/ + method: GET + data_selector: records +- name: cmdb_ci + endpoint: + path: /ux/common/cmdb/profile/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY + params: + items_per_page: '1' + page: '1' +- name: allocated_assets + endpoint: + path: /ux/common/cmdb/profile/allocated-assets/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY + params: + email: text +- name: service_list + endpoint: + path: /ux/common/catalogue/servicecatalogue/service-list/ + method: GET +- name: service_classes + endpoint: + path: /ux/common/catalogue/servicecatalogue/service_classes/ + method: GET +- name: services + endpoint: + path: /ux/common/catalogue/servicecatalogue/services/ + method: GET +- name: update_catalogue + endpoint: + path: /ux/common/catalogue/servicecatalogue/update-catalogue/ + method: POST +- name: update_service + endpoint: + path: /ux/common/catalogue/servicecatalogue/update-service/ + method: POST +- name: blacklist_whitelist + endpoint: + path: /ux/common/cmdb/blackwhitelist/ + method: GET + data_selector: No content + params: + items_per_page: '1' + page: '1' +- name: blackwhitelist + endpoint: + path: /blackwhitelist/ + method: POST + data_selector: No content +- name: blackwhitelist_by_id + endpoint: + path: /blackwhitelist/{id}/ + method: GET + data_selector: No content +- name: blackwhitelist_update + endpoint: + path: /blackwhitelist/{id}/ + method: PUT + data_selector: No content +- name: blackwhitelist_delete + endpoint: + path: /blackwhitelist/{id}/ + method: DELETE + data_selector: No content +- name: blackwhitelist_options + endpoint: + path: /blackwhitelist/options/ + method: GET + data_selector: No content +- name: cmdb_category + endpoint: + path: /ux/common/cmdb/category/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY + params: {} +- name: attachment + endpoint: + path: attachment/ + method: GET + data_selector: null + params: {} +- name: audit-template-details + endpoint: + path: audit-template-details/ + method: GET + data_selector: null + params: {} +- name: audit_record_item + endpoint: + path: audit_record_item/{id}/ + method: GET + data_selector: null + params: + id: string +- name: audit_record_list + endpoint: + path: audit_record_list/ + method: GET + data_selector: null + params: {} +- name: audit_status_count + endpoint: + path: audit_status_count/ + method: GET + data_selector: null + params: {} +- name: audit_status_count_filter + endpoint: + path: audit_status_count_filter/ + method: GET + data_selector: null + params: {} +- name: audit_template_details + endpoint: + path: audit_template_details/ + method: GET + data_selector: null + params: {} +- name: available_stats + endpoint: + path: available_stats/ + method: GET + data_selector: null + params: {} +- name: basicview + endpoint: + path: basicview/ + method: GET + data_selector: null + params: {} +- name: bmc_vm_relation + endpoint: + path: bmc_vm_relation/ + method: GET + data_selector: null + params: {} +- name: child-cis + endpoint: + path: child-cis/ + method: GET + data_selector: null + params: {} +- name: cmdb-exists + endpoint: + path: cmdb-exists/ + method: GET + data_selector: null + params: {} +- name: component-inventory + endpoint: + path: component-inventory/ + method: GET + data_selector: null + params: {} +- name: configuration-card-details + endpoint: + path: configuration-card-details/ + method: GET + data_selector: null + params: {} +- name: congiguration-details + endpoint: + path: congiguration-details/ + method: POST + data_selector: null + params: {} +- name: congiguration-inventory-details + endpoint: + path: congiguration-inventory-details/ + method: GET + data_selector: null + params: {} +- name: controller-clients + endpoint: + path: controller-clients/ + method: GET + data_selector: null + params: {} +- name: controller-stats + endpoint: + path: controller-stats/ + method: GET + data_selector: null + params: {} +- name: create-csv + endpoint: + path: create-csv/ + method: POST + data_selector: null + params: {} +- name: discovery-url + endpoint: + path: discovery-url/ + method: POST + data_selector: null + params: {} +- name: download-config-diff + endpoint: + path: download-config-diff/ + method: GET + data_selector: null + params: {} +- name: driver-list + endpoint: + path: driver-list/ + method: GET + data_selector: null + params: {} +- name: export-backup-data + endpoint: + path: export-backup-data/ + method: GET + data_selector: null + params: {} +- name: get-tags + endpoint: + path: get-tags/ + method: GET + data_selector: null + params: {} +- name: getAssetAuditTempateData + endpoint: + path: getAssetAuditTempateData/ + method: GET + data_selector: null + params: {} +- name: getResDetails + endpoint: + path: getResDetails/ + method: POST + data_selector: null + params: {} +- name: getResDropdownList + endpoint: + path: getResDropdownList/ + method: GET + data_selector: null + params: {} +- name: hardware + endpoint: + path: hardware/ + method: GET + data_selector: null + params: {} +- name: hardware-inv + endpoint: + path: hardware-inv/ + method: GET + data_selector: null + params: {} +- name: history + endpoint: + path: history/ + method: GET + data_selector: null + params: {} +- name: category_create + endpoint: + path: /category/ + method: POST + data_selector: response + params: {} +- name: category_get + endpoint: + path: /category/{id}/ + method: GET + data_selector: response + params: {} +- name: category_update + endpoint: + path: /category/{id}/ + method: PUT + data_selector: response + params: {} +- name: category_delete + endpoint: + path: /category/{id}/ + method: DELETE + data_selector: response + params: {} +- name: category_all_options + endpoint: + path: /category/all_options/ + method: GET + data_selector: response + params: {} +- name: category_audit_template_options + endpoint: + path: /category/audit_template_options/ + method: GET + data_selector: response + params: {} +- name: category_custom_options + endpoint: + path: /category/custom_options/ + method: GET + data_selector: response + params: {} +- name: category_dropdown_options_for_all_tab + endpoint: + path: /category/dropdown_options_for_all_tab/ + method: GET + data_selector: response + params: {} +- name: consumable + endpoint: + path: /ux/common/cmdb/consumable/ + method: GET + data_selector: records + params: {} +- name: consumable_id + endpoint: + path: /ux/common/cmdb/consumable/{id}/ + method: GET + data_selector: records + params: {} +- name: distribute_stock + endpoint: + path: /ux/common/cmdb/consumable/distribute_stock/ + method: POST + data_selector: records + params: {} +- name: options + endpoint: + path: /ux/common/cmdb/consumable/options/ + method: GET + data_selector: records + params: {} +- name: stocks_ci_id + endpoint: + path: /ux/common/cmdb/consumable/stocks/{ci_id}/ + method: GET + data_selector: records + params: {} +- name: history_data_export + endpoint: + path: /ux/common/cmdb/profile/history_data_export/ + method: GET + data_selector: '' + params: {} +- name: inventory_tree + endpoint: + path: /ux/common/cmdb/profile/inventory-tree/ + method: GET + data_selector: '' + params: {} +- name: inventory_tree_data + endpoint: + path: /ux/common/cmdb/profile/inventory-tree-data/ + method: GET + data_selector: '' + params: {} +- name: ipam_asset_update + endpoint: + path: /ux/common/cmdb/profile/ipam_asset_update/{id}/ + method: PUT + data_selector: '' + params: {} +- name: list + endpoint: + path: /ux/common/cmdb/profile/list/ + method: POST + data_selector: '' + params: {} +- name: log_url + endpoint: + path: /ux/common/cmdb/profile/log_url/ + method: GET + data_selector: '' + params: {} +- name: netflow_url + endpoint: + path: /ux/common/cmdb/profile/netflow_url/ + method: GET + data_selector: '' + params: {} +- name: options + endpoint: + path: /ux/common/cmdb/profile/options/ + method: GET + data_selector: '' + params: {} +- name: os_data + endpoint: + path: /ux/common/cmdb/profile/os-data/ + method: GET + data_selector: '' + params: {} +- name: perform_bulk_edit_resource + endpoint: + path: /ux/common/cmdb/profile/perform_bulk_edit_resource/ + method: POST + data_selector: '' + params: {} +- name: physical_summary + endpoint: + path: /ux/common/cmdb/profile/physical_summary/ + method: GET + data_selector: '' + params: {} +- name: poll_status + endpoint: + path: /ux/common/cmdb/profile/poll-status/ + method: POST + data_selector: '' + params: {} +- name: port_inventory + endpoint: + path: /ux/common/cmdb/profile/port-inventory/ + method: GET + data_selector: '' + params: {} +- name: resource_data + endpoint: + path: /ux/common/cmdb/profile/resource-data/ + method: GET + data_selector: '' + params: {} +- name: resource_stat_data + endpoint: + path: /ux/common/cmdb/profile/resource-stat-data/ + method: GET + data_selector: '' + params: {} +- name: resources + endpoint: + path: /ux/common/cmdb/profile/resources/ + method: GET + data_selector: '' + params: {} +- name: customer_ci_configurations + endpoint: + path: /ux/common/cmdb/item-classification/ + method: GET + data_selector: records + params: + items_per_page: 1 + page: 1 +- name: item_classification_create + endpoint: + path: /item-classification/ + method: POST + data_selector: No content +- name: item_classification_get + endpoint: + path: /item-classification/{id}/ + method: GET + data_selector: Response object +- name: cmdb_relation + endpoint: + path: /ux/common/cmdb/relation/ + method: GET + data_selector: No content + params: {} +- name: ci_rel_map + endpoint: + path: /ux/common/cmdb/relation/ci-rel-map/ + method: POST + data_selector: No content + params: {} +- name: ci_opt + endpoint: + path: /ux/common/cmdb/relation/ci_opt/ + method: GET + data_selector: No content + params: {} +- name: cisearch + endpoint: + path: /ux/common/cmdb/relation/cisearch/ + method: GET + data_selector: No content + params: {} +- name: options + endpoint: + path: /ux/common/cmdb/relation/options/ + method: GET + data_selector: No content + params: {} +- name: slot + endpoint: + path: /ux/common/cmdb/relation/slot/ + method: GET + data_selector: No content + params: {} +- name: item_classification + endpoint: + path: /ux/common/cmdb/item-classification/{id}/ + method: PUT + data_selector: response + params: {} +- name: default_item_classifications + endpoint: + path: /ux/common/cmdb/item-classification/default-item-classifications/ + method: GET + data_selector: response + params: {} +- name: delete_classification_config + endpoint: + path: /ux/common/cmdb/item-classification/delete-classification-config/ + method: POST + data_selector: response + params: {} +- name: delete_sub_classification + endpoint: + path: /ux/common/cmdb/item-classification/delete-sub-classification/ + method: POST + data_selector: response + params: {} +- name: software + endpoint: + path: /ux/common/cmdb/software + method: GET + data_selector: records +- name: software + endpoint: + path: /ux/common/cmdb/software/ + method: GET + data_selector: No content + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: software_by_id + endpoint: + path: /ux/common/cmdb/software/{id}/ + method: GET + data_selector: No content + params: {} +- name: item_classification + endpoint: + path: /cmdb/item-classification/pin-item-classifications/ + method: POST + data_selector: Responseobject + params: {} +- name: purchase_order_config + endpoint: + path: /purchase_order/config/ + method: GET + data_selector: No content + params: {} +- name: report_api + endpoint: + path: /report/api/ + method: GET + data_selector: No content + params: {} +- name: services + endpoint: + path: /services/services/ + method: GET + data_selector: No content + params: {} +- name: delete_service_profile + endpoint: + path: /ux/common/services/services/delete-service-profile/ + method: GET +- name: ethernet_service_profiles + endpoint: + path: /ux/common/services/services/ethernet-service-profiles/ + method: GET +- name: ethernet_services + endpoint: + path: /ux/common/services/services/ethernet-services/ + method: GET +- name: contract + endpoint: + path: /ux/common/contract/config/ + method: GET + data_selector: '[].contract_id' + params: + items_per_page: '1' + page: '1' +- name: license + endpoint: + path: /ux/common/cmdb/license + method: GET +- name: license_details + endpoint: + path: /ux/common/cmdb/license/details/ + method: GET +- name: license_usersearch + endpoint: + path: /ux/common/cmdb/license/usersearch/ + method: GET +- name: get_contract + endpoint: + path: /ux/common/contract/config/{id}/ + method: GET + data_selector: contract + params: {} +- name: update_contract + endpoint: + path: /ux/common/contract/config/{id}/ + method: PUT + data_selector: contract + params: {} +- name: delete_contract + endpoint: + path: /ux/common/contract/config/{id}/ + method: DELETE + data_selector: contract + params: {} +- name: add_attachment + endpoint: + path: /ux/common/contract/config/add-attachment/ + method: POST + data_selector: attachment + params: {} +- name: ci_contract_map + endpoint: + path: /ux/common/contract/config/ci-contract-map/ + method: GET + data_selector: ci_contract + params: {} +- name: options + endpoint: + path: /ux/common/contract/config/options/ + method: GET + data_selector: options + params: {} +- name: department + endpoint: + path: /ux/common/department/department/ + method: GET + data_selector: object[] + params: + items_per_page: '1' + page: '1' +- name: license + endpoint: + path: /ux/common/cmdb/license/ + method: GET + data_selector: No content + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: license_details + endpoint: + path: /ux/common/cmdb/license/details/ + method: GET + data_selector: No content +- name: license_assetsearch + endpoint: + path: /ux/common/cmdb/license/assetsearch/ + method: GET + data_selector: No content +- name: license_filterapp + endpoint: + path: /ux/common/cmdb/license/filterapp/ + method: GET + data_selector: No content +- name: license_insights + endpoint: + path: /ux/common/cmdb/license/insights/ + method: GET + data_selector: No content +- name: license_linegraph + endpoint: + path: /ux/common/cmdb/license/linegraph/ + method: GET + data_selector: No content +- name: license_options + endpoint: + path: /ux/common/cmdb/license/options/ + method: GET + data_selector: No content +- name: license_upload_csv + endpoint: + path: /ux/common/cmdb/license/upload-csv/ + method: POST + data_selector: No content +- name: license_usersearch + endpoint: + path: /ux/common/cmdb/license/usersearch/ + method: GET + data_selector: No content +- name: create_department + endpoint: + path: /department/ + method: POST + data_selector: No content +- name: get_department + endpoint: + path: /department/{id}/ + method: GET + data_selector: Response object +- name: edit_department + endpoint: + path: /department/{id}/ + method: PUT + data_selector: Response object +- name: delete_department + endpoint: + path: /department/{id}/ + method: DELETE + data_selector: No content +- name: multi_delete_department + endpoint: + path: /department/multidelete/ + method: POST + data_selector: Response object +- name: get_department_options + endpoint: + path: /department/options/ + method: GET + data_selector: Response object +- name: events + endpoint: + path: /ux/common/events/events + method: GET +- name: cmdb_profile + endpoint: + path: /ux/common/cmdb/profile + method: GET + data_selector: records + params: {} +- name: events + endpoint: + path: /ux/common/events/events/ + method: GET + data_selector: records + params: + items_per_page: 1 + page: 1 +- name: event + endpoint: + path: /events/{eventid}/ + method: GET + data_selector: '' + params: {} +- name: event_comments + endpoint: + path: /events/comments/{eventid}/ + method: GET + data_selector: '' + params: {} +- name: event_create_incident + endpoint: + path: /events/create_incident/ + method: POST + data_selector: '' + params: {} +- name: event_update_event_assignee + endpoint: + path: /events/update-event-assignee/ + method: POST + data_selector: '' + params: {} +- name: event_update_due_date + endpoint: + path: /events/update_event_due_date/ + method: POST + data_selector: '' + params: {} +- name: event_upsert_incident + endpoint: + path: /events/upsert_incident/ + method: POST + data_selector: '' + params: {} +- name: cmdb_ci + endpoint: + path: /ux/common/cmdb/profile/ + method: GET + data_selector: properties + params: {} +- name: allocated_assets + endpoint: + path: /ux/common/cmdb/profile/allocated-assets/ + method: GET + data_selector: properties + params: + email: string +- name: asset_count + endpoint: + path: /ux/common/cmdb/profile/asset-count/ + method: GET + data_selector: properties + params: {} +- name: asset_summary + endpoint: + path: /ux/common/cmdb/profile/asset-summary/ + method: GET + data_selector: properties + params: {} +- name: asset_list + endpoint: + path: /ux/common/cmdb/profile/assetList/ + method: GET + data_selector: properties + params: {} +- name: field_config + endpoint: + path: /ux/common/fieldconfig/field-config/ + method: GET + data_selector: '[]' + params: + items_per_page: 1 + page: 1 +- name: create_field_config + endpoint: + path: /ux/common/fieldconfig/field-config/ + method: POST + data_selector: No content + params: {} +- name: field_config_get + endpoint: + path: /field-config/{id}/ + method: GET + data_selector: response +- name: field_config_edit + endpoint: + path: /field-config/{id}/ + method: PUT + data_selector: response +- name: field_config_delete + endpoint: + path: /field-config/{id}/ + method: DELETE +- name: field_permission + endpoint: + path: /field-config/field_permission/ + method: POST + data_selector: response +- name: field_config_options + endpoint: + path: /field-config/options/ + method: GET + data_selector: response +- name: IMACD + endpoint: + path: /ux/common/imacd/imacd + method: GET +- name: conversation + endpoint: + path: /ux/common/imacd/conversation + method: POST +- name: attachment + endpoint: + path: attachment/ + method: GET + data_selector: No content + params: {} +- name: audit_template_details + endpoint: + path: audit-template-details/ + method: GET + data_selector: No content + params: {} +- name: audit_record_item + endpoint: + path: audit_record_item/{id}/ + method: GET + data_selector: No content + params: {} +- name: audit_record_list + endpoint: + path: audit_record_list/ + method: GET + data_selector: No content + params: {} +- name: audit_status_count + endpoint: + path: audit_status_count/ + method: GET + data_selector: No content + params: {} +- name: audit_status_count_filter + endpoint: + path: audit_status_count_filter/ + method: GET + data_selector: No content + params: {} +- name: available_stats + endpoint: + path: available_stats/ + method: GET + data_selector: No content + params: {} +- name: basicview + endpoint: + path: basicview/ + method: GET + data_selector: No content + params: {} +- name: bmc_vm_relation + endpoint: + path: bmc_vm_relation/ + method: GET + data_selector: No content + params: {} +- name: child-cis + endpoint: + path: child-cis/ + method: GET + data_selector: No content + params: {} +- name: cmdb-exists + endpoint: + path: cmdb-exists/ + method: GET + data_selector: No content + params: {} +- name: component-inventory + endpoint: + path: component-inventory/ + method: GET + data_selector: No content + params: {} +- name: configuration-card-details + endpoint: + path: configuration-card-details/ + method: GET + data_selector: No content + params: {} +- name: create-csv + endpoint: + path: create-csv/ + method: POST + data_selector: No content + params: {} +- name: discovery-url + endpoint: + path: discovery-url/ + method: POST + data_selector: No content + params: {} +- name: download-config-diff + endpoint: + path: download-config-diff/ + method: GET + data_selector: No content + params: {} +- name: driver-list + endpoint: + path: driver-list/ + method: GET + data_selector: No content + params: {} +- name: export-backup-data + endpoint: + path: export-backup-data/ + method: GET + data_selector: No content + params: {} +- name: get-tags + endpoint: + path: get-tags/ + method: GET + data_selector: No content + params: {} +- name: getAssetAuditTempateData + endpoint: + path: getAssetAuditTempateData/ + method: GET + data_selector: No content + params: {} +- name: getResDetails + endpoint: + path: getResDetails/ + method: POST + data_selector: No content + params: {} +- name: getResDropdownList + endpoint: + path: getResDropdownList/ + method: GET + data_selector: No content + params: {} +- name: hardware + endpoint: + path: hardware/ + method: GET + data_selector: No content + params: {} +- name: hardware-inv + endpoint: + path: hardware-inv/ + method: GET + data_selector: No content + params: {} +- name: history + endpoint: + path: history/ + method: GET + data_selector: No content + params: {} +- name: conversation + endpoint: + path: /ux/common/imacd/conversation/ + method: GET + data_selector: No content +- name: imacd + endpoint: + path: /ux/common/imacd/imacd/ + method: GET + data_selector: No content + params: + items_per_page: '1' + page: '1' +- name: imacd_with_id + endpoint: + path: /ux/common/imacd/imacd/{id}/ + method: GET + data_selector: No content +- name: attachment + endpoint: + path: /ux/common/imacd/imacd/attachment/ + method: GET + data_selector: No content +- name: history + endpoint: + path: /ux/common/imacd/imacd/history/ + method: GET + data_selector: No content +- name: KB + endpoint: + path: /ux/common/kb/kb + method: GET +- name: get_kb_list + endpoint: + path: /ux/common/kb/kb/ + method: GET + data_selector: results + params: + items_per_page: integer + offset: integer +- name: create_kb + endpoint: + path: /ux/common/kb/kb/ + method: POST + data_selector: response + params: {} +- name: get_kb_by_id + endpoint: + path: /ux/common/kb/kb/{id}/ + method: GET + data_selector: response + params: {} +- name: edit_kb + endpoint: + path: /ux/common/kb/kb/{id}/ + method: PUT + data_selector: response + params: {} +- name: delete_kb + endpoint: + path: /ux/common/kb/kb/{id}/ + method: DELETE + data_selector: response + params: {} +- name: add_attachment + endpoint: + path: /ux/common/kb/kb/add-attachment/ + method: POST + data_selector: response + params: {} +- name: history_data_export + endpoint: + path: /history_data_export/ + method: GET + data_selector: '' + params: {} +- name: inventory_tree + endpoint: + path: /inventory-tree/ + method: GET + data_selector: '' + params: {} +- name: inventory_tree_data + endpoint: + path: /inventory-tree-data/ + method: GET + data_selector: '' + params: {} +- name: ipam_asset_update + endpoint: + path: /ipam_asset_update/{id}/ + method: PUT + data_selector: '' + params: {} +- name: list + endpoint: + path: /list/ + method: POST + data_selector: '' + params: {} +- name: log_url + endpoint: + path: /log_url/ + method: GET + data_selector: '' + params: {} +- name: netflow_url + endpoint: + path: /netflow_url/ + method: GET + data_selector: '' + params: {} +- name: options + endpoint: + path: /options/ + method: GET + data_selector: '' + params: {} +- name: os_data + endpoint: + path: /os-data/ + method: GET + data_selector: '' + params: {} +- name: perform_bulk_edit_resource + endpoint: + path: /perform_bulk_edit_resource/ + method: POST + data_selector: '' + params: {} +- name: physical_summary + endpoint: + path: /physical_summary/ + method: GET + data_selector: '' + params: {} +- name: poll_status + endpoint: + path: /poll-status/ + method: POST + data_selector: '' + params: {} +- name: port_inventory + endpoint: + path: /port-inventory/ + method: GET + data_selector: '' + params: {} +- name: resource_data + endpoint: + path: /resource-data/ + method: GET + data_selector: '' + params: {} +- name: resource_stat_data + endpoint: + path: /resource-stat-data/ + method: GET + data_selector: '' + params: {} +- name: resources + endpoint: + path: /resources/ + method: GET + data_selector: '' + params: {} +- name: cmdb_relation + endpoint: + path: /ux/common/cmdb/relation/ + method: GET + data_selector: records +- name: ci_rel_map + endpoint: + path: /ux/common/cmdb/relation/ci-rel-map/ + method: POST + data_selector: records +- name: ci_opt + endpoint: + path: /ux/common/cmdb/relation/ci_opt/ + method: GET + data_selector: records +- name: cisearch + endpoint: + path: /ux/common/cmdb/relation/cisearch/ + method: GET + data_selector: records +- name: options + endpoint: + path: /ux/common/cmdb/relation/options/ + method: GET + data_selector: records +- name: slot + endpoint: + path: /ux/common/cmdb/relation/slot/ + method: GET + data_selector: records +- name: attachment + endpoint: + path: /kb/attachment/ + method: GET + data_selector: records +- name: bookmarks + endpoint: + path: /kb/bookmarks/ + method: GET + data_selector: records +- name: categories + endpoint: + path: /kb/categories/ + method: GET + data_selector: records +- name: comment + endpoint: + path: /kb/comment/ + method: POST + data_selector: records +- name: comments + endpoint: + path: /kb/comments/ + method: GET + data_selector: records +- name: delete_attachment + endpoint: + path: /kb/delete-attachment/{id}/ + method: PUT + data_selector: records +- name: software + endpoint: + path: /ux/common/cmdb/software + method: GET + data_selector: records +- name: feedback + endpoint: + path: /feedback/ + method: POST + data_selector: kb_id + params: {} +- name: history + endpoint: + path: /history/ + method: GET + data_selector: kb_id + params: {} +- name: options + endpoint: + path: /options/ + method: GET + data_selector: kb_id + params: {} +- name: ratings + endpoint: + path: /ratings/ + method: GET + data_selector: kb_id + params: {} +- name: recent + endpoint: + path: /recent/ + method: GET + data_selector: kb_id + params: {} +- name: related + endpoint: + path: /related/ + method: GET + data_selector: kb_id + params: {} +- name: user_list + endpoint: + path: /user-list/ + method: GET + data_selector: records +- name: viewers + endpoint: + path: /viewers/ + method: GET + data_selector: records +- name: views + endpoint: + path: /views/ + method: GET + data_selector: records +- name: software + endpoint: + path: /ux/common/cmdb/software/ + method: GET + data_selector: No content + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: software_by_id + endpoint: + path: /ux/common/cmdb/software/{id}/ + method: GET + data_selector: No content + params: + id: string +- name: create_software + endpoint: + path: /ux/common/cmdb/software/ + method: POST + data_selector: No content + params: {} +- name: update_software + endpoint: + path: /ux/common/cmdb/software/{id}/ + method: PUT + data_selector: No content + params: + id: string +- name: delete_software + endpoint: + path: /ux/common/cmdb/software/{id}/ + method: DELETE + data_selector: No content + params: + id: string +- name: create_csv + endpoint: + path: /ux/common/cmdb/software/create-csv/ + method: POST + data_selector: No content + params: {} +- name: upload_csv + endpoint: + path: /ux/common/cmdb/software/upload-csv/ + method: POST + data_selector: No content + params: {} +- name: contracts + endpoint: + path: /ux/common/contract/config/ + method: GET + data_selector: '[]' + params: + items_per_page: 1 + page: 1 +- name: leaves + endpoint: + path: /ux/common/leaves/leaveinfo/ + method: GET + data_selector: results + params: + incremental: updated_at +- name: get_contract + endpoint: + path: /ux/common/contract/config/{id}/ + method: GET + data_selector: Responseobject +- name: update_contract + endpoint: + path: /ux/common/contract/config/{id}/ + method: PUT + data_selector: No content +- name: delete_contract + endpoint: + path: /ux/common/contract/config/{id}/ + method: DELETE + data_selector: No content +- name: add_attachment + endpoint: + path: /ux/common/contract/config/add-attachment/ + method: POST + data_selector: Responseobject +- name: get_ci_contract_relation + endpoint: + path: /ux/common/contract/config/ci-contract-map/ + method: GET + data_selector: Responseobject +- name: get_options + endpoint: + path: /ux/common/contract/config/options/ + method: GET + data_selector: Responseobject +- name: leave_info + endpoint: + path: /leaveinfo/{id}/ + method: GET + data_selector: response + params: + id: string +- name: edit_leave_info + endpoint: + path: /leaveinfo/{id}/ + method: PUT + data_selector: response + params: + id: string +- name: delete_leave + endpoint: + path: /ux/common/leaves/leaveinfo/{id}/ + method: DELETE +- name: patch_leave + endpoint: + path: /ux/common/leaves/leaveinfo/{id}/ + method: PATCH +- name: get_config + endpoint: + path: /ux/common/leaves/leaveinfo/get_config/ + method: GET +- name: get_options + endpoint: + path: /ux/common/leaves/leaveinfo/get_options/ + method: GET +- name: my_leaves + endpoint: + path: /ux/common/leaves/leaveinfo/my_leaves/ + method: GET +- name: save_config + endpoint: + path: /ux/common/leaves/leaveinfo/save_config/ + method: POST +- name: department + endpoint: + path: /ux/common/department/department/ + method: GET + data_selector: records + params: + items_per_page: '1' + page: '1' +- name: chat_config + endpoint: + path: /ux/common/live_chat/chat/ + method: GET + data_selector: No content + params: {} +- name: create_department + endpoint: + path: department/ + method: POST + data_selector: No content + params: {} +- name: get_department + endpoint: + path: department/{id}/ + method: GET + data_selector: Responseobject + params: {} +- name: edit_department + endpoint: + path: department/{id}/ + method: PUT + data_selector: Responseobject + params: {} +- name: delete_department + endpoint: + path: department/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: multi_delete_departments + endpoint: + path: department/multidelete/ + method: POST + data_selector: Responseobject + params: {} +- name: get_department_options + endpoint: + path: department/options/ + method: GET + data_selector: Responseobject + params: {} +- name: chat_config + endpoint: + path: /ux/common/live_chat/chat/ + method: POST +- name: chat_by_id + endpoint: + path: /ux/common/live_chat/chat/{id}/ + method: GET +- name: update_chat_by_id + endpoint: + path: /ux/common/live_chat/chat/{id}/ + method: PUT +- name: delete_chat_by_id + endpoint: + path: /ux/common/live_chat/chat/{id}/ + method: DELETE +- name: chat_status + endpoint: + path: /ux/common/live_chat/chat/chat_status/ + method: POST +- name: chats + endpoint: + path: /ux/common/live_chat/chat/chats/ + method: POST +- name: messages + endpoint: + path: /ux/common/live_chat/chat/messages/ + method: GET +- name: chat_options + endpoint: + path: /ux/common/live_chat/chat/options/ + method: GET +- name: start_chat + endpoint: + path: /ux/common/live_chat/chat/start_chat/ + method: POST +- name: events + endpoint: + path: /ux/common/events/events + method: GET +- name: marketplace + endpoint: + path: /ux/common/marketplace/marketplace/ + method: GET +- name: app_details + endpoint: + path: /ux/common/marketplace/marketplace/app_details/ + method: GET +- name: roles + endpoint: + path: /ux/common/marketplace/marketplace/roles/ + method: GET +- name: events + endpoint: + path: /ux/common/events/events/ + method: GET + data_selector: No content + params: {} +- name: events_post + endpoint: + path: /ux/common/events/events/ + method: POST + data_selector: No content + params: {} +- name: event + endpoint: + path: /events/{eventid}/ + method: GET + data_selector: No content + params: {} +- name: event_comments + endpoint: + path: /events/comments/{eventid}/ + method: GET + data_selector: No content + params: {} +- name: event_action + endpoint: + path: /events/action/ + method: GET + data_selector: No content + params: {} +- name: available_tags + endpoint: + path: /events/available-tags/ + method: GET + data_selector: No content + params: {} +- name: column_config + endpoint: + path: /events/column-config/ + method: GET + data_selector: No content + params: {} +- name: suppressed_events + endpoint: + path: /events/suppressed-events/ + method: GET + data_selector: No content + params: {} +- name: suppression_adaptive + endpoint: + path: /events/suppression-adaptive/ + method: GET + data_selector: No content + params: {} +- name: marketplace + endpoint: + path: /marketplace/ + method: GET + data_selector: records + params: {} +- name: marketplace_id + endpoint: + path: /marketplace/{id}/ + method: GET + data_selector: records + params: {} +- name: marketplace_apikey + endpoint: + path: /marketplace/apikey/ + method: GET + data_selector: records + params: {} +- name: marketplace_app_details + endpoint: + path: /marketplace/app_details/ + method: GET + data_selector: records + params: {} +- name: marketplace_app_status + endpoint: + path: /marketplace/app_status/ + method: GET + data_selector: records + params: {} +- name: marketplace_azure_config + endpoint: + path: /marketplace/azure_config/ + method: GET + data_selector: records + params: {} +- name: marketplace_bmc_settings + endpoint: + path: /marketplace/bmc_settings/ + method: GET + data_selector: records + params: {} +- name: marketplace_bmc_sync_schedule + endpoint: + path: /marketplace/bmc_sync_schedule/ + method: POST + data_selector: records + params: {} +- name: marketplace_google_access_token + endpoint: + path: /marketplace/google-access-token/ + method: POST + data_selector: records + params: {} +- name: marketplace_google_signin + endpoint: + path: /marketplace/google_signin/ + method: POST + data_selector: records + params: {} +- name: marketplace_options + endpoint: + path: /marketplace/options/ + method: GET + data_selector: records + params: {} +- name: marketplace_roles + endpoint: + path: /marketplace/roles/ + method: GET + data_selector: records + params: {} +- name: marketplace_update_config + endpoint: + path: /marketplace/update_config/ + method: POST + data_selector: records + params: {} +- name: marketplace_whats_app_config + endpoint: + path: /marketplace/whats_app_config/ + method: GET + data_selector: records + params: {} +- name: field_config + endpoint: + path: /ux/common/fieldconfig/field-config/ + method: GET + data_selector: '' +- name: create_field_config + endpoint: + path: /ux/common/fieldconfig/field-config/ + method: POST + data_selector: '' +- name: field_config_get + endpoint: + path: /field-config/{id}/ + method: GET + data_selector: workflow_name, workflow_id, module, role_name, status, field_config_id + params: {} +- name: field_config_edit + endpoint: + path: /field-config/{id}/ + method: PUT + data_selector: workflow_name, workflow_id, field_config_id + params: {} +- name: field_config_delete + endpoint: + path: /field-config/{id}/ + method: DELETE + data_selector: '' + params: {} +- name: field_permission + endpoint: + path: /field-config/field_permission/ + method: POST + data_selector: workflow_name, workflow_id, field_config_id + params: {} +- name: field_config_options + endpoint: + path: /field-config/options/ + method: GET + data_selector: workflow_name, workflow_id, module, role_name, status, field_config_id + params: {} +- name: get + endpoint: + path: /ux/common/messenger/3api/ + method: GET + data_selector: object[] +- name: post + endpoint: + path: /ux/common/messenger/3api/ + method: POST + data_selector: object +- name: get_by_id + endpoint: + path: /ux/common/messenger/3api/{id}/ + method: GET + data_selector: object +- name: put_by_id + endpoint: + path: /ux/common/messenger/3api/{id}/ + method: PUT + data_selector: object +- name: delete_by_id + endpoint: + path: /ux/common/messenger/3api/{id}/ + method: DELETE +- name: messenger + endpoint: + path: /ux/common/messenger/3api/{id}/ + method: DELETE + data_selector: No content +- name: messenger_patch + endpoint: + path: /ux/common/messenger/3api/{id}/ + method: PATCH + data_selector: application/json +- name: beep + endpoint: + path: /ux/common/messenger/beep/ + method: GET + data_selector: records +- name: beep_id + endpoint: + path: /ux/common/messenger/beep/{id}/ + method: GET + data_selector: records +- name: get_sound_files + endpoint: + path: /ux/common/messenger/beep/get-sound-files/ + method: GET + data_selector: records +- name: get_suppressed_messages + endpoint: + path: /ux/common/messenger/beep/get-suppressed-messages/ + method: GET + data_selector: records +- name: imacd_conversation + endpoint: + path: /ux/common/imacd/conversation/ + method: GET + data_selector: No content +- name: imacd + endpoint: + path: /ux/common/imacd/imacd/ + method: GET + data_selector: No content + params: + items_per_page: '1' + page: '1' +- name: imacd_attachment + endpoint: + path: /ux/common/imacd/imacd/attachment/ + method: GET + data_selector: No content +- name: imacd_history + endpoint: + path: /ux/common/imacd/imacd/history/ + method: GET + data_selector: No content +- name: imacd_options + endpoint: + path: /ux/common/imacd/imacd/options/ + method: GET + data_selector: No content +- name: imacd_save_rich_text + endpoint: + path: /ux/common/imacd/imacd/save-rich-text/ + method: POST + data_selector: No content +- name: sms + endpoint: + path: /ux/common/messenger/sms/ + method: GET +- name: Knowledge Base + endpoint: + path: /ux/common/kb/kb + method: GET +- name: sms + endpoint: + path: /ux/common/messenger/sms/ + method: GET + data_selector: object[] + params: {} +- name: sms_post + endpoint: + path: /ux/common/messenger/sms/ + method: POST + data_selector: object + params: {} +- name: sms_get_by_id + endpoint: + path: /ux/common/messenger/sms/{id}/ + method: GET + data_selector: object + params: {} +- name: sms_put_by_id + endpoint: + path: /ux/common/messenger/sms/{id}/ + method: PUT + data_selector: object + params: {} +- name: sms_delete_by_id + endpoint: + path: /ux/common/messenger/sms/{id}/ + method: DELETE + data_selector: null + params: {} +- name: sms + endpoint: + path: /ux/common/messenger/sms/{id}/ + method: DELETE + data_selector: No content +- name: sms_patch + endpoint: + path: /ux/common/messenger/sms/{id}/ + method: PATCH + data_selector: Responseobject +- name: get_kb_list + endpoint: + path: /ux/common/kb/kb/ + method: GET + data_selector: results + params: + items_per_page: integer + offset: integer +- name: create_kb + endpoint: + path: /ux/common/kb/kb/ + method: POST + data_selector: response + params: {} +- name: get_kb_by_id + endpoint: + path: /ux/common/kb/kb/{id}/ + method: GET + data_selector: response + params: {} +- name: edit_kb + endpoint: + path: /ux/common/kb/kb/{id}/ + method: PUT + data_selector: response + params: {} +- name: delete_kb + endpoint: + path: /ux/common/kb/kb/{id}/ + method: DELETE + data_selector: response + params: {} +- name: add_attachment + endpoint: + path: /ux/common/kb/kb/add-attachment/ + method: POST + data_selector: response + params: {} +- name: suppressed + endpoint: + path: /ux/common/messenger/suppressed/ + method: GET + data_selector: No content +- name: suppressed + endpoint: + path: /ux/common/messenger/suppressed/ + method: POST + data_selector: No content +- name: suppressed_id + endpoint: + path: /ux/common/messenger/suppressed/{id}/ + method: GET + data_selector: No content +- name: suppressed_id + endpoint: + path: /ux/common/messenger/suppressed/{id}/ + method: PUT + data_selector: No content +- name: suppressed_id + endpoint: + path: /ux/common/messenger/suppressed/{id}/ + method: DELETE + data_selector: No content +- name: suppressed_id + endpoint: + path: /ux/common/messenger/suppressed/{id}/ + method: PATCH + data_selector: No content +- name: attachments + endpoint: + path: /kb/attachment/ + method: GET + data_selector: records +- name: bookmarks + endpoint: + path: /kb/bookmarks/ + method: GET + data_selector: records +- name: categories + endpoint: + path: /kb/categories/ + method: GET + data_selector: records +- name: comments + endpoint: + path: /kb/comments/ + method: GET + data_selector: records +- name: save_comment + endpoint: + path: /kb/comment/ + method: POST + data_selector: records +- name: delete_attachment + endpoint: + path: /kb/delete-attachment/{id}/ + method: PUT + data_selector: records +- name: organization_location + endpoint: + path: /ux/common/org/location/ + method: GET + data_selector: response + params: {} +- name: create_organization_location + endpoint: + path: /ux/common/org/location/ + method: POST + data_selector: response + params: {} +- name: save_feedback + endpoint: + path: feedback/ + method: POST + data_selector: kb_id + params: {} +- name: get_history + endpoint: + path: history/ + method: GET + data_selector: kb_id + params: {} +- name: get_options + endpoint: + path: options/ + method: GET + data_selector: kb_id + params: {} +- name: get_ratings + endpoint: + path: ratings/ + method: GET + data_selector: kb_id + params: {} +- name: get_recent_kbs + endpoint: + path: recent/ + method: GET + data_selector: kb_id + params: {} +- name: get_related_kbs + endpoint: + path: related/ + method: GET + data_selector: kb_id + params: {} +- name: location_details + endpoint: + path: /location_details/ + method: GET + data_selector: response + params: {} +- name: team_location + endpoint: + path: /team_location/ + method: GET + data_selector: response + params: {} +- name: download_csv + endpoint: + path: /download_csv/ + method: GET + data_selector: response + params: {} +- name: upload_csv + endpoint: + path: /upload-csv/ + method: POST + data_selector: response + params: {} +- name: create_csv + endpoint: + path: /create-csv/ + method: POST + data_selector: response + params: {} +- name: user_list + endpoint: + path: /ux/common/kb/kb/user-list/ + method: GET + data_selector: records + params: {} +- name: viewers + endpoint: + path: /ux/common/kb/kb/viewers/ + method: GET + data_selector: records + params: {} +- name: view_count + endpoint: + path: /ux/common/kb/kb/views/ + method: GET + data_selector: records + params: {} +- name: partner + endpoint: + path: /ux/common/partner/partner/ + method: GET + data_selector: documents + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: create_partner + endpoint: + path: /ux/common/partner/partner/ + method: POST + data_selector: none + params: {} +- name: leaves + endpoint: + path: /ux/common/leaves/leaveinfo/ + method: GET + data_selector: results + params: + offset: offset +- name: get_partner + endpoint: + path: /partner/{id}/ + method: GET + data_selector: id +- name: put_partner + endpoint: + path: /partner/{id}/ + method: PUT + data_selector: partner_id +- name: delete_partner + endpoint: + path: /partner/{id}/ + method: DELETE +- name: filter_partners + endpoint: + path: /partner/filter/ + method: GET + data_selector: id +- name: leave_info + endpoint: + path: /ux/common/leaves/leaveinfo/{id}/ + method: GET + data_selector: leave_info +- name: leave_edit + endpoint: + path: /ux/common/leaves/leaveinfo/{id}/ + method: PUT + data_selector: leave_edit +- name: predicted_events + endpoint: + path: /ux/common/predicted_events/predicted_events + method: GET +- name: delete_leave + endpoint: + path: /leaveinfo/{id}/ + method: DELETE +- name: patch_leave + endpoint: + path: /leaveinfo/{id}/ + method: PATCH +- name: get_config + endpoint: + path: /leaveinfo/get_config/ + method: GET +- name: get_options + endpoint: + path: /leaveinfo/get_options/ + method: GET +- name: my_leaves + endpoint: + path: /leaveinfo/my_leaves/ + method: GET +- name: save_config + endpoint: + path: /leaveinfo/save_config/ + method: POST +- name: predicted_events + endpoint: + path: /ux/common/predicted_events/predicted_events/ + method: GET + data_selector: No content + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: predicted_events_post + endpoint: + path: /ux/common/predicted_events/predicted_events/ + method: POST + data_selector: No content + params: {} +- name: chat_config + endpoint: + path: /ux/common/live_chat/chat/ + method: GET + data_selector: No content + params: {} +- name: predicted_event + endpoint: + path: /ux/common/predicted_events/predicted_events/{eventid}/ + method: GET +- name: create_incident + endpoint: + path: /ux/common/predicted_events/predicted_events/create_incident/ + method: POST +- name: events_nbi + endpoint: + path: /ux/common/predicted_events/predicted_events/events_nbi/ + method: POST +- name: get_event_ticket_details + endpoint: + path: /ux/common/predicted_events/predicted_events/get-event-ticket-details/ + method: GET +- name: suppressed_events + endpoint: + path: /ux/common/predicted_events/predicted_events/suppressed-events/ + method: GET +- name: update_event_due_date + endpoint: + path: /ux/common/predicted_events/predicted_events/update-event-due-date/ + method: POST +- name: chat_config + endpoint: + path: /chat/ + method: POST + data_selector: No content +- name: chat_options + endpoint: + path: /options/ + method: GET + data_selector: No content +- name: start_chat + endpoint: + path: /start_chat/ + method: POST + data_selector: No content +- name: chat_messages + endpoint: + path: /messages/ + method: GET + data_selector: No content +- name: requester_profile + endpoint: + path: /ux/common/requester/profile/ + method: GET + data_selector: records + params: + items_per_page: '1' + page: '1' +- name: create_requester + endpoint: + path: /profile/ + method: POST + data_selector: No content +- name: get_requester_profile + endpoint: + path: /profile/{id}/ + method: GET + data_selector: application/json +- name: edit_requester + endpoint: + path: /profile/{id}/ + method: PUT + data_selector: application/json +- name: delete_requester + endpoint: + path: /ux/common/requester/profile/{id}/ + method: DELETE +- name: post_requester_assets + endpoint: + path: /ux/common/requester/profile/assets/ + method: POST +- name: create_csv_requester + endpoint: + path: /ux/common/requester/profile/create-csv/ + method: POST +- name: create_new_requester + endpoint: + path: /ux/common/requester/profile/create_new_requester/ + method: POST +- name: initconfig + endpoint: + path: /initconfig/ + method: GET + data_selector: response + params: {} +- name: requester_details + endpoint: + path: /requester_details/ + method: POST + data_selector: response + params: {} +- name: updateReportingMngr + endpoint: + path: /updateReportingMngr/ + method: POST + data_selector: response + params: {} +- name: updateRequesterStatus + endpoint: + path: /ux/common/requester/profile/updateRequesterStatus/ + method: POST + data_selector: response + params: {} +- name: uploadCsv + endpoint: + path: /ux/common/requester/profile/upload-csv/ + method: POST + data_selector: response + params: {} +- name: Service Feasibility Requests + endpoint: + path: /ux/common/service_feasibility_request/service_request/ + method: GET +- name: service_feasibility_request + endpoint: + path: /ux/common/service_feasibility_request/service_request/ + method: GET + data_selector: object[] +- name: service_feasibility_request_detail + endpoint: + path: /ux/common/service_feasibility_request/service_request/{id}/ + method: GET + data_selector: object +- name: service_feasibility_requests + endpoint: + path: /get_service_requests/ + method: GET + data_selector: response + params: + items_per_page: 1 + page: 1 +- name: role_profile + endpoint: + path: /ux/common/roles/profile/ + method: GET + data_selector: object[] + params: {} +- name: role_profile_create + endpoint: + path: /ux/common/roles/profile/ + method: POST + data_selector: No response body + params: {} +- name: role_profile_id + endpoint: + path: /ux/common/roles/profile/{id}/ + method: GET + data_selector: object + params: {} +- name: marketplace + endpoint: + path: /ux/common/marketplace/marketplace/ + method: GET + data_selector: '' + params: {} +- name: marketplace_with_id + endpoint: + path: /ux/common/marketplace/marketplace/{id}/ + method: GET + data_selector: '' + params: {} +- name: apikey + endpoint: + path: /ux/common/marketplace/marketplace/apikey/ + method: GET + data_selector: '' + params: {} +- name: app_details + endpoint: + path: /ux/common/marketplace/marketplace/app_details/ + method: GET + data_selector: '' + params: {} +- name: app_status + endpoint: + path: /ux/common/marketplace/marketplace/app_status/ + method: GET + data_selector: '' + params: {} +- name: azure_config + endpoint: + path: /ux/common/marketplace/marketplace/azure_config/ + method: GET + data_selector: '' + params: {} +- name: azure_settings + endpoint: + path: /ux/common/marketplace/marketplace/azure_settings/ + method: GET + data_selector: '' + params: {} +- name: bmc_settings + endpoint: + path: /ux/common/marketplace/marketplace/bmc_settings/ + method: GET + data_selector: '' + params: {} +- name: bmc_sync_schedule + endpoint: + path: /ux/common/marketplace/marketplace/bmc_sync_schedule/ + method: POST + data_selector: '' + params: {} +- name: download_teams_manifest + endpoint: + path: /ux/common/marketplace/marketplace/download-teams-manifest/ + method: POST + data_selector: '' + params: {} +- name: google_access_token + endpoint: + path: /ux/common/marketplace/marketplace/google-access-token/ + method: POST + data_selector: '' + params: {} +- name: google_auth_update + endpoint: + path: /ux/common/marketplace/marketplace/google-auth-update/ + method: POST + data_selector: '' + params: {} +- name: google_client_data + endpoint: + path: /ux/common/marketplace/marketplace/google-client-data/ + method: GET + data_selector: '' + params: {} +- name: google_signin + endpoint: + path: /ux/common/marketplace/marketplace/google_signin/ + method: POST + data_selector: '' + params: {} +- name: google_workspace_settings + endpoint: + path: /ux/common/marketplace/marketplace/google_workspace_settings/ + method: GET + data_selector: '' + params: {} +- name: jira_options + endpoint: + path: /ux/common/marketplace/marketplace/jira_options/ + method: GET + data_selector: '' + params: {} +- name: jira_settings + endpoint: + path: /ux/common/marketplace/marketplace/jira_settings/ + method: GET + data_selector: '' + params: {} +- name: microsoft_access_token + endpoint: + path: /ux/common/marketplace/marketplace/microsoft-access-token/ + method: POST + data_selector: '' + params: {} +- name: ms_signin + endpoint: + path: /ux/common/marketplace/marketplace/ms_signin/ + method: POST + data_selector: '' + params: {} +- name: options + endpoint: + path: /ux/common/marketplace/marketplace/options/ + method: GET + data_selector: '' + params: {} +- name: rc_settings + endpoint: + path: /ux/common/marketplace/marketplace/rc_settings/ + method: GET + data_selector: '' + params: {} +- name: requester_mobile_no + endpoint: + path: /ux/common/marketplace/marketplace/requester_mobile_no/ + method: GET + data_selector: '' + params: {} +- name: roles + endpoint: + path: /ux/common/marketplace/marketplace/roles/ + method: GET + data_selector: '' + params: {} +- name: save_bmc_config + endpoint: + path: /ux/common/marketplace/marketplace/save_bmc_config/ + method: POST + data_selector: '' + params: {} +- name: save_config_app + endpoint: + path: /ux/common/marketplace/marketplace/save_config_app/ + method: POST + data_selector: '' + params: {} +- name: save_jira_config + endpoint: + path: /ux/common/marketplace/marketplace/save_jira_config/ + method: POST + data_selector: '' + params: {} +- name: save_ldap_config + endpoint: + path: /ux/common/marketplace/marketplace/save_ldap_config/ + method: POST + data_selector: '' + params: {} +- name: save_map + endpoint: + path: /ux/common/marketplace/marketplace/save_map/ + method: POST + data_selector: '' + params: {} +- name: save_ring_central_config + endpoint: + path: /ux/common/marketplace/marketplace/save_ring_central_config/ + method: POST + data_selector: '' + params: {} +- name: save_servicenow_config + endpoint: + path: /ux/common/marketplace/marketplace/save_servicenow_config/ + method: POST + data_selector: '' + params: {} +- name: save_sync_time_count + endpoint: + path: /ux/common/marketplace/marketplace/save_sync_time_count/ + method: POST + data_selector: '' + params: {} +- name: save_tenable_config + endpoint: + path: /ux/common/marketplace/marketplace/save_tenable_config/ + method: POST + data_selector: '' + params: {} +- name: save_whatsapp_map + endpoint: + path: /ux/common/marketplace/marketplace/save_whatsapp_map/ + method: POST + data_selector: '' + params: {} +- name: sn_settings + endpoint: + path: /ux/common/marketplace/marketplace/sn_settings/ + method: GET + data_selector: '' + params: {} +- name: team_settings + endpoint: + path: /ux/common/marketplace/marketplace/team_settings/ + method: GET + data_selector: '' + params: {} +- name: tenable_settings + endpoint: + path: /ux/common/marketplace/marketplace/tenable_settings/ + method: GET + data_selector: '' + params: {} +- name: uninstall_app + endpoint: + path: /ux/common/marketplace/marketplace/uninstall-app/ + method: POST + data_selector: '' + params: {} +- name: update_config + endpoint: + path: /ux/common/marketplace/marketplace/update_config/ + method: POST + data_selector: '' + params: {} +- name: whats_app_config + endpoint: + path: /ux/common/marketplace/marketplace/whats_app_config/ + method: GET + data_selector: '' + params: {} +- name: ux_common_messenger + endpoint: + path: /ux/common/messenger/3api/ + method: GET +- name: edit_role + endpoint: + path: /profile/{id}/ + method: PUT + data_selector: Responseobject + params: {} +- name: delete_role + endpoint: + path: /profile/{id}/ + method: DELETE + data_selector: null + params: {} +- name: get_module_role_map + endpoint: + path: /profile/config/ + method: GET + data_selector: Responseobject + params: {} +- name: get_role_json + endpoint: + path: /profile/json/ + method: GET + data_selector: Responseobject + params: {} +- name: get_event_options + endpoint: + path: /profile/options/ + method: GET + data_selector: Responseobject + params: {} +- name: get + endpoint: + path: /ux/common/messenger/3api/ + method: GET + data_selector: object[] +- name: post + endpoint: + path: /ux/common/messenger/3api/ + method: POST + data_selector: object +- name: get_by_id + endpoint: + path: /ux/common/messenger/3api/{id}/ + method: GET + data_selector: object +- name: put + endpoint: + path: /ux/common/messenger/3api/{id}/ + method: PUT + data_selector: object +- name: delete + endpoint: + path: /ux/common/messenger/3api/{id}/ + method: DELETE + data_selector: object +- name: service_outage + endpoint: + path: /ux/common/service_outage/service_outage/ + method: GET + data_selector: records + params: {} +- name: create_service_outage + endpoint: + path: /ux/common/service_outage/service_outage/ + method: POST + data_selector: records + params: {} +- name: get_service_outage_by_id + endpoint: + path: /ux/common/service_outage/service_outage/{id}/ + method: GET + data_selector: records + params: {} +- name: update_service_outage + endpoint: + path: /ux/common/service_outage/service_outage/{id}/ + method: PUT + data_selector: records + params: {} +- name: delete_service_outage + endpoint: + path: /ux/common/service_outage/service_outage/{id}/ + method: DELETE + data_selector: records + params: {} +- name: delete_message + endpoint: + path: /ux/common/messenger/3api/{id}/ + method: DELETE +- name: patch_message + endpoint: + path: /ux/common/messenger/3api/{id}/ + method: PATCH +- name: service_outage_options + endpoint: + path: /service_outage/options/ + method: GET + data_selector: No content + params: {} +- name: beep + endpoint: + path: /ux/common/messenger/beep/ + method: GET + data_selector: No content +- name: beep_id + endpoint: + path: /ux/common/messenger/beep/{id}/ + method: GET + data_selector: No content +- name: get_sound_files + endpoint: + path: /ux/common/messenger/beep/get-sound-files/ + method: GET + data_selector: No content +- name: get_suppressed_messages + endpoint: + path: /ux/common/messenger/beep/get-suppressed-messages/ + method: GET + data_selector: No content +- name: tag + endpoint: + path: /ux/common/tag/tag/ + method: GET + data_selector: '[]' + params: + items_per_page: '1' + page: '1' +- name: sms + endpoint: + path: /ux/common/messenger/sms/ + method: GET +- name: create_tag + endpoint: + path: /tag/ + method: POST + data_selector: No content +- name: get_tag + endpoint: + path: /tag/{id}/ + method: GET + data_selector: Response object +- name: edit_tag + endpoint: + path: /tag/{id}/ + method: PUT + data_selector: Response object +- name: sms + endpoint: + path: /ux/common/messenger/sms/ + method: GET + data_selector: object[] +- name: sms_post + endpoint: + path: /ux/common/messenger/sms/ + method: POST + data_selector: object +- name: sms_detail + endpoint: + path: /ux/common/messenger/sms/{id}/ + method: GET + data_selector: object +- name: sms_update + endpoint: + path: /ux/common/messenger/sms/{id}/ + method: PUT + data_selector: object +- name: sms_delete + endpoint: + path: /ux/common/messenger/sms/{id}/ + method: DELETE +- name: delete_tag + endpoint: + path: /ux/common/tag/tag/{id}/ + method: DELETE + params: {} +- name: check_tags_config + endpoint: + path: /ux/common/tag/tag/check-tags-config/ + method: GET + data_selector: Responseobject + params: {} +- name: filter_tags + endpoint: + path: /ux/common/tag/tag/filter/ + method: GET + data_selector: Responseobject + params: {} +- name: multidelete_tags + endpoint: + path: /ux/common/tag/tag/multidelete/ + method: POST + data_selector: Responseobject + params: {} +- name: options_tags + endpoint: + path: /ux/common/tag/tag/options/ + method: GET + data_selector: Responseobject + params: {} +- name: validate_tag_user_usages + endpoint: + path: /ux/common/tag/tag/validate_tag_user_usages/{id}/ + method: GET + data_selector: Responseobject + params: {} +- name: sms + endpoint: + path: /ux/common/messenger/sms/{id}/ + method: PATCH + data_selector: response + params: {} +- name: sms_delete + endpoint: + path: /ux/common/messenger/sms/{id}/ + method: DELETE + data_selector: response + params: {} +- name: team_profiles + endpoint: + path: /ux/common/teams/profile/ + method: GET + data_selector: response + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: suppressed + endpoint: + path: /ux/common/messenger/suppressed/ + method: GET + data_selector: No content +- name: suppressed_id + endpoint: + path: /ux/common/messenger/suppressed/{id}/ + method: GET + data_selector: No content +- name: create_team + endpoint: + path: /ux/common/teams/profile/ + method: POST + data_selector: No content +- name: get_team + endpoint: + path: /ux/common/teams/profile/{id}/ + method: GET + data_selector: response object +- name: edit_team + endpoint: + path: /ux/common/teams/profile/{id}/ + method: PUT + data_selector: response object +- name: organization_location + endpoint: + path: /ux/common/org/location/ + method: GET + data_selector: '[]' +- name: delete_team + endpoint: + path: /ux/common/teams/profile/{id}/ + method: DELETE + data_selector: No content +- name: incident_map + endpoint: + path: /ux/common/teams/profile/incident_map/ + method: POST + data_selector: application/json +- name: user_group_list + endpoint: + path: /ux/common/teams/profile/usergrplist/ + method: POST + data_selector: application/json +- name: validate_team_change + endpoint: + path: /ux/common/teams/profile/validate_team_change/ + method: GET + data_selector: application/json +- name: options + endpoint: + path: /ux/common/teams/profile/options/ + method: GET + data_selector: application/json +- name: get_location + endpoint: + path: /{id}/ + method: GET + data_selector: response + params: {} +- name: edit_location + endpoint: + path: /{id}/ + method: PUT + data_selector: response + params: {} +- name: delete_location + endpoint: + path: /{id}/ + method: DELETE + data_selector: response + params: {} +- name: create_csv + endpoint: + path: /create-csv/ + method: POST + data_selector: response + params: {} +- name: download_csv + endpoint: + path: /download_csv/ + method: GET + data_selector: response + params: {} +- name: location_details + endpoint: + path: /location_details/ + method: GET + data_selector: response + params: {} +- name: team_location + endpoint: + path: /team_location/ + method: GET + data_selector: response + params: {} +- name: upload_csv + endpoint: + path: /upload-csv/ + method: POST + data_selector: response + params: {} +- name: telecom_settings + endpoint: + path: /ux/common/telecom_settings/telecom_settings/ + method: GET +- name: partner + endpoint: + path: /ux/common/partner/partner/ + method: GET + data_selector: '[]' + params: + items_per_page: '1' + page: '1' +- name: create_partner + endpoint: + path: /ux/common/partner/partner/ + method: POST + data_selector: null + params: {} +- name: telecom_settings + endpoint: + path: /ux/common/telecom_settings/telecom_settings/ + method: GET + data_selector: response + params: {} +- name: telecom_settings_create + endpoint: + path: /ux/common/telecom_settings/telecom_settings/ + method: POST + data_selector: response + params: {} +- name: telecom_settings_by_id + endpoint: + path: /ux/common/telecom_settings/telecom_settings/{id}/ + method: GET + data_selector: response + params: {} +- name: telecom_settings_update + endpoint: + path: /ux/common/telecom_settings/telecom_settings/{id}/ + method: PUT + data_selector: response + params: {} +- name: telecom_settings_delete + endpoint: + path: /ux/common/telecom_settings/telecom_settings/{id}/ + method: DELETE + data_selector: response + params: {} +- name: get_partner + endpoint: + path: /ux/common/partner/partner/{id}/ + method: GET + data_selector: response + params: {} +- name: edit_partner + endpoint: + path: /ux/common/partner/partner/{id}/ + method: PUT + data_selector: response + params: {} +- name: delete_partner + endpoint: + path: /ux/common/partner/partner/{id}/ + method: DELETE + data_selector: response + params: {} +- name: filter_partner + endpoint: + path: /ux/common/partner/partner/filter/ + method: GET + data_selector: response + params: {} +- name: predicted_events + endpoint: + path: /ux/common/predicted_events/predicted_events + method: GET +- name: telecom_settings + endpoint: + path: /ux/common/telecom_settings/telecom_settings/{id}/ + method: PUT + data_selector: id + params: {} +- name: telecom_settings_delete + endpoint: + path: /ux/common/telecom_settings/telecom_settings/{id}/ + method: DELETE + data_selector: null + params: {} +- name: predicted_events + endpoint: + path: /ux/common/predicted_events/predicted_events/ + method: GET + data_selector: '' + params: + items_per_page: '1' + page: '1' +- name: predicted_events_post + endpoint: + path: /ux/common/predicted_events/predicted_events/ + method: POST + data_selector: '' + params: {} +- name: get_settings + endpoint: + path: /ux/common/telecom_settings/telecom_settings/get_settings/ + method: GET + data_selector: Responseobject + params: + items_per_page: '1' + page: '1' +- name: update_settings + endpoint: + path: /ux/common/telecom_settings/telecom_settings/update_settings/ + method: POST + data_selector: Responseobject +- name: trap_configurations + endpoint: + path: /ux/common/trap/configuration + method: GET +- name: predicted_event + endpoint: + path: /ux/common/predicted_events/predicted_events/{eventid}/ + method: GET + data_selector: No content + params: + eventid: string +- name: create_incident + endpoint: + path: /ux/common/predicted_events/predicted_events/create_incident/ + method: POST + data_selector: No content +- name: update_event_assignee + endpoint: + path: /ux/common/predicted_events/predicted_events/update-event-assignee/ + method: POST + data_selector: No content +- name: update_event_due_date + endpoint: + path: /ux/common/predicted_events/predicted_events/update-event-due-date/ + method: POST + data_selector: No content +- name: trap_configurations + endpoint: + path: /ux/common/trap/configuration/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer +- name: create_trap_configuration + endpoint: + path: /ux/common/trap/configuration/ + method: POST + data_selector: object + params: {} +- name: get_trap_configuration + endpoint: + path: /ux/common/trap/configuration/{id}/ + method: GET + data_selector: object + params: {} +- name: edit_trap_configuration + endpoint: + path: /ux/common/trap/configuration/{id}/ + method: PUT + data_selector: object + params: {} +- name: requester_profile + endpoint: + path: /ux/common/requester/profile/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY + params: {} +- name: trap_configuration + endpoint: + path: /ux/common/trap/configuration/{id}/ + method: DELETE + data_selector: '' +- name: msg_options + endpoint: + path: /ux/common/trap/configuration/msg_options/ + method: GET + data_selector: '' +- name: multidelete + endpoint: + path: /ux/common/trap/configuration/multidelete/ + method: POST + data_selector: '' +- name: options + endpoint: + path: /ux/common/trap/configuration/options/ + method: GET + data_selector: '' +- name: trap_msgs + endpoint: + path: /ux/common/trap/configuration/trap_msgs/ + method: GET + data_selector: '' + params: + items_per_page: integer + page: integer +- name: create_requester + endpoint: + path: /ux/common/requester/profile/ + method: POST + data_selector: No content +- name: get_requester_profile + endpoint: + path: /ux/common/requester/profile/{id}/ + method: GET + data_selector: Response object +- name: edit_requester + endpoint: + path: /ux/common/requester/profile/{id}/ + method: PUT + data_selector: Response object +- name: user_profiles + endpoint: + path: /ux/common/user/profile/ + method: GET + data_selector: results + params: + items_per_page: items_per_page + page: page +- name: delete_requester + endpoint: + path: /ux/common/requester/profile/{id}/ + method: DELETE +- name: post_requester_assets + endpoint: + path: /ux/common/requester/profile/assets/ + method: POST +- name: create_csv_requester + endpoint: + path: /ux/common/requester/profile/create-csv/ + method: POST +- name: create_new_requester + endpoint: + path: /ux/common/requester/profile/create_new_requester/ + method: POST +- name: create_user + endpoint: + path: /profile/ + method: POST + data_selector: response + params: {} +- name: get_user + endpoint: + path: /profile/{id}/ + method: GET + data_selector: response + params: {} +- name: edit_user + endpoint: + path: /profile/{id}/ + method: PUT + data_selector: response + params: {} +- name: initconfig + endpoint: + path: /initconfig/ + method: GET + data_selector: response + params: {} +- name: requester_details + endpoint: + path: /requester_details/ + method: POST + data_selector: response + params: {} +- name: updateReportingMngr + endpoint: + path: /updateReportingMngr/ + method: POST + data_selector: response + params: {} +- name: updateRequesterStatus + endpoint: + path: /ux/common/requester/profile/updateRequesterStatus/ + method: POST + data_selector: response + params: {} +- name: uploadCsv + endpoint: + path: /ux/common/requester/profile/upload-csv/ + method: POST + data_selector: response + params: {} +- name: service_feasibility_request + endpoint: + path: /ux/common/service_feasibility_request/service_request/ + method: GET +- name: delete_user + endpoint: + path: /ux/common/user/profile/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: active_users + endpoint: + path: /ux/common/user/profile/active_users/ + method: POST + data_selector: profile_id + params: {} +- name: activeuser_list + endpoint: + path: /ux/common/user/profile/activeuser_list/ + method: GET + data_selector: profile_id + params: {} +- name: download_csv + endpoint: + path: /ux/common/user/profile/download_csv/ + method: GET + data_selector: profile_id + params: {} +- name: get_my_profile + endpoint: + path: /ux/common/user/profile/getmyprofile/ + method: GET + data_selector: profile_id + params: {} +- name: logout + endpoint: + path: /ux/common/user/profile/logout/ + method: POST + data_selector: profile_id + params: {} +- name: my_profile + endpoint: + path: /ux/common/user/profile/myprofile/ + method: POST + data_selector: profile_id + params: {} +- name: options + endpoint: + path: /ux/common/user/profile/options/ + method: GET + data_selector: profile_id + params: {} +- name: preference + endpoint: + path: /ux/common/user/profile/preference/ + method: POST + data_selector: profile_id + params: {} +- name: upload_csv + endpoint: + path: /ux/common/user/profile/upload_csv/ + method: POST + data_selector: profile_id + params: {} +- name: user_invite + endpoint: + path: /ux/common/user/profile/user_invite/ + method: POST + data_selector: profile_id + params: {} +- name: validate_csv + endpoint: + path: /ux/common/user/profile/validate_csv/ + method: POST + data_selector: profile_id + params: {} +- name: service_feasibility_request + endpoint: + path: /ux/common/service_feasibility_request/service_request/ + method: GET + data_selector: object[] +- name: service_feasibility_request + endpoint: + path: /ux/common/service_feasibility_request/service_request/get_service_requests/ + method: GET + data_selector: Response + params: + items_per_page: '1' + page: '1' +- name: vendor + endpoint: + path: /ux/common/vendor/vendor/ + method: GET + data_selector: object[] +- name: vendor_post + endpoint: + path: /ux/common/vendor/vendor/ + method: POST + data_selector: object +- name: vendor + endpoint: + path: /ux/common/vendor/vendor/{id}/ + method: GET + data_selector: id + params: {} +- name: vendor_options + endpoint: + path: /ux/common/vendor/vendor/options/ + method: GET + data_selector: id + params: {} +- name: role_profile + endpoint: + path: /ux/common/roles/profile/ + method: GET + data_selector: object[] + params: {} +- name: create_role + endpoint: + path: /ux/common/roles/profile/ + method: POST + data_selector: No response body + params: {} +- name: get_role_by_id + endpoint: + path: /ux/common/roles/profile/{id}/ + method: GET + data_selector: object + params: {} +- name: association_events + endpoint: + path: /ux/ims/association_events/association_events/ + method: GET + data_selector: records +- name: edit_role + endpoint: + path: /ux/common/roles/profile/{id}/ + method: PUT + data_selector: Responseobject + params: {} +- name: delete_role + endpoint: + path: /ux/common/roles/profile/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: get_module_role_map + endpoint: + path: /ux/common/roles/profile/config/ + method: GET + data_selector: Responseobject + params: {} +- name: get_role_options + endpoint: + path: /ux/common/roles/profile/options/ + method: GET + data_selector: Responseobject + params: {} +- name: device_template + endpoint: + path: /ux/ims/device-template + method: GET +- name: service_outage + endpoint: + path: /ux/common/service_outage/service_outage/ + method: GET + data_selector: null + params: {} +- name: create_service_outage + endpoint: + path: /ux/common/service_outage/service_outage/ + method: POST + data_selector: null + params: {} +- name: get_service_outage_by_id + endpoint: + path: /ux/common/service_outage/service_outage/{id}/ + method: GET + data_selector: null + params: {} +- name: update_service_outage + endpoint: + path: /ux/common/service_outage/service_outage/{id}/ + method: PUT + data_selector: null + params: {} +- name: delete_service_outage + endpoint: + path: /ux/common/service_outage/service_outage/{id}/ + method: DELETE + data_selector: null + params: {} +- name: device_template + endpoint: + path: /ux/ims/device-template/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: device_template_details + endpoint: + path: /ux/ims/device-template/{id}/ + method: GET + data_selector: object +- name: create_device_template + endpoint: + path: /ux/ims/device-template/ + method: POST + data_selector: no content +- name: update_device_template + endpoint: + path: /ux/ims/device-template/{id}/ + method: PUT + data_selector: object +- name: service_outage_options + endpoint: + path: /service_outage/options/ + method: GET + data_selector: No content + params: {} +- name: delete_device_template + endpoint: + path: /ux/ims/device-template/{id}/ + method: DELETE + data_selector: No content + params: + id: string +- name: create_templates + endpoint: + path: /ux/ims/device-template/create-templates/ + method: POST + data_selector: Response object + params: {} +- name: download_csv + endpoint: + path: /ux/ims/device-template/download_csv/ + method: GET + data_selector: Response object + params: {} +- name: multidelete + endpoint: + path: /ux/ims/device-template/multidelete/ + method: POST + data_selector: Response object + params: {} +- name: options + endpoint: + path: /ux/ims/device-template/options/ + method: GET + data_selector: Response object + params: {} +- name: csv_cols + endpoint: + path: /ux/ims/device-template/csv_cols/ + method: POST + data_selector: Response object + params: {} +- name: tag + endpoint: + path: /ux/common/tag/tag/ + method: GET + data_selector: '[]' + params: + items_per_page: integer + page: integer +- name: create_tag + endpoint: + path: /tag/ + method: POST + data_selector: No content +- name: get_tag + endpoint: + path: /tag/{id}/ + method: GET + data_selector: Response object +- name: edit_tag + endpoint: + path: /tag/{id}/ + method: PUT + data_selector: Response object +- name: res_config_options + endpoint: + path: /ux/ims/device-template/res-config-options/ + method: GET + data_selector: response +- name: sys_object_resync + endpoint: + path: /ux/ims/device-template/sys-object-resync/ + method: POST + data_selector: response +- name: upload_csv + endpoint: + path: /ux/ims/device-template/upload-csv/ + method: POST + data_selector: response +- name: verify_oid_exists + endpoint: + path: /ux/ims/device-template/verify-oid-exists/ + method: GET + data_selector: response +- name: discovery_configuration + endpoint: + path: /ux/ims/discovery/profile/ + method: GET + data_selector: records + params: {} +- name: delete_tag + endpoint: + path: /ux/common/tag/tag/{id}/ + method: DELETE +- name: check_tags_config + endpoint: + path: /ux/common/tag/tag/check-tags-config/ + method: GET + data_selector: responseobject +- name: filter_tags + endpoint: + path: /ux/common/tag/tag/filter/ + method: GET + data_selector: responseobject +- name: multi_delete_tags + endpoint: + path: /ux/common/tag/tag/multidelete/ + method: POST +- name: options + endpoint: + path: /ux/common/tag/tag/options/ + method: GET + data_selector: responseobject +- name: validate_tag_user_usages + endpoint: + path: /ux/common/tag/tag/validate_tag_user_usages/{id}/ + method: GET + data_selector: responseobject +- name: create_discovery_configuration + endpoint: + path: /profile/ + method: POST + data_selector: Response + params: {} +- name: get_discovery_configuration + endpoint: + path: /profile/{id}/ + method: GET + data_selector: Response + params: {} +- name: edit_discovery_configuration + endpoint: + path: /profile/{id}/ + method: PUT + data_selector: Response + params: {} +- name: delete_discovery_configuration + endpoint: + path: /profile/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: get_audit + endpoint: + path: /profile/audit/ + method: GET + data_selector: Response + params: {} +- name: get_detailed_configuration + endpoint: + path: /profile/details/ + method: GET + data_selector: Response + params: {} +- name: get_iterations + endpoint: + path: /profile/do-rescan/ + method: POST + data_selector: Response + params: {} +- name: download_csv + endpoint: + path: /profile/download_csv/ + method: GET + data_selector: Response + params: {} +- name: team_profiles + endpoint: + path: /ux/common/teams/profile/ + method: GET + data_selector: response + params: + items_per_page: '1' + page: '1' +- name: discovery_options + endpoint: + path: /ux/ims/discovery/profile/options/ + method: GET + data_selector: id +- name: validate_csv + endpoint: + path: /ux/ims/discovery/profile/validate_csv/ + method: POST + data_selector: job_id +- name: iteration_list + endpoint: + path: /ux/ims/discovery/profile/iteration-list/ + method: GET + data_selector: id +- name: multidelete + endpoint: + path: /ux/ims/discovery/profile/multidelete/ + method: POST + data_selector: job_id +- name: create_team + endpoint: + path: /ux/common/teams/profile/ + method: POST +- name: get_team + endpoint: + path: /ux/common/teams/profile/{id}/ + method: GET +- name: edit_team + endpoint: + path: /ux/common/teams/profile/{id}/ + method: PUT +- name: jobs + endpoint: + path: /ux/ims/jobs/profile/ + method: GET +- name: delete_team + endpoint: + path: /ux/common/teams/profile/{id}/ + method: DELETE +- name: post_incident_map + endpoint: + path: /ux/common/teams/profile/incident_map/ + method: POST +- name: get_options + endpoint: + path: /ux/common/teams/profile/options/ + method: GET +- name: post_user_group_list + endpoint: + path: /ux/common/teams/profile/usergrplist/ + method: POST +- name: validate_team_change + endpoint: + path: /ux/common/teams/profile/validate_team_change/ + method: GET +- name: jobs_profile + endpoint: + path: /ux/ims/jobs/profile/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: jobs_profile_by_id + endpoint: + path: /ux/ims/jobs/profile/{id}/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY + params: {} +- name: telecom_settings + endpoint: + path: /ux/common/telecom_settings/telecom_settings/ + method: GET +- name: mib_explorer + endpoint: + path: /ux/ims/mib-explorer/ + method: GET + data_selector: response + params: + items_per_page: 1 + page: 1 +- name: telecom_settings + endpoint: + path: /ux/common/telecom_settings/telecom_settings/ + method: GET + data_selector: object + params: {} +- name: mib_explorer + endpoint: + path: /ux/ims/mib-explorer/ + method: POST + data_selector: No content +- name: mib_explorer_get + endpoint: + path: /ux/ims/mib-explorer/{id}/ + method: GET + data_selector: application/json +- name: mib_explorer_put + endpoint: + path: /ux/ims/mib-explorer/{id}/ + method: PUT + data_selector: application/json +- name: mib_explorer_delete + endpoint: + path: /ux/ims/mib-explorer/{id}/ + method: DELETE + data_selector: No content +- name: mib_explorer_multidelete + endpoint: + path: /ux/ims/mib-explorer/multidelete/ + method: POST + data_selector: application/json +- name: mib_explorer_options + endpoint: + path: /ux/ims/mib-explorer/options/ + method: GET + data_selector: application/json +- name: telecom_settings + endpoint: + path: /ux/common/telecom_settings/telecom_settings/{id}/ + method: PUT + data_selector: id + params: {} +- name: telecom_settings_delete + endpoint: + path: /ux/common/telecom_settings/telecom_settings/{id}/ + method: DELETE + data_selector: null + params: {} +- name: get_settings + endpoint: + path: /get_settings/ + method: GET + params: + items_per_page: '1' + page: '1' +- name: update_settings + endpoint: + path: /update_settings/ + method: POST +- name: seasonal_events + endpoint: + path: /ux/ims/seasonal_events/seasonal_events/ + method: GET + data_selector: records +- name: seasonal_events_post + endpoint: + path: /ux/ims/seasonal_events/seasonal_events/ + method: POST + data_selector: records +- name: seasonal_events_by_id + endpoint: + path: /ux/ims/seasonal_events/seasonal_events/{id}/ + method: GET + data_selector: records +- name: seasonal_events_put_by_id + endpoint: + path: /ux/ims/seasonal_events/seasonal_events/{id}/ + method: PUT + data_selector: records +- name: seasonal_events_delete_by_id + endpoint: + path: /ux/ims/seasonal_events/seasonal_events/{id}/ + method: DELETE + data_selector: records +- name: ipam + endpoint: + path: /ux/ipam/ipam/ + method: GET +- name: trap_configurations + endpoint: + path: /ux/common/trap/configuration + method: GET +- name: trap_messages + endpoint: + path: /ux/common/trap/configuration/trap_msgs + method: GET +- name: msg_options + endpoint: + path: /ux/common/trap/configuration/msg_options + method: GET +- name: options + endpoint: + path: /ux/common/trap/configuration/options + method: GET +- name: multi_delete + endpoint: + path: /ux/common/trap/configuration/multidelete + method: POST +- name: containers + endpoint: + path: /ux/ipam/ipam/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY + params: + items_per_page: integer + page: integer +- name: create_container + endpoint: + path: /ux/ipam/ipam/ + method: POST + data_selector: ANY_ADDITIONAL_PROPERTY + params: {} +- name: container + endpoint: + path: /ux/ipam/ipam/{id}/ + method: GET + data_selector: response + params: {} +- name: container_edit + endpoint: + path: /ux/ipam/ipam/{id}/ + method: PUT + data_selector: response + params: {} +- name: trap_configuration + endpoint: + path: /ux/common/trap/configuration/ + method: GET + data_selector: '[]' + params: + items_per_page: '1' + page: '1' +- name: create_trap_configuration + endpoint: + path: /ux/common/trap/configuration/ + method: POST + data_selector: application/json +- name: get_trap_configuration + endpoint: + path: /ux/common/trap/configuration/{id}/ + method: GET + data_selector: '{}' +- name: edit_trap_configuration + endpoint: + path: /ux/common/trap/configuration/{id}/ + method: PUT + data_selector: application/json +- name: delete_trap_configuration + endpoint: + path: /ux/common/trap/configuration/{id}/ + method: DELETE +- name: get_msg_options + endpoint: + path: /ux/common/trap/configuration/msg_options/ + method: GET +- name: multi_delete_trap_configuration + endpoint: + path: /ux/common/trap/configuration/multidelete/ + method: POST +- name: get_trap_msgs + endpoint: + path: /ux/common/trap/configuration/trap_msgs/ + method: GET + params: + items_per_page: integer + page: integer +- name: delete_container + endpoint: + path: /ux/ipam/ipam/{id}/ + method: DELETE + data_selector: No content +- name: agent_list + endpoint: + path: /ux/ipam/ipam/agent_list/ + method: GET + data_selector: records +- name: check_inventory_scan + endpoint: + path: /ux/ipam/ipam/check_inventory_scan/ + method: POST + data_selector: records +- name: container_entities + endpoint: + path: /ux/ipam/ipam/container-entities/ + method: GET + data_selector: records +- name: dependency_status + endpoint: + path: /ux/ipam/ipam/dependency-status/ + method: GET + data_selector: records +- name: do_availability_scan + endpoint: + path: /ux/ipam/ipam/do_availability_scan/ + method: POST + data_selector: records +- name: do_inventory_scan + endpoint: + path: /ux/ipam/ipam/do_inventory_scan/ + method: POST + data_selector: records +- name: user_profile + endpoint: + path: /ux/common/user/profile/ + method: GET + data_selector: records + params: + items_per_page: '1' + page: '1' +- name: get_subnet_name + endpoint: + path: /get-subnet-name/ + method: GET + data_selector: records +- name: get_audit_options + endpoint: + path: /get_audit_options/ + method: GET + data_selector: records +- name: get_container_options + endpoint: + path: /get_container_options/ + method: GET + data_selector: records +- name: get_ip_addresses + endpoint: + path: /get_ip_addresses/ + method: GET + data_selector: records +- name: group_summary + endpoint: + path: /group-summary/ + method: GET + data_selector: records +- name: group_summary_widget_options + endpoint: + path: /group-summary-widget-options/ + method: GET + data_selector: records +- name: ip_container_details + endpoint: + path: /ip-container-details/ + method: GET + data_selector: records +- name: ip_details_grid_view + endpoint: + path: /ip-details-grid-view/ + method: GET + data_selector: records +- name: create_user + endpoint: + path: /profile/ + method: POST + data_selector: response + params: {} +- name: get_user_profile + endpoint: + path: /profile/{id}/ + method: GET + data_selector: response + params: {} +- name: edit_user + endpoint: + path: /profile/{id}/ + method: PUT + data_selector: response + params: {} +- name: ip_reservation + endpoint: + path: /ip-reservation/ + method: GET + data_selector: records +- name: ip_reservation_config + endpoint: + path: /ip-reservation-config/ + method: GET + data_selector: records +- name: log_grok_pattern_configuration + endpoint: + path: /ux/log_grok_pattern/log_grok_pattern_configuration/ + method: GET + data_selector: No content + params: {} +- name: log_grok_pattern_configuration_post + endpoint: + path: /ux/log_grok_pattern/log_grok_pattern_configuration/ + method: POST + data_selector: No content + params: {} +- name: delete_user + endpoint: + path: /ux/common/user/profile/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: active_users + endpoint: + path: /ux/common/user/profile/active_users/ + method: POST + data_selector: application/json + params: {} +- name: activeuser_list + endpoint: + path: /ux/common/user/profile/activeuser_list/ + method: GET + data_selector: application/json + params: {} +- name: download_csv + endpoint: + path: /ux/common/user/profile/download_csv/ + method: GET + data_selector: application/json + params: {} +- name: get_my_profile + endpoint: + path: /ux/common/user/profile/getmyprofile/ + method: GET + data_selector: application/json + params: {} +- name: logout + endpoint: + path: /ux/common/user/profile/logout/ + method: POST + data_selector: application/json + params: {} +- name: myprofile + endpoint: + path: /ux/common/user/profile/myprofile/ + method: POST + data_selector: application/json + params: {} +- name: options + endpoint: + path: /ux/common/user/profile/options/ + method: GET + data_selector: application/json + params: {} +- name: preference + endpoint: + path: /ux/common/user/profile/preference/ + method: POST + data_selector: application/json + params: {} +- name: upload_csv + endpoint: + path: /ux/common/user/profile/upload_csv/ + method: POST + data_selector: application/json + params: {} +- name: user_invite + endpoint: + path: /ux/common/user/profile/user_invite/ + method: POST + data_selector: application/json + params: {} +- name: validate_csv + endpoint: + path: /ux/common/user/profile/validate_csv/ + method: POST + data_selector: application/json + params: {} +- name: get_grok_pattern_list + endpoint: + path: /get_grok_pattern_list/ + method: GET + data_selector: No content + params: {} +- name: log_grok_pattern_configuration + endpoint: + path: /log_grok_pattern_configuration/{id}/ + method: GET + data_selector: No content + params: {} +- name: log_grok_pattern_configuration_update + endpoint: + path: /log_grok_pattern_configuration/{id}/ + method: PUT + data_selector: No content + params: {} +- name: log_grok_pattern_configuration_delete + endpoint: + path: /log_grok_pattern_configuration/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: log_pipeline_configuration + endpoint: + path: /ux/log_pipeline/log_pipeline_configuration/ + method: GET + data_selector: No content + params: {} +- name: vendor + endpoint: + path: /ux/common/vendor/vendor/ + method: GET + data_selector: documents +- name: vendor_create + endpoint: + path: /ux/common/vendor/vendor/ + method: POST + data_selector: documents +- name: vendor + endpoint: + path: /ux/common/vendor/vendor/{id}/ + method: GET + data_selector: records +- name: vendor_options + endpoint: + path: /ux/common/vendor/vendor/options/ + method: GET + data_selector: records +- name: log_pipeline_configuration + endpoint: + path: /ux/log_pipeline/log_pipeline_configuration/{id}/ + method: GET +- name: upload_pipeline + endpoint: + path: /ux/log_pipeline/log_pipeline_configuration/upload_pipeline/{id}/ + method: GET +- name: grok_response + endpoint: + path: /ux/log_pipeline/log_pipeline_configuration/grok_response/ + method: GET +- name: grok_pattern + endpoint: + path: /ux/log_pipeline/log_pipeline_configuration/grok_pattern/ + method: GET +- name: get_options + endpoint: + path: /ux/log_pipeline/log_pipeline_configuration/get_options/ + method: GET +- name: get_pipeline_list + endpoint: + path: /ux/log_pipeline/log_pipeline_configuration/get_pipeline_list/ + method: GET +- name: get_logstash_health + endpoint: + path: /ux/log_pipeline/log_pipeline_configuration/get_logstash_health/ + method: GET +- name: get_asset_filter_data + endpoint: + path: /ux/log_pipeline/log_pipeline_configuration/get_asset_filter_data/ + method: GET +- name: get_asset_Preview_data + endpoint: + path: /ux/log_pipeline/log_pipeline_configuration/get_asset_Preview_data/ + method: GET +- name: association_events + endpoint: + path: /ux/ims/association_events/association_events/ + method: GET + data_selector: null + params: {} +- name: association_event_details + endpoint: + path: /ux/ims/association_events/association_events/associated-event-details/ + method: GET + data_selector: null + params: {} +- name: association_versions + endpoint: + path: /ux/ims/association_events/association_events/association-versions/ + method: GET + data_selector: null + params: {} +- name: save_topology + endpoint: + path: /ux/ims/association_events/association_events/save-topology/ + method: POST + data_selector: null + params: {} +- name: validate_topology + endpoint: + path: /ux/ims/association_events/association_events/validate-topology/ + method: POST + data_selector: null + params: {} +- name: device_template + endpoint: + path: /ux/ims/device-template + method: GET + data_selector: records +- name: device_template + endpoint: + path: /ux/ims/device-template/ + method: GET + data_selector: object[] + params: + items_per_page: '1' + page: '1' +- name: device_template_details + endpoint: + path: /ux/ims/device-template/{id}/ + method: GET + data_selector: object +- name: log_integration + endpoint: + path: /ux/logmanagement/log_integration/ + method: GET + data_selector: No content + params: {} +- name: log_integration_post + endpoint: + path: /ux/logmanagement/log_integration/ + method: POST + data_selector: No content + params: {} +- name: log_integration_id + endpoint: + path: /ux/logmanagement/log_integration/{id}/ + method: GET + data_selector: No content + params: {} +- name: log_integration_id_put + endpoint: + path: /ux/logmanagement/log_integration/{id}/ + method: PUT + data_selector: No content + params: {} +- name: log_integration_id_delete + endpoint: + path: /ux/logmanagement/log_integration/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: log_integration_url + endpoint: + path: /ux/logmanagement/log_integration/_url/ + method: GET + data_selector: No content + params: {} +- name: log_integration_cmdb_filter + endpoint: + path: /ux/logmanagement/log_integration/cmdb_filter/ + method: POST + data_selector: No content + params: {} +- name: log_integration_export_data + endpoint: + path: /ux/logmanagement/log_integration/export_data/ + method: POST + data_selector: No content + params: {} +- name: log_integration_get_data_view + endpoint: + path: /ux/logmanagement/log_integration/get_data_view/ + method: GET + data_selector: No content + params: {} +- name: log_integration_get_export_configs + endpoint: + path: /ux/logmanagement/log_integration/get_export_configs/ + method: GET + data_selector: No content + params: {} +- name: log_integration_get_log_columns + endpoint: + path: /ux/logmanagement/log_integration/get_log_columns/ + method: GET + data_selector: No content + params: {} +- name: log_integration_get_log_columns_for_pipeline + endpoint: + path: /ux/logmanagement/log_integration/get_log_columns_for_pipeline/ + method: GET + data_selector: No content + params: {} +- name: log_integration_get_log_filter_suggestions + endpoint: + path: /ux/logmanagement/log_integration/get_log_filter_suggestions/ + method: GET + data_selector: No content + params: {} +- name: log_integration_get_log_filter_suggestions_for_pipeline + endpoint: + path: /ux/logmanagement/log_integration/get_log_filter_suggestions_for_pipeline/ + method: GET + data_selector: No content + params: {} +- name: log_search + endpoint: + path: /ux/logmanagement/log_search/log_search/ + method: GET + data_selector: records +- name: log_search_by_id + endpoint: + path: /ux/logmanagement/log_search/log_search/{id}/ + method: GET + data_selector: records +- name: device_template_delete + endpoint: + path: /ux/ims/device-template/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: device_template_create + endpoint: + path: /ux/ims/device-template/create-templates/ + method: POST + data_selector: Responseobject + params: {} +- name: device_template_csv_cols + endpoint: + path: /ux/ims/device-template/csv_cols/ + method: POST + data_selector: Responseobject + params: {} +- name: device_template_download_csv + endpoint: + path: /ux/ims/device-template/download_csv/ + method: GET + data_selector: Responseobject + params: {} +- name: device_template_multidelete + endpoint: + path: /ux/ims/device-template/multidelete/ + method: POST + data_selector: Responseobject + params: {} +- name: device_template_options + endpoint: + path: /ux/ims/device-template/options/ + method: GET + data_selector: Responseobject + params: {} +- name: device_template_res_config_options + endpoint: + path: /ux/ims/device-template/res-config-options/ + method: GET + data_selector: Responseobject + params: {} +- name: logs + endpoint: + path: /log_search/logs/ + method: POST + data_selector: No content + params: {} +- name: cli_jobs + endpoint: + path: /ux/nccm/cli_jobs + method: GET +- name: cli_jobs_options + endpoint: + path: /ux/nccm/cli_jobs/options + method: GET +- name: cli_jobs_tail_audits + endpoint: + path: /ux/nccm/cli_jobs/tail-audits + method: GET +- name: res_config_options + endpoint: + path: /res-config-options/ + method: GET + data_selector: response + params: {} +- name: sys_object_resync + endpoint: + path: /sys-object-resync/ + method: POST + data_selector: response + params: {} +- name: upload_csv + endpoint: + path: /upload-csv/ + method: POST + data_selector: response + params: {} +- name: verify_oid_exists + endpoint: + path: /verify-oid-exists/ + method: GET + data_selector: response + params: {} +- name: cli_jobs + endpoint: + path: /ux/nccm/cli_jobs/ + method: GET + data_selector: object[] + params: + items_per_page: 1 + page: 1 +- name: cli_job_details + endpoint: + path: /ux/nccm/cli_jobs/{id}/ + method: GET + data_selector: object +- name: discovery_configuration + endpoint: + path: /ux/ims/discovery/profile/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: cli_jobs + endpoint: + path: /ux/nccm/cli_jobs/ + method: GET + data_selector: records +- name: cli_file_remove + endpoint: + path: /ux/nccm/cli_jobs/cli-file-remove/ + method: GET + data_selector: records +- name: cli_session + endpoint: + path: /ux/nccm/cli_jobs/cli-session/ + method: GET + data_selector: records +- name: cli_kill_session + endpoint: + path: /ux/nccm/cli_jobs/cli_kill_session/ + method: GET + data_selector: records +- name: options + endpoint: + path: /ux/nccm/cli_jobs/options/ + method: GET + data_selector: records +- name: tail_audits + endpoint: + path: /ux/nccm/cli_jobs/tail-audits/ + method: GET + data_selector: records +- name: tail_audits + endpoint: + path: /ux/nccm/cli_jobs/tail-audits/ + method: GET + data_selector: records +- name: discovery_configuration_create + endpoint: + path: /ux/ims/discovery/profile/ + method: POST + data_selector: Response + params: {} +- name: discovery_configuration_get + endpoint: + path: /ux/ims/discovery/profile/{id}/ + method: GET + data_selector: Response + params: {} +- name: discovery_configuration_edit + endpoint: + path: /ux/ims/discovery/profile/{id}/ + method: PUT + data_selector: Response + params: {} +- name: discovery_configuration_delete + endpoint: + path: /ux/ims/discovery/profile/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: discovery_configuration_audit + endpoint: + path: /ux/ims/discovery/profile/audit/ + method: GET + data_selector: Response + params: {} +- name: discovery_configuration_details + endpoint: + path: /ux/ims/discovery/profile/details/ + method: GET + data_selector: Response + params: {} +- name: discovery_configuration_rescan + endpoint: + path: /ux/ims/discovery/profile/do-rescan/ + method: POST + data_selector: Response + params: {} +- name: discovery_configuration_download_csv + endpoint: + path: /ux/ims/discovery/profile/download_csv/ + method: GET + data_selector: Response + params: {} +- name: configuration_profile + endpoint: + path: /ux/nccm/configuration-profile + method: GET +- name: discovery_options + endpoint: + path: /discovery/profile/options/ + method: GET + data_selector: Responseobject +- name: validate_csv + endpoint: + path: /discovery/profile/validate_csv/ + method: POST + data_selector: Responseobject +- name: iteration_list + endpoint: + path: /discovery/profile/iteration-list/ + method: GET + data_selector: Responseobject +- name: multidelete + endpoint: + path: /discovery/profile/multidelete/ + method: POST + data_selector: Responseobject +- name: Jobs + endpoint: + path: /ux/ims/jobs + method: GET +- name: configuration_profile_list + endpoint: + path: /ux/nccm/configuration-profile/ + method: GET + data_selector: object[] + params: + items_per_page: '1' + page: '1' +- name: configuration_profile_details + endpoint: + path: /ux/nccm/configuration-profile/{id}/ + method: GET + data_selector: object +- name: create_configuration_profile + endpoint: + path: /ux/nccm/configuration-profile/ + method: POST + data_selector: none +- name: edit_configuration_profile + endpoint: + path: /ux/nccm/configuration-profile/{id}/ + method: PUT + data_selector: none +- name: jobs + endpoint: + path: /ux/ims/jobs/profile/ + method: GET + data_selector: response + params: + items_per_page: '1' + page: '1' +- name: job_detail + endpoint: + path: /ux/ims/jobs/profile/{id}/ + method: GET + data_selector: response +- name: delete_configuration_profile + endpoint: + path: /configuration-profile/{id}/ + method: DELETE +- name: check_profile_config + endpoint: + path: /configuration-profile/check-profile-config/ + method: GET +- name: create_csv + endpoint: + path: /configuration-profile/create-csv/ + method: POST +- name: download_csv + endpoint: + path: /configuration-profile/download_csv/ + method: GET +- name: multidelete_configuration_profiles + endpoint: + path: /configuration-profile/multidelete/ + method: POST +- name: mib_explorer + endpoint: + path: /ux/ims/mib-explorer/ + method: GET + data_selector: records + params: + items_per_page: integer + page: integer +- name: configuration_profile + endpoint: + path: /ux/nccm/configuration-profile/multidelete/ + method: POST + data_selector: id + params: {} +- name: options + endpoint: + path: /ux/nccm/configuration-profile/options/ + method: GET + data_selector: Responseobject +- name: upload_csv + endpoint: + path: /ux/nccm/configuration-profile/upload-csv/ + method: POST + data_selector: Responseobject +- name: mib_explorer + endpoint: + path: /ux/ims/mib-explorer/ + method: POST + data_selector: No content + params: {} +- name: mib_explorer_by_id + endpoint: + path: /ux/ims/mib-explorer/{id}/ + method: GET + data_selector: Response object + params: {} +- name: mib_explorer_update + endpoint: + path: /ux/ims/mib-explorer/{id}/ + method: PUT + data_selector: Response object + params: {} +- name: mib_explorer_delete + endpoint: + path: /ux/ims/mib-explorer/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: mib_explorer_multidelete + endpoint: + path: /ux/ims/mib-explorer/multidelete/ + method: POST + data_selector: Response object + params: {} +- name: mib_explorer_options + endpoint: + path: /ux/ims/mib-explorer/options/ + method: GET + data_selector: Response object + params: {} +- name: configuration_policies + endpoint: + path: /ux/nccm/configuration_policies + method: GET +- name: configuration_policies + endpoint: + path: /ux/nccm/configuration_policies/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: seasonal_events + endpoint: + path: /ux/ims/seasonal_events/seasonal_events/ + method: GET + data_selector: No content +- name: seasonal_events_create + endpoint: + path: /ux/ims/seasonal_events/seasonal_events/ + method: POST + data_selector: No content +- name: seasonal_events_get + endpoint: + path: /ux/ims/seasonal_events/seasonal_events/{id}/ + method: GET + data_selector: No content +- name: seasonal_events_update + endpoint: + path: /ux/ims/seasonal_events/seasonal_events/{id}/ + method: PUT + data_selector: No content +- name: seasonal_events_delete + endpoint: + path: /ux/ims/seasonal_events/seasonal_events/{id}/ + method: DELETE + data_selector: No content +- name: delete_configuration_policy + endpoint: + path: /configuration_policies/{id}/ + method: DELETE +- name: bulk_operation + endpoint: + path: /configuration_policies/bulk-opration/ + method: POST + data_selector: application/json +- name: multi_delete + endpoint: + path: /configuration_policies/multi-delete/ + method: POST + data_selector: application/json +- name: options + endpoint: + path: /configuration_policies/options/ + method: GET +- name: ipam + endpoint: + path: /ux/ipam/ipam + method: GET +- name: agent_list + endpoint: + path: /ux/ipam/ipam/agent_list + method: GET +- name: container_entities + endpoint: + path: /ux/ipam/ipam/container-entities + method: GET +- name: configuration_rules + endpoint: + path: /ux/nccm/configuration_rules + method: GET +- name: containers + endpoint: + path: /ux/ipam/ipam/ + method: GET + data_selector: ANY_ADDITIONAL_PROPERTY + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: bot_cmdb_configurations + endpoint: + path: /ux/ipam/ipam/ + method: POST + data_selector: ANY_ADDITIONAL_PROPERTY +- name: configuration_rules + endpoint: + path: /ux/nccm/configuration_rules/ + method: GET + data_selector: '[]' + params: + items_per_page: '1' + page: '1' +- name: container + endpoint: + path: /ux/ipam/ipam/{id}/ + method: GET + data_selector: id + params: {} +- name: container_update + endpoint: + path: /ux/ipam/ipam/{id}/ + method: PUT + data_selector: id + params: {} +- name: configuration_rule + endpoint: + path: /configuration_rules/{id}/ + method: DELETE + data_selector: No content +- name: agent_list + endpoint: + path: /ipam/agent_list/ + method: GET + data_selector: records +- name: container_entities + endpoint: + path: /ipam/container-entities/ + method: GET + data_selector: records +- name: dependency_status + endpoint: + path: /ipam/dependency-status/ + method: GET + data_selector: records +- name: import_txt + endpoint: + path: /ux/nccm/configuration_rules/import-txt/ + method: POST + data_selector: Responseobject +- name: is_disabled + endpoint: + path: /ux/nccm/configuration_rules/is_disabled/ + method: POST + data_selector: Responseobject +- name: is_enabled + endpoint: + path: /ux/nccm/configuration_rules/is_enabled/ + method: POST + data_selector: Responseobject +- name: is_enabled + endpoint: + path: /configuration_rules/is_enabled/ + method: POST + data_selector: response + params: {} +- name: multidelete + endpoint: + path: /configuration_rules/multidelete/ + method: POST + data_selector: response + params: {} +- name: options + endpoint: + path: /configuration_rules/options/ + method: GET + data_selector: response + params: {} +- name: get_subnet_name + endpoint: + path: /get-subnet-name/ + method: GET + data_selector: records +- name: get_audit_options + endpoint: + path: /get_audit_options/ + method: GET + data_selector: records +- name: get_container_options + endpoint: + path: /get_container_options/ + method: GET + data_selector: records +- name: get_ip_addresses + endpoint: + path: /get_ip_addresses/ + method: GET + data_selector: records +- name: group_summary + endpoint: + path: /group-summary/ + method: GET + data_selector: records +- name: group_summary_widget_options + endpoint: + path: /group-summary-widget-options/ + method: GET + data_selector: records +- name: ip_container_details + endpoint: + path: /ip-container-details/ + method: GET + data_selector: records +- name: ip_details_grid_view + endpoint: + path: /ip-details-grid-view/ + method: GET + data_selector: records +- name: configuration_rule + endpoint: + path: /ux/nccm/configuration_rules/validate-json/ + method: POST + data_selector: id + params: {} +- name: ip_reservation + endpoint: + path: /ip-reservation/ + method: GET + data_selector: records +- name: ip_reservation_config + endpoint: + path: /ip-reservation-config/ + method: GET + data_selector: records +- name: validate_json + endpoint: + path: /configuration_rules/validate-json/ + method: POST + data_selector: response + params: {} +- name: configuration_search + endpoint: + path: /ux/nccm/configuration_search/ + method: GET + data_selector: '' + params: {} +- name: configuration_search_result + endpoint: + path: /ux/nccm/configuration_search/configuration-search-result/ + method: GET + data_selector: '' + params: + items_per_page: '1' + page: '1' +- name: configuration_search_filter + endpoint: + path: /ux/nccm/configuration_search/filter/ + method: GET + data_selector: '' + params: {} +- name: configuration_search_options + endpoint: + path: /ux/nccm/configuration_search/options/ + method: GET + data_selector: '' + params: {} +- name: log_grok_pattern_configuration + endpoint: + path: /ux/log_grok_pattern/log_grok_pattern_configuration/ + method: GET + data_selector: No content + params: {} +- name: log_grok_pattern_configuration_post + endpoint: + path: /ux/log_grok_pattern/log_grok_pattern_configuration/ + method: POST + data_selector: No content + params: {} +- name: configuration_template + endpoint: + path: /ux/nccm/configuration_template + method: GET +- name: get_grok_pattern + endpoint: + path: /get_grok_pattern_list/ + method: GET + data_selector: No content +- name: put_grok_pattern + endpoint: + path: /{id}/ + method: PUT + data_selector: No content +- name: delete_grok_pattern + endpoint: + path: /{id}/ + method: DELETE + data_selector: No content +- name: get_grok_pattern_by_id + endpoint: + path: /{id}/ + method: GET + data_selector: No content +- name: log_pipeline_configuration + endpoint: + path: /ux/log_pipeline/log_pipeline_configuration/ + method: GET + data_selector: No content +- name: configuration_template + endpoint: + path: configuration_template/ + method: GET + data_selector: documents + params: + items_per_page: 1 + page: 1 +- name: configuration_template_create_csv + endpoint: + path: configuration_template/create-csv/ + method: POST + data_selector: documents +- name: configuration_template_by_id + endpoint: + path: configuration_template/{id}/ + method: GET + data_selector: documents +- name: create_csv + endpoint: + path: /ux/nccm/configuration_template/create-csv/ + method: POST + data_selector: null + params: {} +- name: csv_cols + endpoint: + path: /ux/nccm/configuration_template/csv_cols/ + method: POST + data_selector: null + params: {} +- name: download_csv + endpoint: + path: /ux/nccm/configuration_template/download_csv/ + method: GET + data_selector: null + params: {} +- name: download_xls + endpoint: + path: /ux/nccm/configuration_template/download_xls/ + method: GET + data_selector: null + params: {} +- name: file_details + endpoint: + path: /ux/nccm/configuration_template/file_details/ + method: GET + data_selector: null + params: {} +- name: get_pipeline + endpoint: + path: /{id}/ + method: GET + data_selector: No content + params: {} +- name: put_pipeline + endpoint: + path: /{id}/ + method: PUT + data_selector: No content + params: {} +- name: delete_pipeline + endpoint: + path: /{id}/ + method: DELETE + data_selector: No content + params: {} +- name: get_asset_preview_data + endpoint: + path: /get_asset_Preview_data/ + method: GET + data_selector: No content + params: {} +- name: get_asset_filter_data + endpoint: + path: /get_asset_filter_data/ + method: GET + data_selector: No content + params: {} +- name: get_logstash_health + endpoint: + path: /get_logstash_health/ + method: GET + data_selector: No content + params: {} +- name: get_options + endpoint: + path: /get_options/ + method: GET + data_selector: No content + params: {} +- name: get_pipeline_list + endpoint: + path: /get_pipeline_list/ + method: GET + data_selector: No content + params: {} +- name: grok_pattern + endpoint: + path: /grok_pattern/ + method: GET + data_selector: No content + params: {} +- name: grok_response + endpoint: + path: /grok_response/ + method: GET + data_selector: No content + params: {} +- name: upload_pipeline + endpoint: + path: /upload_pipeline/{id}/ + method: GET + data_selector: No content + params: {} +- name: is_disabled + endpoint: + path: /is_disabled/ + method: POST + data_selector: template_id + params: {} +- name: is_enabled + endpoint: + path: /is_enabled/ + method: POST + data_selector: template_id + params: {} +- name: multidelete + endpoint: + path: /multidelete/ + method: POST + data_selector: template_id + params: {} +- name: options + endpoint: + path: /configuration_template/options/ + method: GET + data_selector: id + params: {} +- name: production_ready + endpoint: + path: /configuration_template/production_ready/ + method: POST + data_selector: id + params: {} +- name: toggle_template_quickadd + endpoint: + path: /configuration_template/toggle-template-quickadd/ + method: POST + data_selector: id + params: {} +- name: upload_csv + endpoint: + path: /configuration_template/upload-csv/ + method: POST + data_selector: id + params: {} +- name: configuration_upload + endpoint: + path: /upload-csv/ + method: POST + data_selector: id + params: {} +- name: log_integration + endpoint: + path: /ux/logmanagement/log_integration/ + method: GET + data_selector: No content +- name: log_integration_post + endpoint: + path: /ux/logmanagement/log_integration/ + method: POST + data_selector: No content +- name: log_integration_id + endpoint: + path: /ux/logmanagement/log_integration/{id}/ + method: GET + data_selector: No content +- name: log_integration_id_put + endpoint: + path: /ux/logmanagement/log_integration/{id}/ + method: PUT + data_selector: No content +- name: log_integration_id_delete + endpoint: + path: /ux/logmanagement/log_integration/{id}/ + method: DELETE + data_selector: No content +- name: log_integration_url + endpoint: + path: /ux/logmanagement/log_integration/_url/ + method: GET + data_selector: No content +- name: log_integration_cmdb_filter + endpoint: + path: /ux/logmanagement/log_integration/cmdb_filter/ + method: POST + data_selector: No content +- name: log_integration_export_data + endpoint: + path: /ux/logmanagement/log_integration/export_data/ + method: POST + data_selector: No content +- name: log_integration_get_data_view + endpoint: + path: /ux/logmanagement/log_integration/get_data_view/ + method: GET + data_selector: No content +- name: log_integration_get_export_configs + endpoint: + path: /ux/logmanagement/log_integration/get_export_configs/ + method: GET + data_selector: No content +- name: log_integration_get_log_columns + endpoint: + path: /ux/logmanagement/log_integration/get_log_columns/ + method: GET + data_selector: No content +- name: log_integration_get_log_columns_for_pipeline + endpoint: + path: /ux/logmanagement/log_integration/get_log_columns_for_pipeline/ + method: GET + data_selector: No content +- name: log_integration_get_log_filter_suggestions + endpoint: + path: /ux/logmanagement/log_integration/get_log_filter_suggestions/ + method: GET + data_selector: No content +- name: log_integration_get_log_filter_suggestions_for_pipeline + endpoint: + path: /ux/logmanagement/log_integration/get_log_filter_suggestions_for_pipeline/ + method: GET + data_selector: No content +- name: configuration_trigger + endpoint: + path: /ux/nccm/configuration_trigger + method: GET +- name: configuration_trigger + endpoint: + path: /ux/nccm/configuration_trigger/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: configuration_trigger_post + endpoint: + path: /ux/nccm/configuration_trigger/ + method: POST + data_selector: object + params: {} +- name: log_search + endpoint: + path: /ux/logmanagement/log_search/log_search/ + method: GET + data_selector: '' + params: {} +- name: log_search_post + endpoint: + path: /ux/logmanagement/log_search/log_search/ + method: POST + data_selector: '' + params: {} +- name: log_search_id + endpoint: + path: /ux/logmanagement/log_search/log_search/{id}/ + method: GET + data_selector: '' + params: {} +- name: log_search_id_put + endpoint: + path: /ux/logmanagement/log_search/log_search/{id}/ + method: PUT + data_selector: '' + params: {} +- name: log_search_id_delete + endpoint: + path: /ux/logmanagement/log_search/log_search/{id}/ + method: DELETE + data_selector: '' + params: {} +- name: configuration_trigger + endpoint: + path: /ux/nccm/configuration_trigger/{id}/ + method: GET + data_selector: response + params: {} +- name: add_trigger + endpoint: + path: /ux/nccm/configuration_trigger/add_trigger/ + method: POST + data_selector: response + params: {} +- name: multi_delete + endpoint: + path: /ux/nccm/configuration_trigger/multi-delete/ + method: POST + data_selector: response + params: {} +- name: download_csv + endpoint: + path: /ux/nccm/configuration_trigger/download_csv/ + method: GET + data_selector: response + params: {} +- name: logs + endpoint: + path: /ux/logmanagement/log_search/log_search/logs/ + method: POST + data_selector: No content + params: {} +- name: review + endpoint: + path: /ux/nccm/configuration_trigger/review/ + method: POST + data_selector: response + params: {} +- name: save_csv_data + endpoint: + path: /ux/nccm/configuration_trigger/save_csv_data/ + method: POST + data_selector: response + params: {} +- name: saved_imported + endpoint: + path: /ux/nccm/configuration_trigger/saved_imported/ + method: POST + data_selector: response + params: {} +- name: validate_csv + endpoint: + path: /ux/nccm/configuration_trigger/validate_csv/ + method: POST + data_selector: response + params: {} +- name: cli_jobs + endpoint: + path: /ux/nccm/cli_jobs/ + method: GET +- name: cli_session + endpoint: + path: /ux/nccm/cli_jobs/cli-session/ + method: GET +- name: cli_kill_session + endpoint: + path: /ux/nccm/cli_jobs/cli_kill_session/ + method: GET +- name: cli_file_remove + endpoint: + path: /ux/nccm/cli_jobs/cli-file-remove/ + method: GET +- name: tail_audits + endpoint: + path: /ux/nccm/cli_jobs/tail-audits/ + method: GET +- name: jobs_account_audit + endpoint: + path: /ux/nccm/jobs-account-audit + method: GET +- name: cli_jobs + endpoint: + path: /ux/nccm/cli_jobs/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: cli_job_detail + endpoint: + path: /ux/nccm/cli_jobs/{id}/ + method: GET + data_selector: object +- name: jobs_account_audit + endpoint: + path: /ux/nccm/jobs-account-audit/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: jobs_account_audit_options + endpoint: + path: /ux/nccm/jobs-account-audit/options/ + method: GET + data_selector: object +- name: manage_vulnerabilities + endpoint: + path: /ux/nccm/manage_vulnerabilities + method: GET +- name: cli_job + endpoint: + path: /cli_jobs/{id}/ + method: DELETE +- name: cli_file_remove + endpoint: + path: /cli_jobs/cli-file-remove/ + method: GET +- name: cli_session + endpoint: + path: /cli_jobs/cli-session/ + method: GET +- name: cli_kill_session + endpoint: + path: /cli_jobs/cli_kill_session/ + method: GET +- name: options + endpoint: + path: /cli_jobs/options/ + method: GET +- name: tail_audits + endpoint: + path: /cli_jobs/tail-audits/ + method: GET +- name: vulnerabilities + endpoint: + path: /ux/nccm/manage_vulnerabilities/ + method: GET + data_selector: null + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: vulnerabilities_by_id + endpoint: + path: /ux/nccm/manage_vulnerabilities/{id}/ + method: GET + data_selector: null + params: {} +- name: tail_audits + endpoint: + path: /ux/nccm/cli_jobs/tail-audits/ + method: GET + data_selector: records + params: {} +- name: configuration_profile + endpoint: + path: /ux/nccm/configuration-profile + method: GET +- name: os_image + endpoint: + path: /ux/nccm/os-image/os-images-objs/ + method: GET +- name: os_schedule + endpoint: + path: /ux/nccm/os-image/os-schedule-details/ + method: GET +- name: get_tags + endpoint: + path: /ux/nccm/os-image/ + method: GET + data_selector: object[] + params: + items_per_page: '1' + page: '1' +- name: create_configuration_profile + endpoint: + path: /ux/nccm/os-image/ + method: POST + data_selector: object + params: {} +- name: get_global_param + endpoint: + path: /ux/nccm/os-image/{id}/ + method: GET + data_selector: object + params: {} +- name: edit_tag + endpoint: + path: /ux/nccm/os-image/{id}/ + method: PUT + data_selector: object + params: {} +- name: configuration_profile + endpoint: + path: /ux/nccm/configuration-profile/ + method: GET + data_selector: object[] + params: + items_per_page: '1' + page: '1' +- name: configuration_profile_details + endpoint: + path: /ux/nccm/configuration-profile/{id}/ + method: GET + data_selector: object +- name: create_configuration_profile + endpoint: + path: /ux/nccm/configuration-profile/ + method: POST + data_selector: no_content +- name: edit_configuration_profile + endpoint: + path: /ux/nccm/configuration-profile/{id}/ + method: PUT + data_selector: object +- name: delete_os_image + endpoint: + path: /ux/nccm/os-image/{id}/ + method: DELETE +- name: file_upload_status + endpoint: + path: /ux/nccm/os-image/file-upload-status/ + method: POST + data_selector: response +- name: get_allowed_file_types + endpoint: + path: /ux/nccm/os-image/get-allowed-file-types/ + method: GET + data_selector: response +- name: multidelete_os_image + endpoint: + path: /ux/nccm/os-image/multidelete/ + method: POST + data_selector: response +- name: delete_configuration_profile + endpoint: + path: /configuration-profile/{id}/ + method: DELETE + data_selector: No content +- name: check_profile_config + endpoint: + path: /configuration-profile/check-profile-config/ + method: GET + data_selector: application/json +- name: create_csv + endpoint: + path: /configuration-profile/create-csv/ + method: POST + data_selector: application/json +- name: download_csv + endpoint: + path: /configuration-profile/download_csv/ + method: GET + data_selector: application/json +- name: multidelete + endpoint: + path: /configuration-profile/multidelete/ + method: POST + data_selector: application/json +- name: download_options + endpoint: + path: /ux/nccm/os-image/options/ + method: GET + data_selector: records +- name: os_images_objs + endpoint: + path: /ux/nccm/os-image/os-images-objs/ + method: GET + data_selector: records +- name: os_images_status + endpoint: + path: /ux/nccm/os-image/os-images-status/ + method: GET + data_selector: records +- name: os_img_recve + endpoint: + path: /ux/nccm/os-image/os-img-recve/ + method: POST + data_selector: records +- name: os_job_audit + endpoint: + path: /ux/nccm/os-image/os-job-audit/ + method: GET + data_selector: records +- name: os_schedule_delete + endpoint: + path: /ux/nccm/os-image/os-schedule-delete/ + method: GET + data_selector: records +- name: configuration_profile + endpoint: + path: /ux/nccm/configuration-profile/multidelete/ + method: POST + data_selector: id + params: {} +- name: os_schedule_detail + endpoint: + path: /ux/nccm/os-image/os-schedule-detail/ + method: GET + data_selector: records +- name: os_schedule_details + endpoint: + path: /ux/nccm/os-image/os-schedule-details/ + method: GET + data_selector: records +- name: os_schedule_options + endpoint: + path: /ux/nccm/os-image/os-schedule-options/ + method: GET + data_selector: records +- name: os_schedule_search_options + endpoint: + path: /ux/nccm/os-image/os-schedule-search-options/ + method: GET + data_selector: records +- name: os_schedule_toggle_state + endpoint: + path: /ux/nccm/os-image/os-schedule-toggle-state/ + method: GET + data_selector: records +- name: save_osimage_schedule_info + endpoint: + path: /ux/nccm/os-image/save-osimage-schedule-info/ + method: POST + data_selector: records +- name: os_image_trigger_download + endpoint: + path: /os-image/trigger-osdownload/ + method: POST + data_selector: response + params: {} +- name: os_schedule_toggle_state + endpoint: + path: /os-image/os-schedule-toggle-state/ + method: GET + data_selector: response + params: {} +- name: save_osimage_schedule_info + endpoint: + path: /os-image/save-osimage-schedule-info/ + method: POST + data_selector: response + params: {} +- name: configuration_profile_options + endpoint: + path: /ux/nccm/configuration-profile/options/ + method: GET + data_selector: records +- name: configuration_profile_upload_csv + endpoint: + path: /ux/nccm/configuration-profile/upload-csv/ + method: POST + data_selector: records +- name: policy_rule_group + endpoint: + path: /ux/nccm/policy_rule_group + method: GET +- name: configuration_policies + endpoint: + path: /ux/nccm/configuration_policies + method: GET +- name: configuration_policy_list + endpoint: + path: /ux/nccm/configuration_policies/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer +- name: configuration_policy_details + endpoint: + path: /ux/nccm/configuration_policies/{id}/ + method: GET + data_selector: object + params: {} +- name: create_configuration_policy + endpoint: + path: /ux/nccm/configuration_policies/ + method: POST + data_selector: none + params: {} +- name: edit_configuration_policy + endpoint: + path: /ux/nccm/configuration_policies/{id}/ + method: PUT + data_selector: object + params: {} +- name: configuration_trigger + endpoint: + path: /ux/nccm/policy_rule_group/ + method: GET + data_selector: object[] + params: + items_per_page: 1 + page: 1 +- name: create_configuration_profile + endpoint: + path: /ux/nccm/policy_rule_group/ + method: POST + data_selector: object + params: {} +- name: get_configuration_profile + endpoint: + path: /ux/nccm/policy_rule_group/{id}/ + method: GET + data_selector: object + params: {} +- name: update_configuration_profile + endpoint: + path: /ux/nccm/policy_rule_group/{id}/ + method: PUT + data_selector: object + params: {} +- name: delete_configuration_policy + endpoint: + path: /configuration_policies/{id}/ + method: DELETE +- name: bulk_operation_configuration_policy + endpoint: + path: /configuration_policies/bulk-opration/ + method: POST +- name: multi_delete_configuration_policy + endpoint: + path: /configuration_policies/multi-delete/ + method: POST +- name: options_configuration_policy + endpoint: + path: /configuration_policies/options/ + method: GET +- name: delete_rule_group + endpoint: + path: /ux/nccm/policy_rule_group/{id}/ + method: DELETE + data_selector: '' + params: {} +- name: bulk_operation + endpoint: + path: /ux/nccm/policy_rule_group/bulk-opration/ + method: POST + data_selector: '' + params: {} +- name: get_configuration_rules + endpoint: + path: /ux/nccm/policy_rule_group/get-configuration-rules/ + method: GET + data_selector: '' + params: {} +- name: get_os_from_rule + endpoint: + path: /ux/nccm/policy_rule_group/get-os-from-rule/ + method: GET + data_selector: '' + params: {} +- name: get_runtime_params + endpoint: + path: /ux/nccm/policy_rule_group/get-runtime-params/ + method: POST + data_selector: '' + params: {} +- name: get_init_options + endpoint: + path: /ux/nccm/policy_rule_group/get_init_options/ + method: GET + data_selector: '' + params: {} +- name: configuration_rules + endpoint: + path: /ux/nccm/configuration_rules + method: GET +- name: configuration_rules + endpoint: + path: /ux/nccm/configuration_rules/ + method: GET + data_selector: object[] + params: + items_per_page: 1 + page: 1 +- name: configuration_rule + endpoint: + path: /ux/nccm/configuration_rules/{id}/ + method: GET + data_selector: object +- name: get_rule_group_by_id + endpoint: + path: /policy_rule_group/get_rule_group_by_id/ + method: GET + data_selector: records +- name: save_associated_rule + endpoint: + path: /policy_rule_group/save-associated-rule/ + method: GET + data_selector: records +- name: status_updation + endpoint: + path: /policy_rule_group/status-updation/ + method: POST + data_selector: records +- name: validate_uploaded_file + endpoint: + path: /policy_rule_group/validate-uploaded-file/ + method: POST + data_selector: records +- name: upload_jobs + endpoint: + path: /ux/nccm/uploadjobs/ + method: GET +- name: configuration_rules + endpoint: + path: /configuration_rules/{id}/ + method: DELETE +- name: upload_jobs + endpoint: + path: /ux/nccm/uploadjobs/ + method: GET +- name: configuration_rule_import + endpoint: + path: /ux/nccm/configuration_rules/import-txt/ + method: POST + data_selector: result + params: {} +- name: is_disabled + endpoint: + path: /ux/nccm/configuration_rules/is_disabled/ + method: POST + data_selector: result + params: {} +- name: is_enabled + endpoint: + path: /ux/nccm/configuration_rules/is_enabled/ + method: POST + data_selector: result + params: {} +- name: upload_jobs + endpoint: + path: /ux/nccm/uploadjobs/ + method: GET + data_selector: object[] + params: + items_per_page: '1' + page: '1' +- name: upload_jobs_post + endpoint: + path: /ux/nccm/uploadjobs/ + method: POST + data_selector: object + params: {} +- name: is_enabled + endpoint: + path: /configuration_rules/is_enabled/ + method: POST + data_selector: text + params: {} +- name: multidelete + endpoint: + path: /configuration_rules/multidelete/ + method: POST + data_selector: text + params: {} +- name: options + endpoint: + path: /configuration_rules/options/ + method: GET + data_selector: text + params: {} +- name: upload_job + endpoint: + path: /uploadjobs/{id}/ + method: GET + data_selector: response + params: {} +- name: upload_job + endpoint: + path: /uploadjobs/{id}/ + method: PUT + data_selector: response + params: {} +- name: upload_job + endpoint: + path: /uploadjobs/{id}/ + method: DELETE + data_selector: response + params: {} +- name: configuration_rule + endpoint: + path: /ux/nccm/configuration_rules/validate-json/ + method: POST + data_selector: id + params: {} +- name: bulk_delete_job + endpoint: + path: /bulk-delete-ujob/ + method: POST + data_selector: Response + params: {} +- name: device_options + endpoint: + path: /device-options/ + method: GET + data_selector: Response + params: {} +- name: configuration_rule + endpoint: + path: /ux/nccm/configuration_rules/validate-json/ + method: POST + data_selector: id + params: {} +- name: export_review + endpoint: + path: /ux/nccm/uploadjobs/export-review/ + method: POST + data_selector: '' + params: {} +- name: format-flowchart-data + endpoint: + path: /format-flowchart-data/ + method: POST + data_selector: response + params: {} +- name: get-template-id + endpoint: + path: /get-template-id/ + method: GET + data_selector: response + params: {} +- name: jobs-retry-queue + endpoint: + path: /jobs-retry-queue/ + method: GET + data_selector: response + params: {} +- name: options + endpoint: + path: /options/ + method: GET + data_selector: response + params: {} +- name: configuration_search + endpoint: + path: /ux/nccm/configuration_search/ + method: GET + data_selector: No content + params: + items_per_page: integer + page: integer +- name: configuration_search_result + endpoint: + path: /ux/nccm/configuration_search/configuration-search-result/ + method: GET + data_selector: No content + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: configuration_search_filter + endpoint: + path: /ux/nccm/configuration_search/filter/ + method: GET + data_selector: No content + params: {} +- name: configuration_search_options + endpoint: + path: /ux/nccm/configuration_search/options/ + method: GET + data_selector: No content + params: {} +- name: quick_job_templates + endpoint: + path: quick-job-templates/ + method: GET + data_selector: response +- name: quick_task_validation + endpoint: + path: quick-task-validation/ + method: POST + data_selector: response +- name: rerun_all_devices + endpoint: + path: rerun-all-devices/ + method: GET + data_selector: response +- name: rerun_job + endpoint: + path: rerun-job/ + method: GET + data_selector: response +- name: configuration_template + endpoint: + path: /ux/nccm/configuration_template + method: GET +- name: edit_upload_job_result_ips + endpoint: + path: /ux/nccm/uploadjobs/rerun-result-ip/ + method: GET +- name: review_upload_job_task + endpoint: + path: /ux/nccm/uploadjobs/review-task/ + method: POST +- name: runtime_csv_added + endpoint: + path: /ux/nccm/uploadjobs/runtime-csv-added/ + method: GET +- name: runtime_fields + endpoint: + path: /ux/nccm/uploadjobs/runtime-fields/ + method: GET +- name: configuration_template + endpoint: + path: /ux/nccm/configuration_template/ + method: GET + data_selector: records + params: + items_per_page: 1 + page: 1 +- name: configuration_template_by_id + endpoint: + path: /ux/nccm/configuration_template/{id}/ + method: GET + data_selector: records + params: {} +- name: workflow_jobs + endpoint: + path: /ux/nccm/workflow_jobs + method: GET +- name: create_csv + endpoint: + path: /ux/nccm/configuration_template/create-csv/ + method: POST +- name: csv_cols + endpoint: + path: /ux/nccm/configuration_template/csv_cols/ + method: POST +- name: download_csv + endpoint: + path: /ux/nccm/configuration_template/download_csv/ + method: GET +- name: download_xls + endpoint: + path: /ux/nccm/configuration_template/download_xls/ + method: GET +- name: file_details + endpoint: + path: /ux/nccm/configuration_template/file_details/ + method: GET +- name: workflow_jobs + endpoint: + path: /ux/nccm/workflow_jobs/ + method: GET + data_selector: '[]' + params: + items_per_page: integer + page: integer +- name: is_disabled + endpoint: + path: /configuration_template/is_disabled/ + method: POST +- name: is_enabled + endpoint: + path: /configuration_template/is_enabled/ + method: POST +- name: multidelete + endpoint: + path: /configuration_template/multidelete/ + method: POST +- name: workflow_job + endpoint: + path: /workflow_jobs/{id}/ + method: GET + data_selector: id +- name: execute_workflow_job + endpoint: + path: /workflow_jobs/execute-workflow-job/ + method: POST + data_selector: id +- name: delete_workflow_job + endpoint: + path: /workflow_jobs/{id}/ + method: DELETE +- name: configuration_template_options + endpoint: + path: /ux/nccm/configuration_template/options/ + method: GET + data_selector: Responseobject +- name: configuration_template_production_ready + endpoint: + path: /ux/nccm/configuration_template/production_ready/ + method: POST + data_selector: Responseobject +- name: toggle_template_quickadd + endpoint: + path: /ux/nccm/configuration_template/toggle-template-quickadd/ + method: POST + data_selector: Responseobject +- name: upload_csv + endpoint: + path: /ux/nccm/configuration_template/upload-csv/ + method: POST + data_selector: Responseobject +- name: feature_diagnosis + endpoint: + path: /ux/nccm/workflow_jobs/feature-diagnosis/ + method: GET + data_selector: records +- name: feature_diagnosis_opts + endpoint: + path: /ux/nccm/workflow_jobs/feature-diagnosis-opts/ + method: GET + data_selector: records +- name: multi_change + endpoint: + path: /ux/nccm/workflow_jobs/multi-change/ + method: POST + data_selector: records +- name: options + endpoint: + path: /ux/nccm/workflow_jobs/options/ + method: GET + data_selector: records +- name: configuration_upload + endpoint: + path: /configuration_template/upload-csv/ + method: POST + data_selector: id + params: {} +- name: change + endpoint: + path: /ux/sd/change/change + method: GET +- name: configuration_trigger + endpoint: + path: /ux/nccm/configuration_trigger + method: GET +- name: change + endpoint: + path: /ux/sd/change/change/ + method: GET + data_selector: '[]' + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: create_change + endpoint: + path: /ux/sd/change/change/ + method: POST + data_selector: '' + params: {} +- name: get_change_by_id + endpoint: + path: /ux/sd/change/change/{id}/ + method: GET + data_selector: '' + params: + id: string +- name: configuration_trigger + endpoint: + path: /ux/nccm/configuration_trigger/ + method: GET + data_selector: object[] + params: + items_per_page: '1' + page: '1' +- name: configuration_trigger_post + endpoint: + path: /ux/nccm/configuration_trigger/ + method: POST + data_selector: object + params: {} +- name: edit_change + endpoint: + path: /ux/sd/change/change/{id}/ + method: PUT + data_selector: response + params: + id: string +- name: delete_change + endpoint: + path: /ux/sd/change/change/{id}/ + method: DELETE + data_selector: response + params: + id: string +- name: add_attachment + endpoint: + path: /ux/sd/change/change/add-attachment/ + method: POST + data_selector: response +- name: configuration_trigger + endpoint: + path: /configuration_trigger/{id}/ + method: GET + data_selector: records +- name: add_trigger + endpoint: + path: /configuration_trigger/add_trigger/ + method: POST + data_selector: records +- name: download_csv + endpoint: + path: /configuration_trigger/download_csv/ + method: GET + data_selector: records +- name: multi-delete + endpoint: + path: /configuration_trigger/multi-delete/ + method: POST + data_selector: records +- name: review + endpoint: + path: /ux/nccm/configuration_trigger/review/ + method: POST + data_selector: response + params: {} +- name: save_csv_data + endpoint: + path: /ux/nccm/configuration_trigger/save_csv_data/ + method: POST + data_selector: response + params: {} +- name: saved_imported + endpoint: + path: /ux/nccm/configuration_trigger/saved_imported/ + method: POST + data_selector: response + params: {} +- name: validate_csv + endpoint: + path: /ux/nccm/configuration_trigger/validate_csv/ + method: POST + data_selector: response + params: {} +- name: attachment + endpoint: + path: /ux/sd/change/change/attachment/ + method: GET + data_selector: response + params: {} +- name: change_data + endpoint: + path: /ux/sd/change/change/change-data/{id}/ + method: GET + data_selector: response + params: {} +- name: change_impact + endpoint: + path: /ux/sd/change/change/change-impact/{id}/ + method: GET + data_selector: response + params: {} +- name: change_risk + endpoint: + path: /ux/sd/change/change/change-risk/{id}/ + method: GET + data_selector: response + params: {} +- name: change_task + endpoint: + path: /ux/sd/change/change/change-task/{id}/ + method: GET + data_selector: response + params: {} +- name: delete_change + endpoint: + path: /ux/sd/change/change/delete_change/ + method: POST + data_selector: response + params: {} +- name: delete_change + endpoint: + path: /delete_change/ + method: POST + data_selector: change_id +- name: jobs_account_audit + endpoint: + path: /ux/nccm/jobs-account-audit/ + method: GET +- name: change_history + endpoint: + path: /change/history/ + method: GET + data_selector: response + params: {} +- name: impact_list + endpoint: + path: /change/impact-list/{id}/ + method: GET + data_selector: response + params: {} +- name: options + endpoint: + path: /change/options/ + method: GET + data_selector: response + params: {} +- name: jobs_account_audit + endpoint: + path: /ux/nccm/jobs-account-audit/ + method: GET + data_selector: '[]' + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: jobs_account_audit_options + endpoint: + path: /ux/nccm/jobs-account-audit/options/ + method: GET + data_selector: '[]' +- name: manage_vulnerabilities + endpoint: + path: /ux/nccm/manage_vulnerabilities + method: GET +- name: process-rich-text + endpoint: + path: /process-rich-text/ + method: GET + data_selector: response + params: {} +- name: requester_search + endpoint: + path: /requester_search/ + method: GET + data_selector: response + params: {} +- name: risk-list + endpoint: + path: /risk-list/{id}/ + method: GET + data_selector: response + params: + id: string +- name: risk_assessment_completion + endpoint: + path: /risk_assessment_completion/ + method: GET + data_selector: response + params: {} +- name: risk_assessment_completion_post + endpoint: + path: /risk_assessment_completion/ + method: POST + data_selector: response + params: {} +- name: save_change_impact + endpoint: + path: /save-change-impact/ + method: POST +- name: save_change_risk + endpoint: + path: /save-change-risk/ + method: POST +- name: save_change_risk_assessment + endpoint: + path: /save-change-risk-assessment/ + method: POST +- name: save_change_risk_assessment + endpoint: + path: /save-change-risk-assessment/ + method: POST + data_selector: response + params: {} +- name: save_change_task + endpoint: + path: /save-change-task/ + method: POST + data_selector: response + params: {} +- name: vulnerabilities + endpoint: + path: /ux/nccm/manage_vulnerabilities/ + method: GET + data_selector: No content + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: vulnerability_by_id + endpoint: + path: /ux/nccm/manage_vulnerabilities/{id}/ + method: GET + data_selector: No content + params: + id: string +- name: vulnerabilities_of_asset + endpoint: + path: /ux/nccm/manage_vulnerabilities/asset-va/ + method: GET + data_selector: No content +- name: vulnerabilities_based_on_cve + endpoint: + path: /ux/nccm/manage_vulnerabilities/cve-va-all/ + method: GET + data_selector: No content +- name: vulnerabilities_summary_by_cve_os_version + endpoint: + path: /ux/nccm/manage_vulnerabilities/cve-va-summary/ + method: GET + data_selector: No content +- name: vulnerabilities_of_device + endpoint: + path: /ux/nccm/manage_vulnerabilities/device-va/ + method: GET + data_selector: No content +- name: vulnerabilities_summary_of_device + endpoint: + path: /ux/nccm/manage_vulnerabilities/device-va-summary/ + method: GET + data_selector: No content +- name: vulnerabilities_of_vendor_os_version + endpoint: + path: /ux/nccm/manage_vulnerabilities/os-cve-va/ + method: GET + data_selector: No content +- name: resolve_details + endpoint: + path: /ux/nccm/manage_vulnerabilities/resolve-details/ + method: GET + data_selector: No content +- name: resolve_vulnerability + endpoint: + path: /ux/nccm/manage_vulnerabilities/resolve-va/ + method: GET + data_selector: No content +- name: vulnerabilities_of_vendor + endpoint: + path: /ux/nccm/manage_vulnerabilities/vendor-va/ + method: GET + data_selector: No content +- name: vulnerabilities_summary_of_vendor + endpoint: + path: /ux/nccm/manage_vulnerabilities/vendor-va-summary/ + method: GET + data_selector: No content +- name: os_image_download + endpoint: + path: /ux/nccm/os-image/os-images-objs/ + method: GET +- name: os_images_status + endpoint: + path: /ux/nccm/os-image/os-images-status/ + method: GET +- name: os_job_audit + endpoint: + path: /ux/nccm/os-image/os-job-audit/ + method: GET +- name: os_schedule_details + endpoint: + path: /ux/nccm/os-image/os-schedule-details/ + method: GET +- name: save_rich_text + endpoint: + path: /save-rich-text/ + method: POST +- name: task_list + endpoint: + path: /task-list/{id}/ + method: GET +- name: workflow_options_map + endpoint: + path: /workflow_options_map/ + method: POST +- name: workflow_status + endpoint: + path: /workflow_status/ + method: GET +- name: tags + endpoint: + path: /ux/nccm/os-image/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer +- name: configuration_profile + endpoint: + path: /ux/nccm/os-image/ + method: POST + data_selector: object + params: {} +- name: global_param + endpoint: + path: /ux/nccm/os-image/{id}/ + method: GET + data_selector: object + params: {} +- name: edit_tag + endpoint: + path: /ux/nccm/os-image/{id}/ + method: PUT + data_selector: object + params: {} +- name: workflow_status + endpoint: + path: /change/workflow_status/ + method: GET + data_selector: change_id +- name: conversation + endpoint: + path: /change/conversation/ + method: GET + data_selector: '' +- name: conversation_post + endpoint: + path: /change/conversation/ + method: POST + data_selector: '' +- name: conversation_detail + endpoint: + path: /change/conversation/{id}/ + method: GET + data_selector: '' +- name: conversation_update + endpoint: + path: /change/conversation/{id}/ + method: PUT + data_selector: '' +- name: conversation_delete + endpoint: + path: /change/conversation/{id}/ + method: DELETE + data_selector: '' +- name: delete_tag + endpoint: + path: /ux/nccm/os-image/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: file_upload_status + endpoint: + path: /ux/nccm/os-image/file-upload-status/ + method: POST + data_selector: application/json + params: {} +- name: get_allowed_file_types + endpoint: + path: /ux/nccm/os-image/get-allowed-file-types/ + method: GET + data_selector: application/json + params: {} +- name: multi_delete + endpoint: + path: /ux/nccm/os-image/multidelete/ + method: POST + data_selector: application/json + params: {} +- name: checklist + endpoint: + path: /ux/sd/checklist/checklist/ + method: GET + data_selector: '[]' + params: + items_per_page: '1' + page: '1' +- name: create_checklist + endpoint: + path: /ux/sd/checklist/checklist/ + method: POST + data_selector: none + params: {} +- name: os_image_options + endpoint: + path: /ux/nccm/os-image/options/ + method: GET + data_selector: text +- name: os_images_objs + endpoint: + path: /ux/nccm/os-image/os-images-objs/ + method: GET + data_selector: text +- name: os_images_status + endpoint: + path: /ux/nccm/os-image/os-images-status/ + method: GET + data_selector: text +- name: os_img_recve + endpoint: + path: /ux/nccm/os-image/os-img-recve/ + method: POST + data_selector: text +- name: os_job_audit + endpoint: + path: /ux/nccm/os-image/os-job-audit/ + method: GET + data_selector: text +- name: os_schedule_delete + endpoint: + path: /ux/nccm/os-image/os-schedule-delete/ + method: GET + data_selector: text +- name: get_checklist + endpoint: + path: /checklist/{id}/ + method: GET + data_selector: response + params: {} +- name: edit_checklist + endpoint: + path: /checklist/{id}/ + method: PUT + data_selector: response + params: {} +- name: delete_checklist + endpoint: + path: /checklist/{id}/ + method: DELETE + data_selector: response + params: {} +- name: options_checklist + endpoint: + path: /checklist/options/ + method: GET + data_selector: response + params: {} +- name: status_options_based_on_service + endpoint: + path: /checklist/status_options_based_on_service/ + method: GET + data_selector: response + params: {} +- name: incident + endpoint: + path: /ux/sd/inci/incident + method: GET +- name: os_schedule_detail + endpoint: + path: /ux/nccm/os-image/os-schedule-detail/ + method: GET + data_selector: records +- name: os_schedule_details + endpoint: + path: /ux/nccm/os-image/os-schedule-details/ + method: GET + data_selector: records +- name: os_schedule_options + endpoint: + path: /ux/nccm/os-image/os-schedule-options/ + method: GET + data_selector: records +- name: os_schedule_search_options + endpoint: + path: /ux/nccm/os-image/os-schedule-search-options/ + method: GET + data_selector: records +- name: os_schedule_toggle_state + endpoint: + path: /ux/nccm/os-image/os-schedule-toggle-state/ + method: GET + data_selector: records +- name: save_osimage_schedule_info + endpoint: + path: /ux/nccm/os-image/save-osimage-schedule-info/ + method: POST + data_selector: records +- name: trigger_osdownload + endpoint: + path: /os-image/trigger-osdownload/ + method: POST + data_selector: Responseobject +- name: os_schedule_toggle_state + endpoint: + path: /os-image/os-schedule-toggle-state/ + method: GET + data_selector: Responseobject +- name: save_osimage_schedule_info + endpoint: + path: /os-image/save-osimage-schedule-info/ + method: POST + data_selector: Responseobject +- name: incident + endpoint: + path: /ux/sd/inci/incident/ + method: GET + data_selector: application/json + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: conversation + endpoint: + path: /ux/sd/inci/conversation/ + method: GET + data_selector: No content + params: {} +- name: rule_group + endpoint: + path: /ux/nccm/policy_rule_group + method: GET +- name: incident + endpoint: + path: /ux/sd/inci/incident/{id}/ + method: GET + data_selector: incident + params: {} +- name: incident_edit + endpoint: + path: /ux/sd/inci/incident/{id}/ + method: PUT + data_selector: incident + params: {} +- name: incident_delete + endpoint: + path: /ux/sd/inci/incident/{id}/ + method: DELETE + data_selector: incident + params: {} +- name: add_attachment + endpoint: + path: /ux/sd/inci/incident/add-attachment/ + method: POST + data_selector: Response + params: {} +- name: configuration_trigger + endpoint: + path: /policy_rule_group/ + method: GET + data_selector: object[] + params: + items_per_page: 1 + page: 1 +- name: create_configuration_profile + endpoint: + path: /policy_rule_group/ + method: POST + data_selector: object + params: {} +- name: view_edit_configuration + endpoint: + path: /policy_rule_group/{id}/ + method: GET + data_selector: object + params: {} +- name: update_configuration + endpoint: + path: /policy_rule_group/{id}/ + method: PUT + data_selector: object + params: {} +- name: attachment + endpoint: + path: /incident/attachment/ + method: GET + data_selector: response + params: {} +- name: bulk_retry_api + endpoint: + path: /incident/bulk_retry_api/ + method: POST + data_selector: response + params: {} +- name: close_inci_request + endpoint: + path: /incident/close_inci_request/ + method: POST + data_selector: response + params: {} +- name: delete_rule_group + endpoint: + path: /ux/nccm/policy_rule_group/{id}/ + method: DELETE +- name: bulk_operation + endpoint: + path: /ux/nccm/policy_rule_group/bulk-opration/ + method: POST + data_selector: response +- name: get_configuration_rules + endpoint: + path: /ux/nccm/policy_rule_group/get-configuration-rules/ + method: GET + data_selector: response +- name: get_os_from_rule + endpoint: + path: /ux/nccm/policy_rule_group/get-os-from-rule/ + method: GET + data_selector: response +- name: get_runtime_params + endpoint: + path: /ux/nccm/policy_rule_group/get-runtime-params/ + method: POST + data_selector: response +- name: get_init_options + endpoint: + path: /ux/nccm/policy_rule_group/get_init_options/ + method: GET + data_selector: response +- name: delete_incident + endpoint: + path: /delete_incident/ + method: POST +- name: feedback + endpoint: + path: /feedback/ + method: GET +- name: impacted_asset + endpoint: + path: /impacted_asset/ + method: GET +- name: inci_reopen + endpoint: + path: /inci_reopen/ + method: POST +- name: incident + endpoint: + path: /ux/sd/inci/incident/inci_reopen/ + method: POST + data_selector: Response + params: {} +- name: problem + endpoint: + path: /ux/sd/problem/problem/ + method: GET + data_selector: response + params: + items_per_page: '1' + page: '1' +- name: conversation + endpoint: + path: /ux/sd/problem/conversation/ + method: GET + data_selector: response +- name: get_rule_group + endpoint: + path: /policy_rule_group/get_rule_group_by_id/ + method: GET +- name: save_associated_rule + endpoint: + path: /policy_rule_group/save-associated-rule/ + method: GET +- name: status_updation + endpoint: + path: /policy_rule_group/status-updation/ + method: POST +- name: validate_uploaded_file + endpoint: + path: /policy_rule_group/validate-uploaded-file/ + method: POST +- name: problem + endpoint: + path: /ux/sd/problem/problem/{id}/ + method: GET + data_selector: problem_id + params: {} +- name: problem_edit + endpoint: + path: /ux/sd/problem/problem/{id}/ + method: PUT + data_selector: problem_id + params: {} +- name: problem_delete + endpoint: + path: /ux/sd/problem/problem/{id}/ + method: DELETE + data_selector: '' + params: {} +- name: upload_jobs + endpoint: + path: /ux/nccm/uploadjobs + method: GET + data_selector: records + params: {} +- name: upload_jobs + endpoint: + path: /ux/nccm/uploadjobs + method: GET +- name: add_attachment + endpoint: + path: /ux/sd/problem/problem/add-attachment/ + method: POST + data_selector: response + params: {} +- name: upload_jobs + endpoint: + path: /ux/nccm/uploadjobs/ + method: GET + data_selector: object[] + params: + items_per_page: '1' + page: '1' +- name: upload_jobs + endpoint: + path: /ux/nccm/uploadjobs/ + method: POST + data_selector: object + params: {} +- name: attachment + endpoint: + path: /ux/sd/problem/problem/attachment/ + method: GET + data_selector: response + params: {} +- name: delete_problem_task + endpoint: + path: /ux/sd/problem/problem/delete-problem-task/{id}/ + method: POST + data_selector: response + params: {} +- name: delete_problem + endpoint: + path: /ux/sd/problem/problem/delete_problem/ + method: POST + data_selector: response + params: {} +- name: problem + endpoint: + path: /api/problem + method: GET + data_selector: keys +- name: upload_job + endpoint: + path: /uploadjobs/{id}/ + method: GET + data_selector: response + params: {} +- name: upload_job_put + endpoint: + path: /uploadjobs/{id}/ + method: PUT + data_selector: response + params: {} +- name: upload_job_delete + endpoint: + path: /uploadjobs/{id}/ + method: DELETE + data_selector: response + params: {} +- name: bulk_delete_job + endpoint: + path: /uploadjobs/bulk-delete-ujob/ + method: POST + data_selector: response + params: {} +- name: device_options + endpoint: + path: /uploadjobs/device-options/ + method: GET + data_selector: response + params: {} +- name: history + endpoint: + path: /problem/history/ + method: GET + data_selector: records +- name: options + endpoint: + path: /problem/options/ + method: GET + data_selector: records +- name: problem_data + endpoint: + path: /problem/problem-data/{id}/ + method: GET + data_selector: records +- name: problem_task_list + endpoint: + path: /problem/problem-task-list/{id}/ + method: GET + data_selector: records +- name: problem_task + endpoint: + path: /problem/problem-task/{id}/ + method: GET + data_selector: records +- name: export_review + endpoint: + path: /ux/nccm/uploadjobs/export-review/ + method: POST + data_selector: Response +- name: process_rich_text + endpoint: + path: /process-rich-text/ + method: GET + data_selector: response object +- name: relation + endpoint: + path: /relation/ + method: POST + data_selector: response object +- name: format-flowchart-data + endpoint: + path: /format-flowchart-data/ + method: POST + data_selector: application/json +- name: get-template-id + endpoint: + path: /get-template-id/ + method: GET + data_selector: application/json +- name: jobs-retry-queue + endpoint: + path: /jobs-retry-queue/ + method: GET + data_selector: application/json +- name: options + endpoint: + path: /options/ + method: GET + data_selector: application/json +- name: release + endpoint: + path: /ux/sd/release/release/ + method: GET + data_selector: response + params: + items_per_page: 1 + page: 1 +- name: conversation + endpoint: + path: /ux/sd/release/conversation/ + method: GET + data_selector: response + params: {} +- name: release + endpoint: + path: /ux/sd/release/release/{id}/ + method: GET + data_selector: response + params: {} +- name: release_edit + endpoint: + path: /ux/sd/release/release/{id}/ + method: PUT + data_selector: response + params: {} +- name: release_delete + endpoint: + path: /ux/sd/release/release/{id}/ + method: DELETE + data_selector: response + params: {} +- name: release_add_attachment + endpoint: + path: /ux/sd/release/release/add-attachment/ + method: POST + data_selector: response + params: {} +- name: quick_job_templates + endpoint: + path: /quick-job-templates/ + method: GET + data_selector: records +- name: quick_task_validation + endpoint: + path: /quick-task-validation/ + method: POST + data_selector: records +- name: rerun_all_devices + endpoint: + path: /rerun-all-devices/ + method: GET + data_selector: records +- name: rerun_job + endpoint: + path: /rerun-job/ + method: GET + data_selector: records +- name: attachments + endpoint: + path: /attachment/ + method: GET + data_selector: response object +- name: delete_release_risk + endpoint: + path: /delete-release-risk/{id}/ + method: POST + data_selector: response object +- name: delete_release + endpoint: + path: /delete_release/ + method: POST + data_selector: response object +- name: upload_job_result + endpoint: + path: /uploadjobs/rerun-result-ip/ + method: GET + data_selector: records +- name: review_upload_job_task + endpoint: + path: /uploadjobs/review-task/ + method: POST + data_selector: records +- name: runtime_csv_added + endpoint: + path: /uploadjobs/runtime-csv-added/ + method: GET + data_selector: records +- name: runtime_fields + endpoint: + path: /uploadjobs/runtime-fields/ + method: GET + data_selector: records +- name: workflow_jobs + endpoint: + path: /ux/nccm/workflow_jobs + method: GET +- name: release_history + endpoint: + path: /release/history/ + method: GET + data_selector: release_data + params: {} +- name: impact_list + endpoint: + path: /release/impact-list/{id}/ + method: GET + data_selector: impact_data + params: {} +- name: release_options + endpoint: + path: /release/options/ + method: GET + data_selector: options_data + params: {} +- name: workflow_jobs + endpoint: + path: /ux/nccm/workflow_jobs/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: workflow_job_details + endpoint: + path: /workflow_jobs/{id}/ + method: GET + data_selector: id +- name: delete_workflow_job + endpoint: + path: /workflow_jobs/{id}/ + method: DELETE +- name: execute_workflow_job + endpoint: + path: /workflow_jobs/execute-workflow-job/ + method: POST +- name: process-rich-text + endpoint: + path: /release/process-rich-text/ + method: GET + data_selector: response + params: {} +- name: release-data + endpoint: + path: /release/release-data/{id}/ + method: GET + data_selector: response + params: {} +- name: release-impact + endpoint: + path: /release/release-impact/{id}/ + method: GET + data_selector: response + params: {} +- name: release-risk + endpoint: + path: /release/release-risk/{id}/ + method: GET + data_selector: response + params: {} +- name: release-task + endpoint: + path: /release/release-task/{id}/ + method: GET + data_selector: response + params: {} +- name: requester_search + endpoint: + path: /release/requester_search/ + method: GET + data_selector: response + params: {} +- name: risk-list + endpoint: + path: /release/risk-list/{id}/ + method: GET + data_selector: response + params: {} +- name: save-release-impact + endpoint: + path: /release/save-release-impact/ + method: POST + data_selector: response + params: {} +- name: save_release_impact + endpoint: + path: /save-release-impact/ + method: POST + data_selector: Response + params: {} +- name: save_release_risk + endpoint: + path: /save-release-risk/ + method: POST + data_selector: Response + params: {} +- name: save_release_task + endpoint: + path: /save-release-task/ + method: POST + data_selector: Response + params: {} +- name: feature_diagnosis + endpoint: + path: /ux/nccm/workflow_jobs/feature-diagnosis/ + method: GET + data_selector: records +- name: feature_diagnosis_opts + endpoint: + path: /ux/nccm/workflow_jobs/feature-diagnosis-opts/ + method: GET + data_selector: records +- name: multi_change + endpoint: + path: /ux/nccm/workflow_jobs/multi-change/ + method: POST + data_selector: records +- name: options + endpoint: + path: /ux/nccm/workflow_jobs/options/ + method: GET + data_selector: records +- name: change + endpoint: + path: /ux/sd/change/change + method: GET +- name: save_rich_text + endpoint: + path: save-rich-text/ + method: POST + data_selector: Response + params: {} +- name: task_list + endpoint: + path: task-list/{id}/ + method: GET + data_selector: Response + params: + id: string +- name: workflow_options_map + endpoint: + path: workflow_options_map/ + method: POST + data_selector: Response + params: {} +- name: request_process + endpoint: + path: /ux/sd/req/request_process + method: GET +- name: change + endpoint: + path: /ux/sd/change/change/ + method: GET + data_selector: object[] + params: + items_per_page: '1' + page: '1' +- name: change_create + endpoint: + path: /ux/sd/change/change/ + method: POST + data_selector: no content + params: {} +- name: change_detail + endpoint: + path: /ux/sd/change/change/{id}/ + method: GET + data_selector: object + params: {} +- name: request_process + endpoint: + path: /ux/sd/req/request_process/ + method: GET + data_selector: application/json + params: + items_per_page: '1' + page: '1' +- name: create_request + endpoint: + path: /ux/sd/req/request_process/ + method: POST + data_selector: application/json + params: {} +- name: change + endpoint: + path: /ux/sd/change/change/{id}/ + method: PUT + data_selector: change + params: + id: string +- name: add_attachment + endpoint: + path: /ux/sd/change/change/add-attachment/ + method: POST + data_selector: attachment +- name: delete_change + endpoint: + path: /ux/sd/change/change/{id}/ + method: DELETE + data_selector: delete +- name: get_request + endpoint: + path: /ux/sd/req/request_process/{id}/ + method: GET + data_selector: response + params: {} +- name: put_request + endpoint: + path: /ux/sd/req/request_process/{id}/ + method: PUT + data_selector: response + params: {} +- name: delete_request + endpoint: + path: /ux/sd/req/request_process/{id}/ + method: DELETE + data_selector: response + params: {} +- name: attachment + endpoint: + path: /ux/sd/change/change/attachment/ + method: GET +- name: change_data + endpoint: + path: /ux/sd/change/change/change-data/{id}/ + method: GET +- name: change_impact + endpoint: + path: /ux/sd/change/change/change-impact/{id}/ + method: GET +- name: change_risk + endpoint: + path: /ux/sd/change/change/change-risk/{id}/ + method: GET +- name: change_task + endpoint: + path: /ux/sd/change/change/change-task/{id}/ + method: GET +- name: delete_change + endpoint: + path: /ux/sd/change/change/delete_change/ + method: POST +- name: attachment + endpoint: + path: /request_process/attachment/ + method: GET + data_selector: response + params: {} +- name: bulk_retry_api + endpoint: + path: /request_process/bulk_retry_api/ + method: POST + data_selector: response + params: {} +- name: check_list + endpoint: + path: /request_process/check_list/ + method: GET + data_selector: response + params: {} +- name: delete_change + endpoint: + path: /ux/sd/change/change/delete_change/ + method: POST + data_selector: change + params: {} +- name: change_history + endpoint: + path: /ux/sd/change/change/history/ + method: GET + data_selector: response + params: {} +- name: impact_list + endpoint: + path: /ux/sd/change/change/impact-list/{id}/ + method: GET + data_selector: response + params: {} +- name: options + endpoint: + path: /ux/sd/change/change/options/ + method: GET + data_selector: response + params: {} +- name: history + endpoint: + path: /ux/sd/req/request_process/history/ + method: GET + data_selector: response + params: {} +- name: options + endpoint: + path: /ux/sd/req/request_process/options/ + method: GET + data_selector: response + params: {} +- name: process_rich_text + endpoint: + path: /request_process/process-rich-text/ + method: GET + data_selector: response + params: {} +- name: requ_check_list + endpoint: + path: /request_process/requ_check_list/ + method: GET + data_selector: response + params: {} +- name: request_data + endpoint: + path: /request_process/request-data/{id}/ + method: GET + data_selector: response + params: + id: string +- name: requester_search + endpoint: + path: /request_process/requester_search/ + method: GET + data_selector: response + params: {} +- name: process_rich_text + endpoint: + path: /process-rich-text/ + method: GET + data_selector: change_id + params: {} +- name: requester_search + endpoint: + path: /requester_search/ + method: GET + data_selector: change_id + params: {} +- name: risk_list + endpoint: + path: /risk-list/{id}/ + method: GET + data_selector: change_id + params: {} +- name: risk_assessment_completion + endpoint: + path: /risk_assessment_completion/ + method: GET + data_selector: change_id + params: {} +- name: risk_assessment_completion_post + endpoint: + path: /risk_assessment_completion/ + method: POST + data_selector: change_id + params: {} +- name: save_rich_text + endpoint: + path: /save-rich-text/ + method: POST + data_selector: Response + params: + request_id: text + display_id: text + is_merge_request: true + is_archive: true + unread_mail: true +- name: update_request_checklist + endpoint: + path: /update_requ_checklist/ + method: POST + data_selector: Response + params: + request_id: text + display_id: text + is_merge_request: true + is_archive: true + unread_mail: true +- name: upload_csv + endpoint: + path: /upload-csv/ + method: POST + data_selector: Response + params: + request_id: text + display_id: text + is_merge_request: true + is_archive: true + unread_mail: true +- name: change_impact + endpoint: + path: /ux/sd/change/change/save-change-impact/ + method: POST + data_selector: response + params: {} +- name: change_risk + endpoint: + path: /ux/sd/change/change/save-change-risk/ + method: POST + data_selector: response + params: {} +- name: change_risk_assessment + endpoint: + path: /ux/sd/change/change/save-change-risk-assessment/ + method: POST + data_selector: response + params: {} +- name: upload_csv + endpoint: + path: /request_process/upload-csv/ + method: POST +- name: workflow_options_map + endpoint: + path: /request_process/workflow_options_map/ + method: POST +- name: workflow_status + endpoint: + path: /request_process/workflow_status/ + method: GET +- name: save_change_risk_assessment + endpoint: + path: /save-change-risk-assessment/ + method: POST + data_selector: response + params: {} +- name: save_change_task + endpoint: + path: /save-change-task/ + method: POST + data_selector: response + params: {} +- name: task + endpoint: + path: /ux/sd/task/task + method: GET + data_selector: records +- name: save_rich_text + endpoint: + path: /save-rich-text/ + method: POST + data_selector: Response + params: {} +- name: task_list + endpoint: + path: /task-list/{id}/ + method: GET + data_selector: Response + params: + id: string +- name: workflow_options_map + endpoint: + path: /workflow_options_map/ + method: POST + data_selector: Response + params: {} +- name: workflow_status + endpoint: + path: /workflow_status/ + method: GET + data_selector: Response + params: {} +- name: task_list + endpoint: + path: /ux/sd/task/task/ + method: GET + data_selector: object[] + params: + items_per_page: '1' + page: '1' +- name: create_task + endpoint: + path: /ux/sd/task/task/ + method: POST + data_selector: No content +- name: get_task + endpoint: + path: /ux/sd/task/task/{id}/ + method: GET + data_selector: object +- name: edit_task + endpoint: + path: /ux/sd/task/task/{id}/ + method: PUT + data_selector: object +- name: workflow_status + endpoint: + path: /change/workflow_status/ + method: GET + data_selector: records +- name: conversation + endpoint: + path: /change/conversation/ + method: GET + data_selector: records +- name: conversation_by_id + endpoint: + path: /change/conversation/{id}/ + method: GET + data_selector: records +- name: delete_task + endpoint: + path: /ux/sd/task/task/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: change_task_list + endpoint: + path: /ux/sd/task/task/change-task-list/{id}/ + method: GET + data_selector: Responseobject + params: {} +- name: change_task + endpoint: + path: /ux/sd/task/task/change-task/{id}/ + method: GET + data_selector: Responseobject + params: {} +- name: delete_change_task + endpoint: + path: /ux/sd/task/task/delete-change-task/{id}/ + method: POST + data_selector: Responseobject + params: {} +- name: delete_release_task + endpoint: + path: /ux/sd/task/task/delete-release-task/{id}/ + method: POST + data_selector: Responseobject + params: {} +- name: checklist + endpoint: + path: /ux/sd/checklist/checklist/ + method: GET + data_selector: object[] + params: + items_per_page: '1' + page: '1' +- name: create_checklist + endpoint: + path: /ux/sd/checklist/checklist/ + method: POST + data_selector: No content + params: {} +- name: filter + endpoint: + path: /ux/sd/task/task/filter/ + method: GET +- name: options + endpoint: + path: /ux/sd/task/task/options/ + method: GET +- name: rel_task_list + endpoint: + path: /ux/sd/task/task/rel-task-list/{id}/ + method: GET +- name: release_task + endpoint: + path: /ux/sd/task/task/release-task/{id}/ + method: GET +- name: get_checklist + endpoint: + path: /checklist/{id}/ + method: GET + data_selector: response + params: {} +- name: edit_checklist + endpoint: + path: /checklist/{id}/ + method: PUT + data_selector: response + params: {} +- name: delete_checklist + endpoint: + path: /checklist/{id}/ + method: DELETE + data_selector: response + params: {} +- name: get_checklist_options + endpoint: + path: /checklist/options/ + method: GET + data_selector: response + params: {} +- name: get_status_options + endpoint: + path: /checklist/status_options_based_on_service/ + method: GET + data_selector: response + params: {} +- name: req-task-list + endpoint: + path: /ux/sd/task/task/req-task-list/{id}/ + method: GET + data_selector: id + params: {} +- name: save-change-task + endpoint: + path: /ux/sd/task/task/save-change-task/ + method: POST + data_selector: task_id + params: {} +- name: save-release-task + endpoint: + path: /ux/sd/task/task/save-release-task/ + method: POST + data_selector: task_id + params: {} +- name: incident + endpoint: + path: /ux/sd/inci/incident + method: GET +- name: task + endpoint: + path: /tasks + method: GET + data_selector: tasks +- name: APIList + endpoint: + path: /api/list + method: GET +- name: BusinessRule + endpoint: + path: /business/rule + method: GET +- name: BusinessServiceConfiguration + endpoint: + path: /business/service/configuration + method: GET +- name: incident + endpoint: + path: /ux/sd/inci/incident/ + method: GET + data_selector: application/json + params: + items_per_page: '1' + page: '1' +- name: conversation + endpoint: + path: /ux/sd/inci/conversation/ + method: GET + data_selector: No content + params: {} +- name: schema + endpoint: + path: /schema/ + method: GET +- name: incident + endpoint: + path: /incident/{id}/ + method: GET + data_selector: Responseobject + params: {} +- name: incident_edit + endpoint: + path: /incident/{id}/ + method: PUT + data_selector: Responseobject + params: {} +- name: incident_delete + endpoint: + path: /incident/{id}/ + method: DELETE + data_selector: No content + params: {} +- name: add_attachment + endpoint: + path: /ux/sd/inci/incident/add-attachment/ + method: POST + data_selector: response + params: {} +- name: attachment + endpoint: + path: /incident/attachment/ + method: GET + data_selector: response + params: {} +- name: bulk_retry_api + endpoint: + path: /incident/bulk_retry_api/ + method: POST + data_selector: response + params: {} +- name: close_inci_request + endpoint: + path: /incident/close_inci_request/ + method: POST + data_selector: response + params: {} +- name: delete_incident + endpoint: + path: /delete_incident/ + method: POST + data_selector: Responseobject +- name: feedback + endpoint: + path: /feedback/ + method: GET + data_selector: Responseobject +- name: impacted_asset + endpoint: + path: /impacted_asset/ + method: GET + data_selector: Responseobject +- name: inci_reopen + endpoint: + path: /inci_reopen/ + method: POST + data_selector: Responseobject +- name: incident + endpoint: + path: /ux/sd/inci/incident/inci_reopen/ + method: POST + data_selector: Response + params: {} +- name: problem + endpoint: + path: /ux/sd/problem/problem + method: GET +- name: problem + endpoint: + path: /ux/sd/problem/problem/ + method: GET + data_selector: '[]' + params: + items_per_page: integer + page: integer +- name: conversation + endpoint: + path: /ux/sd/problem/conversation/ + method: GET + data_selector: '[]' + params: {} +- name: problem_details + endpoint: + path: /ux/sd/problem/problem/{id}/ + method: GET + data_selector: application/json +- name: edit_problem + endpoint: + path: /ux/sd/problem/problem/{id}/ + method: PUT + data_selector: application/json +- name: delete_problem + endpoint: + path: /ux/sd/problem/problem/{id}/ + method: DELETE +- name: add_attachment + endpoint: + path: /ux/sd/problem/problem/add-attachment/ + method: POST + data_selector: Response + params: {} +- name: attachment + endpoint: + path: /ux/sd/problem/problem/attachment/ + method: GET + data_selector: response + params: {} +- name: delete_problem_task + endpoint: + path: /ux/sd/problem/problem/delete-problem-task/{id}/ + method: POST + data_selector: response + params: {} +- name: delete_problem + endpoint: + path: /ux/sd/problem/problem/delete_problem/ + method: POST + data_selector: response + params: {} +- name: problem + endpoint: + path: /problems + method: GET + data_selector: problems +- name: history + endpoint: + path: /ux/sd/problem/problem/history/ + method: GET + data_selector: records +- name: options + endpoint: + path: /ux/sd/problem/problem/options/ + method: GET + data_selector: records +- name: problem_data + endpoint: + path: /ux/sd/problem/problem/problem-data/{id}/ + method: GET + data_selector: records +- name: problem_task_list + endpoint: + path: /ux/sd/problem/problem/problem-task-list/{id}/ + method: GET + data_selector: records +- name: problem_task + endpoint: + path: /ux/sd/problem/problem/problem-task/{id}/ + method: GET + data_selector: records +- name: process_rich_text + endpoint: + path: /ux/sd/problem/problem/process-rich-text/ + method: GET + data_selector: response + params: {} +- name: relation + endpoint: + path: /ux/sd/problem/problem/relation/ + method: POST + data_selector: response + params: {} +- name: release + endpoint: + path: /ux/sd/release/release + method: GET +- name: release + endpoint: + path: /ux/sd/release/release/ + method: GET + data_selector: response + params: + items_per_page: 1 + page: 1 +- name: conversation + endpoint: + path: /ux/sd/release/conversation/ + method: GET + data_selector: response +- name: get_release + endpoint: + path: /release/{id}/ + method: GET + data_selector: response + params: {} +- name: edit_release + endpoint: + path: /release/{id}/ + method: PUT + data_selector: response + params: {} +- name: delete_release + endpoint: + path: /release/{id}/ + method: DELETE + data_selector: response + params: {} +- name: add_attachment + endpoint: + path: /release/add-attachment/ + method: POST + data_selector: response + params: {} +- name: attachment + endpoint: + path: /ux/sd/release/release/attachment/ + method: GET + data_selector: response + params: {} +- name: delete_release_risk + endpoint: + path: /ux/sd/release/release/delete-release-risk/{id}/ + method: POST + data_selector: response + params: {} +- name: delete_release + endpoint: + path: /ux/sd/release/release/delete_release/ + method: POST + data_selector: response + params: {} +- name: release_history + endpoint: + path: /ux/sd/release/release/history/ + method: GET + data_selector: response object + params: {} +- name: impact_list + endpoint: + path: /ux/sd/release/release/impact-list/{id}/ + method: GET + data_selector: response object + params: {} +- name: release_options + endpoint: + path: /ux/sd/release/release/options/ + method: GET + data_selector: response object + params: {} +- name: process_rich_text + endpoint: + path: /release/process-rich-text/ + method: GET + data_selector: responseobject +- name: release_data + endpoint: + path: /release/release-data/{id}/ + method: GET + data_selector: responseobject +- name: release_impact + endpoint: + path: /release/release-impact/{id}/ + method: GET + data_selector: responseobject +- name: release_risk + endpoint: + path: /release/release-risk/{id}/ + method: GET + data_selector: responseobject +- name: release_task + endpoint: + path: /release/release-task/{id}/ + method: GET + data_selector: responseobject +- name: requester_search + endpoint: + path: /release/requester_search/ + method: GET + data_selector: responseobject +- name: risk_list + endpoint: + path: /release/risk-list/{id}/ + method: GET + data_selector: responseobject +- name: save_release_impact + endpoint: + path: /release/save-release-impact/ + method: POST + data_selector: responseobject +- name: save_release_impact + endpoint: + path: save-release-impact/ + method: POST + data_selector: Response + params: {} +- name: save_release_risk + endpoint: + path: save-release-risk/ + method: POST + data_selector: Response + params: {} +- name: save_release_task + endpoint: + path: save-release-task/ + method: POST + data_selector: Response + params: {} +- name: save_rich_text + endpoint: + path: /save-rich-text/ + method: POST + data_selector: Response + params: {} +- name: task_list + endpoint: + path: /task-list/{id}/ + method: GET + data_selector: Response + params: + id: string +- name: workflow_options_map + endpoint: + path: /workflow_options_map/ + method: POST + data_selector: Response + params: {} +- name: request_process + endpoint: + path: /ux/sd/req/request_process + method: GET +- name: request_process + endpoint: + path: /ux/sd/req/request_process/{id}/ + method: GET + data_selector: request + params: {} +- name: request_process_edit + endpoint: + path: /ux/sd/req/request_process/{id}/ + method: PUT + data_selector: request + params: {} +- name: request_process_delete + endpoint: + path: /ux/sd/req/request_process/{id}/ + method: DELETE + data_selector: request + params: {} +- name: attachment + endpoint: + path: /request_process/attachment/ + method: GET + data_selector: response + params: {} +- name: bulk_retry_api + endpoint: + path: /request_process/bulk_retry_api/ + method: POST + data_selector: response + params: {} +- name: check_list + endpoint: + path: /request_process/check_list/ + method: GET + data_selector: response + params: {} +- name: history + endpoint: + path: /request_process/history/ + method: GET + data_selector: Responseobject + params: {} +- name: options + endpoint: + path: /request_process/options/ + method: GET + data_selector: Responseobject + params: {} +- name: process_rich_text + endpoint: + path: /request_process/process-rich-text/ + method: GET + data_selector: response +- name: requ_check_list + endpoint: + path: /request_process/requ_check_list/ + method: GET + data_selector: response +- name: request_data + endpoint: + path: /request_process/request-data/{id}/ + method: GET + data_selector: response +- name: requester_search + endpoint: + path: /request_process/requester_search/ + method: GET + data_selector: response +- name: save_rich_text + endpoint: + path: /save-rich-text/ + method: POST + data_selector: response + params: {} +- name: update_requ_checklist + endpoint: + path: /update_requ_checklist/ + method: POST + data_selector: response + params: {} +- name: upload_csv + endpoint: + path: /upload-csv/ + method: POST + data_selector: response + params: {} +- name: upload_csv + endpoint: + path: /request_process/upload-csv/ + method: POST + data_selector: Response + params: {} +- name: workflow_options_map + endpoint: + path: /request_process/workflow_options_map/ + method: POST + data_selector: Response + params: {} +- name: workflow_status + endpoint: + path: /request_process/workflow_status/ + method: GET + data_selector: Response + params: {} +- name: task + endpoint: + path: /ux/sd/task/task + method: GET + data_selector: records +- name: tasks + endpoint: + path: /ux/sd/task/task/ + method: GET + data_selector: object[] + params: + items_per_page: integer + page: integer + reverse: boolean + sort: string +- name: task + endpoint: + path: /ux/sd/task/task/{id}/ + method: GET + data_selector: object +- name: delete_task + endpoint: + path: /ux/sd/task/task/{id}/ + method: DELETE + data_selector: No content +- name: change_task_list + endpoint: + path: /ux/sd/task/task/change-task-list/{id}/ + method: GET + data_selector: Responseobject +- name: change_task + endpoint: + path: /ux/sd/task/task/change-task/{id}/ + method: GET + data_selector: Responseobject +- name: delete_change_task + endpoint: + path: /ux/sd/task/task/delete-change-task/{id}/ + method: POST + data_selector: Responseobject +- name: delete_release_task + endpoint: + path: /ux/sd/task/task/delete-release-task/{id}/ + method: POST + data_selector: Responseobject +- name: task + endpoint: + path: /ux/sd/task/task/filter/ + method: GET + data_selector: records +- name: delete_release_task + endpoint: + path: /ux/sd/task/task/delete-release-task/{id}/ + method: POST + data_selector: records +- name: options + endpoint: + path: /ux/sd/task/task/options/ + method: GET + data_selector: records +- name: rel_task_list + endpoint: + path: /ux/sd/task/task/rel-task-list/{id}/ + method: GET + data_selector: records +- name: release_task + endpoint: + path: /ux/sd/task/task/release-task/{id}/ + method: GET + data_selector: records +- name: req-task-list + endpoint: + path: /req-task-list/{id}/ + method: GET + data_selector: Responseobject +- name: save-change-task + endpoint: + path: /save-change-task/ + method: POST + data_selector: Responseobject +- name: save-release-task + endpoint: + path: /save-release-task/ + method: POST + data_selector: Responseobject +- name: schema + endpoint: + path: /schema/ + method: GET +notes: +- REST API uses the basic User ID and Password authentication. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Setup of connected app is required. +- Requires user authentication to access purchase order data. +- This is a configurable workflow within the Infraon platform for Purchase Order creation + and processing. +- Some objects may return nulls in deeply nested fields +- Uses OAuth2 with refresh token — requires setup of connected app in Infraon +- Requires setup of connected app in api +- Only a technician or users with the required permissions can log a Problem. +- Problems can be automatically created when incidents with the same requester, service, + or asset occur multiple times within a short period of time. +- Customized Status(es) can be configured from the 'Workflow' module to suit the requirement. +- Easily convert resolved tickets to Knowledge Base articles. KB icon appears post-resolution, + ensuring efficient knowledge management. +- The Business Service module requires a valid license. +- Ensure the appropriate license is purchased and activated to enable configuration + and access. +- Recurring incidents can auto-convert to problems if five or more incidents occur + within 14 days. +- Changes are managed through the 'Change' module. +- Users with appropriate permissions can raise changes. +- Network Diagram (Beta) +- Requires setup of connected app. +- Format can be selected via content negotiation. +- The Business Service module requires a valid license. Please ensure the appropriate + license is purchased and activated to enable configuration and access. +- Requires setup of OAuth2 credentials in Infraon. +- Enabling SNMP is vital to initiating the monitoring of the routers and switches. +- 'Authorization: YOUR_API_KEY' +- All API requests to Infraon Infinity must be authenticated to ensure secure access + and data protection. +- Requires API key for authorization +- Paginated response by items_per_page and page parameters +- Uses ApiKeyAuth for authentication +- Items can be sorted and paginated +- Requires setup of connected app in Infraon +- Uses ApiKeyAuth for authorization +- The id parameter is required for accessing business service details +- Uses ApiKey for authorization. +- Uses API key for authentication. +- Uses ApiKeyAuth for authentication. +- Responses are in JSON format. +- No response body for GET and POST requests. +- API endpoint that allows users to be viewed or edited. +- No response body for create_team +- Response object for get_team and edit_team may return various properties +- Accepts application/json +- Requires API key for authorization. +- No response body for create_team endpoint. +- Some API endpoints may require additional parameters depending on the specific request. +- Requires API Key for authentication. +- Uses ApiKeyAuth +- ApiKeyAuth required for all endpoints. +- All other fields are mapped to DocumentField and probably will work wrong. +- Last update time is in ISO 8601 format. +- Requires ApiKeyAuth for all endpoints. +- Requires setup of API key. +- Not well supported or untested fields include FileField, ImageField, and BinaryField. +- Not well supported or untested fields include FileField, ImageField, BinaryField. +- Serializer for Documents. +- 'Not well supported or untested: FileField, ImageField, BinaryField' +- API endpoint allows users to be viewed or edited. +- Requires API Key for authorization +- Items Per Page and Page Number are required query parameters for GET request. +- Authorization required using API key +- Uses API key for authentication +- Uses ApiKey for authentication. +- Uses ApiKey for authorization +- Uses OAuth2 with refresh token — requires setup of connected app in Infraon API +- Uses ApiKeyAuth for authorization. +- Response includes various fields related to the configuration template +- API endpoint that allows Request to be viewed or edited. +- 'Recognized primitive fields: StringField, URLField, EmailField, IntField, LongField, + FloatField, DecimalField, BooleanField, DateTimeField, ComplexDateTimeField, ObjectIdField, + SequenceField, UUIDField, GeoPointField, GeoJsonBaseField, DateField.' +- 'Compound fields: ListField and DictField are mapped to corresponding DRF fields.' +- Requires ApiKeyAuth for accessing endpoints +- 'Not well supported or untested: FileField, ImageField, BinaryField.' +- The API may return various fields depending on the request parameters. +- Uses ApiKeyAuth — requires API key for authorization +- Uses ApiKey authentication +- Requires ApiKeyAuth for all operations. +- Uses API Key for authentication +- The change_id field is required and has a max length of 25. +- The display_id field is optional with a max length of 50. +- The is_archive and unread_mail fields are optional booleans. +- The creation_time, last_update_time, and due_date fields are optional date-time + strings. +- Supports application/json, application/x-www-form-urlencoded, and multipart/form-data +- Ensure API endpoints are correctly structured. +- The API requires an API key for authorization. +- OpenApi3 schema for this API. Format can be selected via content negotiation. +- API endpoint allows Incident to be viewed or edited. +- Authorization requires API key. +- Some fields may not be well supported or untested. +- Uses query parameters for keys and values +- application/json +- application/jsonapplication/x-www-form-urlencodedmultipart/form-data +errors: +- '400 Bad Request: Please provide username.' +- '401 Unauthorized: Invalid API key.' +- '403 Forbidden: API key is missing.' +- '500 Internal Server Error: Something went wrong. Please try again later.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Check user credentials or permissions.' +- '401 Unauthorized: Check API key or token.' +- '403 Forbidden: Insufficient permissions.' +- 200 Success +- '401 Unauthorized: Invalid credentials or expired token.' +- 204 No content +- '200: Success' +- '201: No content' +- '401 Unauthorized: Check API key or permissions' +- '404 Not Found: Verify the API endpoint or resource ID' +- '204: No content' +- '204 No Content: Successful deletion' +- '200 Success: Successful retrieval' +- '401 Unauthorized: Recheck API key' +- '200 Success: Successfully fetched data' +- '201: Successfully created a new resource' +- '401 Unauthorized: Check API key.' +- '200: No response body' +- '401 Unauthorized: Recheck API key or token expiration' +- '401 Unauthorized: Check your API Key' +- '400 Bad Request: Check request parameters.' +- '401 Unauthorized: Recheck API key.' +- '401 Unauthorized: Recheck Api key.' +- '201: No response body' +- '200 Success: The request was successful.' +- '204 No Content: Indicates successful deletion of a service outage.' +- '200 No Content: Indicates successful retrieval or update of a service outage.' +- No response body +- '401 Unauthorized: Recheck API Key' +- '204 No Content: Successful request with no response body' +- 204 No Content +- '200 Success: Request was successful' +- '201 Success: Resource created successfully' +- '400 Bad Request: Invalid request format' +- '401 Unauthorized: Missing or invalid API key' +- '404 Not Found: Resource not found' +- '204 No content: Successful deletion of partner' +- 204 No response body +- '401 Unauthorized: Recheck API key validity' +- 201 Success +- '201: Team created successfully' +- '200: Team retrieved successfully' +- '200: Team updated successfully' +- '204 No Content: Successful request but no content to return' +- '401 Unauthorized: Check your API Key.' +- '400 Bad Request: Invalid request parameters.' +- '204 No Content: Successful deletion.' +- '201 Created: Resource created successfully.' +- '200 Success: Resource fetched successfully.' +- '401 Unauthorized: Check your API key.' +- '200: No content' +- '200 Success: Successful response' +- No content +- '401 Unauthorized: Recheck API key or permissions' +- '204 No content: Successfully deleted the workflow job' +- '401 Unauthorized: Recheck API key or token' +- 'API_KEY_MISSING: Ensure API key is included in the request header.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'Unauthorized: Recheck API key validity.' +- '200 Success: Request successful.' +- '200 Success: Successful request' +- '201 No content: Task created successfully' +- 'Unauthorized: Recheck API key or permissions' +- '204 No content: Successful deletion of the problem' +- '200 Success: Request was successful.' +- '200 Success: Indicates a successful request' +- Other errors not specified +- 'Unauthorized: Recheck API Key' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential + - ApiKeyAuth + - cookieAuth + - basicAuth +client: + base_url: https://docs.infraon.io/infraon-infinity-api-guide/ + auth: + type: oauth2 + flow: refresh_token +source_metadata: null diff --git a/ippopay/ippopay-docs.md b/ippopay/ippopay-docs.md new file mode 100644 index 00000000..311273c9 --- /dev/null +++ b/ippopay/ippopay-docs.md @@ -0,0 +1,155 @@ +In this guide, we'll set up a complete IppoPay data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def ippopay_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://public_key:secret_key@api.ippopay.com/v1/payout/transfer", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "request`", "detail" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='ippopay_pipeline', + destination='duckdb', + dataset_name='ippopay_data', + ) + # Load the data + load_info = pipeline.run(ippopay_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from ippopay’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Order Endpoints**: + - `/v1/order/ORDER_ID`: Retrieve details for a specific order using its ID. + - `/v1/order/ORDER_ID/transaction`: Get transaction details related to a specific order. + +- **Payout Endpoints**: + - `/v1/payout/account/balance`: Check the balance of the payout account. + - `/v1/payout/beneficiary/list`: Retrieve a list of beneficiaries associated with the payout account. + - `/v1/payout/beneficiary/getdetails/{beneficiary_ref}`: Get detailed information about a specific beneficiary using their reference. + - `/v1/payout/beneficiary/create`: Create a new beneficiary for future payouts. + - `/v1/payout/transfer/detail?trans_ref=xxxx`: Get details about a specific transfer using its reference. + - `/v1/payout/transfer/request`: Request a payout transfer to a beneficiary. + +You will then debug the IppoPay pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with IppoPay support. + ```shell + dlt init dlthub:ippopay duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for IppoPay API, as specified in @ippopay-docs.yaml + Start with endpoints request` and detail and skip incremental loading for now. + Place the code in ippopay_pipeline.py and name the pipeline ippopay_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python ippopay_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + To use the Ippopay payment gateway, you need a public key and a secret key, which can be obtained from the API dashboard at https://app.ippopay.com/settings/api, and you should include them in the URL as `https://public_key:secret_key@api.ippopay.com` when making API requests. + + To get the appropriate API keys, please visit the original source at https://docs.ippopay.com/server-side-integrations/rest-api. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python ippopay_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline ippopay load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset ippopay_data + The duckdb destination used duckdb:/ippopay.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline ippopay_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("ippopay_pipeline").dataset() + # get "request`" table as Pandas frame + data."request`".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/ippopay/ippopay-docs.yaml b/ippopay/ippopay-docs.yaml new file mode 100644 index 00000000..c56e93e5 --- /dev/null +++ b/ippopay/ippopay-docs.yaml @@ -0,0 +1,25 @@ +client: + auth: To use the Ippopay payment gateway, you need a public key and a secret key, + which can be obtained from the API dashboard at https://app.ippopay.com/settings/api, + and you should include them in the URL as `https://public_key:secret_key@api.ippopay.com` + when making API requests. + most_recurring_base_url: https://public_key:secret_key@api.ippopay.com + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://docs.ippopay.com/server-side-integrations/rest-api': + - /v1/order/ORDER_ID` + - /v1/order/ORDER_ID/transaction` +- 'endpoints source: https://docs.ippopay.com/upi-intent-self-hosted': + - /v1/order/{ORDER +- 'endpoints source: https://docs.ippopay.com/payouts/account': + - /v1/payout/account/balance` +- 'endpoints source: https://docs.ippopay.com/payouts/beneficiary': + - /v1/payout/beneficiary/list` + - /v1/payout/beneficiary/getdetails/{beneficiary_ref + - /v1/payout/beneficiary/create` +- 'endpoints source: https://docs.ippopay.com/payouts/transfers': + - /v1/payout/transfer/detail?trans_ref=xxxx` + - /v1/payout/transfer/request` +- 'endpoints source: https://docs.ippopay.com/server-side-integrations': + - /v1/order/ORDER_ID` + - /v1/order/ORDER_ID/transaction` diff --git a/joaquin_onsoft_notifications_api/joaquin-onsoft-notifications-api-docs.md b/joaquin_onsoft_notifications_api/joaquin-onsoft-notifications-api-docs.md new file mode 100644 index 00000000..69354945 --- /dev/null +++ b/joaquin_onsoft_notifications_api/joaquin-onsoft-notifications-api-docs.md @@ -0,0 +1,155 @@ +In this guide, we'll set up a complete OpenText Output Transformation Server data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def opentext_output_transformation_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "http://localhost:8080/OTSManager/v1/", + "auth": { + "type": "basic", + "username": OTS_ADMIN_USER, + "password": OTS_ADMIN_PASSWORD + }, + }, + "resources": [ + projects,,log/files,,assets + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='opentext_output_transformation_migrations_pipeline', + destination='duckdb', + dataset_name='opentext_output_transformation_migrations_data', + ) + # Load the data + load_info = pipeline.run(opentext_output_transformation_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from opentext_output_transformation_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Projects: Manage and retrieve project information. +- Logs: Access log files related to operations. +- Assets: Handle and manage various assets used in transformation. +- Docker: Manage and interact with Docker containers. +- SMS: Send SMS messages through the server. +- Jobs: Monitor and manage running jobs. + +You will then debug the OpenText Output Transformation Server pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with OpenText Output Transformation Server support. + ```shell + dlt init dlthub:opentext_output_transformation_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for OpenText Output Transformation Server API, as specified in @opentext_output_transformation_migrations-docs.yaml + Start with endpoints projects and and skip incremental loading for now. + Place the code in opentext_output_transformation_migrations_pipeline.py and name the pipeline opentext_output_transformation_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python opentext_output_transformation_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication for this source is based on user credentials rather than API keys. It employs basic authentication with a username and password for requests. + + To get the appropriate API keys, please visit the original source at https://www.opentext.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python opentext_output_transformation_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline opentext_output_transformation_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset opentext_output_transformation_migrations_data + The duckdb destination used duckdb:/opentext_output_transformation_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline opentext_output_transformation_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("opentext_output_transformation_migrations_pipeline").dataset() + # get roject table as Pandas frame + data.roject.df().head() + ``` + +## Running into errors? + +It is crucial to set a password for non-local environments to enhance security. Additionally, the initial and maximum heap sizes should be configured properly to avoid memory issues. Ensure that the correct user credentials are provided for authentication, as the default password is empty. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/joaquin_onsoft_notifications_api/joaquin-onsoft-notifications-api-docs.yaml b/joaquin_onsoft_notifications_api/joaquin-onsoft-notifications-api-docs.yaml new file mode 100644 index 00000000..6da90ae5 --- /dev/null +++ b/joaquin_onsoft_notifications_api/joaquin-onsoft-notifications-api-docs.yaml @@ -0,0 +1,623 @@ +resources: +- name: send_sms + endpoint: + path: /mra/v1/outbound/sms + method: POST + data_selector: response + params: {} +- name: sms_status + endpoint: + path: /mra/v1/outbound/sms/status/ + method: GET + data_selector: response + params: + job_id: xsi2-44417320 +- name: Designer + endpoint: + path: /settings/startup.properties + method: GET + data_selector: designer.jvmargs + params: {} +- name: Engine + endpoint: + path: /settings/startup.properties + method: GET + data_selector: engine.jvmargs + params: {} +- name: remediation + endpoint: + path: /remediation + method: GET +- name: OTSManager + endpoint: + path: /OTSManager/ + method: GET +- name: File System Resources + endpoint: + path: /OTSManager/ + method: GET +- name: send_sms + endpoint: + path: /v1/sms/send + method: POST + data_selector: data + params: {} +- name: send_sms + endpoint: + path: /mra/v1/outbound/sms + method: POST +- name: sms_status + endpoint: + path: /mra/v1/outbound/sms/status/ + method: GET + params: + job_id: xsi2-44417320 +- name: remediation + endpoint: + path: /remediation + method: GET + data_selector: data + params: {} +- name: OTSManager + endpoint: + path: /OTSManager/ + method: GET + data_selector: data + params: {} +- name: ots_base + endpoint: + path: https://support.opentext.com/csm?id=kb_article_view&sys_kb_id=debb7ccb47750e10fd2258e5536d4372 + method: GET + data_selector: download_link + params: {} +- name: ots_core + endpoint: + path: https://support.opentext.com/csm?id=kb_article_view&sys_kb_id=b9faf84747750e10fd2258e5536d4306 + method: GET + data_selector: download_link + params: {} +- name: ots_data_transformation + endpoint: + path: https://support.opentext.com/csm?id=kb_article_view&sys_kb_id=cadbb04f47750e10fd2258e5536d4382 + method: GET + data_selector: download_link + params: {} +- name: ots_document_accessibility + endpoint: + path: https://support.opentext.com/csm?sys_kb_id=b40c708f47750e10fd2258e5536d43f7&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=c82a8b7d470a829018d18ba5536d431e + method: GET + data_selector: download_link + params: {} +- name: ots_ebxml_messaging + endpoint: + path: https://support.opentext.com/csm?id=kb_article_view&sys_kb_id=afcc740747b50e10fd2258e5536d432c + method: GET + data_selector: download_link + params: {} +- name: ots_ml_dl4j + endpoint: + path: https://support.opentext.com/csm?sys_kb_id=f72c740347b50e10fd2258e5536d43cb&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=d5e9c33d470a829018d18ba5536d43c2 + method: GET + data_selector: download_link + params: {} +- name: ots_output_transformation + endpoint: + path: https://support.opentext.com/csm?sys_kb_id=3d5cb44347b50e10fd2258e5536d4320&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=5be9936f47724690f69d90a5536d43c1 + method: GET + data_selector: download_link + params: {} +- name: ots_output_transformation_server + endpoint: + path: https://support.opentext.com/csm?id=kb_article_view&sys_kb_id=ab29bc0f47350e10fd2258e5536d4322 + method: GET + data_selector: download_link + params: {} +- name: ots_archive_navigator + endpoint: + path: https://support.opentext.com/csm?id=kb_article_view&sys_kb_id=393a380347750e10fd2258e5536d43f9 + method: GET + data_selector: download_link + params: {} +- name: ots_integration_icn + endpoint: + path: https://support.opentext.com/csm?id=kb_article_view&sys_kb_id=d9fcf04747b50e10fd2258e5536d438d + method: GET + data_selector: download_link + params: {} +- name: ots_integration_odwek + endpoint: + path: https://support.opentext.com/csm?id=kb_article_view&sys_kb_id=8b6dbc8747b50e10fd2258e5536d43a4 + method: GET + data_selector: download_link + params: {} +- name: output_transformation_for_infoarchive + endpoint: + path: https://support.opentext.com/csm?sys_kb_id=5a2eb0cb47b50e10fd2258e5536d43d5&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=a9badfaf47724690f69d90a5536d4363 + method: GET + data_selector: download_link + params: {} +- name: xenos_pdf_api + endpoint: + path: https://support.opentext.com/csm?id=kb_article_view&sys_kb_id=d7ae748f47b50e10fd2258e5536d43ce + method: GET + data_selector: download_link + params: {} +- name: send_sms + endpoint: + path: /v1/sms/send + method: POST + data_selector: data + params: {} +- name: send_sms + endpoint: + path: /mra/v1/outbound/sms + method: POST +- name: sms_status + endpoint: + path: /mra/v1/outbound/sms/status/ + method: GET +- name: send_sms + endpoint: + path: /mra/v1/outbound/sms + method: POST +- name: sms_status + endpoint: + path: /mra/v1/outbound/sms/status/ + method: GET + params: + job_id: xsi2-44417320 +- name: engine + endpoint: + path: engine.jvmargs + method: SET + data_selector: jvmargs + params: + max_heap: -Xmx6G + min_heap: -Xms300M +- name: designer + endpoint: + path: designer.jvmargs + method: SET + data_selector: jvmargs + params: + max_heap: -Xmx4G + min_heap: -Xms300M +- name: server_status + endpoint: + path: /server/status + method: GET +- name: running_jobs + endpoint: + path: /jobs/running + method: GET +- name: projects + endpoint: + path: /projects + method: GET +- name: license_files + endpoint: + path: /license/files + method: GET +- name: log_files + endpoint: + path: /log/files + method: GET +- name: OTS Base + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=debb7ccb47750e10fd2258e5536d4372 + method: GET + data_selector: records + params: {} +- name: OTS Core + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=b9faf84747750e10fd2258e5536d4306 + method: GET + data_selector: records + params: {} +- name: Data Transformation + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=cadbb04f47750e10fd2258e5536d4382 + method: GET + data_selector: records + params: {} +- name: Document Accessibility + endpoint: + path: /csm?sys_kb_id=b40c708f47750e10fd2258e5536d43f7&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=c82a8b7d470a829018d18ba5536d431e + method: GET + data_selector: records + params: {} +- name: ebXMLMessaging + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=afcc740747b50e10fd2258e5536d432c + method: GET + data_selector: records + params: {} +- name: Machine Learning + endpoint: + path: /csm?sys_kb_id=f72c740347b50e10fd2258e5536d43cb&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=d5e9c33d470a829018d18ba5536d43c2 + method: GET + data_selector: records + params: {} +- name: Output Transformation + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=3d5cb44347b50e10fd2258e5536d4320&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=5be9936f47724690f69d90a5536d43c1 + method: GET + data_selector: records + params: {} +- name: Output Transformation Server + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=ab29bc0f47350e10fd2258e5536d4322 + method: GET + data_selector: records + params: {} +- name: Archive Navigator + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=393a380347750e10fd2258e5536d43f9 + method: GET + data_selector: records + params: {} +- name: Integration ICN + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=d9fcf04747b50e10fd2258e5536d438d + method: GET + data_selector: records + params: {} +- name: ODWEK Integration + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=8b6dbc8747b50e10fd2258e5536d43a4 + method: GET + data_selector: records + params: {} +- name: InfoArchive Windows + endpoint: + path: /csm?sys_kb_id=5a2eb0cb47b50e10fd2258e5536d43d5&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=a9badfaf47724690f69d90a5536d4363 + method: GET + data_selector: records + params: {} +- name: Xenos PDF API + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=d7ae748f47b50e10fd2258e5536d43ce + method: GET + data_selector: records + params: {} +- name: send_sms + endpoint: + path: /mra/v1/outbound/sms + method: POST +- name: sms_status + endpoint: + path: /mra/v1/outbound/sms/status/ + method: GET + params: + job_id: xsi2-44417320 +- name: remediation + endpoint: + path: /remediation + method: GET + data_selector: records +- name: Domain Language Model + endpoint: + path: /api/STeMS/NTECallback + method: POST + data_selector: records + params: {} +- name: Domain Language Model + endpoint: + path: /api/STeMS/NTECallback + method: POST + data_selector: DomainLM + params: {} +- name: run_container + endpoint: + path: /docker/run + method: POST + data_selector: docker_run_commands + params: {} +- name: manage_containers + endpoint: + path: /docker/manage + method: GET + data_selector: docker_manage_commands + params: {} +- name: manage_images + endpoint: + path: /docker/images + method: GET + data_selector: docker_image_commands + params: {} +- name: info_stats + endpoint: + path: /docker/info + method: GET + data_selector: docker_info_commands + params: {} +- name: JobSubmit + endpoint: + path: /JobSubmit/2011/01 + method: POST + data_selector: JobSubmitRequest +- name: ots_base + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=debb7ccb47750e10fd2258e5536d4372 + method: GET + data_selector: records +- name: ots_core + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=b9faf84747750e10fd2258e5536d4306 + method: GET + data_selector: records +- name: OTS_DataTransformation + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=cadbb04f47750e10fd2258e5536d4382 + method: GET + data_selector: records +- name: OTS_DocumentAccessibility + endpoint: + path: /csm?sys_kb_id=b40c708f47750e10fd2258e5536d43f7&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=c82a8b7d470a829018d18ba5536d431e + method: GET + data_selector: records +- name: OTS_ebXMLMessaging + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=afcc740747b50e10fd2258e5536d432c + method: GET + data_selector: records +- name: OTS_ml-dl4j + endpoint: + path: /csm?sys_kb_id=f72c740347b50e10fd2258e5536d43cb&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=d5e9c33d470a829018d18ba5536d43c2 + method: GET + data_selector: records +- name: OTS_OutputTransformation + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=3d5cb44347b50e10fd2258e5536d4320&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=5be9936f47724690f69d90a5536d43c1 + method: GET + data_selector: records +- name: OTS_OutputTransformationServer + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=ab29bc0f47350e10fd2258e5536d4322 + method: GET + data_selector: records +- name: OTS_ArchiveNavigator + endpoint: + path: /csm?sys_kb_id=393a380347750e10fd2258e5536d43f9 + method: GET + data_selector: records +- name: OTS_integration_icn + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=d9fcf04747b50e10fd2258e5536d438d + method: GET + data_selector: records +- name: OTS_integration_odwek + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=8b6dbc8747b50e10fd2258e5536d43a4 + method: GET + data_selector: records +- name: OutputTransformation_for_InfoArchive + endpoint: + path: /csm?sys_kb_id=5a2eb0cb47b50e10fd2258e5536d43d5&id=kb_article_view&sysparm_rank=1&sysparm_tsqueryId=a9badfaf47724690f69d90a5536d4363 + method: GET + data_selector: records +- name: Xenos_PDF_API + endpoint: + path: /csm?id=kb_article_view&sys_kb_id=d7ae748f47b50e10fd2258e5536d43ce + method: GET + data_selector: records +- name: client_list + endpoint: + path: /upload_client_list + method: POST + data_selector: import_summary + params: {} +- name: create_message + endpoint: + path: /create_message + method: POST + data_selector: message_status + params: {} +- name: check_job_status + endpoint: + path: /check_job_status + method: GET + data_selector: job_details + params: {} +- name: remediation + endpoint: + path: /remediation + method: GET +- name: ots_manager + endpoint: + path: /OTSManager/ + method: GET +- name: explore_calls + endpoint: + path: /explore_calls + method: UPDATE + data_selector: records + params: + status: 10 +- name: explore_transerver_language_last_call_control + endpoint: + path: /explore_transerver_language_last_call_control + method: TRUNCATE + data_selector: records +- name: Domain Language Model + endpoint: + path: /api/STeMS/NTECallback + method: POST + data_selector: DomainLM +- name: assets + endpoint: + path: /v1/assets + method: GET + data_selector: results +- name: Domain Language Model + endpoint: + path: /api/STeMS/NTECallback + method: POST + data_selector: DomainLM + params: {} +- name: licenses + endpoint: + path: /admin/settings/license + method: POST + data_selector: licenses + params: {} +- name: run_container + endpoint: + path: /docker/run + method: POST + data_selector: commands + params: {} +- name: manage_containers + endpoint: + path: /docker/manage + method: POST + data_selector: commands + params: {} +- name: manage_images + endpoint: + path: /docker/images + method: POST + data_selector: commands + params: {} +- name: info_stats + endpoint: + path: /docker/info + method: GET + data_selector: info + params: {} +- name: JobSubmit + endpoint: + path: /JobSubmit/2011/01 + method: POST + data_selector: JobSubmitRequest + params: {} +- name: client_list + endpoint: + path: /api/client_list + method: POST + data_selector: import_summary +- name: create_message + endpoint: + path: /api/create_message + method: POST + data_selector: message_status +- name: check_job_status + endpoint: + path: /api/check_job_status + method: GET + data_selector: job_details +- name: Qfiniti License + endpoint: + path: /Administer/Settings/LicenseSettings + method: GET + data_selector: license_info + params: {} +- name: Explore License + endpoint: + path: /Explore/ExploreWeb/Licenses + method: GET + data_selector: license_info + params: {} +- name: covisint_properties + endpoint: + path: /covisint.properties + method: GET + data_selector: properties + params: {} +notes: +- To modify the maximum and minimum heap size, modify the property designer.jvmargs + for Designer, or engine.jvmargs for Engine. +- You can check the language of your document in Acrobat Reader at Menu > Document + properties. +- If the language of your document is not included in the drop-down list you can use + the ISO language code, i.e. you can use ca_ES for Catalan. +- Remember to config a password to access DA +- Set a password for a none local environment +- Setting the initial heap size too low could slow down the application’s operations. +- Setting the maximum heap size too low may cause the application to run out of memory. +- If -Xms and -Xmx are not explicitly set, the JVM will set the initial heap size + based on the amount of available physical memory on the system and the maximum heap + size based on the total amount of physical memory on the system. +- As multiple versions of OpenText Output Transformation Server (OTS) can be installed + at any given time, you can use the \settings\startup.properties file to + control which version is used upon starting the application. +- This file also gives us the option to set the maximum and minimum heap memory used + by OTS Designer or Engine. +- DA needs a database to improve the auto tagging, to store the tagging logic. +- Remember, previously we set the password for super user in PostgreSQL installation +- 'Database name: DA' +- 'Storage Service Root Path: C:\OpenText\OTS 24.2\BaseRepositories\tomcat\ots\common' +- The license is provided by OpenText once you adquire your software license +- Ensure you have the correct API key for authentication +- Either HTTP Basic authentication or OAUTH2 authorization is to be used for all requests. +- 'User: Administrator' +- 'Password: ' +- The license is provided by OpenText once you acquire your software license +- The license is provided by OpenText once you acquire your software license. +- The transcript may contain errors, due to various reasons such as background noise, + low quality of the recording, overlapping of speakers (in calls recorded in mono)… +- 'NOTE: Set a password for a none local environment' +- IP and port can vary. +- Create the folder `c:\OpenText\OTS 24.2` +- Unzip `ots_base.zip` into `c:\OpenText\OTS 24.2` +- Copy all the modules, .zip files, under `\modules` +- Copy the license file into `\settings` +- Rename it as `license.txt` +- Browse to `\maint in Windows Explorer` +- Double click on `OneTimeSetup.bat` +- Enter `Y` and press `Enter` to accept the EULA +- Press `Enter` to close the Console once the installation is complete +- Paths may vary depending on the directory chosen for the Explore installation. +- The DLM is automatically copied to the domainLM directory of the Nuance Transcription + Engine installation. +- You must provide your own user and password to complete the authentication. +- Create the folder c:\OpenText\OTS 24.2 +- Unzip ots_base.zip into c:\OpenText\OTS 24.2 +- Copy all the modules, .zip files, under \modules +- Copy the license file into \settings +- Rename it as license.txt +- Browse to \maint in Windows Explorer +- Double click on OneTimeSetup.bat +- Enter Y and press Enter to accept the EULA +- The installer expands all the modules +- Press Enter to close the Console once the installation is complete +- Uses basic authentication with username and password +- Supports multiple languages for the user interface +- En esta ruta se cambia `authoring` del path inicial por `webd` +- 'A partir de **Teamsite 22.4**, los archivos de configuración por defecto se proporcionan + en: /home/otadmin/helm_charts/teamsite/bundle/configfiles.default/' +- El significado del status de las llamadas esta descrito en la tabla explore_call +- DLM generated is automatically copied to the domainLM directory of the Nuance Transcription + Engine installation. +- Requires setup of connected app in Shutterstock +- Ensure callback URL matches registered domain +- Configurar CORS para permitir solicitudes de servidores que no sean él mismo +- Licenses files can have extension .lic or .xml. +- When the directory 'Licenses' does not exist, it needs to be created. +- home.page is full name of the page that we want to track +- You must provide your own user (tag `ns:RequesterID`) and password (tag `ns:Password`) + to complete the authentication. +- Supports multiple messaging channels including SMS. +- Variables can be used for personalization in messages. +- Cualquier cambio que deba realizarse requiere copiar primero el archivo y su jerarquía + desde la carpeta `configfiles.default` a la carpeta +- Se utiliza para conectar Shutterstock con el servidor de OTMM de Joaquín On Soft +- Si no estás seguro de cuál es tu IP puede saberlo accediendo a What Is My IP ADrress? + - ifconfig.me +- CORS must be configured to allow cross-origin requests. +- Licenses can have .lic or .xml extensions. +- Licenses for Explore are managed in the Explore administration screen. +errors: +- '400 Bad Request: Check your request parameters' +- '401 Unauthorized: Invalid API key' +- '500 Internal Server Error: Try again later' +- '400 Bad Request: Check request parameters' +- Expired license files must be deleted before copying new ones. +auth_info: + mentioned_objects: + - Administrator +client: + base_url: http://localhost:8080/OTSManager/ + auth: + type: none +source_metadata: null diff --git a/jpmorgan_payments/jpmorgan-payments-docs.md b/jpmorgan_payments/jpmorgan-payments-docs.md new file mode 100644 index 00000000..ded40d58 --- /dev/null +++ b/jpmorgan_payments/jpmorgan-payments-docs.md @@ -0,0 +1,145 @@ +In this guide, we'll set up a complete JPMorgan Payments data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def jpmorgan_payments_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "http://www.w3.org/2000", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "svg" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='jpmorgan_payments_pipeline', + destination='duckdb', + dataset_name='jpmorgan_payments_data', + ) + # Load the data + load_info = pipeline.run(jpmorgan_payments_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from jpmorgan_payments’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **SVG Endpoints**: These endpoints appear to reference SVG (Scalable Vector Graphics) images with specific attributes such as version, width, and height. They are repeated multiple times, indicating a potential issue or redundancy in the data provided. + +You will then debug the JPMorgan Payments pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with JPMorgan Payments support. + ```shell + dlt init dlthub:jpmorgan_payments duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for JPMorgan Payments API, as specified in @jpmorgan_payments-docs.yaml + Start with endpoint svg and skip incremental loading for now. + Place the code in jpmorgan_payments_pipeline.py and name the pipeline jpmorgan_payments_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python jpmorgan_payments_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The snippets mention the J.P. Morgan Developer Portal, which includes authentication methods such as mTLS with Digital Signature and OAuth, but do not provide specific details on keys, tokens, client IDs, client secrets, headers, or URLs. + + To get the appropriate API keys, please visit the original source at https://developer.payments.jpmorgan.com/api/home. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python jpmorgan_payments_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline jpmorgan_payments load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset jpmorgan_payments_data + The duckdb destination used duckdb:/jpmorgan_payments.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline jpmorgan_payments_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("jpmorgan_payments_pipeline").dataset() + # get "svg" table as Pandas frame + data."svg".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/jpmorgan_payments/jpmorgan-payments-docs.yaml b/jpmorgan_payments/jpmorgan-payments-docs.yaml new file mode 100644 index 00000000..19a06941 --- /dev/null +++ b/jpmorgan_payments/jpmorgan-payments-docs.yaml @@ -0,0 +1,26 @@ +client: + auth: The snippets mention the J.P. Morgan Developer Portal, which includes authentication + methods such as mTLS with Digital Signature and OAuth, but do not provide specific + details on keys, tokens, client IDs, client secrets, headers, or URLs. + most_recurring_base_url: http://www.w3.org + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://developer.payments.jpmorgan.com/api/home': + - /2000/svg%27%20version=%271.1%27%20width=%27126%27%20height=%2726%27/%3e +- 'endpoints source: https://developer.payments.jpmorgan.com/api/authentication': + - /2000/svg%27%20version=%271.1%27%20width=%27126%27%20height=%2726%27/%3e +- 'endpoints source: https://developer.payments.jpmorgan.com/api/mtls-with-digital-signature': + - /2000/svg%27%20version=%271.1%27%20width=%27126%27%20height=%2726%27/%3e +- 'endpoints source: https://developer.payments.jpmorgan.com/api/certificates': + - /2000/svg%27%20version=%271.1%27%20width=%27126%27%20height=%2726%27/%3e +- 'endpoints source: https://developer.payments.jpmorgan.com/api/oauth': + - /2000/svg%27%20version=%271.1%27%20width=%27126%27%20height=%2726%27/%3e + - https://api.payments.jpmorgan.com/payment/helloworld +- 'endpoints source: https://developer.payments.jpmorgan.com/api/response-codes': + - /2000/svg%27%20version=%271.1%27%20width=%27126%27%20height=%2726%27/%3e +- 'endpoints source: https://developer.payments.jpmorgan.com/api/versioning': + - /2000/svg%27%20version=%271.1%27%20width=%27126%27%20height=%2726%27/%3e +- 'endpoints source: https://developer.payments.jpmorgan.com/docs/quick-start': + - /2000/svg%27%20version=%271.1%27%20width=%27126%27%20height=%2726%27/%3e +- 'endpoints source: https://developer.payments.jpmorgan.com/terms-and-conditions': + - /2000/svg%27%20version=%271.1%27%20width=%27126%27%20height=%2726%27/%3e diff --git a/judge_me/judge-me-docs.md b/judge_me/judge-me-docs.md new file mode 100644 index 00000000..565ee7e9 --- /dev/null +++ b/judge_me/judge-me-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Judge.me data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def judge_me_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://judge.me/api/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + shops,,events,,reviews + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='judge_me_migration_pipeline', + destination='duckdb', + dataset_name='judge_me_migration_data', + ) + # Load the data + load_info = pipeline.run(judge_me_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from judge_me_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Shops: Manage shop-related endpoints. +- Reviews: Handle review operations including fetching and posting reviews. +- Settings: Access configuration settings for the integration. +- Reviewers: Manage reviewer information and operations. +- Events: Monitor events related to reviews and other interactions. + +You will then debug the Judge.me pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Judge.me support. + ```shell + dlt init dlthub:judge_me_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Judge.me API, as specified in @judge_me_migration-docs.yaml + Start with endpoints shops and and skip incremental loading for now. + Place the code in judge_me_migration_pipeline.py and name the pipeline judge_me_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python judge_me_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Judge.me employs OAuth2 for authentication which requires a refresh token flow for secure access. A connected app must be set up within Judge.me to utilize this authentication method effectively. The access token is provided in the Authorization header for API requests. + + To get the appropriate API keys, please visit the original source at https://judge.me/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python judge_me_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline judge_me_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset judge_me_migration_data + The duckdb destination used duckdb:/judge_me_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline judge_me_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("judge_me_migration_pipeline").dataset() + # get hop table as Pandas frame + data.hop.df().head() + ``` + +## Running into errors? + +Some endpoints may have rate limits, and certain responses might include deprecated fields not supported in the current version. Additionally, merchants need to ensure they have the necessary permissions set up in their connected app to avoid unauthorized errors. It is important to handle error responses effectively, particularly those related to authentication and rate limiting. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/judge_me/judge-me-docs.yaml b/judge_me/judge-me-docs.yaml new file mode 100644 index 00000000..22fb99ab --- /dev/null +++ b/judge_me/judge-me-docs.yaml @@ -0,0 +1,829 @@ +resources: +- name: reviews + endpoint: + path: /private_replies + method: POST + data_selector: private_reply +- name: private_replies + endpoint: + path: /private_replies + method: POST + data_selector: private_reply + params: {} +- name: reviewers + endpoint: + path: /reviewers + method: GET + data_selector: reviewers + params: {} +- name: shops + endpoint: + path: /shops + method: GET + data_selector: shop + params: {} +- name: settings + endpoint: + path: /settings + method: GET + data_selector: settings + params: {} +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: reviews + params: {} +- name: product_reviews + endpoint: + path: /product-reviews + method: GET + data_selector: reviews +- name: store_reviews + endpoint: + path: /store-reviews + method: GET + data_selector: reviews +- name: product_reviews + endpoint: + path: /reviews + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /store_reviews + method: GET + data_selector: store_reviews + params: {} +- name: store_reviews + endpoint: + path: /store-reviews + method: GET +- name: product_reviews + endpoint: + path: /product-reviews + method: GET +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: reviews + params: {} +- name: features + endpoint: + path: /app/features + method: GET + data_selector: features + params: {} +- name: widgets + endpoint: + path: /app/widgets + method: GET + data_selector: widgets + params: {} +- name: integrations + endpoint: + path: /integrations + method: GET + data_selector: integrations + params: {} +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: records + params: {} +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: records + params: {} +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: features + endpoint: + path: /app/features + method: GET +- name: widgets + endpoint: + path: /app/widgets + method: GET +- name: integrations + endpoint: + path: /integrations + method: GET +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: features + endpoint: + path: /app/features + method: GET +- name: widgets + endpoint: + path: /app/widgets + method: GET +- name: integrations + endpoint: + path: /integrations + method: GET +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: features + endpoint: + path: /app/features + method: GET +- name: widgets + endpoint: + path: /app/widgets + method: GET +- name: integrations + endpoint: + path: /integrations + method: GET +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: features + endpoint: + path: /app/features + method: GET +- name: widgets + endpoint: + path: /app/widgets + method: GET +- name: integrations + endpoint: + path: /integrations + method: GET +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: records +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: records +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: features + endpoint: + path: /app/features + method: GET +- name: widgets + endpoint: + path: /app/widgets + method: GET +- name: integrations + endpoint: + path: /integrations + method: GET +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: features + endpoint: + path: /app/features + method: GET +- name: widgets + endpoint: + path: /app/widgets + method: GET +- name: integrations + endpoint: + path: /integrations + method: GET +- name: product_reviews + endpoint: + path: /product-reviews + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /store-reviews + method: GET + data_selector: reviews + params: {} +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: reviews + params: {} +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: features + endpoint: + path: /app/features + method: GET +- name: widgets + endpoint: + path: /app/widgets + method: GET +- name: integrations + endpoint: + path: /integrations + method: GET +- name: events + endpoint: + path: /events + method: GET + data_selector: data + params: {} +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: reviews + params: {} +- name: reviews + endpoint: + path: /services/data/vXX.X/sobjects/Review + method: GET + data_selector: records +- name: product + endpoint: + path: /services/data/vXX.X/sobjects/Product + method: GET + data_selector: records +- name: review + endpoint: + path: /services/data/vXX.X/sobjects/Review + method: GET + data_selector: records +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: reviews + params: {} +- name: features + endpoint: + path: /app/features + method: GET + data_selector: features + params: {} +- name: widgets + endpoint: + path: /app/widgets + method: GET + data_selector: widgets + params: {} +- name: integrations + endpoint: + path: /integrations + method: GET + data_selector: integrations + params: {} +- name: example_resource + endpoint: + path: /services/data/vXX.X/sobjects/ExampleResource + method: GET + data_selector: records + params: {} +- name: reviews + endpoint: + path: /api/v1/reviews + method: GET + data_selector: records + params: + incremental: updated_at +- name: reviews + endpoint: + path: /services/data/vXX.X/sobjects/Review + method: GET + data_selector: records + params: + incremental: updated_at +- name: products + endpoint: + path: /services/data/vXX.X/sobjects/Product + method: GET + data_selector: records + params: {} +- name: reviews + endpoint: + path: /api/v1/reviews + method: GET + data_selector: reviews +- name: questions + endpoint: + path: /api/v1/questions + method: GET + data_selector: questions +- name: reviews + endpoint: + path: /api/v1/reviews + method: GET + data_selector: reviews +- name: products + endpoint: + path: /api/v1/products + method: GET + data_selector: products +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: review_requests + endpoint: + path: /api/review_requests + method: POST + data_selector: data + params: {} +- name: reviews + endpoint: + path: /api/reviews + method: GET + data_selector: data + params: {} +- name: product_reviews + endpoint: + path: /v1/reviews + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /v1/store_reviews + method: GET + data_selector: store_reviews + params: {} +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: features + endpoint: + path: /app/features + method: GET +- name: widgets + endpoint: + path: /app/widgets + method: GET +- name: integrations + endpoint: + path: /integrations + method: GET +- name: product_reviews + endpoint: + path: /product-reviews + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /store-reviews + method: GET + data_selector: reviews + params: {} +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: reviews +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: reviews +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: reviews + params: {} +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: records +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: records +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: records + params: {} +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: records + params: {} +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: records +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: records +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET + data_selector: reviews + params: {} +- name: product_reviews + endpoint: + path: /app/product-reviews + method: GET +- name: store_reviews + endpoint: + path: /app/store-reviews + method: GET +- name: features + endpoint: + path: /app/features + method: GET +- name: widgets + endpoint: + path: /app/widgets + method: GET +- name: integrations + endpoint: + path: /integrations + method: GET +- name: reviews + endpoint: + path: /private_replies + method: POST + data_selector: private_reply +- name: settings + endpoint: + path: /private_replies + method: POST + data_selector: private_reply +- name: widgets + endpoint: + path: /private_replies + method: POST + data_selector: private_reply +- name: private_replies + endpoint: + path: /private_replies + method: POST + data_selector: response + params: {} +- name: product_reviews + endpoint: + path: /reviews/products + method: GET + data_selector: reviews + params: {} +- name: store_reviews + endpoint: + path: /reviews/stores + method: GET + data_selector: reviews + params: {} +- name: reviews + endpoint: + path: /reviews + method: GET + data_selector: records +- name: index + endpoint: + path: /settings + method: GET + data_selector: records +- name: products + endpoint: + path: /api/v1/products + method: GET + data_selector: products + params: {} +- name: private_replies + endpoint: + path: /private_replies + method: POST + data_selector: response + params: {} +- name: reviewers + endpoint: + path: /reviewers/{id} + method: GET + data_selector: response + params: {} +- name: settings + endpoint: + path: /settings + method: GET + data_selector: response + params: {} +- name: reviews_carousel + endpoint: + path: /widgets/reviews_carousel + method: GET + data_selector: reviews + params: {} +- name: ugc_media_grid + endpoint: + path: /widgets/ugc_media_grid + method: GET + data_selector: media + params: {} +- name: UGC Media Grid + endpoint: + path: /path/to/ugc/media/grid + method: GET + data_selector: elements + params: {} +- name: ugc_media_grid + endpoint: + path: /ugc/media/grid + method: GET + data_selector: media + params: {} +- name: products + endpoint: + path: /api/v1/products + method: GET + data_selector: products +- name: UGC Media Grid + endpoint: + path: /widgets/media_grid + method: GET + data_selector: items + params: {} +- name: Reviews Carousel + endpoint: + path: /widgets/reviews_carousel + method: GET + data_selector: items + params: {} +notes: +- Uses OAuth2 for authentication +- Uses OAuth2 with refresh token — requires setup of connected app in Judge.me +- For the best security and user experience, strongly recommend using OAuth to authenticate + your integration. +- Judge.me employs OAuth to provide App Developers access to the Judge.me API. +- Data may be transferred to or maintained on computers or servers located in the + United States. +- Built for Shopify +- Judge.me has every feature you need or could want in a review app such as UGC, Google + Rich Snippets, email templates, at a fraction of cost. +- Collect reviews to boost trust +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Pricing includes a free plan and a $15/month plan with additional features. +- 'Pricing isn''t typically ''SaaS-y'': $15 per month is the most you can ever pay.' +- Test-drive all Judge.me features at no cost. +- Merchants can easily add Judge.me widgets by simply dragging and dropping them onto + the 'Product Details element' in PageFly. +- Optimize your store’s visibility with rich snippets +- Integration between GemPages and Judge.me provides a straightforward way to add + customer reviews. +- Easy to use, no tech expertise required. +- Highlight your store's trust +- Integration with Klaviyo for sending review requests and reminders via email notifications. +- We ensure full compliance with GDPR by securely handling data and providing you + with the tools and guidance needed to meet your compliance requirements. +- We align with CCPA standards to protect personal data and empower you with the resources + to meet regulatory requirements. +- Supports integration with 100+ apps +- Integrates with Shopify +- Supports various features for review management +- API documentation is available at https://judge.me/api/docs +- Join 480,000+ stores using Judge.me to build trust and improve sales +- We ensure full compliance with GDPR by securely handling data +- We align with CCPA standards to protect personal data +- Requires setup of connected app in Judge.me +- Some responses may include deprecated fields not supported in the current version. +- Judge.me is built for Shopify. +- Some objects may return nulls in deeply nested fields +- Some objects like Product may return nulls in deeply nested fields +- Some endpoints require an API token. +- Some endpoints may have rate limits. +- Some objects like Contact may return nulls in deeply nested fields +- Uses API key for authentication. +- Uses OAuth2 with refresh token for authentication. +- Forever Free plan available +- Merchants leaving Yotpo often complain about slow, unresponsive support. +- Some features may depend on specific API configurations. +- Best-in-class customer support +- Integration is effortless. Connect Judge.me and Klaviyo in just a few clicks with + OAuth. +- Get unlimited review requests for free from day one. +- 24/7 support available +- Transferring reviews from Okendo to Judge.me is simple — export from Okendo and + import into Judge.me. +- API supports OAuth2 authentication. +- Uses OAuth2 with refresh token — requires setup of connected app in judge.me +- No authenticity restrictions on the free plan +- API for devs available +- Official partner with Shopify +- For the best security and user experience, we strongly recommend using OAuth to + authenticate your integration and only request the permissions you need. +- The ONLY website that we operate is judge.me and we do not operate any other websites. +- Judge.me prioritises transparency and indicates the source of reviews with a review + source badge. +- Merchants may disseminate reviews outside of the Service including on their own + website, on Google Shopping, on their Facebook Business page and via other apps + and plug-ins with enabled integration for sharing reviews. +- Uses OAuth2 to authenticate — requires setup of connected app in Judge.me +- Uses OAuth2 for authentication. +- Responses may include unpublished reviews or review content that is not sanitized. +- Request access only to the essential data to ensure proper verification and official + promotion of your integration. +- Default for send_private_email is true +- Available on the Free plan +- Requires setup of connected app in judge.me +- On older iPhone models running iOS 16 or below, the stylings for the Testimonial + Carousel may not be applied correctly. +- The UGC Media Grid displays a gallery of photos and videos where your store is tagged + on Instagram. +- By default, anyone can post a review on your product page. +- To prevent this, you can limit who can leave a review and allow only actual buyers + to review your products. +- Displays a gallery of photos and videos tagged on Instagram. +- Webhook uses an HTTPS URL with a valid SSL certificate for secure data transfer. +- Header name can be automatically changed to HTTP_X_JUDGEME_HMAC_SHA256 or X-Judgeme-Hmac-SHA256. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Check your OAuth token or scopes' +- '429 Too Many Requests: Throttle your requests' +- '500 Internal Server Error: Retry the request after some time' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '400 Bad Request: Check for required parameters.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- '404 Not Found: Ensure the endpoint is correct.' +- '401 Unauthorized: Check your API key.' +- '404 Not Found: Check the endpoint URL.' +- '401 Unauthorized: Recheck OAuth tokens.' +- '404 Not Found: Ensure endpoint is correct.' +- '401 Unauthorized: Recheck API key or token expiration' +- '422: error message' +- '422: Private reply was created unsuccessfully' +- You can't access this resource. +auth_info: + mentioned_objects: + - PrivateAPIKey + - ShopDomain + - OAuthAPIKey + - OauthToken + - AuthProvider + - NamedCredential + - PublicAPIKey + - client_id + - client_secret +client: + base_url: https://judge.me/api + auth: + type: oauth2 + flow: refresh_token + token_url: https://judge.me/oauth/token + client_id: '{{ dlt.secrets[''api_client_id''] }}' + client_secret: '{{ dlt.secrets[''api_client_secret''] }}' + refresh_token: '{{ dlt.secrets[''api_refresh_token''] }}' + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/karate_labs/karate-labs-docs.md b/karate_labs/karate-labs-docs.md new file mode 100644 index 00000000..6c5b48df --- /dev/null +++ b/karate_labs/karate-labs-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Karatelabs data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def karate_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://karatelabs.io/api/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + users,,migration,,products + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='karate_migration_pipeline', + destination='duckdb', + dataset_name='karate_migration_data', + ) + # Load the data + load_info = pipeline.run(karate_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from karate_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- User Management: Endpoints related to managing users. +- Product Management: Endpoints for handling products. +- Insurance Management: Endpoints for insurance-related operations. +- Migration: Endpoints for migration purposes. +- Testing: Endpoints for various testing functionalities. + +You will then debug the Karatelabs pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Karatelabs support. + ```shell + dlt init dlthub:karate_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Karatelabs API, as specified in @karate_migration-docs.yaml + Start with endpoints users and and skip incremental loading for now. + Place the code in karate_migration_pipeline.py and name the pipeline karate_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python karate_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is done using OAuth2, which requires the access token to be included in the header of requests with the header name 'Authorization'. + + To get the appropriate API keys, please visit the original source at https://karatelabs.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python karate_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline karate_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset karate_migration_data + The duckdb destination used duckdb:/karate_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline karate_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("karate_migration_pipeline").dataset() + # get ser table as Pandas frame + data.ser.df().head() + ``` + +## Running into errors? + +When using this source, be aware of potential rate limiting on API calls, and ensure that your OAuth2 authentication setup is correctly configured. Additionally, complex insurance data structures may require specialized testing, and some API calls may return errors based on request parameters or authorization credentials. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/karate_labs/karate-labs-docs.yaml b/karate_labs/karate-labs-docs.yaml new file mode 100644 index 00000000..17143555 --- /dev/null +++ b/karate_labs/karate-labs-docs.yaml @@ -0,0 +1,224 @@ +resources: +- name: web_browser_automation + endpoint: + path: /web-browser-automation + method: GET + data_selector: tests + params: {} +- name: api_testing + endpoint: + path: /api-testing-products + method: GET + data_selector: tests + params: {} +- name: API Testing + endpoint: + path: /api-testing-products + method: GET +- name: API Performance Testing + endpoint: + path: /api-performance-testing + method: GET +- name: API Mocks + endpoint: + path: /api-mocks-products + method: GET +- name: Web Browser Automation + endpoint: + path: /web-browser-automation + method: GET +- name: Windows Desktop Automation + endpoint: + path: /windows-desktop-automation + method: GET +- name: API Documentation + endpoint: + path: /api-documentation-k-flow + method: GET +- name: API Testing + endpoint: + path: /api-testing-products + method: GET + data_selector: records +- name: API Performance Testing + endpoint: + path: /api-performance-testing + method: GET + data_selector: records +- name: API Mocks + endpoint: + path: /api-mocks-products + method: GET + data_selector: records +- name: Web Browser Automation + endpoint: + path: /web-browser-automation + method: GET + data_selector: records +- name: Windows Desktop Automation + endpoint: + path: /windows-desktop-automation + method: GET + data_selector: records +- name: insurance_data + endpoint: + path: /api/v1/insurance + method: GET + data_selector: records + params: + incremental: updated_at +- name: user + endpoint: + path: /api/v1/users + method: GET + data_selector: data + params: {} +- name: products + endpoint: + path: /api/v1/products + method: GET + data_selector: items + params: {} +- name: API Testing + endpoint: + path: /api-testing-products + method: GET + data_selector: records +- name: API Performance Testing + endpoint: + path: /api-performance-testing + method: GET + data_selector: records +- name: API Mocks + endpoint: + path: /api-mocks-products + method: GET + data_selector: records +- name: Web Browser Automation + endpoint: + path: /web-browser-automation + method: GET + data_selector: records +- name: Windows Desktop Automation + endpoint: + path: /windows-desktop-automation + method: GET + data_selector: records +- name: API Testing + endpoint: + path: /api-testing-products + method: GET + data_selector: records +- name: API Performance Testing + endpoint: + path: /api-performance-testing + method: GET + data_selector: records +- name: API Mocks + endpoint: + path: /api-mocks-products + method: GET + data_selector: records +- name: Web Browser Automation + endpoint: + path: /web-browser-automation + method: GET + data_selector: records +- name: Windows Desktop Automation + endpoint: + path: /windows-desktop-automation + method: GET + data_selector: records +- name: API Migration + endpoint: + path: /api/migration + method: POST + data_selector: results + params: + migration_type: SOAP to REST +notes: +- Java knowledge is not required and even non-programmers can write tests +- Scripts are plain-text, require no compilation step or IDE, and teams can collaborate + using Git / standard SCM +- Karate is the only open-source tool that enables you to re-use your API functional + tests as performance-tests. +- Karate delegates to Gatling for running multi-threaded API workflows and generating + comprehensive HTML reports. +- Karate’s low-code approach is well suited for you to implement continuous performance + testing within your CI / CD pipeline. +- Web Browser Automation Framework designed for ease of use. +- Supports parallel execution and visual testing. +- Built upon the rock-solid foundation famous for API testing +- Support for iframe-s, switching tabs, multiple URL domains, and uploading files +- Xplorer is a local-first application. When you use Xplorer, your collections remain + on your machine, within your firewall. +- No mandatory sign-ups or user accounts. +- There are no mandatory sign-ups or user accounts. +- Adding to Xplorer requires a paid subscription. +- Works 100% in IntelliJ Community Edition +- 'Small Footprint / High Performance: less than 3 MB.' +- Karate's LOCAL-FIRST approach ensures user data remains within the customer's firewall. +- Karate is the only open-source tool to combine API test automation, mocks, performance + testing, and even UI automation into a single, unified framework. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Complex insurance data structures require specialized testing. +- APIs enable seamless integration. +- REST-Assured has support for out-of-container testing of specifically Spring-MVC, + but your tests will be hard-coded in this mode. +- Karate supports even hybrid-tests where you can mix API and UI tests in the same + script. +- Karate is local-first and code-driven. Tests are plain-text and version-controlled + or change-tracked just like normal code. +- Karate uses real-browsers +- Karate has more cross-browser options +- Running tests in parallel +- Cypress cannot handle IFrames +- Cypress cannot switch Browser Tabs +- Cypress Cross Origin Tests are relatively new +- Cypress is Asynchronous By Default +- Debugging +- Karate and Cypress can be installed easily +- Hybrid Tests +- API Mocking +- Uses a simple, clean syntax that is well suited for people new to programming or + test-automation. +- Supports cross-browser automation. +- Requires OAuth2 authentication setup. +- Some API calls may have rate limiting. +- Karate is the only open-source tool to combine API automation testing, API performance + testing, API mocks and UI automation into a single, unified framework. +- Karate is an open-source unified test automation platform combining API testing, + API performance testing, API mocks & UI testing. +- Karate simplifies the process of test automation by offering a more intuitive and + readable syntax. +- It supports API testing out of the box. +- Karate integrates API testing within the same framework. +- Test automation gives you a significant competitive advantage. +- Supports both JSON and XML +- Supports the conversion from JSON to XML and vice-versa +- Supports the comparison of two JSON or XML payloads +- Supports the comparison of two JSON or XML payloads (assertions) +errors: +- Karate introduces a different threading model for the HTTP Client, so if you have + to attain a high RPS (Requests Per Second) value, you need to introduce a config-file + that is normally not required for 'vanilla' Gatling. +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '400 Bad Request: Verify your request parameters.' +- '401 Unauthorized: Check your authorization credentials.' +- '500 Internal Server Error: Contact support.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '400 Bad Request: Check the request payload.' +- '401 Unauthorized: Ensure valid OAuth token.' +- '429 Too Many Requests: Rate limit exceeded.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider +client: + base_url: https://karatelabs.io + auth: + type: oauth2 + location: header + header_name: Authorization +source_metadata: null diff --git a/labelbox_multimodal_chat_evaluation/labelbox-multimodal-chat-evaluation-docs.md b/labelbox_multimodal_chat_evaluation/labelbox-multimodal-chat-evaluation-docs.md new file mode 100644 index 00000000..d044bcb2 --- /dev/null +++ b/labelbox_multimodal_chat_evaluation/labelbox-multimodal-chat-evaluation-docs.md @@ -0,0 +1,156 @@ +In this guide, we'll set up a complete Labelbox data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def labelbox_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.labelbox.com/v1/", + "auth": { + "type": "apikey", + "token": API_KEY, + }, + }, + "resources": [ + audio,,tasks,,users + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='labelbox_migrations_pipeline', + destination='duckdb', + dataset_name='labelbox_migrations_data', + ) + # Load the data + load_info = pipeline.run(labelbox_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from labelbox_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Audio: Endpoints related to audio data processing. +- Tasks: Manage and monitor labeling tasks. +- Users: Handle user management and permissions. +- Nodes: Manage workflow nodes for data labeling. +- Projects: Create and manage labeling projects. +- Consensus: Calculate consensus scores for annotations. +- Data Rows: Manage individual data entries in the system. +- Datasets: Handle collections of data for labeling. + +You will then debug the Labelbox pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Labelbox support. + ```shell + dlt init dlthub:labelbox_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Labelbox API, as specified in @labelbox_migrations-docs.yaml + Start with endpoints audio and and skip incremental loading for now. + Place the code in labelbox_migrations_pipeline.py and name the pipeline labelbox_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python labelbox_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The Labelbox API requires an API key for authentication, which must be included in the request header as 'Authorization'. This key grants access to your Labelbox account and should be treated securely, as it functions like a password. + + To get the appropriate API keys, please visit the original source at https://www.labelbox.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python labelbox_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline labelbox_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset labelbox_migrations_data + The duckdb destination used duckdb:/labelbox_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline labelbox_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("labelbox_migrations_pipeline").dataset() + # get udi table as Pandas frame + data.udi.df().head() + ``` + +## Running into errors? + +Users must ensure their API key is valid and has the necessary permissions. Some API features may require additional permissions, and exceeding rate limits can cause requests to fail. It's also important to note that SDK versions earlier than 3.68 are no longer supported. Additionally, some endpoints may have specific limitations based on user roles and subscription levels. Always monitor the response for potential errors or validation issues. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/labelbox_multimodal_chat_evaluation/labelbox-multimodal-chat-evaluation-docs.yaml b/labelbox_multimodal_chat_evaluation/labelbox-multimodal-chat-evaluation-docs.yaml new file mode 100644 index 00000000..c6e8a7e7 --- /dev/null +++ b/labelbox_multimodal_chat_evaluation/labelbox-multimodal-chat-evaluation-docs.yaml @@ -0,0 +1,3366 @@ +resources: +- name: multimodal_chat_evaluation + endpoint: + path: /projects/multimodal_chat_evaluation + method: POST + data_selector: project + params: {} +- name: multimodal_chat_project + endpoint: + path: /api/multimodal_chat_project + method: POST + data_selector: project + params: {} +- name: multimodal_chat_evaluation + endpoint: + path: /create_model_evaluation_project + method: POST + data_selector: project + params: {} +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: projects + params: {} +- name: datasets + endpoint: + path: /api/datasets + method: GET + data_selector: datasets + params: {} +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: data + params: {} +- name: annotations + endpoint: + path: /api/annotations + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: annotations + endpoint: + path: /annotations + method: GET + data_selector: records +- name: ExportTask + endpoint: + path: /services/data/vXX.X/sobjects/ExportTask + method: GET + data_selector: records + params: {} +- name: Project + endpoint: + path: /services/data/vXX.X/sobjects/Project + method: GET + data_selector: records + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: ontology + endpoint: + path: /ontologies + method: POST + data_selector: ontology + params: {} +- name: data_rows + endpoint: + path: /data-rows + method: POST + data_selector: data_row + params: {} +- name: export + endpoint: + path: /export + method: GET + data_selector: export_task + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: dataset + endpoint: + path: /datasets + method: GET + data_selector: datasets +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: data + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: data + params: {} +- name: ontology + endpoint: + path: /ontologies + method: POST + data_selector: data + params: {} +- name: data_row + endpoint: + path: /data-rows + method: POST + data_selector: data + params: {} +- name: export + endpoint: + path: /projects/{project_id}/export + method: GET + data_selector: data + params: {} +- name: task + endpoint: + path: /tasks + method: GET + data_selector: tasks +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches + params: {} +- name: batch + endpoint: + path: /projects/{project_id}/batches + method: POST + data_selector: batch + params: {} +- name: task + endpoint: + path: /tasks + method: GET + data_selector: tasks + params: + incremental: created_at +- name: workflow + endpoint: + path: /workflows + method: GET +- name: nodes + endpoint: + path: /nodes + method: GET +- name: edges + endpoint: + path: /edges + method: GET +- name: initial_review + endpoint: + path: /workflow/add_node + method: POST + data_selector: nodes + params: {} +- name: logic_node + endpoint: + path: /workflow/add_node + method: POST + data_selector: nodes + params: {} +- name: batch + endpoint: + path: /projects/{project_id}/batches + method: POST + data_selector: batches +- name: batch + endpoint: + path: /api/batches + method: POST + data_selector: batches +- name: initial_review_task + endpoint: + path: /initial_review_task + method: POST + data_selector: task + params: {} +- name: logic_node + endpoint: + path: /logic_node + method: POST + data_selector: node + params: {} +- name: done_task + endpoint: + path: /done_task + method: POST + data_selector: task + params: {} +- name: rework_task + endpoint: + path: /rework_task + method: POST + data_selector: task + params: {} +- name: foundry_app + endpoint: + path: /foundry/app + method: POST + data_selector: results + params: + incremental: updated_at +- name: initial_review + endpoint: + path: /workflow/add_node + method: POST + data_selector: initial_review + params: {} +- name: logic + endpoint: + path: /workflow/add_node + method: POST + data_selector: logic + params: {} +- name: done + endpoint: + path: /workflow/add_node + method: POST + data_selector: done + params: {} +- name: foundry_app + endpoint: + path: /create_foundry_app + method: POST + data_selector: app_id +- name: foundry_app + endpoint: + path: /foundry/app + method: POST +- name: initial_review_task + endpoint: + path: /workflow/initial_review_task + method: POST + data_selector: task_results + params: {} +- name: logic_node + endpoint: + path: /workflow/logic_node + method: POST + data_selector: node_results + params: {} +- name: done_node + endpoint: + path: /workflow/done_node + method: POST + data_selector: done_results + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset + params: {} +- name: data_row + endpoint: + path: /data-rows + method: POST + data_selector: dataRow + params: {} +- name: foundry_app + endpoint: + path: /api/foundry/app + method: POST + data_selector: app + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset + params: {} +- name: data_rows + endpoint: + path: /data-rows + method: POST + data_selector: data_rows + params: {} +- name: foundry_app + endpoint: + path: /foundry/apps + method: POST + data_selector: appId +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset +- name: data_row + endpoint: + path: /data-rows + method: POST + data_selector: data_row +- name: foundry_app + endpoint: + path: /model/apps + method: POST + data_selector: app_id +- name: data_row + endpoint: + path: /data_row + method: GET + data_selector: data_rows +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset + params: {} +- name: data_row + endpoint: + path: /data-rows + method: GET + data_selector: data_rows +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset + params: {} +- name: data_row + endpoint: + path: /data-rows + method: POST + data_selector: data_row + params: {} +- name: DataRow + endpoint: + path: /data-rows + method: POST + data_selector: data +- name: Attachments + endpoint: + path: /attachments + method: POST + data_selector: data +- name: attachments + endpoint: + path: /attachments + method: GET + data_selector: attachments +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset + params: {} +- name: data_rows + endpoint: + path: /data_rows + method: POST + data_selector: data_rows + params: {} +- name: data_row + endpoint: + path: /data-rows + method: GET + data_selector: data_rows +- name: media_attributes + endpoint: + path: /media_attributes + method: GET + data_selector: mediaAttributes +- name: data_row + endpoint: + path: /data_row + method: GET + data_selector: data_rows +- name: data_row + endpoint: + path: /data-rows + method: POST + data_selector: results +- name: catalog_slice + endpoint: + path: /catalog/slice + method: GET + data_selector: data_rows +- name: attachment + endpoint: + path: /attachments + method: POST + data_selector: attachment +- name: data_row + endpoint: + path: /data-rows + method: POST + data_selector: dataRow +- name: metadata + endpoint: + path: /metadata + method: GET + data_selector: records +- name: attachments + endpoint: + path: /attachments + method: POST + data_selector: attachments +- name: data_row + endpoint: + path: /data-rows + method: POST + data_selector: data_rows +- name: iam_integration + endpoint: + path: /reference/cloud-storage-iam-integration + method: GET + data_selector: iam_integrations + params: {} +- name: media_attributes + endpoint: + path: /media_attributes + method: GET + data_selector: dataRow.mediaAttributes +- name: webhook + endpoint: + path: /webhook-endpoint + method: POST + data_selector: payload +- name: data_row + endpoint: + path: /data-rows + method: POST + data_selector: data_rows + params: {} +- name: project_tags + endpoint: + path: /api/projects/tags + method: GET + data_selector: tags +- name: catalog_slice + endpoint: + path: /api/catalog/slices + method: GET + data_selector: slices +- name: organization + endpoint: + path: /organization + method: GET + data_selector: data + params: {} +- name: metadata + endpoint: + path: /metadata + method: GET + data_selector: records +- name: organization + endpoint: + path: /organization + method: GET + data_selector: organization +- name: users + endpoint: + path: /organization/users + method: GET + data_selector: users +- name: projects + endpoint: + path: /organization/projects + method: GET + data_selector: projects +- name: iam_integration + endpoint: + path: /iam_integration + method: GET + data_selector: integrations +- name: organization + endpoint: + path: /organization + method: GET +- name: iam_integrations + endpoint: + path: /iam_integrations + method: GET +- name: project_tags + endpoint: + path: /project_tags + method: GET +- name: users + endpoint: + path: /users + method: GET +- name: projects + endpoint: + path: /projects + method: GET +- name: webhooks + endpoint: + path: /webhooks + method: GET +- name: tasks + endpoint: + path: /tasks + method: GET +- name: webhook + endpoint: + path: /webhook-endpoint + method: POST + data_selector: payload +- name: project_tags + endpoint: + path: /get-the-project-tags + method: GET + data_selector: ResourceTag +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: data_rows +- name: project + endpoint: + path: /projects + method: POST + data_selector: projects +- name: ontology + endpoint: + path: /ontologies + method: POST + data_selector: ontologies +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: ontology + endpoint: + path: /ontologies + method: GET + data_selector: ontologies +- name: organization + endpoint: + path: /api/organization + method: GET + data_selector: data + params: {} +- name: roles + endpoint: + path: /api/roles + method: GET + data_selector: data + params: {} +- name: export + endpoint: + path: /projects/{project_id}/export + method: POST + data_selector: json + params: + performance_details: true + label_details: true +- name: organization + endpoint: + path: /organization + method: GET + data_selector: organization + params: {} +- name: users + endpoint: + path: /organization/users + method: GET + data_selector: users + params: {} +- name: projects + endpoint: + path: /organization/projects + method: GET + data_selector: projects + params: {} +- name: dataset + endpoint: + path: /api/datasets + method: POST + data_selector: data + params: {} +- name: project + endpoint: + path: /api/projects + method: POST + data_selector: data + params: {} +- name: export + endpoint: + path: /projects/{project_id}/export + method: POST + data_selector: results + params: + performance_details: true + label_details: true +- name: organization + endpoint: + path: /get_organization + method: GET + data_selector: organization +- name: iam_integrations + endpoint: + path: /get_iam_integrations + method: GET + data_selector: iam_integrations +- name: roles + endpoint: + path: /get_roles + method: GET + data_selector: roles +- name: invites + endpoint: + path: /get_invites + method: GET + data_selector: invites +- name: projects + endpoint: + path: /get_projects + method: GET + data_selector: projects +- name: webhooks + endpoint: + path: /get_webhooks + method: GET + data_selector: webhooks +- name: tasks + endpoint: + path: /get_tasks + method: GET + data_selector: tasks +- name: labeling_service + endpoint: + path: /labeling_service + method: GET + data_selector: data + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: data + params: {} +- name: data_rows + endpoint: + path: /data-rows + method: GET + data_selector: data + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: ontology + endpoint: + path: /projects/{project_id}/ontology + method: GET + data_selector: ontology +- name: data_row + endpoint: + path: /projects/{project_id}/data_rows + method: GET + data_selector: data_rows +- name: export + endpoint: + path: /projects/{project_uid}/export + method: POST + params: + performance_details: true + label_details: true +- name: data_row + endpoint: + path: /data_rows + method: GET + data_selector: data_rows + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: export_data + endpoint: + path: /export + method: GET + data_selector: json + params: + performance_details: 'True' + label_details: 'True' +- name: support_tickets + endpoint: + path: /support/tickets + method: GET + data_selector: tickets + params: {} +- name: data_rows + endpoint: + path: /data_rows + method: GET + data_selector: data_rows + params: {} +- name: annotations + endpoint: + path: /annotations + method: GET + data_selector: annotations + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: model_run + endpoint: + path: /model/runs + method: GET + data_selector: data + params: {} +- name: experimental_features + endpoint: + path: /docs/product-release-phases#experimental + method: GET + data_selector: features + params: {} +- name: preview_features + endpoint: + path: /docs/product-release-phases#preview + method: GET + data_selector: features + params: {} +- name: beta_features + endpoint: + path: /docs/product-release-phases#beta + method: GET + data_selector: features + params: {} +- name: general_availability_features + endpoint: + path: /docs/product-release-phases#general-availability-ga + method: GET + data_selector: features + params: {} +- name: slices + endpoint: + path: /catalog/slices + method: GET + data_selector: data + params: {} +- name: ontologies + endpoint: + path: /api/ontologies + method: GET + data_selector: ontologies +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: metadata + endpoint: + path: /metadata + method: GET + data_selector: data + params: {} +- name: export_labels + endpoint: + path: /export/labels + method: POST + data_selector: data + params: {} +- name: export_data + endpoint: + path: /export/data + method: POST + data_selector: data_rows + params: {} +- name: export_model_run_data + endpoint: + path: /export/model/run/data + method: GET +- name: cloud_storage_integration + endpoint: + path: /api/integration/cloud_storage + method: GET + data_selector: data + params: {} +- name: fine_tune_model + endpoint: + path: /models/fine-tune + method: POST + data_selector: model + params: {} +- name: S3 bucket data + endpoint: + path: / + method: GET + data_selector: data + params: {} +- name: bulk_classification + endpoint: + path: /bulk_classification + method: POST + data_selector: data + params: {} +- name: gcs_bucket + endpoint: + path: /{bucket} + method: GET + data_selector: files + params: {} +- name: batches + endpoint: + path: /api/batches + method: POST + data_selector: data + params: {} +- name: slices + endpoint: + path: /api/slices + method: GET + data_selector: data + params: {} +- name: ontologies + endpoint: + path: /api/ontologies + method: GET + data_selector: data + params: {} +- name: members + endpoint: + path: /api/members + method: GET + data_selector: members + params: {} +- name: groups + endpoint: + path: /api/groups + method: GET + data_selector: groups + params: {} +- name: monitor_labeling_performance + endpoint: + path: /monitor + method: GET +- name: notifications + endpoint: + path: /notifications + method: GET + data_selector: tasks + params: {} +- name: export_data + endpoint: + path: /export/data + method: POST + data_selector: data +- name: model_run_data + endpoint: + path: /export/model/run/data + method: GET + data_selector: data_rows + params: {} +- name: data_rows + endpoint: + path: /data-rows + method: GET + data_selector: dataRows + params: {} +- name: benchmarks + endpoint: + path: /api/benchmarks + method: GET + data_selector: data + params: {} +- name: bucket_data + endpoint: + path: /{bucket_name} + method: GET + data_selector: data +- name: azure_blob_storage + endpoint: + path: /microsoft-azure-blob-storage + method: GET + data_selector: data + params: {} +- name: data_row + endpoint: + path: /api/data_rows + method: GET + data_selector: dataRows + params: {} +- name: dataset + endpoint: + path: /api/datasets + method: GET + data_selector: datasets + params: {} +- name: consensus + endpoint: + path: /consensus + method: GET + data_selector: data + params: {} +- name: workspaces + endpoint: + path: /workspaces + method: GET +- name: experiments + endpoint: + path: /api/v1/experiments + method: POST + data_selector: data + params: {} +- name: model_run + endpoint: + path: /api/model_runs + method: POST + data_selector: data + params: {} +- name: monitor_labeling_performance + endpoint: + path: /monitor + method: GET + data_selector: metrics + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: data +- name: labeling_queue + endpoint: + path: /labeling-queue + method: GET + data_selector: dataRows + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: annotations + endpoint: + path: /api/annotations + method: POST + data_selector: data + params: {} +- name: import_video_annotations + endpoint: + path: /import/video/annotations + method: POST + data_selector: annotations_payload +- name: data_rows + endpoint: + path: /data-rows + method: GET + data_selector: dataRows +- name: video_annotations + endpoint: + path: /api/video/annotations + method: POST + data_selector: annotations + params: {} +- name: import_video_annotations + endpoint: + path: /reference/import-video-annotations + method: POST + data_selector: annotations +- name: data_rows + endpoint: + path: /data-rows + method: GET + data_selector: dataRows + params: {} +- name: datasets + endpoint: + path: /datasets + method: GET + data_selector: datasets + params: {} +- name: video_demo_dataset + endpoint: + path: /create_dataset + method: POST + data_selector: dataset + params: {} +- name: ontology + endpoint: + path: /create_ontology + method: POST + data_selector: ontology + params: {} +- name: project + endpoint: + path: /create_project + method: POST + data_selector: project + params: {} +- name: batch + endpoint: + path: /create_batch + method: POST + data_selector: batch + params: {} +- name: text_annotations + endpoint: + path: /annotations/text + method: POST + data_selector: annotations +- name: experiments + endpoint: + path: /experiments + method: GET +- name: import_text_annotations + endpoint: + path: /annotations/import + method: POST + data_selector: annotations + params: {} +- name: batch + endpoint: + path: /reference/batch + method: POST + data_selector: batch + params: {} +- name: ontology + endpoint: + path: /reference/metadata + method: POST + data_selector: ontology + params: {} +- name: project + endpoint: + path: /reference/project + method: POST + data_selector: project + params: {} +- name: experiment + endpoint: + path: /api/experiments + method: POST + data_selector: data + params: {} +- name: import_text_annotations + endpoint: + path: /import/text/annotations + method: POST + data_selector: annotations +- name: import_ground_truth + endpoint: + path: /import/ground/truth + method: POST + data_selector: labels +- name: geospatial_annotations + endpoint: + path: /import-geospatial-annotations + method: POST + data_selector: annotations + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: workflows + params: {} +- name: geospatial_annotations + endpoint: + path: /import-geospatial-annotations + method: POST + data_selector: annotations + params: {} +- name: geospatial_annotations + endpoint: + path: /annotations/geospatial + method: POST + data_selector: annotations + params: {} +- name: import_ground_truth + endpoint: + path: /api/import/ground_truth + method: POST + data_selector: data + params: {} +- name: annotations + endpoint: + path: /import-video-annotations + method: POST + data_selector: payload + params: {} +- name: geospatial_annotations + endpoint: + path: /reference/import-geospatial-annotations + method: POST + data_selector: annotations + params: {} +- name: mal_prediction_import + endpoint: + path: /upload/mal_prediction_import + method: POST + data_selector: upload_job + params: {} +- name: label_import + endpoint: + path: /upload/label_import + method: POST + data_selector: upload_job + params: {} +- name: import_video_annotations + endpoint: + path: /reference/import-video-annotations + method: POST +- name: import_document_annotations + endpoint: + path: /import-document-annotations + method: POST + data_selector: annotations +- name: video_annotations + endpoint: + path: /import-video-annotations + method: POST + data_selector: annotations + params: {} +- name: annotations_payload + endpoint: + path: /reference/import-document-annotations + method: GET + data_selector: annotations + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset + params: {} +- name: ontology + endpoint: + path: /ontologies + method: POST + data_selector: ontology + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: batch + endpoint: + path: /batches + method: POST + data_selector: batch + params: {} +- name: label + endpoint: + path: /labels + method: POST + data_selector: label + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: data + params: {} +- name: ontology + endpoint: + path: /ontologies + method: POST + data_selector: data + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: data + params: {} +- name: import_text_annotations + endpoint: + path: /reference/import-text-annotations + method: POST + data_selector: records + params: {} +- name: import_document_annotations + endpoint: + path: /api/import/document_annotations + method: POST + data_selector: annotations + params: {} +- name: text_annotations + endpoint: + path: /reference/import-text-annotations + method: POST + data_selector: annotations + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: data + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: data + params: {} +- name: batch + endpoint: + path: /reference/batch + method: POST + data_selector: batch + params: {} +- name: project + endpoint: + path: /reference/project + method: POST + data_selector: project + params: {} +- name: text_annotations + endpoint: + path: /import/text/annotations + method: POST + data_selector: labels +- name: annotations + endpoint: + path: /annotations/import + method: POST + data_selector: data + params: {} +- name: geospatial_annotations + endpoint: + path: /import-geospatial-annotations + method: POST + data_selector: records +- name: annotations + endpoint: + path: /annotations + method: POST + data_selector: data + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: data + params: {} +- name: annotations + endpoint: + path: /api/annotations + method: POST + data_selector: data + params: {} +- name: audio_annotations + endpoint: + path: /import/audio/annotations + method: POST + data_selector: annotations + params: {} +- name: geospatial_annotations + endpoint: + path: /import/geospatial/annotations + method: POST + data_selector: annotations +- name: geospatial_annotations + endpoint: + path: /import/geospatial/annotations + method: POST + data_selector: data + params: {} +- name: audio_annotations + endpoint: + path: /api/audio_annotations + method: POST + data_selector: annotations +- name: mal_prediction_import + endpoint: + path: /upload/mal_prediction + method: POST + data_selector: upload_job + params: {} +- name: label_import + endpoint: + path: /upload/label + method: POST + data_selector: upload_job + params: {} +- name: audio_annotations + endpoint: + path: /reference/import-audio-annotations + method: POST + data_selector: annotations + params: {} +- name: data_row + endpoint: + path: /data-rows + method: POST + data_selector: data_rows + params: {} +- name: ontology + endpoint: + path: /ontologies + method: POST + data_selector: ontologies + params: {} +- name: labeling_project + endpoint: + path: /labeling-projects + method: POST + data_selector: labeling_projects + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: data + params: {} +- name: dataRows + endpoint: + path: /data-rows + method: GET + data_selector: data + params: {} +- name: document_annotations + endpoint: + path: /import/document/annotations + method: POST + data_selector: annotations + params: {} +- name: custom_model + endpoint: + path: /models + method: POST + data_selector: model + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: data + params: {} +- name: ontology + endpoint: + path: /ontologies + method: POST + data_selector: data + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: data + params: {} +- name: models + endpoint: + path: /models + method: GET + data_selector: models + params: {} +- name: import_document_annotations + endpoint: + path: /api/import_document_annotations + method: POST + data_selector: annotations +- name: model_run + endpoint: + path: /api/v1/model_run + method: POST + data_selector: data + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: data + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: data + params: {} +- name: MALPredictionImport + endpoint: + path: /upload/mal_prediction_import + method: POST + data_selector: upload_job + params: {} +- name: LabelImport + endpoint: + path: /upload/label_import + method: POST + data_selector: upload_job + params: {} +- name: model_run_progress + endpoint: + path: /api/model-run/progress + method: GET + data_selector: progress + params: {} +- name: dataset + endpoint: + path: /datasets + method: POST + data_selector: dataset + params: {} +- name: data_rows + endpoint: + path: /data-rows + method: POST + data_selector: data_rows + params: {} +- name: predictions + endpoint: + path: /api/predictions + method: POST + data_selector: data + params: {} +- name: batch + endpoint: + path: /api/batch + method: POST + data_selector: data + params: {} +- name: ontology + endpoint: + path: /api/ontology + method: POST + data_selector: data + params: {} +- name: project + endpoint: + path: /api/project + method: POST + data_selector: data + params: {} +- name: audio_annotations + endpoint: + path: /import-audio-annotations + method: POST + data_selector: annotations + params: {} +- name: model_run + endpoint: + path: /model/runs + method: GET +- name: annotate_project + endpoint: + path: /annotate/projects + method: GET +- name: upload_predictions + endpoint: + path: /api/model-runs/{model_run_id}/predictions + method: POST + data_selector: predictions + params: {} +- name: audio_annotations + endpoint: + path: /reference/import-audio-annotations + method: POST + data_selector: annotations + params: {} +- name: model_run_metrics + endpoint: + path: /model_run_metrics + method: GET + data_selector: metrics + params: {} +- name: annotations + endpoint: + path: /annotations + method: POST + data_selector: data + params: {} +- name: model_runs + endpoint: + path: /api/model_runs + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: data + params: {} +- name: upload_image_predictions + endpoint: + path: /upload/image/predictions + method: POST + data_selector: predictions +- name: image_predictions + endpoint: + path: /upload/image/predictions + method: POST + data_selector: predictions + params: {} +- name: predictions + endpoint: + path: /upload-image-predictions + method: POST + data_selector: predictions +- name: upload_image_predictions + endpoint: + path: /upload_image_predictions + method: POST + data_selector: predictions + params: {} +- name: upload_image_predictions + endpoint: + path: /upload-image-predictions + method: POST + data_selector: predictions +- name: model_run_progress + endpoint: + path: /docs/foundry-track-progress + method: GET + data_selector: progress +- name: predictions + endpoint: + path: /v1/predictions + method: POST + data_selector: predictions +- name: video_predictions + endpoint: + path: /upload/video/predictions + method: POST + data_selector: predictions +- name: export_predictions + endpoint: + path: /export/predictions + method: POST + data_selector: results + params: {} +- name: video_predictions + endpoint: + path: /upload/video/predictions + method: POST + data_selector: predictions + params: {} +- name: video_predictions + endpoint: + path: /v1/predictions + method: POST + data_selector: predictions + params: {} +- name: batch + endpoint: + path: /api/batch/send + method: POST + data_selector: data_rows + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: batch + endpoint: + path: /batches + method: POST + data_selector: batch + params: {} +- name: label_import + endpoint: + path: /label_imports + method: POST + data_selector: label_import + params: {} +- name: text_predictions + endpoint: + path: /upload/text/predictions + method: POST + data_selector: predictions +- name: model_run_metrics + endpoint: + path: /api/model_run_metrics + method: GET + data_selector: metrics + params: {} +- name: geospatial_predictions + endpoint: + path: /upload/geospatial_predictions + method: POST + data_selector: predictions + params: {} +- name: model_runs + endpoint: + path: /api/model_runs + method: GET + data_selector: data + params: {} +- name: ontology + endpoint: + path: /create_ontology + method: POST + data_selector: ontology + params: {} +- name: model + endpoint: + path: /create_model + method: POST + data_selector: model + params: {} +- name: model_run + endpoint: + path: /create_model_run + method: POST + data_selector: model_run + params: {} +- name: upload_predictions + endpoint: + path: /upload/image/predictions + method: POST + data_selector: predictions +- name: geospatial_predictions + endpoint: + path: /upload_geospatial_predictions + method: POST + data_selector: predictions + params: {} +- name: image_predictions + endpoint: + path: /upload-image-predictions + method: POST + data_selector: predictions +- name: upload_predictions + endpoint: + path: /upload/html/predictions + method: POST + data_selector: predictions +- name: image_predictions + endpoint: + path: /upload-image-predictions + method: POST + data_selector: predictions +- name: image_predictions + endpoint: + path: /upload-image-predictions + method: POST + data_selector: predictions +- name: model_run + endpoint: + path: /model_runs + method: POST + data_selector: data + params: {} +- name: predictions + endpoint: + path: /predictions + method: POST + data_selector: data + params: {} +- name: data_rows + endpoint: + path: /data-rows + method: POST + data_selector: data + params: + tag: to re-label +- name: video_predictions + endpoint: + path: /upload_video_predictions + method: POST + data_selector: predictions +- name: upload_video_predictions + endpoint: + path: /api/upload_video_predictions + method: POST + data_selector: predictions +- name: upload_video_predictions + endpoint: + path: /upload/video/predictions + method: POST + data_selector: predictions +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: batch + endpoint: + path: /batches + method: POST + data_selector: batches +- name: project + endpoint: + path: /projects + method: POST + data_selector: projects + params: {} +- name: batch + endpoint: + path: /batches + method: POST + data_selector: batches + params: {} +- name: text_predictions + endpoint: + path: /upload/text/predictions + method: POST + data_selector: predictions +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches +- name: ontology + endpoint: + path: /ontologies + method: POST + data_selector: ontology + params: {} +- name: model + endpoint: + path: /models + method: POST + data_selector: model + params: {} +- name: model_run + endpoint: + path: /model_runs + method: POST + data_selector: model_run + params: {} +- name: predictions + endpoint: + path: /predictions + method: POST + data_selector: predictions + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches +- name: upload_geospatial_predictions + endpoint: + path: /upload/geospatial/predictions + method: POST + data_selector: predictions +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches +- name: upload_predictions + endpoint: + path: /upload/predictions + method: POST + data_selector: predictions + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches + params: {} +- name: send_to_annotate_params + endpoint: + params: + source_project_id: project.uid + exclude_data_rows_in_project: false + override_existing_annotations_rule: ConflictResolutionStrategy.OverrideWithPredictions + batch_priority: 5 +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches + params: {} +- name: export_task + endpoint: + params: + attachments: true + metadata_fields: true + data_row_details: true + project_details: true + label_details: true + performance_details: true + interpolated_frames: true + filters: + last_activity_at: + - '2000-01-01 00:00:00' + - '2050-01-01 00:00:00' + label_created_at: + - '2000-01-01 00:00:00' + - '2050-01-01 00:00:00' + workflow_status: InReview + batch_ids: + - batch_id_1 + - batch_id_2 + data_row_ids: + - data_row_id_1 + - data_row_id_2 + global_keys: + - global_key_1 + - global_key_2 +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches + params: {} +- name: data_rows + endpoint: + path: /data-rows + method: POST + data_selector: data + params: {} +- name: export_task + endpoint: + params: + filters: + last_activity_at: + - '2000-01-01 00:00:00' + - '2050-01-01 00:00:00' + label_created_at: + - '2000-01-01 00:00:00' + - '2050-01-01 00:00:00' + workflow_status: InReview + batch_ids: + - batch_id_1 + - batch_id_2 + data_row_ids: + - data_row_id_1 + - data_row_id_2 + global_keys: + - global_key_1 + - global_key_2 +- name: model_training + endpoint: + path: /model-training + method: POST + data_selector: results +- name: send_to_annotate_params + endpoint: + params: + source_project_id: project.uid + exclude_data_rows_in_project: false + override_existing_annotations_rule: ConflictResolutionStrategy.OverrideWithPredictions + batch_priority: 5 +- name: project + endpoint: + path: /projects + method: POST + data_selector: projects + params: {} +- name: batch + endpoint: + path: /batches + method: POST + data_selector: batches + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches +- name: project + endpoint: + path: /projects + method: POST + data_selector: projects + params: {} +- name: batch + endpoint: + path: /batches + method: POST + data_selector: batches + params: {} +- name: export_issues + endpoint: + path: /export/issues + method: GET + data_selector: issues +- name: export_tasks + endpoint: + path: /export/tasks + method: POST + data_selector: tasks +- name: project + endpoint: + path: /api/projects + method: POST + data_selector: projects +- name: project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: batch + endpoint: + path: /batches + method: POST + data_selector: batch + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches + params: {} +- name: export_issues + endpoint: + path: /export/issues + method: GET + data_selector: issues +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches +- name: send_to_annotate_params + endpoint: + params: + source_project_id: project.uid + exclude_data_rows_in_project: false + override_existing_annotations_rule: ConflictResolutionStrategy.OverrideWithPredictions + batch_priority: 5 +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches +- name: data_row + endpoint: + path: /data-rows + method: GET + data_selector: data_rows +- name: send_to_annotate_params + endpoint: + params: + source_project_id: project.uid + exclude_data_rows_in_project: false + override_existing_annotations_rule: ConflictResolutionStrategy.OverrideWithPredictions + batch_priority: 5 +- name: project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: batch + endpoint: + path: /batches + method: POST + data_selector: batch + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: export_issues + endpoint: + path: /export/issues + method: GET + data_selector: issues + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: export_task + endpoint: + path: /export_task + method: POST + data_selector: output + params: + attachments: true + metadata_fields: true + data_row_details: true + project_details: true + label_details: true + performance_details: true + interpolated_frames: true + last_activity_at: + - '2000-01-01 00:00:00' + - '2050-01-01 00:00:00' + label_created_at: + - '2000-01-01 00:00:00' + - '2050-01-01 00:00:00' + workflow_status: InReview + batch_ids: + - batch_id_1 + - batch_id_2 + data_row_ids: + - data_row_id_1 + - data_row_id_2 + global_keys: + - global_key_1 + - global_key_2 +- name: send_to_annotate + endpoint: + path: /send_to_annotate_from_catalog + method: POST +- name: project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: batch + endpoint: + path: /batches + method: POST + data_selector: batch + params: {} +- name: project + endpoint: + path: /projects + method: GET +- name: export_task + endpoint: + params: + filters: + last_activity_at: + - '2000-01-01 00:00:00' + - '2050-01-01 00:00:00' + label_created_at: + - '2000-01-01 00:00:00' + - '2050-01-01 00:00:00' + workflow_status: InReview + batch_ids: + - batch_id_1 + - batch_id_2 + data_row_ids: + - data_row_id_1 + - data_row_id_2 + global_keys: + - global_key_1 + - global_key_2 +- name: send_to_annotate_params + endpoint: + params: + source_project_id: project.uid + exclude_data_rows_in_project: false + override_existing_annotations_rule: ConflictResolutionStrategy.OverrideWithPredictions + batch_priority: 5 +- name: ontology + endpoint: + path: /create_ontology + method: POST + data_selector: ontology + params: {} +- name: project + endpoint: + path: /create_project + method: POST + data_selector: project + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches +- name: prompt_response_project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: response_creation_project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects +- name: batch + endpoint: + path: /batches + method: GET + data_selector: batches +- name: export_issues + endpoint: + path: /export/issues + method: GET + data_selector: issues +- name: export_task + endpoint: + path: /export/task + method: POST + data_selector: exported_data +- name: prompt_response_annotations + endpoint: + path: /annotations + method: POST + data_selector: data +- name: label_import + endpoint: + path: /import + method: POST + data_selector: data +- name: project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: batch + endpoint: + path: /batches + method: POST + data_selector: batch + params: {} +- name: annotations + endpoint: + path: /annotations/import + method: POST + data_selector: annotations +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects +- name: project + endpoint: + path: /projects + method: POST + data_selector: projects +- name: llm_human_preference + endpoint: + path: /api/llm/human_preference + method: POST + data_selector: modelOutputs +- name: send_to_annotate_params + endpoint: + params: + source_project_id: project.uid + exclude_data_rows_in_project: false + override_existing_annotations_rule: ConflictResolutionStrategy.OverrideWithPredictions + batch_priority: 5 +- name: text_data + endpoint: + path: /api/text-data + method: POST + data_selector: data + params: {} +- name: project + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: batch + endpoint: + path: /batches + method: POST + data_selector: batch + params: {} +- name: send_to_annotate + endpoint: + path: /send_to_annotate_from_catalog + method: POST + data_selector: task + params: + source_project_id: project.uid + exclude_data_rows_in_project: false + override_existing_annotations_rule: ConflictResolutionStrategy.OverrideWithPredictions + batch_priority: 5 +- name: documents + endpoint: + path: /documents + method: GET + data_selector: records + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: ontology + endpoint: + path: /create_ontology + method: POST +- name: response_creation_project + endpoint: + path: /create_response_creation_project + method: POST +- name: prompt_response_generation_project + endpoint: + path: /create_prompt_response_generation_project + method: POST +- name: conversational_text + endpoint: + path: /api/conversations + method: GET + data_selector: data + params: {} +- name: prompt_response_project + endpoint: + path: /api/v1/prompt-response-projects + method: POST + data_selector: data + params: {} +- name: response_creation_project + endpoint: + path: /api/v1/response-creation-projects + method: POST + data_selector: data + params: {} +- name: import_text_data + endpoint: + path: /reference/import-text-data + method: POST + data_selector: data + params: + row_data: required + global_key: optional + media_type: optional + metadata_fields: optional + attachments: optional +- name: import_prompt_response_annotations + endpoint: + path: /import/prompt-response + method: POST + data_selector: data + params: {} +- name: multimodal_chat_evaluation + endpoint: + path: /projects + method: POST +- name: offline_multimodal_chat_evaluation + endpoint: + path: /projects + method: POST + data_selector: project + params: {} +- name: prompt_response_annotations + endpoint: + path: /annotations + method: POST + data_selector: annotations +- name: label_import + endpoint: + path: /labels + method: POST + data_selector: labels +- name: multimodal_chat_data + endpoint: + path: /reference/import-multimodal-chat-data + method: POST + data_selector: data + params: {} +- name: conversation_data + endpoint: + path: /api/conversations + method: POST + data_selector: data + params: {} +- name: model_outputs + endpoint: + path: /api/model-outputs + method: GET + data_selector: outputs + params: {} +- name: annotations + endpoint: + path: /api/annotations + method: POST + data_selector: data + params: {} +- name: data_row + endpoint: + path: /api/data-rows/import + method: POST + data_selector: data + params: {} +- name: model_assisted_labeling + endpoint: + path: /api/mal-predictions/import + method: POST + data_selector: data + params: {} +- name: text_data + endpoint: + path: /import-text-data + method: POST + data_selector: records +- name: geospatial_data + endpoint: + path: /reference/import-geospatial-data + method: GET + data_selector: records + params: {} +- name: multimodal_chat_annotations + endpoint: + path: /import/multimodal_chat_annotations + method: POST + data_selector: annotations + params: {} +- name: documents + endpoint: + path: /api/documents + method: GET + data_selector: documents +- name: annotations + endpoint: + path: /annotations + method: POST + data_selector: data + params: {} +- name: datasets + endpoint: + path: /datasets + method: POST + data_selector: data + params: {} +- name: audio + endpoint: + path: /audio + method: GET + data_selector: records +- name: annotations + endpoint: + path: /api/annotations + method: POST + data_selector: data + params: {} +- name: datasets + endpoint: + path: /api/datasets + method: GET + data_selector: data + params: {} +- name: export_multimodal_chat_annotations + endpoint: + path: /export/multimodal_chat_annotations + method: POST + data_selector: export_json + params: {} +- name: conversational_text + endpoint: + path: /api/conversational_text + method: POST + data_selector: data + params: {} +- name: data_row + endpoint: + path: /data_row + method: GET + data_selector: data_row + params: {} +- name: media_attributes + endpoint: + path: /media_attributes + method: GET + data_selector: media_attributes + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: upload_llm_response_evaluation + endpoint: + path: /upload-llm-response-evaluation + method: POST + data_selector: predictions +- name: import_text_data + endpoint: + path: /reference/import-text-data + method: POST + data_selector: assets + params: + row_data: https://lb-test-data.s3.us-west-1.amazonaws.com/text-samples/sample-text-1.txt + global_key: https://lb-test-data.s3.us-west-1.amazonaws.com/text-samples/sample-text-1.txt + media_type: TEXT +- name: batch + endpoint: + path: /project.create_batch + method: POST + data_selector: batch_convo_prediction_demo + params: + global_keys: '[global_key]' + priority: 5 +- name: model_run + endpoint: + path: /model.create_model_run + method: POST + data_selector: Comparison_model_run_ + params: {} +- name: prediction_upload + endpoint: + path: /model_run.add_predictions + method: POST + data_selector: prediction_upload_job + params: {} +- name: offline_multimodal_chat_evaluation + endpoint: + path: /projects + method: POST + data_selector: projects + params: {} +- name: LLM Response Evaluation + endpoint: + path: /upload-llm-response-evaluation + method: POST + data_selector: predictions + params: {} +- name: model_evaluation_project + endpoint: + path: /create_model_evaluation_project + method: POST + data_selector: project + params: {} +- name: dataset + endpoint: + path: /create_dataset + method: POST + data_selector: dataset + params: {} +- name: conversation_data + endpoint: + path: /import/conversation + method: POST + data_selector: data_rows + params: {} +- name: conversation + endpoint: + path: /api/conversation/v2 + method: POST + data_selector: row_data + params: {} +- name: LLM Response Evaluation + endpoint: + path: /import/llm-response-evaluations + method: POST + data_selector: annotations + params: {} +- name: annotations + endpoint: + path: /annotations + method: POST + data_selector: data + params: {} +- name: datasets + endpoint: + path: /datasets + method: GET + data_selector: data + params: {} +- name: annotations + endpoint: + path: /import/llm-response-evaluations-annotations + method: POST + data_selector: data + params: {} +- name: import_llm_response_evaluations_annotations + endpoint: + path: /import/llm_response_evaluations + method: POST + data_selector: annotations + params: {} +- name: annotations + endpoint: + path: /annotations + method: POST + data_selector: annotations +- name: data_rows + endpoint: + path: /data-rows + method: POST + data_selector: dataRows +- name: ontologies + endpoint: + path: /ontologies + method: POST + data_selector: ontologies +- name: export_llm_response_annotations + endpoint: + path: /export/llm_response_annotations + method: POST + data_selector: data_row.json + params: {} +- name: annotations + endpoint: + path: /annotations/import + method: POST + data_selector: data + params: {} +- name: multimodal_chat_annotations + endpoint: + path: /annotations/multimodal_chat + method: POST + data_selector: data + params: {} +- name: export_multimodal_chat_annotations + endpoint: + path: /export/multimodal_chat_annotations + method: POST + data_selector: data_row.json +- name: data_row + endpoint: + path: /data_row + method: GET + data_selector: data_row + params: {} +- name: media_attributes + endpoint: + path: /media_attributes + method: GET + data_selector: media_attributes + params: {} +- name: attachments + endpoint: + path: /attachments + method: GET + data_selector: attachments + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: upload_llm_response_evaluation + endpoint: + path: /upload_llm_response_evaluation + method: POST + data_selector: predictions +- name: import_conversation_data + endpoint: + path: /import/conversation + method: POST + data_selector: data + params: {} +- name: annotations + endpoint: + path: /annotations/import + method: POST + data_selector: data + params: {} +- name: import_llm_response_evaluations + endpoint: + path: /import/llm-response-evaluations + method: POST + data_selector: data +- name: import_llm_response_annotations + endpoint: + path: /import/llm_response_annotations + method: POST + data_selector: data + params: {} +- name: export_llm_response_evaluation_annotations + endpoint: + path: /export/llm-response-evaluation-annotations + method: POST + data_selector: data_row + params: {} +notes: +- Provide a valid API key to authenticate the Labelbox client. +- Uses API key for authentication +- SDK versions earlier than 3.68 are no longer supported. +- Improved member and group management experience. +- Automatic transcription of audio and video in the Multi-modal chat editor. +- Uses OAuth2 with refresh token — requires setup of connected app in Labelbox +- Some API features may require additional permissions. +- Some endpoints may have rate limits +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some features may have limited availability based on user roles and permissions +- New fine-tuning capability (beta) to fine-tune a YoloV8 object detection model with + custom features. +- This API requires OAuth2 for authentication. +- Labelbox supports multiple data modalities. +- Some objects may return nulls in deeply nested fields +- You need an API key to authenticate your client. +- API keys access to your Labelbox account and data. Treat API keys like passwords + and other credentials. +- The value of an API key can only be retrieved once from the API key created prompt + when the key is first created. +- The Labelbox SDK is primarily used to interact with Labelbox’s database. +- Requires a valid API key to connect to the Labelbox client +- Large results (over 150,000 data rows) can take up to 10 mins to process. +- Batches are chunked into groups of 100k data rows. +- The client obtains all field values for that object. +- Server-side updates made after the client-side fetch are not auto-propagated. +- You can only use either global_keys or data_rows in the batch creation method. +- Export tasks not supported +- All nodes must be connected for the workflow to be valid. +- Uses LabelingConfig and ReworkConfig for workflow initialization. +- Batches are chunked into groups of 100k data rows when creating multiple batches. +- Workflows are connected to the Project class and are generated automatically during + project creation. +- No changes are pushed to the platform until you call update_config(). +- Batches are limited to 1 million data rows and chunked into groups of 100k. +- This workflow supports the creation of various nodes like review, logic, and done. +- Filters can be applied to nodes to control their behavior. +- Foundry apps help automate data labeling and enrichment. +- You must have data rows in Catalog before you can run them through Foundry. +- Uses positional parameters +- Reset config to start a fresh workflow +- Workflows are composed of nodes and edges. +- Foundry apps can only be created using the app; you cannot use the SDK to create + Foundry apps. +- The only required argument when creating a dataset is the name. +- 'Certain characters like #, <, > and | are not supported in URLs.' +- A Foundry app helps automate data labeling and enrichment. +- 'Certain characters like #, <, >, and | are not supported in URLs.' +- 'Certain characters like #, <, >, and | are not supported in URLs and should be + avoided in your file names to prevent loading issues.' +- If iam_integration is not specified or set to None, it will use your default integration. +- 'Certain characters like #,<,>,| are not supported in URLs and should be avoided + in file names.' +- Attachments can add supplementary content to any asset to help provide additional + context for your labeling team. +- Multiple attachments can be linked to a singular data row. +- 'Certain characters like #, <, > and | are not supported in URLs and should be avoided + in your file names.' +- Custom embeddings improve data exploration by improving similarity search. +- Labelbox automatically computes media attributes when you create new data rows in + the platform. +- 'Special character handling: Certain characters like `#`,`<`, `>` and `|` are not + supported in URLs.' +- Global keys are user-specified unique ID for your data rows that you can assign + upon creation or afterward. +- Currently, we do not support creating slices through the SDK. +- Custom metadata field limits vary according to your subscription. +- Using IAM delegated access integrations is the recommended option for all cloud + users. +- Starting from SDK version 3.69, custom embeddings are now supported. +- This can be any secret that matches your webhook config. +- Global keys are cleared after deleting data rows. +- Requires an API key for authentication. +- Requires Labelbox API Key for authentication +- You can create a v2 webhook through the Labelbox UI. +- Experimental feature requires enabling experimental features before use. +- Requires setup of connected app in Labelbox +- API key required for authentication. +- Replace the value of API_KEY with a valid API key to connect to the Labelbox client. +- OAuth2 with refresh token required for authentication. +- Ensure correct roles are assigned when inviting users. +- Recursive function is used to navigate through JSON structure for extracting annotations. +- Requires a valid API key for access. +- Experimental feature requires enabling experimental features. +- Uses API key for authentication. +- Creating a CVS file for your Labelbox data can be difficult, especially if you want + to include information on the annotations associated with your label. +- Requires API key for authentication +- Data structure for CSV needs to be defined before export +- Labelbox supports multi-factor authentication (MFA) which adds an extra layer of + security to prevent unauthorized access. +- Product limits broken down by subscription type. +- Exceeding these limits may cause performance issues. +- Create a valid API key to connect to the Labelbox client +- Support is available from 9:00 AM to 8:00 PM Eastern Time, Monday through Friday. +- This workflow applies only to workspaces with fully-managed labeling services enabled. +- Unused hours are non-refundable, so we encourage you to add enough data and set + an appropriate team size to utilize the labeling time to the fullest extent. +- API key is required for authentication. +- Collaboratively annotate data with internal team or labeling service. +- Set batch size for batching data rows and annotation bulk import. 500-1000 is recommended + size. +- Set max number of data rows to import. WikiNeural dataset has ~1.1M data rows +- Labelbox supports multi-factor authentication (MFA), which adds an extra layer of + security to prevent unauthorized access. +- Optimize asset size to no larger than 4000x4000px for images and videos with frame + rates no greater than 30fps. +- Use IAM delegated access to connect data to Labelbox for optimal security and performance. +- Setting up a CDN can speed up asset delivery for labelers in different locations. +- Conduct a trial run to identify and reduce latencies or issues before an ongoing + labeling job. +- Support is available during business hours from 9:00 AM to 8:00 PM Eastern Time, + Monday through Friday. +- The Model product is designed to help you achieve efficient collaboration with your + team members. +- YOLOv8 for the model fine-tuning feature is currently disabled. +- You cannot use bulk classification with a consensus project. +- Benchmark data rows are excluded from bulk classification jobs. +- View the limits page to learn the custom embedding limits per workspace and the + maximum dimensions allowed per custom embedding +- Labelbox provides expert labeling in over 30+ languages. +- A data row cannot be part of more than one batch in a project at a time. +- A batch cannot be shared between projects. However, you can create a new batch using + the same data rows. +- Slices are dynamic, meaning any data uploaded to Labelbox will automatically populate + in relevant slices. +- Ontologies can be reused across different projects. +- Quizzes help ensure that labelers fully understand your instructions before they + begin labeling. +- 'Labelbox separates its annotations into two general categories: objects and classifications.' +- Code runner is a beta feature. +- Metadata is non-annotation information about an asset. +- The metadata schema lives at the organization level. +- Export labels requires at least one label in the Completed column. +- Optimize asset size. The most effective way to optimize editor performance is to + limit asset size to the maximum resolution needed for accurate labeling and effective + model training. +- Delegate access to your data storage. For optimal security and performance, use + IAM delegated access to connect your data to Labelbox. +- Uses OAuth2 with refresh token — requires setup of connected app in labelbox +- IAM delegated access is required for cloud storage integrations. +- Fine-tuning improves performance with unusual data or requirements. +- CORS setup is required for accessing S3 bucket data. +- Labelbox uses the AWS role to generate temporary signed URLs every time it accesses + data in the S3 bucket. +- Labelbox is currently not compatible with ADLS Gen2. +- RBAC changes can take up to 30 mins. +- Only one bucket is supported per integration. +- Spaces in filenames can be problematic. +- Webhook events are sent over HTTPS only. +- The Content-Type header from the Labelbox webhook events is always 'application/json'. +- A batch cannot be shared between projects. +- Only organizations on the enterprise plan can have multiple workspaces. +- Each organization can have one or multiple workspaces. +- Workspace-wide roles and project-based roles are mutually exclusive. +- Quizzes must be enabled for labelers to access the labeling interface. +- Requires setup of permissions for Tenant Admin and Admin roles. +- Only organizations on the enterprise plan can access the Monitor page. +- Notifications can be set for various task types including assignment, batch, and + issue-related notifications. +- Labelbox adheres to strict security measures to ensure all of your data is encrypted + at rest and in transit. +- Labelbox uses Auth0 for authentication. +- Single sign-on is an add-on available to Enterprise customers. +- If you use single sign on (SSO) to manage access to Labelbox and your SSO provider + supports MFA, we strongly recommend using your provider’s MFA implementation. +- The Reporting page is being replaced by the new Monitor tab. +- Exporting from Catalog allows you to include the project and/or model run information. +- Excluding optional fields from your export will make the process faster and the + export file smaller. +- You can export data from a model run via the UI. +- IAM delegated access allows you to use private cloud-hosted buckets with Labelbox, + which helps to ensure that your assets are kept safe. +- Ensure that the project has the appropriate permissions set for accessing data rows. +- Uses IAM delegated access for S3 bucket data. +- Labelbox is currently not compatible with ADLS Gen2. To set up this integration, + you must use Azure Blob Storage. +- Any role-based-access-control (RBAC) changes you make can take up to 30 mins to + take into effect. +- For further security, we advise that your container be set to Private to make sure + no unauthorized access is possible +- You can also, from the Storage account, restrict specific IP ranges to add a layer + of control in your data access +- Consensus calculation can take up to five minutes +- Data row priority affects the position in the labeling queue +- Labelbox includes a signature in each webhook event it sends to your application + endpoint. +- It is best to put data from a single domain or source into a single dataset. +- Experiments are designed to help you track and compare all of the iterations associated + with your model development. +- Annotations imported as pre-labels help speed up human labeling. +- Make sure the annotations are in the proper format. +- Model runs must be connected to an experiment. +- The project is a container that houses all of your labeling operations for a specific + set of data rows. +- Notifications page displays tasks performed in the last 30 days +- Labelbox uses Google Cloud for cloud storage, which means that your data will be + encrypted on the server-side using GCP’s default encryption keys. +- Reservation system ensures no contention occurs and avoids duplicate labeling. +- Labelers may lose unsubmitted work if they exceed their data row reservation time + out. +- To enable SSO, collect a few technical details including login URL, X.509 certificate, + and email domains. +- Labelbox supports multi-factor authentication (MFA), also known as two factor authentication + (2FA). +- Workflows are customizable and allow for multi-step review and rework pipelines. +- As of June 30, 2025, we no longer support the Census integration. +- In early September, we disabled Export v1 for all remaining customers. All users + should use the export() method instead. +- Starting in April 2024, Export V1 will be deprecated. +- Export V2 offers more granular control over data exports. +- Use ClassificationAnnotation instead of VideoClassification for global annotations +- Flexible querying by combining any supported filters. +- Supports importing annotations in Python and JSON formats +- Global and frame-based classifications are supported on video assets +- 'Supports two formats for the annotations payload: Python annotation types and JSON.' +- Model-assisted labeling allows importing computer-generated predictions as pre-labels. +- Each batch in a project must have a unique name +- Consensus agreement scores are calculated in real-time for features and labels with + multiple annotations by different labelers. +- Data rows must first be uploaded to Catalog to attach annotations +- You can now include other fields like attachments, media type and metadata in the + data row creation step. +- 'When naming datasets, names can contain letters (upper and lowercase), numbers, + spaces, and the following punctuation symbols: _-.,()/.' +- Queue mode will be deprecated once dataset mode is deprecated +- Annotations imported via MAL are pre-populated in the labeling editor +- Uses API Key for authentication. +- 'Supports two types of label imports: Model-assisted labeling and Ground truth.' +- Geospatial data annotations must be formatted correctly to be imported successfully. +- Labelbox reserves 5 data rows for each labeler, and these reservations expire after + 4 hours of idle time. +- Supports model-assisted labeling (MAL) for pre-labels. +- Ground truth annotations can be bulk imported. +- Workflows allow customization for data labeling and reviewing processes. +- Supports both Python and JSON formats for annotation payloads +- Allows bulk import of ground truth annotations +- Supports geospatial data types. +- Importing annotations as ground truth is a bulk operation meant for migrating to + Labelbox. +- Confidence scores are not supported for frame specific bounding box annotations + and VideoObjectAnnotation class +- Supports both Python annotation types and JSON format for annotations payload. +- 'Two types of label imports are supported: Model-assisted labeling and Ground truth.' +- 'Labelbox supports two formats for the annotations payload: Python annotation types + and JSON.' +- Supports both Python and JSON formats for annotations payload. +- Labelbox supports both Python and JSON formats for annotations payload. +- Uses API key for authentication — ensure valid API key is provided +- Relationship annotations are not supported for ground truth import jobs. +- Supports Python annotation types and JSON format for annotations payload. +- Model-assisted labeling and ground truth imports are supported. +- Annotations are global and page based. +- Data rows must first be uploaded to Catalog to attach annotations. +- Uses API Key for authentication +- Model-assisted labeling allows you to import computer-generated predictions as pre-labels. +- The API key must be a valid key obtained from Labelbox. +- Requires valid API key to connect to the Labelbox client. +- Ensure that the name parameter in annotations matches the ontology. +- To import annotations in Labelbox, you need to create an annotations payload. +- 'Supports two formats for the annotations payload: Python and JSON.' +- Requires setup of connected app for API key. +- Supports both Python annotation types and JSON formats for annotations payload. +- 'Supports two formats for annotations payload: Python annotation types and JSON.' +- Ensure API_KEY is set to a valid API key to connect to the Labelbox client. +- Requires OAuth2 authentication. +- Ensure to manage project settings for data rows and ontology. +- Foundry is available to all subscription types except Educational. +- Free, Starter, and other self-service subscriptions need to enable Foundry as an + add-on to their subscription. +- Annotations are global and page based +- This model integration flow doesn’t support tasks involving bounding box and mask + annotations. +- Requires a valid API key for authentication. +- Use the Model gallery to select models hosted by Labelbox. +- Some models require ontologies while others provide advanced settings to refine + results. +- You may only submit a model run if the settings are valid for the selected model, + ontology, and underlying data types. +- Uses API key for authentication — requires valid API key to connect to Labelbox + client. +- While the model run is in progress, you can use the menu to stop model runs. +- Uses API key for authentication — requires setup of API key in Labelbox +- Some models may return results that are not compatible with your project ontology. +- Requires setup of projects and ontology before importing annotations. +- Export panel lists available options that vary according to the context of the export + requests. +- Uses API key for authentication — replace with valid API key. +- You can include confidence scores and custom metrics when uploading predictions. +- Ensure the name parameters match between annotations and ontology. +- Maximum data rows for Find similar in Catalog is 20. +- Automatic metrics are supported only for ontologies with fewer than 4,000 features. +- Automatic metrics may take a few minutes to calculate. +- Supports audio annotations. +- Requires API key for authentication. +- You will need a model with two or more model runs to use this feature. +- Deleting a project will also delete all the annotations that have been submitted + for a project. +- Confidence scores are optional when uploading predictions. +- Uploading confidence scores is optional +- Foundry is available to all subscription types except Educational +- Free, Starter, and other self-service subscriptions need to enable Foundry as an + add-on to their subscription +- Currently, this model integration flow doesn’t support tasks involving bounding + box and mask annotations. +- Model run execution time depends on several factors, including the number of data + rows processed. +- This step is optional. +- Each batch in a project must have a unique name. +- Priority is between 1(Highest) - 5(lowest). +- Predictions are stored as data row attributes. +- Some objects like VideoObjectAnnotation may not support confidence scores +- Use the Notifications Center to view prediction export progress. +- Some objects may not support confidence scores +- Free accounts have 500 free LBU credits each month. +- Uploading confidence scores is optional. +- Errors will appear for annotation uploads that failed. +- Confidence scores are optional in prediction payloads. +- Automatic metrics are computed for all data rows containing at least one prediction + and at least one annotation. +- 'Labelbox supports two formats for the predictions payload: Python annotation types + (recommended) and NDJSON.' +- Model runs can be compared visually and with metrics. +- Confidence scores are optional and default to 1 if not specified. +- You can include confidence scores and custom metrics when you upload your model + predictions to a model run. +- Model run ontology should support all tools and classifications used in predictions +- Model errors can be analyzed using filters and metrics. +- Active learning is a practice where, given a trained model, you identify which data + would be most useful to label next. +- Priority between 1(Highest) - 5(lowest). +- Tag the data rows that need re-labeling +- Model training integration is currently available for pro and enterprise customers. +- You need to establish model training settings before you can start with model training. +- Raster segmentation masks are not yet supported in the Model product. +- By default, confidence and IOU thresholds are set to 0.5 +- Rasters segmentation masks are not yet supported in the Model product +- Requires setup of a Labelbox account and API key. +- 'When creating a project, specify a media_type using one of the following values: + lb.MediaType.Audio, lb.MediaType.Conversational, lb.MediaType.Document, lb.MediaType.Geospatial_Tile, + lb.MediaType.Html, lb.MediaType.Image, lb.MediaType.Simple_Tile, lb.MediaType.Text, + lb.MediaType.Video.' +- Confidence scores are optional. If you do not include confidence scores in your + prediction payloads, the prediction is treated as if it had a confidence value of + one. +- API key must be provided to connect to the Labelbox client. +- Requires setup of API key. +- The payload for predictions can be in Python annotation types or NDJSON format. +- If the project uses consensus, you can optionally supply a dictionary with consensus + settings. +- All predictions must be formatted as either Python annotation types or NDJSON +- API key is required to access the Labelbox API. +- Ensure to replace API_KEY with a valid API key to connect to the Labelbox client. +- Batch creation requires either global keys or data rows +- Add metadata to identify data rows that need re-labeling using a tag. +- Model training is currently available for pro and enterprise customers. +- You need to connect your training cloud account to your Labelbox organization once. +- Filters follow AND logic, so typically using one filter is sufficient. +- Deleting a project cannot be undone +- Requires an API key to access the API. +- Deleting a project cannot be undone. This method deletes the project along with + all labels made in the project. This action cannot be reverted. +- Some projects may have specific media types that need to be specified when creating + a project. +- Deleting a project cannot be undone and will remove all labels. +- Requires setup of API key for access +- Batches are chunked into groups of 100k data rows if necessary. +- Ensure the API key has the necessary permissions +- Requires API Key for authentication. +- Deleting a project cannot be undone. +- Send to Annotate does not currently support consensus projects. +- AI critic using the SDK is a private preview feature. +- API key is required to connect to the Labelbox client. +- Only one prompt annotation is allowed per label. +- Uses API key authentication — requires setup of API key in Labelbox +- Supports Python annotation types and NDJSON format for annotations. +- Requires setup of API key for authentication +- Use API key for authentication when creating projects. +- API key must be specified in the client. +- Deleting a project cannot be undone. This method deletes the project along with + all labels made in the project. +- The multimodal chat evaluation editor allows evaluation of generative model responses + across multiple data types. +- Batches are chunked into groups of 100k data rows if necessary +- Supports automatic optical character recognition (OCR) with bounding boxes for text + extraction. +- The audio editor supports automatic speech-to-text recognition with the Whisper + model. +- You must provide a valid API key to connect to the Labelbox client. +- Limit the character count to fewer than 6,000 characters when using the Markdown + editor to specify a prompt or response. +- 'Labelbox supports two types of label imports: Model-assisted labeling and Ground + truth.' +- Supports various data types, including text, images, videos, audio, and PDFs. +- Ensure API_KEY is set before making requests. +- Requires setup of multimodal chat evaluation project before importing data. +- Must create data rows and send them to projects. +- Uses application/vnd.labelbox.conversational.model-chat-evaluation as type for conversation + data. +- Version number must be set to 2. +- Requires setup of IAM delegated access for secured URLs. +- Supports Python and JSON formats for annotations payload. +- Supports both Python and JSON formats for annotations +- Data row size limit may apply. +- Tiled imagery uses a slippy map tool for labeling map tiles of the earth at various + zoom levels. +- Map tiles are structured like a pyramid of zoom levels. +- Labelbox supports Python and JSON formats for annotations payload. +- Supports automatic optical character recognition (OCR) with the ChatGPT o1 model. +- Supports automatic speech-to-text recognition with the Whisper model. +- 'Two formats for annotations payload: Python annotation types and JSON.' +- Supports model-assisted labeling and ground truth imports. +- Conversational UI is used for annotating text in the context of a conversation. +- Thread-based UI is used for annotating text in the context of a multi-user thread. +- Markdown editor character count limit is fewer than 6,000 characters. +- Direct upload currently does not support adding additional metadata and attachments. +- 'Markdown editor size limit: limit the character count to fewer than 6,000 characters.' +- 'LaTeX support: To add LaTeX formatting, wrap your math expressions using backticks + and dollar signs.' +- Use client.create_model_evaluation_project to create a live multimodal chat evaluation + project. +- Use IAM Delegated Access or Signed URLs for importing conversation data +- Ensure URLs are in virtual-hosted-style format for S3 +- Requires the use of a JSON structure as defined in the documentation. +- Supports JSON format for annotations payload. +- Allows importing ground truth annotations from external systems. +- Supports uploading annotations as pre-labels or ground truth. +- Requires setup of Labelbox API Key for authentication +- Labelbox supports importing multimodal chat annotations. +- Ensure correct alignment of annotation names with ontology feature names. +- Labelbox supports both Python annotation types and JSON for importing annotations. +- Uses API Key for authentication — requires setup of API key in Labelbox +- Import methods include IAM Delegated Access and Signed URLs (https URLs only). +- Ensure URLs are in virtual-hosted-style format for IAM Delegated Access. +- Supports both Python and JSON formats for annotation payloads. +- Annotations can be either message or global based. +errors: +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Check your access token.' +- '404 Not Found: Verify the endpoint and resource ID.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- 'Unauthorized: API key is invalid or missing' +- '401 Unauthorized: Recheck API key validity' +- 'API keys of disabled accounts: If a user account is disabled, all API keys associated + with that account are also disabled.' +- '400 Bad Request: Check the request parameters and payload.' +- '404 Not Found: Verify the resource ID.' +- '401 Unauthorized: Ensure the API key is valid.' +- 'ValueError: Validation issue during workflow update.' +- 'Validation failed: Check node types and configurations.' +- 'Validation failed: Changes must be committed using update_config()' +- '401 Unauthorized: Recheck API key or token expiration' +- '401 Unauthorized: Check API Key or permissions' +- '401 Unauthorized: Check API key or permissions.' +- '429 Too Many Requests: Rate limit exceeded.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity.' +- '404 Not Found: Check the endpoint and resource being accessed.' +- '404 Not Found: Verify the resource exists.' +- '401 Unauthorized: Check API key validity.' +- 'ValueError: Job failed. Errors : Duplicate global keys found: example_global_key' +- Data Row deleted +- 'Duplicate global keys found: example_global_key' +- '401 Unauthorized: Check API key and permissions' +- '401 Unauthorized: Recheck API key.' +- '401 Unauthorized: Check if the API key is valid' +- 'Error: computed_signature does not match signature provided in the headers' +- '400 Bad Request: Check request format or parameters.' +- '401 Unauthorized: Verify access token validity.' +- '403 Forbidden: Ensure sufficient permissions.' +- '400 Bad Request: Check request parameters and data format' +- '401 Unauthorized: Recheck API key or permissions' +- '400 Bad Request: Check request parameters.' +- '403 Forbidden: Validate API key permissions.' +- Errors during dataset creation may occur. +- '401 Unauthorized: Check API key' +- '404 Not Found: Verify project ID' +- '401 Unauthorized: Check the API key provided' +- '400 Bad Request: Check the request parameters.' +- '401 Unauthorized: Verify the API key or OAuth token.' +- '404 Not Found: Ensure the endpoint exists.' +- '401 Unauthorized: Check your OAuth token and permissions.' +- '400 Bad Request: Check your input data and parameters.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- 'Role cannot be assumed: Ensure that the integration’s role ARN is correct and that + the Labelbox External ID is properly configured in your AWS account.' +- 'External ID configured insecurely: Ensure that the Labelbox External ID is properly + configured in your AWS account.' +- Any role-based-access-control (RBAC) changes you make can take up to 30 mins to + take into effect. +- '400 Bad Request: Check your request parameters.' +- '401 Unauthorized: Verify OAuth token and permissions.' +- '404 Not Found: Check the endpoint URL.' +- '403 Forbidden: Ensure proper permissions are set.' +- 'REQUEST_FAILED: Check the request parameters or the API status.' +- 'INVALID_TOKEN: Ensure the token is valid and not expired.' +- '401 Unauthorized: Check your API key or token.' +- '404 Not Found: Verify the endpoint and parameters.' +- If you are running into any issues, such as the dataset not loading in Labelbox, + it is likely that the permissions are not applied correctly. +- '400 Bad Request: Check your request parameters' +- '401 Unauthorized: Verify token authenticity and scopes.' +- '404 Not Found: Ensure the endpoint and resource exist.' +- '400 Bad Request: Check the request payload for errors' +- '401 Unauthorized: API key is missing or invalid' +- '429 Too Many Requests: Rate limit exceeded' +- 'Invalid API Key: Ensure the API key is valid.' +- 'Unauthorized: Check permission settings for the API key.' +- '401 Unauthorized: Recheck API key' +- 'Errors: task.errors' +- 'Failed data rows: task.failed_data_rows' +- Delete datasets with care, this is a permanent action that cannot be undone. +- Make sure the annotations are in the proper format +- '400 BAD REQUEST: Check the request format and parameters.' +- '401 UNAUTHORIZED: Verify API key and permissions.' +- '403 Forbidden: Check permissions for the user.' +- '404 Not Found: Resource requested does not exist.' +- '500 Internal Server Error: Try again later.' +- '400 Bad Request: Check the format of your request.' +- '401 Unauthorized: Ensure your API key is valid.' +- '404 Not Found: Verify the endpoint or resource exists.' +- 'Invalid API Key: Ensure the API key is valid and has sufficient permissions.' +- 'Unsupported media type: Verify the media type specified in the request.' +- '400 Bad Request: Check the annotation payload format and data structure.' +- '401 Unauthorized: Recheck API key or authentication method.' +- '400 Bad Request: Check the annotation format and payload structure.' +- '404 Not Found: Verify the endpoint path.' +- '401 Unauthorized: Invalid API key' +- '400 Bad Request: Check the payload format and required fields' +- '401 Unauthorized: Replace API_KEY with a valid key to connect.' +- '400 Bad Request: Check the payload format and required fields.' +- '401 Unauthorized: Verify API key and permissions.' +- '401 Unauthorized: Check your API key.' +- '404 Not Found: Ensure the endpoint is correct.' +- '400 Bad Request: Validate request payload format' +- 'INVALID_API_KEY: Check if the API key is correct.' +- 'DATA_ROW_NOT_FOUND: Ensure the data row exists in the catalog.' +- 'RATE_LIMIT_EXCEEDED: Reduce the frequency of API calls.' +- '400 Bad Request: Check the format of your annotations payload.' +- '400 Bad Request: Check your request format and required fields.' +- '404 Not Found: Verify the endpoint URL.' +- '401 Unauthorized: Verify authentication credentials.' +- '404 Not Found: Endpoint does not exist.' +- '400 Bad Request: Check your request payload' +- '404 Not Found: Endpoint does not exist' +- '400 Bad Request: Check request format and required fields.' +- '401 Unauthorized: Ensure API key is valid and included in the header.' +- '404 Not Found: Verify endpoint and resource availability.' +- '401 Unauthorized: Check client credentials or token expiration.' +- '400 Bad Request: Check the format of the annotations payload.' +- '401 Unauthorized: Verify API key.' +- 'INVALID_MODEL_RUN_SETTINGS: Please check the model run parameters.' +- 'ONTOLGY_NOT_SELECTED: An ontology must be selected before submission.' +- '404 Not Found: Verify endpoint path' +- 'Incompatible feature: predictions do not correspond to features in the project + ontology.' +- '400 Bad Request: Check the structure of the payload' +- '401 Unauthorized: Check API key validity' +- '400 Bad Request: Validate the format of the payload' +- 'Automatic metric generation fails: Notification banner appears, select Retry to + try again.' +- '400 Bad Request: Check the structure of the request payload.' +- '404 Not Found: The specified resource was not found.' +- '400 Bad Request: Check the format of the prediction payload.' +- '401 Unauthorized: Verify your API key.' +- Model run errors may be found in the Notification Center. +- '400 Bad Request: Check the format of the predictions payload' +- '401 Unauthorized: Ensure the API Key is valid' +- 'Incompatible feature: Predictions do not correspond to features in the project + ontology.' +- '400 Bad Request: Check the payload structure' +- '404 Not Found: Ensure the endpoint exists' +- '400 Bad Request: Check your payload format.' +- '401 Unauthorized: Recheck API key validity.' +- 'Upload failed: Check the labels and annotations format' +- Errors will appear for annotation uploads that failed. +- '400 Bad Request: Check the format of the predictions payload.' +- '401 Unauthorized: Ensure that the API key is correct.' +- '401 Unauthorized: Check your authorization token.' +- '404 Not Found: Ensure the model run exists.' +- '401 Unauthorized: Verify API key validity.' +- '400 Bad Request: Check your payload format' +- '401 Unauthorized: Invalid API Key' +- '400 Bad Request: Check the format of the uploaded data' +- '401 Unauthorized: Ensure the API key is valid' +- '403 Forbidden: Verify permissions for the requested operation' +- '401 Unauthorized: Recheck API key or its permissions' +- 'INVALID_API_KEY: Check if the API key is correct' +- 'Error: A batch with the same name already exists.' +- 'Error: Exceeds maximum batch size of 100k data rows.' +- '404 Not Found: Verify the resource ID is correct' +- '400 Bad Request: Check request parameters' +- '400 Bad Request: Invalid parameters provided' +- '404 Not Found: The specified resource does not exist' +- '400 Bad Request: Check the data format and required fields.' +- '401 Unauthorized: Ensure proper authentication is provided.' +- '404 Not Found: Verify the endpoint URL and resource existence.' +- '400 Bad Request: Ensure all required fields are provided.' +- '401 Unauthorized: Verify API key is valid.' +- '401 Unauthorized: Check API Key validity.' +- '400 Bad Request: Check the request parameters for validity.' +- '403 Forbidden: Ensure your API key has the correct permissions.' +- '404 Not Found: Verify the endpoint and resource ID are correct.' +- '401 Unauthorized: Check API key or permissions' +- '404 Not Found: Ensure the endpoint is correct' +- Error while sending to annotate +- 'INVALID_API_KEY: Ensure your API key is valid.' +- '404 Not Found: Ensure the requested resource exists' +- '404 Not Found: Ensure the resource exists.' +- '401 Unauthorized: Check your API key and permissions' +- '401 Unauthorized: Check your API key' +- '400 Bad Request: Validate your request format' +- '404 Not Found: Resource does not exist' +- '401 Unauthorized: Recheck OAuth token.' +- '404 Not Found: Validate the endpoint and resource.' +- '400 Bad Request: Check the request format and required fields.' +- '401 Unauthorized: Ensure valid API key is used.' +- '404 Not Found: Verify the endpoint and resource existence.' +- '400 Bad Request: Check the payload structure.' +- '401 Unauthorized: Verify API_KEY is correct.' +- '400 Bad Request: Check the request parameters and body.' +- '401 Unauthorized: Ensure API key is valid.' +- '404 Not Found: Verify the endpoint and resource.' +- '401 Unauthorized: Check your client_id and client_secret.' +- '401 Unauthorized: Check API key.' +- '400 Bad Request: Check input data format.' +- '400 Bad Request: Check the format of the JSON file' +- '401 Unauthorized: Verify API key and permissions' +- '401 Unauthorized: Verify the API key and permissions.' +- '401 Unauthorized: Check API key and permissions.' +- '400 Bad Request: Validate request payload structure.' +- '400 Bad Request: Check your payload for errors.' +- '400 Bad Request: Check the request payload for required fields.' +- '404 Not Found: Verify the endpoint and resource identifiers.' +- '401 Unauthorized: Ensure the API key is valid and included.' +- '400 Bad Request: Check the format of your annotation payload.' +- 'Invalid URL: Ensure the URL is properly formatted.' +- 'Duplicate global key: Ensure the global key is unique.' +- '404 Not Found: Verify the endpoint exists.' +- '400 Bad Request: Check the request payload format.' +- '400 Bad Request: Invalid payload format' +- '401 Unauthorized: Check API Key validity' +- 'INVALID_PARAMETER: Check your parameters' +- 'AUTHORIZATION_FAILED: Verify API key' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - OAuthToken + - NamedCredential + - Client + - Tenant Admin + - Admin + - API_KEY + - ApiKey +client: + base_url: https://api.labelbox.com + auth: + type: apikey + location: header + header_name: Authorization +source_metadata: null diff --git a/levo_ai/levo-ai-docs.md b/levo_ai/levo-ai-docs.md new file mode 100644 index 00000000..c2daa322 --- /dev/null +++ b/levo_ai/levo-ai-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Levo data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def levo_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://levo-stealth-30e2031c154e-5b059b4f3463d.webflow.io/api/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + api/docs,,api/assets,,api/tools + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='levo_migration_pipeline', + destination='duckdb', + dataset_name='levo_migration_data', + ) + # Load the data + load_info = pipeline.run(levo_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from levo_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- API Documentation: Provides documentation related to the API usage and structure. +- Assets: Handles various assets that can be managed within the system. +- Tools: Offers tools that assist in the management or interaction with the platform. +- Inventory: Manages and retrieves information related to inventory items. +- Security: Focuses on security features and test results. + +You will then debug the Levo pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Levo support. + ```shell + dlt init dlthub:levo_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Levo API, as specified in @levo_migration-docs.yaml + Start with endpoints api/docs and and skip incremental loading for now. + Place the code in levo_migration_pipeline.py and name the pipeline levo_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python levo_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Levo requires OAuth2 authentication using a refresh token flow, which necessitates the setup of a connected app. The authorization details must be included in the request header to access the API endpoints. + + To get the appropriate API keys, please visit the original source at https://www.levo.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python levo_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline levo_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset levo_migration_data + The duckdb destination used duckdb:/levo_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline levo_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("levo_migration_pipeline").dataset() + # get pi/doc table as Pandas frame + data.pi/doc.df().head() + ``` + +## Running into errors? + +Developers should be aware that some objects, like 'Contact', may return nulls in deeply nested fields, and the API documentation has not improved despite the increasing number of APIs. Additionally, security testing is critical, as poor documentation can hinder this process. Proper handling of OAuth scopes and token management is essential to avoid unauthorized access. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/levo_ai/levo-ai-docs.yaml b/levo_ai/levo-ai-docs.yaml new file mode 100644 index 00000000..55e16b3f --- /dev/null +++ b/levo_ai/levo-ai-docs.yaml @@ -0,0 +1,216 @@ +resources: +- name: api_assets + endpoint: + path: /api/assets + method: GET + data_selector: data + params: {} +- name: API Inventory + endpoint: + path: /api/inventory + method: GET + data_selector: records + params: {} +- name: api_inventory + endpoint: + path: /api/v1/inventory + method: GET + data_selector: data + params: {} +- name: api_inventory + endpoint: + path: /api/inventory + method: GET + data_selector: data + params: {} +- name: api_inventory + endpoint: + path: /api/v1/inventory + method: GET + data_selector: data +- name: security_test_results + endpoint: + path: /api/v1/security/test_results + method: GET + data_selector: results +- name: resources + endpoint: + path: /api/v1/resources + method: GET + data_selector: records +- name: tools + endpoint: + path: /api/v1/tools + method: GET + data_selector: records +- name: api_security + endpoint: + path: /api/v1/security + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: api_inventory + endpoint: + path: /api/inventory + method: GET + data_selector: data + params: {} +- name: api_documentation + endpoint: + path: /api/documentation + method: GET + data_selector: data + params: {} +- name: API Inventory + endpoint: + path: /api/inventory + method: GET +- name: Documentation Generation + endpoint: + path: /api/docs + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +notes: +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Documentation isn't improving, even as APIs multiply +- Developers want to build not write specs +- Poor documentation kills security testing at the source +- API documentation is essential for developers to understand how to integrate and + interact with APIs. +- Levo captures auth scopes, identities, and data flows across APIs and AI assets + to expose real risk, not noise. +- Requires OAuth2 authentication +- Sensitive data detection is included +- Security can no longer be an afterthought right now. +- With the current influx of security incidents, security must always be built into + the product code and architecture. +- Levo provides end-to-end visibility across AI agents, MCP Servers, LLMs and LLM + Applications. +- Levo provides runtime visibility across AI agents and applications. +- Levo passively observes AI traffic, providing full visibility into the machine-to-machine + flows that drive most AI interactions. +- Detection is passive at runtime. Levo does not sit inline or block by default. +- Levo turns red teaming from a noisy checkbox into a business enabler detecting only + exploitable risks. +- Dynamic testing across agents, LLMs, MCPs, RAG & APIs +- Validates only exploitable risks, filters noise +- Levo monitors APIs automatically, regardless of language, framework, or deployment + method. +- Levo runs passively alongside your workflows and does not block or delay builds. +- Levo’s API Inventory is a continuously updated, behavior-aware map of all APIs across + your environments. +- Levo lets you define custom posture rules in Python or YAML to reflect your unique + business, regulatory, and partner requirements. +- Sensitive data exposure ranks 3rd in volume But 1'st in trust fallout +- Levo secures sensitive data where it’s most at risk +- Levo's API Inventory facilitates true understanding by surfacing how each API behaves, + where it exists and what it exposes. +- Levo enables compliance with frameworks like GDPR, HIPAA, ISO 27001, PCI DSS, SOC + 2, SEBI CSCRF, and DPDP by continuously mapping sensitive data and enforcing real-time + access controls. +- MCP exposes standardized, language-agnostic primitives that work with existing IDEs, + LLM agents, or internal tools +- Levo auto-detects each API’s authentication scheme OAuth2, JWT, mTLS, API keys and + dynamically manages token generation, injection, renewal, and expiry. +- Levo continuously discovers and documents every internal, external, partner, and + third-party API mapping versions, methods, auth patterns, payloads, and sensitive + data flows in real-time. +- Levo actively monitors OAuth token scopes, consent bindings, and session validations + automatically detecting drift, misuse, and unauthorized expansions. +- MCP exposes structured, real-time, and governed access to security intelligence. +- Fintechs racing to ship APIs weekly without continuous discovery and governance + can lead to undocumented and abandoned APIs. +- APIs shipped without robust authentication, authorization, and consent governance + can result in data leakage. +- Levo auto-generates rich API documentation in real-time from actual traffic, code + repositories and logs. +- Developers don't need to ping five channels or check outdated wikis to see if an + API already exists, they just build on what's already there. +- Secure third party provider (TPP) onboarding without core exposure +- Automate vulnerability testing for OAuth flows +- Levo integrates into your CI/CD to test every feature, integration, and release + automatically. +- Focused on static security testing (OpenAPI specs) +- Yes – focused on shift left API testing +- Dev-first integration with openAPI, Postman, CI/CD +- 'Strong support: GitHub, Postman, CI/CD integrations' +- Testing only; No runtime detection +- Dev focused SaaS only +- Testing + code quality enforcement +- Levo continuously inspects API traffic and classifies all sensitive data flowing + through endpoints, including PHI, insurance numbers, login credentials, and consent + forms. +- requires traffic capture + spec ingestion +- derived from specs + NTA; misses undocumented APIs +- Levo monitors API behavior continuously across environments. +- Security that keeps up with your CI/ID +- Levo replaces the security stack that was never built for modern applications +- No hidden fees. No forced upsells. Your pricing is scoped to match the value you + derive and the risk we help mitigate. +- We provide geo aware pricing that aligns with your market and preserves our gold + standard support. +- Levo integrates into CI/CD pipelines, not just post-release audits +- Sensitive data detection, access validation, and exploit-aware testing happens at + the point of change +- Cookies are used for tracking and analytics purposes. +- manual re-import needed for new endpoints +- Privacy-first architecture, no customer payload ingestion +- Essential cookies cannot be rejected as they are strictly necessary to provide you + with services. +- Uses OAuth2 with refresh token — requires setup of connected app in Levo +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Check client credentials or token expiration' +- '403 Forbidden: Ensure proper access rights' +- '429 Too Many Requests: Rate limit exceeded' +- 54% of exploited API vulnerabilities stem from misconfigurations. +- Production-only visibility; no pre-prod coverage +- '401 Unauthorized: Check your API key or token.' +- '404 Not Found: The requested resource could not be found.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://levo-stealth-30e2031c154e-5b059b4f3463d.webflow.io + auth: + type: oauth2 + flow: refresh_token + token_url: https://login.api.com/services/oauth2/token + client_id: '{{ dlt.secrets[''api_client_id''] }}' + client_secret: '{{ dlt.secrets[''api_client_secret''] }}' + refresh_token: '{{ dlt.secrets[''api_refresh_token''] }}' + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/lexicon_dj/lexicon-dj-docs.md b/lexicon_dj/lexicon-dj-docs.md new file mode 100644 index 00000000..589a2099 --- /dev/null +++ b/lexicon_dj/lexicon-dj-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Lexicon DJ data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def lexicon_dj_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.lexicondj.com/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + tracks,serato/releases,virtualdj/builds + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='lexicon_dj_migration_pipeline', + destination='duckdb', + dataset_name='lexicon_dj_migration_data', + ) + # Load the data + load_info = pipeline.run(lexicon_dj_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from lexicon_dj_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Tracks: Access the track resources. +- Releases: Information about software releases from various DJ platforms. +- Updates: Get updates for different DJ software. + +You will then debug the Lexicon DJ pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Lexicon DJ support. + ```shell + dlt init dlthub:lexicon_dj_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Lexicon DJ API, as specified in @lexicon_dj_migration-docs.yaml + Start with endpoints tracks and serato/releases and skip incremental loading for now. + Place the code in lexicon_dj_migration_pipeline.py and name the pipeline lexicon_dj_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python lexicon_dj_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Lexicon DJ uses OAuth2 for authentication, requiring a bearer token to be included in the request header. + + To get the appropriate API keys, please visit the original source at https://www.lexicondj.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python lexicon_dj_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline lexicon_dj_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset lexicon_dj_migration_data + The duckdb destination used duckdb:/lexicon_dj_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline lexicon_dj_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("lexicon_dj_migration_pipeline").dataset() + # get rack table as Pandas frame + data.rack.df().head() + ``` + +## Running into errors? + +Be aware of request limits as exceeding them may result in throttling. Additionally, the service may be discontinued at any time without notice, and personal data will not be sold. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/lexicon_dj/lexicon-dj-docs.yaml b/lexicon_dj/lexicon-dj-docs.yaml new file mode 100644 index 00000000..13fa083c --- /dev/null +++ b/lexicon_dj/lexicon-dj-docs.yaml @@ -0,0 +1,90 @@ +resources: +- name: tracks + endpoint: + path: /v1/tracks + method: GET + data_selector: tracks + params: + limit: 10 + offset: 0 +- name: virtualdj_builds + endpoint: + path: /virtualdj/builds + method: GET + data_selector: builds + params: {} +- name: rekordbox_releases + endpoint: + path: /rekordbox/releases + method: GET + data_selector: releases + params: {} +- name: traktor_releases + endpoint: + path: /traktor/releases + method: GET + data_selector: releases + params: {} +- name: serato_releases + endpoint: + path: /serato/releases + method: GET + data_selector: releases + params: {} +- name: virtualdj_updates + endpoint: + path: /api/virtualdj/updates + method: GET + data_selector: updates + params: {} +- name: rekordbox_updates + endpoint: + path: /api/rekordbox/updates + method: GET + data_selector: updates + params: {} +- name: traktor_updates + endpoint: + path: /api/traktor/updates + method: GET + data_selector: updates + params: {} +- name: serato_updates + endpoint: + path: /api/serato/updates + method: GET + data_selector: updates + params: {} +- name: engine_dj_updates + endpoint: + path: /api/engine_dj/updates + method: GET + data_selector: updates + params: {} +- name: lexicon_updates + endpoint: + path: /api/lexicon/updates + method: GET + data_selector: updates + params: {} +notes: +- Lexicon offers a local REST API to interact with it and has the ability to create + your own plugins to run. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Rekordcloud reserves the right to discontinue the Service at any time, for any reason, + without obligation to continue offering access or support. +- Rekordcloud will never sell your personal data to anyone. +- Cookies are used for analytics and marketing purposes. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +auth_info: + mentioned_objects: [] +client: + base_url: https://www.lexicondj.com + auth: + type: oauth2 + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/livechat_ai/livechat-ai-docs.md b/livechat_ai/livechat-ai-docs.md new file mode 100644 index 00000000..a4f08303 --- /dev/null +++ b/livechat_ai/livechat-ai-docs.md @@ -0,0 +1,290 @@ +In this guide, we'll set up a complete LiveChatAI data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def livechat_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://help.livechatai.com/api/v1/", + {'auth': {'type': 'bearer', 'token': 'access_token'}}, + }, + "resources": [ + contacts,,api/cart,,webhooks + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='livechat_migrations_pipeline', + destination='duckdb', + dataset_name='livechat_migrations_data', + ) + # Load the data + load_info = pipeline.run(livechat_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from livechat_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Contacts: Manage and retrieve contact information. +- Cart: Interact with shopping cart functionalities. +- Webhooks: Set up real-time notifications for events. +- Chat: Handle live chat interactions and histories. +- AI Actions: Utilize AI-powered automation for tasks. + +You will then debug the LiveChatAI pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with LiveChatAI support. + ```shell + dlt init dlthub:livechat_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for LiveChatAI API, as specified in @livechat_migrations-docs.yaml + Start with endpoints contacts and and skip incremental loading for now. + Place the code in livechat_migrations_pipeline.py and name the pipeline livechat_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python livechat_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + OAuth2 is utilized for authentication, requiring a refresh token flow and setup of a connected app in LiveChatAI. + + To get the appropriate API keys, please visit the original source at https://www.livechatai.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python livechat_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline livechat_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset livechat_migrations_data + The duckdb destination used duckdb:/livechat_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline livechat_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("livechat_migrations_pipeline").dataset() + # get ontact table as Pandas frame + data.ontact.df().head() + ``` + +## Running into errors? + +The API is currently in beta, and users may experience unforeseen issues. It requires careful setup of a connected app for OAuth2 authentication, and advanced features may be limited to higher-tier plans. Additionally, there are specific limitations on file sizes and formats when uploading content. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi +"resources": [ + contacts,,api/cart,,webhooks + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='livechat_migrations_pipeline', + destination='duckdb', + dataset_name='livechat_migrations_data', + ) + # Load the data + load_info = pipeline.run(livechat_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from livechat_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Contacts: Manage and retrieve contact information. +- Cart: Interact with shopping cart functionalities. +- Webhooks: Set up real-time notifications for events. +- Chat: Handle live chat interactions and histories. +- AI Actions: Utilize AI-powered automation for tasks. + +You will then debug the LiveChatAI pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with LiveChatAI support. + ```shell + dlt init dlthub:livechat_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for LiveChatAI API, as specified in @livechat_migrations-docs.yaml + Start with endpoints contacts and and skip incremental loading for now. + Place the code in livechat_migrations_pipeline.py and name the pipeline livechat_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python livechat_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + OAuth2 is utilized for authentication, requiring a refresh token flow and setup of a connected app in LiveChatAI. + + To get the appropriate API keys, please visit the original source at https://www.livechatai.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python livechat_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline livechat_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset livechat_migrations_data + The duckdb destination used duckdb:/livechat_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline livechat_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("livechat_migrations_pipeline").dataset() + # get ontact table as Pandas frame + data.ontact.df().head() + ``` + +## Running into errors? + +The API is currently in beta, and users may experience unforeseen issues. It requires careful setup of a connected app for OAuth2 authentication, and advanced features may be limited to higher-tier plans. Additionally, there are specific limitations on file sizes and formats when uploading content. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/livechat_ai/livechat-ai-docs.yaml b/livechat_ai/livechat-ai-docs.yaml new file mode 100644 index 00000000..3f0730d1 --- /dev/null +++ b/livechat_ai/livechat-ai-docs.yaml @@ -0,0 +1,814 @@ +resources: +- name: chat_detail + endpoint: + path: /api/ai-bot/chat/detail + method: GET +- name: contact_agents + endpoint: + path: /api/ai-bot/contact/agent + method: GET +- name: chatbot_chat_counts + endpoint: + path: /api/ai-bot/counts/chat + method: GET +- name: chatbot_messages_counts + endpoint: + path: /api/ai-bot/counts/messages + method: GET +- name: create_chatbot + endpoint: + path: /api/ai-bot/create + method: POST +- name: delete_chatbot + endpoint: + path: /api/ai-bot/delete + method: DELETE +- name: chatbot_detail + endpoint: + path: /api/ai-bot/detail + method: GET +- name: user_chatbot + endpoint: + path: /api/ai-bot/list + method: GET +- name: message_chatbot + endpoint: + path: /api/ai-bot/reply + method: POST +- name: scrape_websites + endpoint: + path: /api/ai-bot/scrape + method: POST +- name: data_source_delete + endpoint: + path: /api/ai-bot/data-source/delete + method: POST +- name: data_source_items + endpoint: + path: /api/ai-bot/data-source/items + method: GET +- name: add_pdf_data_source + endpoint: + path: /api/ai-bot/data-source/pdf + method: POST +- name: add_qa_data_source + endpoint: + path: /api/ai-bot/data-source/ga + method: POST +- name: update_qa_data_source + endpoint: + path: /api/chatbot/data-source/ga + method: PUT +- name: add_text_data_source + endpoint: + path: /api/ai-bot/data-source/text + method: POST +- name: add_url_data_source + endpoint: + path: /api/ai-bot/data-source/url + method: POST +- name: chat_detail + endpoint: + path: /api/ai-bot/chat/detail + method: GET +- name: contact_agents + endpoint: + path: /api/ai-bot/contact/agent + method: GET +- name: chatbot_chat_counts + endpoint: + path: /api/ai-bot/counts/chat + method: GET +- name: chatbot_messages_counts + endpoint: + path: /api/ai-bot/counts/messages + method: GET +- name: create_chatbot + endpoint: + path: /api/ai-bot/create + method: POST +- name: delete_chatbot + endpoint: + path: /api/ai-bot/delete + method: DELETE +- name: chatbot_detail + endpoint: + path: /api/ai-bot/detail + method: GET +- name: user_chatbot + endpoint: + path: /api/ai-bot/list + method: GET +- name: message_chatbot + endpoint: + path: /api/ai-bot/reply + method: POST +- name: scrape_websites + endpoint: + path: /api/ai-bot/scrape + method: POST +- name: data_source_delete + endpoint: + path: /api/ai-bot/data-source/delete + method: POST +- name: data_source_items + endpoint: + path: /api/ai-bot/data-source/items + method: GET +- name: add_pdf_data_source + endpoint: + path: /api/ai-bot/data-source/pdf + method: POST +- name: add_qa_data_source + endpoint: + path: /api/ai-bot/data-source/ga + method: POST +- name: update_qa_data_source + endpoint: + path: /api/chatbot/data-source/ga + method: PUT +- name: add_text_data_source + endpoint: + path: /api/ai-bot/data-source/text + method: POST +- name: add_url_data_source + endpoint: + path: /api/ai-bot/data-source/url + method: POST +- name: contacts + endpoint: + path: /api/v1/contacts + method: GET + data_selector: data + params: {} +- name: messages + endpoint: + path: /api/v1/messages + method: GET + data_selector: data + params: {} +- name: Contacts API + endpoint: + path: /visitor-identification-api/ + method: GET +- name: website_data_source + endpoint: + path: /api/v1/website + method: POST + data_selector: data + params: {} +- name: sitemap_data_source + endpoint: + path: /api/v1/sitemap + method: POST + data_selector: data + params: {} +- name: Messenger Widget + endpoint: + path: /embed-and-integrate/add-as-messenger + method: POST + data_selector: script + params: {} +- name: Messenger Widget + endpoint: + path: /embed/integrate/messenger + method: POST + data_selector: widget + params: {} +- name: FAQ + endpoint: + path: /data_sources/faqs + method: GET + data_selector: faqs +- name: Help Docs + endpoint: + path: /data_sources/help_docs + method: GET + data_selector: help_docs +- name: text_content + endpoint: + path: /data_sources/text + method: POST + data_selector: snippet + params: {} +- name: file_content + endpoint: + path: /api/files + method: POST + data_selector: extracted_text + params: + max_size: 5MB +- name: file_content + endpoint: + path: /adding-files-data-source/ + method: POST + data_selector: transcript + params: + max_size: 5MB +- name: image_response + endpoint: + path: /enriching-chats/image-responses + method: GET + data_selector: responses +- name: youtube_transcript + endpoint: + path: /youtube/transcript + method: POST + data_selector: transcript + params: {} +- name: youtube_transcript + endpoint: + path: /youtube/transcript + method: POST + data_selector: transcript + params: {} +- name: Identity + endpoint: + path: /settings/identity + method: GET +- name: Behavior & Instructions + endpoint: + path: /settings/behavior-instructions + method: GET +- name: LLM Models + endpoint: + path: /settings/llm-models + method: GET +- name: Knowledge & Safety + endpoint: + path: /settings/knowledge-safety + method: GET +- name: widget_customization + endpoint: + path: /settings/widget/customization + method: GET + data_selector: customization_settings + params: {} +- name: messenger_widget + endpoint: + path: /customize/messenger/widget + method: GET + data_selector: widgetSettings + params: {} +- name: Messenger Widget Time Display Scheduling + endpoint: + path: /messenger-widget/time-display-scheduling + method: GET + data_selector: settings +- name: AI Conversation History + endpoint: + path: /chat/inbox + method: GET +- name: Unassigned Conversations + endpoint: + path: /chat/unassigned + method: GET +- name: branding_settings + endpoint: + path: /branding/settings + method: POST +- name: Messenger Widget Time Display Scheduling + endpoint: + path: /api/v1/time_display_scheduling + method: GET + data_selector: scheduling_settings + params: {} +- name: Full Page Chat + endpoint: + path: /embed/integrate + method: GET +- name: Contact + endpoint: + path: /contacts + method: POST + data_selector: data + params: {} +- name: branding_settings + endpoint: + path: /branding-settings + method: POST +- name: mobile_app_embed + endpoint: + path: /embed/integration + method: GET +- name: Contact + endpoint: + path: /visitor-identification-api/ + method: POST + data_selector: Contact Attributes + params: {} +- name: Slack Integration + endpoint: + path: /integrate/slack + method: POST + data_selector: data + params: {} +- name: Fetch Conversations + endpoint: {} +- name: Join Conversations + endpoint: {} +- name: Send Messages + endpoint: {} +- name: Add URLs as a Data Source + endpoint: {} +- name: Add Text as a Data Source + endpoint: {} +- name: Add Question and Answer as a Data Source + endpoint: {} +- name: WhatsApp Integration + endpoint: + path: /whatsapp/integration + method: POST +- name: AI Actions + endpoint: + path: /ai-actions + method: POST + data_selector: data + params: {} +- name: Webhooks + endpoint: + path: /webhooks + method: POST + data_selector: data + params: {} +- name: Shopify Order Status + endpoint: + path: /shopify/order/status + method: GET + data_selector: data + params: {} +- name: webhook_action + endpoint: + path: /webhook/action + method: POST + data_selector: response +- name: slack_integration + endpoint: + path: /api/slack/integration + method: POST + data_selector: response + params: {} +- name: Custom Button AI Actions + endpoint: + path: /custom-button-ai-actions + method: POST + data_selector: actions + params: {} +- name: Calendly AI Action + endpoint: + path: /calendly-ai-action + method: POST +- name: cal-com-booking + endpoint: + path: /cal.com/your-name/30min + method: GET + data_selector: event + params: {} +- name: Custom Webhook + endpoint: + path: /ai-actions/webhook + method: POST +- name: slack_action + endpoint: + path: /slack-ai-action + method: POST +- name: slack_alerts + endpoint: + path: /ai-actions/slack + method: POST + data_selector: alerts +- name: search_shop_catalog + endpoint: + path: /shopify/search_catalog + method: POST + data_selector: products +- name: get_cart + endpoint: + path: /shopify/get_cart + method: GET + data_selector: cart +- name: update_cart + endpoint: + path: /shopify/update_cart + method: POST + data_selector: cart_update +- name: search_shop_policies_and_faqs + endpoint: + path: /shopify/search_policies + method: GET + data_selector: policies +- name: get_product_details + endpoint: + path: /shopify/get_product_details + method: GET + data_selector: product_details +- name: calendar_events + endpoint: + path: /api/v1/calendars + method: GET +- name: cal-com-booking + endpoint: + path: /cal.com/your-name/30min + method: GET +- name: Slack AI Action + endpoint: + path: /slack/ai/action + method: POST +- name: slack_ai_action + endpoint: + path: /api/slack_action + method: POST + data_selector: action_response +- name: contacts + endpoint: + path: /contacts + method: GET + data_selector: contacts +- name: search_shop_catalog + endpoint: + path: /search/shop/catalog + method: GET +- name: get_cart + endpoint: + path: /get/cart + method: GET +- name: update_cart + endpoint: + path: /update/cart + method: POST +- name: search_shop_policies_and_faqs + endpoint: + path: /search/shop/policies/faqs + method: GET +- name: get_product_details + endpoint: + path: /get/product/details + method: GET +- name: contacts + endpoint: + path: /contacts + method: GET + data_selector: contacts +- name: contact_attributes + endpoint: + path: /contacts/attributes + method: GET + data_selector: attributes + params: {} +- name: api_keys + endpoint: + path: /api/keys + method: POST + data_selector: keys + params: {} +- name: Free Plan + endpoint: + path: /subscription/free + method: GET + data_selector: plan_details + params: {} +- name: Basic Plan + endpoint: + path: /subscription/basic + method: GET + data_selector: plan_details + params: {} +- name: Pro Plan + endpoint: + path: /subscription/pro + method: GET + data_selector: plan_details + params: {} +- name: Advanced Plan + endpoint: + path: /subscription/advanced + method: GET + data_selector: plan_details + params: {} +- name: Expert Plan + endpoint: + path: /subscription/expert + method: GET + data_selector: plan_details + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: POST + data_selector: data + params: {} +- name: invoice + endpoint: + path: /get-invoice + method: GET + data_selector: invoices + params: {} +- name: subscription_pricing + endpoint: + path: /api/v1/subscription_pricing + method: GET + data_selector: plans + params: {} +- name: teams + endpoint: + path: /api/teams + method: GET + data_selector: members +- name: shop_catalog + endpoint: + path: /api/shop/catalog + method: GET +- name: cart + endpoint: + path: /api/cart + method: GET +- name: policies_faqs + endpoint: + path: /api/policies_faqs + method: GET +- name: product_details + endpoint: + path: /api/product/details + method: GET +- name: invoice + endpoint: + path: /get-invoice + method: GET + data_selector: invoices + params: {} +- name: shopify_ai_action + endpoint: + path: /api/shopify-ai-action + method: POST + data_selector: actions +- name: TYPO3 Chatbot + endpoint: + path: /api/v1/chatbot + method: POST + data_selector: response + params: {} +- name: Big Cartel Chatbot + endpoint: + path: /embed/integrate + method: POST +- name: october_cms_chatbot + endpoint: + path: /chatbot/october_cms + method: POST + data_selector: chatbot_response +- name: content_import + endpoint: + path: /import/content + method: POST + data_selector: imported_content +- name: AI Chatbot + endpoint: + path: /ai/chatbot + method: GET +- name: Live Chat + endpoint: + path: /live/chat + method: GET +notes: +- API Beta Version +- Uses OAuth2 with refresh token — requires setup of connected app in api +- API is currently in its beta phase +- API is currently in its beta phase. Unforeseen issues may occur. +- API is currently in its beta phase. +- 'New models added: Claude Sonnet 4, Grok 4, Sonnet 3.5, and Sonnet 3.7' +- Requires setup of connected app in LiveChatAI +- 95 languages, 24/7 support, and endless learning +- LiveChatAI connects directly to your business knowledge — websites, help docs, PDFs, + and even live databases. +- Your satisfaction is our priority. +- Join our Discord community to get support. +- LiveChatAI is a no-code AI chatbot platform that helps businesses create, train, + and launch intelligent assistants in minutes. +- LiveChatAI blends large language models (LLMs) like GPT-4o with your company’s own + data. +- Combine AI-powered automation with human support +- Chatbot handles the first response and can escalate to human agents +- 24/7 instant support from AI +- Seamless handoff to real agents +- Reduced ticket load for common queries +- High-touch assistance for complex or sensitive cases +- Uses OAuth2 for integration. +- LiveChatAI is tailored to provide answers that are specific to your content. +- Modern AI systems like LiveChatAI can be tailored to reflect a brand's voice and + values, allowing for more personalized and empathetic interactions. +- Implementing an AI chatbot doesn’t have to be a complex process. +- AI chatbots require substantial data, guidelines, and continuous feedback to learn + and improve. +- While AI-powered systems strive for accuracy, their success rate depends on the + quality and comprehensiveness of the content they're trained on. +- AI Chat systems can be scalable and accessible to businesses of all sizes, from + small startups to large enterprises. +- Each chatbot has a unique data-id. Copy the new snippet after creating or cloning + a chatbot. +- Load asynchronously to ensure page performance isn’t impacted. +- API Access is available for Advanced & Expert plans only. +- White-Label Branding is available for Expert plan only. +- Start with your support center or FAQ pages—these usually answer 70 % of user questions + right away. +- Up to 2000 pages per crawl for Website data source +- 5 MB each, one file per upload for Files data source +- AI Boost is applied automatically to every crawled page. +- Crawling runs in the background, so you can continue working elsewhere in the dashboard. +- Text snippets let you drop short, free-form content directly into your chatbot’s + knowledge base—perfect for policies, feature notes, or any information that doesn’t + live on a public page or document. +- One topic per snippet — Easier to update without unintended side-effects. +- Use clear titles — Quickly locate the right snippet later. +- Keep it concise — Short, focused passages improve retrieval accuracy. +- Review often — Remove or update outdated policies and notes. +- Upload one file at a time via Browse. +- PDFs must be selectable text; image-only PDFs will not import. +- Text must be selectable—scanned image-only PDFs will not import. +- If a PDF is over 5 MB, split it into sections and upload separately. +- Both the Question and Answer text count toward this limit. +- Both the Question and Answer text count toward the character limit. +- Keep reviewing, keep updating, and your AI chatbot will keep delighting users. +- Deleting a source immediately removes it from the model; re-crawl if you still need + part of the content. +- Ensure images are hosted on a reliable server to maintain accessibility. +- Optimize image size for faster loading without compromising quality. +- Transcripts cannot be edited in place. If a video changes or captions need corrections, + delete the source and add the updated link again. +- Once content is extracted from your Notion pages, it cannot be edited directly within + LiveChatAI. +- If you make changes to your Notion pages, you'll need to re-extract and retrain + the content from the beginning to update it in your AI chatbot data sources. +- LiveChatAI automatically surfaces weak or unclear answers under the AI Suggestions + tab. +- Weekly Site Sync is available as an add-on for $29/month in addition to your plan. +- Weekly Site Sync keeps your chatbot’s knowledge updated automatically. +- AI Boost is automatically applied to all website content you add to LiveChatAI—no + extra setup needed. +- Since AI Boost adds detail, it may use more characters per page. +- Uses AI-drafted Q&As to improve answer accuracy +- The Base Prompt is a foundational instruction that guides your chatbot’s overall + behavior and tone in every conversation. +- Whenever you change your brand voice, update major policies, or expand your data + sources, update your Base Prompt. +- 'Connect Your Own API Key: If you want to use OpenAI models with your own billing, + check the box and paste your API key.' +- Each 'Message Credit' reflects 1 user message + 1 AI reply. +- Some objects like Contact may return nulls in deeply nested fields +- Customize every aspect of how your chatbot appears and behaves on your site. +- For additional help or troubleshooting with Conversation Flow settings, email support@livechatai.com. +- The Chat Inbox & AI Chat History feature provides comprehensive insights and control + over both AI and human-based conversations. +- It's designed to enhance collaboration between agents while ensuring that users + continue to receive seamless support. +- These customization options provide flexibility and control over the appearance + and behavior of the LiveChatAI messenger on your site. +- White Label Option available for Expert plan users. +- For Pro and Advanced plans, logo will be merged with the LiveChatAI logo. +- Contact Attributes are not used directly in chatbot responses but play a critical + role in user segmentation and authentication workflows. +- Always call identify before chatbot initialization +- Enable the 'White Label' toggle to remove the 'Powered by LiveChatAI' text from + your chat widget. +- For Expert plan users, fully customize the widget by replacing the LiveChatAI logo + with your own brand logo. +- For Pro and Advanced plans, your logo will be merged with the LiveChatAI logo, creating + a collaborative look. +- Keep in mind that you need to enter the API Key with the Bearer *** part. +- Make sure attribute keys already exist in your dashboard +- Avoid sending sensitive user data like passwords or personal identifiers +- With LiveChatAI’s new WhatsApp Integration, you can run your AI chatbot directly + on WhatsApp. +- A paid plan is required to unlock this feature. +- Each AI bot can be connected to only one Slack workspace to ensure messages are + correctly routed. +- If you want to connect multiple bots, repeat the process separately for each one. +- You can toggle on just one language at a time. +- Changes do not affect the AI response language but the interface within the chat + box. +- LiveChatAI supports mobile app integration through a WebView component. +- Make sure your WebView allows JavaScript execution and external URL access. +- LiveChatAI provides a robust feature enabling you to customize the appearance of + chat box elements using your own CSS styles. +- Integrate LiveChatAI with WhatsApp for Automated Messaging +- Currently, the LiveChatAI OpenAPI AI Actions does not support OAuth authentication. +- Offers users a direct and immediate path to relevant pages or flows +- Automatically attaches tracking parameters to any URL you choose +- Be specific in the condition field to avoid unnecessary triggers +- Name your AI Actions clearly so they’re easy to manage later +- Make sure your Calendly event is active and configured correctly +- AI Actions help your chatbot go from smart to powerful — turning everyday messages + into meaningful outcomes. +- Integration with Make.com allows for automation of tasks. +- Webhook URLs must be copied and pasted from Make.com to LiveChatAI. +- Uses OAuth2 +- API key is required to connect LiveChatAI with Zapier. +- Automatically send messages to a Slack channel when a user reports a specific issue +- Custom MCP requires the MCP server to support SSE (Server-Sent Events) protocol. +- Data exchange is secure and customizable with your authentication method. +- This is ideal for technical teams looking to unlock deeper automation via their + backend. +- Contacts are available on all plans, including the Free plan. +- The Segments feature is available only on the Enterprise Plan. +- To activate it, contact sales@livechatai.com. +- You can only access analytics on the dashboard section at this time. +- Advanced Analytics is part of the Expert plan. +- Your files are automatically deleted after they've been added to AskAI unless you + explicitly instruct us otherwise. +- All uploaded content is stored in isolated containers, ensuring no unauthorized + access. +- We encrypt all data at rest (AES-256) and in transit, providing robust protection. +- Your data is only used to service API calls or for customer support at your explicit + request. +- Only you can see your documents or any content you've uploaded to LiveChatAI. +- We only store the text extracted from your documents and web pages, not the actual + files themselves. +- GDPR compliance includes data protection principles and practices. +- Advanced Analytics works best when you’ve had enough chat volume. +- The Advanced Analytics section is part of the Expert plan. +- Regular security audits and compliance. +- Our servers are located in the EU on Amazon Web Services. +- LiveChatAI is committed to protecting your privacy. We use advanced encryption and + security measures to ensure that your data is safe. +- We comply with GDPR and other data protection regulations. +- You have the right to request a full refund within 15 days of a monthly subscription + or 30 days of an annual subscription, with no need for an explanation. +- Refunds are issued to the original payment method. +- API keys created for Pro plan accounts are exclusively for use with AI actions. +- Agencies can create sub-workspaces for each client. +- The total message quota applies to all sub-workspaces combined. +- Quotas are not pre-allocated but dynamically used based on activity. +- Shopify integration enables the bot to act on store data. +- Upon the cancellation of your subscription, it is imperative to acknowledge that + no refunds or exchanges will be extended for any unused subscription duration, licensing + or subscription fees, any content or data associated with your account, or any other + facets of the service. +- Invoices are generated based on the information you provided on the billing page. +- No coding skills are required to customize your chatbot on LiveChatAI. The platform + provides a wide range of customization options that can be adjusted through a simple, + no-code interface. +- Absolutely free to start creating your ikas chatbot. +- Webflow chatbot powered by LiveChatAI is available 24/7. +- The TYPO3 chatbot can handle multiple languages. +- Personalization of the chatbot based on user behavior is possible. +- LiveChatAI allows for full customization to ensure the chatbot fits seamlessly with + your brand's look and feel. +- Wix chatbots powered by LiveChatAI are optimized for the Wix ecosystem, ensuring + smooth integration and functionality. +- TYPO3 chatbot can handle multiple languages. +- The chatbot can process transactions or bookings directly. +- October CMS chatbots are highly customizable. +- Many chatbot platforms offer intuitive interfaces that allow non-developers to create + and integrate chatbots without writing code. +- Chatbots designed for Wix with LiveChatAI are optimized to ensure minimal impact + on website performance and speed. +- Provide instant, 24/7 support to answer customer questions, reducing wait times + and improving satisfaction. +- Utilize the chatbot to recommend products, upsell, and cross-sell, directly influencing + your store's conversion rates. +- Chatbots can escalate conversations to human agents if they can't handle complex + queries. +- Drupal chatbots can be extensively customized in terms of appearance and functionality + to align with your website’s branding and user interface. +- The chatbot uses NLP to interpret user queries and machine learning to improve response + accuracy over time based on interactions. +- Joomla chatbots are designed with privacy and security in mind, adhering to data + protection regulations and ensuring user data is handled securely. +- Integration with WooCommerce requires an Open API access. +- Vercel chatbots can be integrated with a wide range of services and APIs, enhancing + functionality and allowing for seamless data flow between platforms. +- Chatbots on Vercel can be fully customized in appearance and tone to align with + your brand identity and communication style. +- Vercel chatbots adhere to strict privacy and security standards, ensuring user data + is handled responsibly and in compliance with relevant regulations. +- Integration with WooCommerce requires access to the WooCommerce admin panel. +- LiveChatAI offers customization options such as messenger working hours, widgets, + and more to align with your brand and specific customer support needs. +- LiveChatAI can scrape content from various sources for instant activation. +- LiveChatAI continues to learn and improve over time. +- LiveChatAI crawls your website to import content. +- You can submit a sitemap, and LiveChatAI will only crawl and get content from the + URLs provided in your sitemap. +- On average, it takes 5 minutes to import. +- Supports 95 languages +- LiveChatAI supports 95 languages, allowing customers to receive support in their + preferred language. +- LiveChatAI adheres to strict security policies and privacy guidelines, ensuring + that all interactions are protected, and customer data is handled with care. +- LiveChatAI supports 95 languages, allowing you to cater to a diverse customer base. +- LiveChatAI supports 95 languages. +errors: +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'FILE_SIZE_EXCEEDED: Ensure file is ≤ 5 MB.' +- 'TEXT_NOT_SELECTABLE: Check if the text in the PDF is selectable.' +- 'PDF_FAILED: Check size (≤ 5 MB) and make sure the text is selectable.' +- Unlisted videos work; private videos do not. +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider +client: + base_url: https://help.livechatai.com + auth: + type: oauth2 + flow: refresh_token +source_metadata: null diff --git a/luanti/luanti-docs.md b/luanti/luanti-docs.md new file mode 100644 index 00000000..0f5c5c02 --- /dev/null +++ b/luanti/luanti-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Value Noise Map data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def value_noise_map_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "core.get_value_noise_map/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + box,,fuel,,nodes + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='value_noise_map_migration_pipeline', + destination='duckdb', + dataset_name='value_noise_map_migration_data', + ) + # Load the data + load_info = pipeline.run(value_noise_map_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from value_noise_map_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Resource Management: Handles various resources such as boxes, fuel, nodes, and more. +- Configuration Settings: Allows for adjustments of various settings, including privileges and decorations. +- Item Management: Deals with items and their attributes, such as aliases and cooking methods. + +You will then debug the Value Noise Map pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Value Noise Map support. + ```shell + dlt init dlthub:value_noise_map_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Value Noise Map API, as specified in @value_noise_map_migration-docs.yaml + Start with endpoints box and and skip incremental loading for now. + Place the code in value_noise_map_migration_pipeline.py and name the pipeline value_noise_map_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python value_noise_map_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The HTTP API requires API key authentication. It is crucial to ensure that permissions are correctly configured in secure.http_mods or secure.trusted_mods. + + To get the appropriate API keys, please visit the original source at https://www.example.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python value_noise_map_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline value_noise_map_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset value_noise_map_migration_data + The duckdb destination used duckdb:/value_noise_map_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline value_noise_map_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("value_noise_map_migration_pipeline").dataset() + # get o table as Pandas frame + data.o.df().head() + ``` + +## Running into errors? + +Ensure that the necessary permissions are set in secure.http_mods or secure.trusted_mods. Server management functions are restricted to authorized modules only. Be cautious with texture scaling options as they may lead to quality issues if not handled properly. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/luanti/luanti-docs.yaml b/luanti/luanti-docs.yaml new file mode 100644 index 00000000..4e0af4c8 --- /dev/null +++ b/luanti/luanti-docs.yaml @@ -0,0 +1,403 @@ +resources: +- name: mod_channel_join + endpoint: + path: /mod_channel_join + method: GET + data_selector: ModChannel + params: {} +- name: get_inventory + endpoint: + path: /get_inventory + method: GET + data_selector: InvRef + params: {} +- name: create_detached_inventory + endpoint: + path: /create_detached_inventory + method: POST + data_selector: InvRef + params: {} +- name: remove_detached_inventory + endpoint: + path: /remove_detached_inventory + method: DELETE + data_selector: boolean + params: {} +- name: do_item_eat + endpoint: + path: /do_item_eat + method: POST + data_selector: ItemStack + params: {} +- name: server_shutdown + endpoint: + path: /core/request_shutdown + method: GET + data_selector: response + params: {} +- name: server_status + endpoint: + path: /core/get_server_status + method: GET + data_selector: response + params: {} +- name: player_management + endpoint: + path: /core/remove_player + method: POST + data_selector: response + params: {} +- name: mapgen_aliases + endpoint: + path: /aliases + method: GET + data_selector: aliases +- name: nodes + endpoint: + path: /nodes + method: GET + data_selector: nodes +- name: flag_specifier_format + endpoint: + path: /flag-specifier-format + method: GET + data_selector: flags +- name: items + endpoint: + path: /items + method: GET + data_selector: items + params: {} +- name: tabheader + endpoint: + path: /tabheader + method: GET +- name: box + endpoint: + path: /box + method: GET +- name: dropdown + endpoint: + path: /dropdown + method: GET +- name: checkbox + endpoint: + path: /checkbox + method: GET +- name: scrollbar + endpoint: + path: /scrollbar + method: GET +- name: table + endpoint: + path: /table + method: GET +- name: fractal_value_noise + endpoint: + path: /fractal-value-noise + method: GET + data_selector: NoiseParams + params: {} +- name: schematic_specifier + endpoint: + path: /schematics/specifier + method: GET + data_selector: schematics +- name: schematic_attributes + endpoint: + path: /schematics/attributes + method: GET + data_selector: attributes +- name: registered_entities + endpoint: + path: /registered-definitions/ + method: GET +- name: tree_definition + endpoint: + path: /l-system/trees + method: POST + data_selector: treedef + params: {} +- name: registered_entities + endpoint: + path: /registered-definitions/ + method: GET + data_selector: luaentity +- name: privileges + endpoint: + path: /privileges + method: GET + data_selector: records +- name: tree_definition + endpoint: + path: /l-system/trees + method: GET + data_selector: treedef + params: {} +- name: Node Metadata + endpoint: + path: /core/get_meta + method: GET + data_selector: metadata + params: {} +- name: Node Timer + endpoint: + path: /core/get_node_timer + method: GET + data_selector: timer + params: {} +- name: privileges + endpoint: + path: /privileges + method: GET + data_selector: privilege_list +- name: NodeTimerRef + endpoint: + path: /core/get_node_timer + method: GET + data_selector: methods + params: {} +- name: ObjectRef + endpoint: + path: /core/get_meta + method: GET + data_selector: methods + params: {} +- name: methods + endpoint: + path: /methods + method: GET + data_selector: methods + params: {} +- name: ObjectRef + endpoint: + path: /ObjectRef + method: GET + data_selector: override_table + params: {} +- name: tile_animation_vertical_frames + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: tile_animation_sheet_2d + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: blend_mode + endpoint: + path: /blend_mode + method: GET + data_selector: blend + params: {} +- name: color_stops + endpoint: + path: /color_stops + method: GET + data_selector: color_stops + params: {} +- name: crafting_recipes + endpoint: + path: /crafting_recipes + method: GET + data_selector: recipes + params: {} +- name: shaped_recipes + endpoint: + path: /shaped_recipes + method: GET + data_selector: shaped + params: {} +- name: shapeless_recipes + endpoint: + path: /shapeless_recipes + method: GET + data_selector: shapeless + params: {} +- name: tool_repair + endpoint: + path: /tool_repair + method: GET + data_selector: tool_repair + params: {} +- name: cooking + endpoint: + path: /cooking + method: GET + data_selector: cooking + params: {} +- name: fuel + endpoint: + path: /fuel + method: GET + data_selector: fuel + params: {} +- name: ore_definition + endpoint: + path: /ore_definition + method: GET + data_selector: ore + params: {} +- name: biome_definition + endpoint: + path: /biome_definition + method: GET + data_selector: biome + params: {} +- name: tile_animation_definition + endpoint: + path: /tile/animation + method: POST + data_selector: type + params: + aspect_w: 16 + aspect_h: 16 + length: 3.0 +- name: item_definition + endpoint: + path: /item/definition + method: POST + data_selector: description + params: + stack_max: 99 + range: 4.0 + liquids_pointable: false + node_dig_prediction: air +- name: decoration + endpoint: + path: /decoration + method: GET + data_selector: '' + params: {} +- name: Crafting recipes + endpoint: + path: /crafting/recipes + method: GET +- name: Ore definition + endpoint: + path: /ore/definition + method: GET +- name: Biome definition + endpoint: + path: /biome/definition + method: GET +- name: decoration_definition + endpoint: + path: /decoration_definition + method: GET + data_selector: deco_type + params: {} +- name: chat_command_definition + endpoint: + path: /chat_command_definition + method: GET + data_selector: params + params: {} +- name: privilege_definition + endpoint: + path: /privilege_definition + method: GET + data_selector: description + params: {} +- name: detached_inventory_callbacks + endpoint: + path: /detached_inventory_callbacks + method: GET + data_selector: allow_move + params: {} +- name: hud_definition + endpoint: + path: /hud_definition + method: GET + data_selector: type + params: {} +- name: particle_definition + endpoint: + path: /particle_definition + method: GET + data_selector: pos + params: {} +- name: particlespawner_definition + endpoint: + path: /particlespawner_definition + method: GET + data_selector: amount + params: {} +- name: HTTPRequest + endpoint: + path: /httprequest + method: GET + data_selector: data + params: {} +- name: HTTPRequestResult + endpoint: + path: /httprequestresult + method: GET + data_selector: data + params: {} +- name: AuthenticationHandler + endpoint: + path: /authenticationhandler + method: GET + data_selector: data + params: {} +notes: +- The HTTP API requires permissions set in secure.http_mods or secure.trusted_mods +- Server management functions can be called by authorized mods only +- Luanti generally uses nearest-neighbor upscaling for textures to preserve the crisp + look of pixel art (low-res textures). +- Users can optionally enable bilinear and/or trilinear filtering. However, to avoid + everything becoming blurry, textures smaller than 192px will either not be filtered, + or will be upscaled to that minimum resolution first without filtering. +- When using palettes, you always provide a pixel index for the given node or ItemStack. +- The palette is read from left to right and from top to bottom. +- If the palette has less than 256 pixels, then it is stretched to contain exactly + 256 pixels (after arranging the pixels to one line). +- Craft recipes only support item strings, but fortunately item strings can also contain + metadata. +- Only Ogg Vorbis files are supported. +- For positional playing of sounds, only single-channel (mono) files are supported. +- 'Important note: This syntax for tabheaders can only be used with the new coordinate + system.' +- 'Important note: This syntax for dropdowns can only be used with the new coordinate + system.' +- All numeric fields above modify a corresponding movement_* setting. +- For games, we recommend for simpler code to first modify the movement_* settings + (e.g. via the game's minetest.conf) to set a global base value for all players and + only use set_physics_override when you need to change from the base value on a per-player + basis. +- Some of the fields don't exist in old API versions, see feature physics_overrides_v2. +- This value has no effect on clients who have shaders or post-processing disabled. +- This has no effect on clients who have the "Dynamic Shadows" effect disabled. +- This has no effect on clients who have the "Automatic Exposure" effect disabled. +- This has no effect on clients with protocol version < 46 or clients who have the + "Bloom" effect disabled. +- This has no effect on clients who have the "Volumetric Lighting" or "Bloom" effects + disabled. +- Objects should be released after control returns to the engine to avoid errors. +- These require the mapgen environment to be initialized, do not use at load time. +- Wear Bar is a property of items that defines the coloring of the bar that appears + under damaged tools. +- If it is absent, the default behavior of green-yellow-red is used. +- This has no effect on clients who have the 'Dynamic Shadows' effect disabled. +- This has no effect on clients who have the 'Automatic Exposure' effect disabled. +- This has no effect on clients with protocol version < 46 or clients who have the + 'Bloom' effect disabled. +- This has no effect on clients who have the 'Volumetric Lighting' or 'Bloom' effects + disabled. +- '''Wear Bar'' is a property of items that defines the coloring of the bar that appears + under damaged tools.' +- Used by core.register_decoration +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +errors: [] +auth_info: + mentioned_objects: [] +client: + base_url: core.get_value_noise_map + headers: + Accept: application/json +source_metadata: null diff --git a/marklogic_optic_api/marklogic-optic-api-docs.md b/marklogic_optic_api/marklogic-optic-api-docs.md new file mode 100644 index 00000000..50a1a63b --- /dev/null +++ b/marklogic_optic_api/marklogic-optic-api-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete MarkLogic data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def marklogic_data_hub_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.progress.com/marklogic/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + mesh,,tags,,optic + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='marklogic_data_hub_migrations_pipeline', + destination='duckdb', + dataset_name='marklogic_data_hub_migrations_data', + ) + # Load the data + load_info = pipeline.run(marklogic_data_hub_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from marklogic_data_hub_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- General: General information about the API and its capabilities. +- Data Management: Handles data ingestion, export, and transformation. +- Search: Provides endpoints for searching through data using various criteria. +- Queries: Includes advanced querying options using SPARQL and the Optic API. + +You will then debug the MarkLogic pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with MarkLogic support. + ```shell + dlt init dlthub:marklogic_data_hub_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for MarkLogic API, as specified in @marklogic_data_hub_migrations-docs.yaml + Start with endpoints mesh and and skip incremental loading for now. + Place the code in marklogic_data_hub_migrations_pipeline.py and name the pipeline marklogic_data_hub_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python marklogic_data_hub_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The MarkLogic Data Hub utilizes OAuth2 for authentication, requiring a connected app setup to obtain access tokens. + + To get the appropriate API keys, please visit the original source at https://www.progress.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python marklogic_data_hub_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline marklogic_data_hub_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset marklogic_data_hub_migrations_data + The duckdb destination used duckdb:/marklogic_data_hub_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline marklogic_data_hub_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("marklogic_data_hub_migrations_pipeline").dataset() + # get es table as Pandas frame + data.es.df().head() + ``` + +## Running into errors? + +Be aware that the Data Hub requires proper setup of connected apps for OAuth2, and the handling of user credentials must be secured. The API is sensitive to authentication errors, and any misuse could lead to throttling or access denials. Additionally, ensure that all relevant licenses are obtained for specific features, particularly around semantics and security. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/marklogic_optic_api/marklogic-optic-api-docs.yaml b/marklogic_optic_api/marklogic-optic-api-docs.yaml new file mode 100644 index 00000000..7d8aa59e --- /dev/null +++ b/marklogic_optic_api/marklogic-optic-api-docs.yaml @@ -0,0 +1,857 @@ +resources: +- name: IngestArticles + endpoint: + path: /data/articles + method: POST + data_selector: records + params: + targetDatabase: data-hub-STAGING + outputFormat: xml + permissions: data-hub-operator,read,data-hub-operator,update +- name: PubMedMapping + endpoint: + path: /data/pubmed/ + method: POST + data_selector: records + params: + targetDatabase: data-hub-FINAL + outputFormat: xml + permissions: data-hub-operator,read,data-hub-operator,update +- name: PubMedArticles + endpoint: + path: /data/articles + method: IMPORT + data_selector: PubmedArticle + params: + output_uri_prefix: /data/pubmed/ + output_uri_suffix: .xml + output_collections: IngestArticles + output_permissions: data-hub-operator,read,data-hub-operator,update + input_compression_codec: gzip + input_compressed: true +- name: MeSH + endpoint: + path: /data/mesh/mesh.nt + method: IMPORT + data_selector: Mesh + params: + output_graph: http://id.nlm.nih.gov/mesh/2020 + output_permissions: data-hub-operator,read,data-hub-operator,update +- name: PubmedArticle + endpoint: + path: /PubmedArticle/MedlineCitation/MeshHeadingList/MeshHeading/DescriptorName + method: GET + data_selector: triples + params: {} +- name: article + endpoint: + path: /search + method: POST + data_selector: results + params: + limit: 100 +- name: rows + endpoint: + path: /v1/rows + method: POST + data_selector: rows + params: + column-types: header +- name: IngestArticles + endpoint: + path: /data/article + method: POST + data_selector: records + params: {} +- name: PubMedMapping + endpoint: + path: /data/pubmed + method: GET + data_selector: records + params: {} +- name: search_articles + endpoint: + path: /services/data/v1/articles + method: GET + data_selector: results + params: + meshDesc: http://id.nlm.nih.gov/mesh/D003920 + year: 1970 + wordQuery: research + limit: 100 +- name: rows + endpoint: + path: /v1/rows + method: POST + data_selector: rows + params: + column-types: header +- name: PubMedArticles + endpoint: + path: data/articles + method: IMPORT + data_selector: PubmedArticle + params: + uri_id: PMID + output_uri_prefix: /data/pubmed/ + output_uri_suffix: .xml + output_collections: IngestArticles + output_permissions: data-hub-operator,read,data-hub-operator,update + input_compression_codec: gzip + input_compressed: true +- name: MeSH + endpoint: + path: data/mesh/mesh.nt + method: IMPORT + data_selector: null + params: + output_graph: http://id.nlm.nih.gov/mesh/2020 + output_permissions: data-hub-operator,read,data-hub-operator,update +- name: search + endpoint: + path: /optic + method: POST + data_selector: results + params: + year: 1970 + wordQuery: research + limit: 100 +- name: articles + endpoint: + path: /sparql + method: POST + data_selector: results.bindings + params: + query: SELECT ?label ?descriptor ?articleId WHERE { ?descriptor meshv:broaderDescriptor* + mesh:D003920 . ?descriptor rdfs:label ?label . ?articleId dct:references ?descriptor + } +- name: rows + endpoint: + path: /v1/rows + method: POST + data_selector: rows + params: + column-types: header +- name: rows + endpoint: + path: /v1/rows + method: POST + data_selector: rows + params: + column-types: header +- name: home_insurance + endpoint: + path: /data/home/home.csv + method: POST + data_selector: records +- name: auto_insurance + endpoint: + path: /data/auto/ + method: POST + data_selector: records +- name: HubArticle + endpoint: + path: / + method: GET + data_selector: records +- name: home_insurance + endpoint: + path: /services/data/vXX.X/sobjects/HomeInsurance + method: POST + data_selector: records + params: {} +- name: auto_insurance + endpoint: + path: /services/data/vXX.X/sobjects/AutoInsurance + method: POST + data_selector: records + params: {} +- name: rows + endpoint: + path: /v1/rows + method: POST + data_selector: rows +- name: loadHome + endpoint: + path: /quickstart-tutorial/data/home/ + method: POST + data_selector: records + params: {} +- name: loadAuto + endpoint: + path: /quickstart-tutorial/data/auto/ + method: POST + data_selector: records + params: {} +- name: article + endpoint: + path: /articles + method: GET + data_selector: records +- name: mesh + endpoint: + path: /mesh + method: GET + data_selector: records +- name: Customer + endpoint: + path: /services/data/hub/Customer + method: GET + data_selector: instance + params: {} +- name: rows + endpoint: + path: /v1/rows + method: POST + data_selector: rows + params: + column-types: header +- name: home_insurance + endpoint: + path: /path/to/home_insurance + method: POST + data_selector: data + params: {} +- name: auto_insurance + endpoint: + path: /path/to/auto_insurance + method: POST + data_selector: data + params: {} +- name: loadHome + endpoint: + path: /quickstart-tutorial/data/home/ + method: POST + data_selector: documents + params: + source_format: Delimited Text + field_separator: ',' + target_format: JSON + target_uri_replacement: ^.*,'/customer/home' +- name: loadAuto + endpoint: + path: /quickstart-tutorial/data/auto/ + method: POST + data_selector: documents + params: + source_format: JSON + target_format: JSON + target_uri_replacement: ^.*/auto,'/customer/auto' +- name: Customer + endpoint: + path: /customer + method: GET + data_selector: records +- name: performance_metrics + endpoint: + path: /api/performance_metrics + method: GET + data_selector: metrics +- name: Contributors + endpoint: + path: /MarkLogic/optic + method: GET + data_selector: rows +- name: contributors + endpoint: + path: /samplestack/contributors + method: GET + data_selector: records +- name: QnA + endpoint: + path: /samplestack/QnA + method: GET + data_selector: records +- name: contributors + endpoint: + path: /samplestack/contributors + method: GET + data_selector: records + params: {} +- name: qna + endpoint: + path: /samplestack/qna + method: GET + data_selector: records + params: {} +- name: qna + endpoint: + path: /samplestack/qna + method: GET +- name: contributors + endpoint: + path: /samplestack/contributors + method: GET +- name: contributors + endpoint: + path: /fromView/samplestack/contributors + method: GET + data_selector: result +- name: lexicons + endpoint: + path: /fromLexicons + method: GET + data_selector: result +- name: import + endpoint: + path: /mlcp/import + method: POST + data_selector: results + params: + host: localhost + port: 8006 + username: user + password: '*******' + input_file_path: /data/latest +- name: export + endpoint: + path: /mlcp/export + method: POST + data_selector: results + params: + host: localhost + port: 8006 + username: user + password: '*******' + output_type: archive + output_file_path: /out/collections + compress: true +- name: Contributors + endpoint: + path: /com.marklogic.samplestack.domain.Contributor + method: GET + data_selector: rows + params: {} +- name: QnA + endpoint: + path: /owner + method: GET + data_selector: rows + params: + directories: + - /questions/ +- name: Answers + endpoint: + path: /answers/id + method: GET + data_selector: rows + params: + directories: + - /questions/ +- name: QTag + endpoint: + path: /tags + method: GET + data_selector: rows + params: + directories: + - /questions/ +- name: Contributors + endpoint: + path: /v1/Contributors + method: GET + data_selector: records +- name: contributors + endpoint: + path: /samplestack/contributors + method: GET + data_selector: records +- name: QnA + endpoint: + path: /samplestack/QnA + method: GET + data_selector: records +- name: contributors + endpoint: + path: /samplestack/contributors + method: GET + data_selector: records + params: {} +- name: qna + endpoint: + path: /samplestack/qna + method: GET + data_selector: records + params: {} +- name: matches + endpoint: + path: /tde/dowRowTemplate.json + method: POST + data_selector: rows + params: {} +- name: qna + endpoint: + path: /samplestack/qna + method: GET + data_selector: records +- name: contributors + endpoint: + path: /samplestack/contributors + method: GET + data_selector: records +- name: match + endpoint: + path: /soccer/match/{id} + method: GET + data_selector: match + params: {} +- name: contributors + endpoint: + path: /MarkLogic/optic/contributors + method: GET + data_selector: result + params: {} +- name: person + endpoint: + path: /MarkLogic/optic/person + method: GET + data_selector: result + params: {} +- name: matches + endpoint: + path: /soccer/match + method: GET + data_selector: row + params: {} +- name: matches + endpoint: + path: /match + method: GET + data_selector: records +- name: import + endpoint: + path: /mlcp/import + method: POST + data_selector: import + params: + host: localhost + port: '8006' + username: user + password: '*******' + input_file_path: /data/latest +- name: export + endpoint: + path: /mlcp/export + method: POST + data_selector: export + params: + host: localhost + port: '8006' + username: user + password: '*******' + output_type: archive + output_file_path: /out/collections + compress: 'true' +- name: triples_template + endpoint: + path: /test/my-triples-template.xml + method: POST + data_selector: template +- name: node_data_extract_json + endpoint: + path: /soccer/match/{id}.json + method: GET + data_selector: row +- name: node_data_extract_xml + endpoint: + path: /soccer/match/{id}.xml + method: GET + data_selector: row +- name: Contributors + endpoint: + path: /com.marklogic.samplestack.domain.Contributor/sou2932488.json + method: GET + data_selector: records +- name: QnA + endpoint: + path: /questions/soq8790752.json + method: GET + data_selector: records +- name: Answers + endpoint: + path: /answers/id + method: GET + data_selector: records +- name: QTag + endpoint: + path: /tags + method: GET + data_selector: records +- name: matches + endpoint: + path: /tde/dowRowTemplate.json + method: POST + data_selector: rows + params: {} +- name: matches + endpoint: + path: /soccer/match/{id} + method: GET + data_selector: row + params: + collections: source1 +- name: match + endpoint: + path: /soccer/match/1234567.json + method: POST + data_selector: match + params: {} +- name: matches + endpoint: + path: /soccer/match/{id}.json + method: GET + data_selector: row + params: {} +- name: matches + endpoint: + path: /soccer/match/{id}.json + method: GET + data_selector: row.data +- name: matches + endpoint: + path: /match + method: GET + data_selector: rows + params: {} +- name: myTriplesTemplate + endpoint: + path: /test/my-triples-template.xml + method: POST + data_selector: template + params: {} +- name: TDE Extraction + endpoint: + path: /xdmp/document-get + method: GET + data_selector: triple + params: {} +- name: my-second-TDE + endpoint: + path: /test/mySecondTDE.json + method: POST + data_selector: rows + params: {} +- name: my-second-TDE-xml + endpoint: + path: /test/my-second-TDE.xml + method: POST + data_selector: rows + params: {} +- name: myTriplesTemplate + endpoint: + path: /test/myTriplesTemplate.json + method: POST + data_selector: triples + params: {} +- name: myTriplesTemplate-xml + endpoint: + path: /test/my-triples-template.xml + method: POST + data_selector: triples + params: {} +- name: myTriplesTemplate + endpoint: + path: /MarkLogic/tde.xqy + method: GET + data_selector: template +- name: myTriplesTemplate + endpoint: + path: /test/myTriplesTemplate.json + method: POST + data_selector: template + params: {} +- name: template + endpoint: + path: /tde/Template.xml + method: GET + data_selector: records + params: {} +- name: optic_api + endpoint: + path: /optic + method: GET + data_selector: result + params: {} +- name: Contributors + endpoint: + path: /samplestack/Contributors + method: GET + data_selector: records +- name: QnA + endpoint: + path: /samplestack/QnA + method: GET + data_selector: records +- name: contributors + endpoint: + path: /samplestack/contributors + method: GET + data_selector: records +- name: qna + endpoint: + path: /samplestack/qna + method: GET + data_selector: records +- name: person + endpoint: + path: /optic/person + method: GET + data_selector: result + params: {} +- name: match + endpoint: + path: /soccer/match + method: POST + data_selector: match + params: {} +- name: Contributors + endpoint: + path: /com.marklogic.samplestack.domain.Contributor + method: GET + data_selector: rows + params: {} +- name: QnA + endpoint: + path: /owner + method: GET + data_selector: rows + params: + directories: + - /questions/ +- name: Answers + endpoint: + path: /answers/id + method: GET + data_selector: rows + params: + directories: + - /questions/ +- name: QTag + endpoint: + path: /tags + method: GET + data_selector: rows + params: + directories: + - /questions/ +- name: match_json + endpoint: + path: /soccer/match/1234567.json + method: GET + data_selector: row.data + params: {} +- name: match_xml + endpoint: + path: /soccer/match/1234567.xml + method: GET + data_selector: row.data + params: {} +- name: mySecondTDE + endpoint: + path: /test/mySecondTDE.json + method: POST + data_selector: template + params: {} +- name: my-triples-template + endpoint: + path: /test/myTriplesTemplate.json + method: POST + data_selector: template + params: {} +- name: triples_template + endpoint: + path: /test/my-triples-template.xml + method: INSERT + data_selector: template +- name: myTriplesTemplate + endpoint: + path: /MarkLogic/tde.xqy + method: GET + data_selector: template +- name: tde_template + endpoint: + path: /tde/Template.xml + method: POST + data_selector: tde:template + params: {} +- name: Contributors + endpoint: + path: /fromView/Samplestack/Contributors + method: GET + data_selector: rows +- name: QnA + endpoint: + path: /fromView/Samplestack/QnA + method: GET + data_selector: rows +- name: contributors + endpoint: + path: /samplestack/contributors + method: GET + data_selector: records + params: {} +- name: qna + endpoint: + path: /samplestack/qna + method: GET + data_selector: records + params: {} +- name: person + endpoint: + path: /MarkLogic/optic + method: GET + data_selector: result +- name: Contributors + endpoint: + path: /com.marklogic.samplestack.domain.Contributor/sou2932488.json + method: GET +- name: QnA + endpoint: + path: /questions/soq8790752.json + method: GET +- name: QTag + endpoint: + path: /tags + method: GET +- name: Answers + endpoint: + path: /answers/id + method: GET +notes: +- Utilizes MLCP for data ingestion +- Supports harmonization of data into canonical models +- Supports advanced queries using SPARQL and Optic API. +- This tutorial was written for MarkLogic Data Hub v5.2. +- Uses Digest authentication +- Data can come directly from many different systems. +- Uses SPARQL for query expansion +- Support for aggregation and filtering within a single server +- The mapping step processes home and auto insurance data. +- Uses Digest authentication with user credentials +- Requires appropriate content-type header for requests +- You do not need to be a MarkLogic admin user in order to develop a MarkLogic Data + Hub. +- Search criteria includes publication year and keywords +- Uses Smart Mastering capabilities to analyze data and automatically match and merge + based on logic and the rules configured. +- Uses Data Hub Central for data integration, curation, and exploration. +- The staging database is where the raw, uncurated data lands. +- To use encryption at rest with an external key management system (KMS), you must + have an Advanced Security license key. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- The MarkLogic Data Hub is an open-source software interface that works to ingest + data from multiple sources. +- You must obtain a production release version of the Product by contacting MarkLogic + to obtain the appropriate license. +- The QuickStart tool is meant to help accelerate your ability to build out your data + hub configuration. +- Users often find themselves overwhelmed with usernames and passwords when required + to submit login credentials each time they use an application. +- Pluggable fine-grained role-based authentication and authorization +- Supports the multi-step conversion processes of applications. +- Uses OAuth2 with refresh token — requires setup of connected app in MarkLogic +- Sample code is provided on an as-is basis, and is not intended for nor supported + in production applications. +- Older versions can be found for MarkLogic Server. +- This Developer License Agreement grants a limited, non-transferable, non-exclusive, + internal use license to install, access, start and use MarkLogic software. +- Released January 2025 +- The Developer License provides all MarkLogic features, including Search HA/DR/Replication, + Government-grade Security, Alerting, Location Services, Geospatial indexing and + search, Semantics, Tiered Storage, and Transactions. +- This Developer License does not grant to You any title, right, interest or license + in and to the Product or any support, modifications, enhancements, new releases + or updates to it. +- You must not use this Developer License for purposes other than for internal use + or beyond the scope of use permitted. +- MarkLogic 11.3 is a Long Term Support (LTS) Release of MarkLogic Server. +- Field names are case insensitive but will retain the original case in returned results. +- Uses OAuth2 — requires setup of connected app in MarkLogic. +- Prior to MarkLogic Server release 9.0-4, converters/filters were bundled and automatically + installed with MarkLogic Server. Starting at MarkLogic Server release 9.0-4, converters/filters + are offered as a separate package. +- Uses Optic API for querying data +- FragmentId can be referenced and used as a column +- All MarkLogic software products are protected by United States and international + copyright, patent and other intellectual property laws. +- Ensure XDBC server is running on port 8006 +- Use the appropriate credentials for authentication +- The Optic API allows for powerful NoSQL joins and aggregates across documents. +- Explore all technical resources related to the Optic API and how it can be used + in MarkLogic. +- Learn about the Optic API, how it works and when to use it. +- Applies to MarkLogic versions 9+ +- Paging solves the problem of large result sets by requesting successive pages. +- Column names, when used on the various clauses are case insensitive. But the result + will always use character case as specified in the template by default. +- Triple Index must be on (it’s on by default in MarkLogic 9+). +- Ensure that your Documents database has its triple index enabled. +- Uses REST API to fetch match data. +- Both templates have a context of '/match'. +- Uses Template Driven Extraction for indexing +- Ensure to validate templates before insertion +- See which rows are extracted for given User & QnA documents +- Should get 1 row per User document and 3 kinds of row views over QnA documents, + including some repeating rows +- Paging solves the problem of large result sets by allowing successive requests for + pages. +- TDE enables you to define a relational lens over your document data. +- TDE is applied during indexing at ingestion time. +- Paging solves the problem of large result sets by allowing the caller to request + successive pages. +- Using point-in-time queries ensures consistent results across pages. +- Template driven extraction allows querying parts of documents using SQL. +- Ensure Documents database has its triple index enabled. +- Template is entirely independent of the documents +- Using templates allows querying parts of a document without modifying it +- Using Query Console and a few on-disk documents makes small-scale testing and development + of TDE extraction and SPARQL queries as quick as edit, save, and run. +- Uses template variables to hold the prefix while generating triples +- Requires setup of connected app in MarkLogic +- This script can also be used to enable disabled templates by changing the enabled + element constructor to true +- 'Required Indexes: range index on ''name'', range index on ''amount''' +- Optic API supports cts:query objects for advanced searching. +- Column names are case insensitive in queries but results retain their specified + case. +- We recommend that you never do a `SELECT *` with no restrictions! +- Should manage triples in collections/named graphs, so every query should include + at least a collection/named graph restriction. +- Make sure that your Documents database has its triple index enabled. +- Data is available in both JSON and XML formats. +- Uses Template Driven Extraction for content indexing. +- To use SPARQL features, a license that includes the Semantics Option is required. +- Iterates over a sequence of URIs to disable templates +- 'TDE enables you to generate rows and triples from ingested documents based on predefined + templates that describe the following: The input data to match, The data transformations + that apply to the matched data, The final data projections that are translated into + indexed data.' +errors: +- '401 Unauthorized: Recheck user credentials' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Recheck username or password' +- '401 Unauthorized: Recheck credentials' +- '400 Bad Request: Check query syntax' +- '404 Not Found: Verify endpoint URL' +- '500 Internal Server Error: Contact support' +- '401 Unauthorized: Recheck authentication credentials' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- You must immediately destroy all complete and partial copies of the Product, including + all backup copies, upon termination or expiration of this Agreement. +- '401 Unauthorized: Check username and password' +- '500 Internal Server Error: Verify server is running and accessible' +- '401 Unauthorized: Ensure your authentication details are correct.' +- 'tde-admin: Required Privilege' +- 'rest-reader: Required Privilege' +- 'tde-admin: Required privilege missing' +- 'rest-reader: Required privilege missing' +auth_info: + mentioned_objects: + - demo-user + - OauthToken +client: + base_url: https://www.progress.com/marklogic + auth: + type: oauth2 +source_metadata: null diff --git a/masteriyo_lms/masteriyo-lms-docs.md b/masteriyo_lms/masteriyo-lms-docs.md new file mode 100644 index 00000000..90eff460 --- /dev/null +++ b/masteriyo_lms/masteriyo-lms-docs.md @@ -0,0 +1,154 @@ +In this guide, we'll set up a complete Masteriyo data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def masteriyo_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://masteriyo.com/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + courses,,quizzes,,mail-logs + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='masteriyo_migrations_pipeline', + destination='duckdb', + dataset_name='masteriyo_migrations_data', + ) + # Load the data + load_info = pipeline.run(masteriyo_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from masteriyo_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Courses: Manage course-related resources. +- Quizzes: Handle quizzes and quiz attempts. +- Mail Logs: Access and manage email logs. +- Users: Manage user accounts and roles. +- Orders: Handle course orders and transactions. +- Settings: Configure various settings for the LMS. + +You will then debug the Masteriyo pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Masteriyo support. + ```shell + dlt init dlthub:masteriyo_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Masteriyo API, as specified in @masteriyo_migrations-docs.yaml + Start with endpoints courses and and skip incremental loading for now. + Place the code in masteriyo_migrations_pipeline.py and name the pipeline masteriyo_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python masteriyo_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Masteriyo uses API key-based authentication, which requires an API key to access its endpoints. Ensure the API key is included in the request headers. + + To get the appropriate API keys, please visit the original source at https://www.masteriyo.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python masteriyo_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline masteriyo_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset masteriyo_migrations_data + The duckdb destination used duckdb:/masteriyo_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline masteriyo_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("masteriyo_migrations_pipeline").dataset() + # get ourse table as Pandas frame + data.ourse.df().head() + ``` + +## Running into errors? + +Ensure you have the correct permissions for the API key, as some actions may be restricted. Be aware of rate limits to avoid exceeding requests. Make sure to check for any potential conflicts with other plugins and that the Masteriyo LMS plugin is up to date. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/masteriyo_lms/masteriyo-lms-docs.yaml b/masteriyo_lms/masteriyo-lms-docs.yaml new file mode 100644 index 00000000..90e9d622 --- /dev/null +++ b/masteriyo_lms/masteriyo-lms-docs.yaml @@ -0,0 +1,251 @@ +resources: +- name: courses_categories + endpoint: + path: /courses/categories + method: GET + data_selector: data + params: {} +- name: create_course + endpoint: + path: /courses + method: POST + data_selector: id + params: {} +- name: delete_course + endpoint: + path: /courses/{id} + method: DELETE + data_selector: id + params: {} +- name: courses + endpoint: + path: /masteriyo/v1/courses + method: GET +- name: lessons + endpoint: + path: /masteriyo/v1/lessons + method: GET +- name: questions + endpoint: + path: /masteriyo/v1/questions + method: GET +- name: quizzes + endpoint: + path: /masteriyo/v1/quizzes + method: POST +- name: sections + endpoint: + path: /masteriyo/v1/sections + method: GET +- name: orders + endpoint: + path: /masteriyo/v1/orders + method: GET +- name: users + endpoint: + path: /masteriyo/v1/users + method: GET +- name: settings + endpoint: + path: /masteriyo/v1/settings + method: GET +- name: analytics + endpoint: + path: /masteriyo/v1/analytics + method: GET +- name: Account Page Access + endpoint: + path: /faqs/account-or-dashboard-error + method: GET + data_selector: roles + params: {} +- name: Admin Dashboard Access + endpoint: + path: /faqs/account-or-dashboard-error + method: GET + data_selector: permissions + params: {} +- name: orders + endpoint: + path: /masteriyo/orders + method: POST + data_selector: order + params: {} +- name: courses + endpoint: + path: /masteriyo/courses + method: GET + data_selector: courses + params: {} +- name: course_review + endpoint: + path: /faqs/review-course-after-submission + method: GET + data_selector: course review +- name: custom_fields + endpoint: + path: /faq/how-to-create-custom-fields-in-course + method: GET + data_selector: fields + params: {} +- name: duplicate_courses + endpoint: + path: /faqs/duplicate-courses-lessons-quizes-assignments-certificates + method: GET + data_selector: content + params: {} +- name: duplicate_lessons + endpoint: + path: /faqs/duplicate-courses-lessons-quizes-assignments-certificates + method: GET + data_selector: content + params: {} +- name: duplicate_quizes + endpoint: + path: /faqs/duplicate-courses-lessons-quizes-assignments-certificates + method: GET + data_selector: content + params: {} +- name: duplicate_assignments + endpoint: + path: /faqs/duplicate-courses-lessons-quizes-assignments-certificates + method: GET + data_selector: content + params: {} +- name: duplicate_certificates + endpoint: + path: /faqs/duplicate-courses-lessons-quizes-assignments-certificates + method: GET + data_selector: content + params: {} +- name: quiz_attempt + endpoint: + path: /quiz_attempts + method: GET + data_selector: quiz_attempts +- name: checkout_fields + endpoint: + path: /masteriyo/checkout/fields + method: GET + data_selector: fields +- name: temporary_login + endpoint: + path: /plugins/temporary-login-without-password + method: GET + data_selector: plugin_data + params: {} +- name: checkout_fields + endpoint: + path: /masteriyo/checkout/fields + method: GET + data_selector: fields +- name: test_email + endpoint: + path: /test/mail + method: POST + data_selector: test_results +- name: mail_logs + endpoint: + path: /mail/logs + method: GET + data_selector: logs +- name: smtp_configuration + endpoint: + path: /smtp/configuration + method: POST + data_selector: settings + params: {} +- name: test_mail + endpoint: + path: /test-mail + method: POST + data_selector: result +- name: mail_logs + endpoint: + path: /mail-logs + method: GET + data_selector: logs +- name: student_enrollment + endpoint: + path: /faqs/how-to-enroll-students-by-instructor + method: GET +- name: quizzes + endpoint: + path: /quizzes + method: GET + data_selector: quizzes +notes: +- If deactivating and reactivating do not solve your problem, please look at the third + topic for tips on troubleshooting the issue and report it to the support team. +- Access to the Account page is restricted to certain user roles. +- The student should already be registered to the site so that any paid course can + be assigned to that student. +- Enable WP_DEBUG mode +- Enable Debug logging to the /wp-content/debug.log file +- You can edit the courses with the WordPress Editor to get access of all the features + that might have been restricted in the Block editor. +- This feature is available only in the Masteriyo LMS Pro. +- Students can review the course by clicking on the Rate this course button. +- Once you have selected the editor and saved the changes, we suggest you reload the + page to reflect the changes. +- Ensure your JavaScript code is loaded correctly and not blocked by other scripts. +- Check the browser console for any errors. +- Verify that the Masteriyo LMS plugin is up to date. +- Ensure field names are unique to avoid conflicts. +- 'Dynamic Placeholders: Preserve tags like `{user_name}`, `{course_title}`, or `{site_url}`.' +- If email strings don't appear in the String Translation section, try triggering + different Masteriyo email notifications. +- Ensure WPML's string translation module is configured correctly. +- Check that your WordPress site's language settings match your WPML configuration. +- Make sure to exclude Masteriyo default pages from the cache, disable caching for + logged-in users, and turn off the cache for the REST API. +- If the login form is not showing on the account page, then it means that you have + not added the respective shortcode on that page. +- Now, this should display the login form on the account page. +- However, you need to adjust one more setting to make sure the login form works properly. +- By default, Masteriyo marks specific billing fields as required based on your Settings + > Payments > Checkout Fields. +- After installing the Check & Log Email plugin, submit a form from which the emails + are not being delivered. +- If the email log with green tick on the sent status were not delivered to the respective + email address, the issue is with the email server. +- Always use caution while testing for conflicts on a live website. A backup is advised + before you start. +- Use a professional domain-based email address when possible +- Check mail logs regularly to identify potential delivery issues +- It's the most secure way of providing access to your site, where you can set roles, + times, etc. +- SMTP Authentication should always be checked 'Yes' as popular email providers require + authentication. +- Server Sync Interval Duration default is 5 minutes. +- Idle Time Threshold default is 30 minutes. +- For troubleshooting the issues with the email delivery, we will need a third-party + plugin called Check & Log Email. +- If the email log that have green tick on the sent status were not delivered to the + respective email address, the issue is with the email server you are using. In this + case, you will need to contact the hosting provider and ask them about the issue + with the email delivery. +- If the email log has a red cross status, the issue is with the site's email sending + system. In this case, using a SMTP plugin like Easy SMTP, WP SMTP, etc will fix + the issue. +- Masteriyo’s Course Builder provides a convenient way to export or import individual + quizzes in .json format. +- Steps to find out the PHP and WordPress versions of your site. +- Masteriyo is a React-based advanced LMS plugin. +errors: +- '401 Unauthorized: Invalid or missing API key.' +- '403 Forbidden: Insufficient permissions for the API key.' +- '404 Not Found: Incorrect endpoint URL or resource does not exist.' +- '500 Internal Server Error: Server-side issue.' +- '400 Bad Request: Invalid request payload or missing required fields.' +- '429 Too Many Requests: Rate limit exceeded.' +- Sorry, you are not allowed to read resources +- 'TypeError: roles.includes is not a function' +- 'EMAIL_NOT_DELIVERED: Check SMTP configuration and logs' +auth_info: + mentioned_objects: [] +client: + base_url: https://masteriyo.com + headers: + Accept: application/json +source_metadata: null diff --git a/matroid_computer_vision/matroid-computer-vision-docs.md b/matroid_computer_vision/matroid-computer-vision-docs.md new file mode 100644 index 00000000..e20bed32 --- /dev/null +++ b/matroid_computer_vision/matroid-computer-vision-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Matroid data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def matroid_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.matroid.com/api/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + careers,,detectors,,user/content + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='matroid_migration_pipeline', + destination='duckdb', + dataset_name='matroid_migration_data', + ) + # Load the data + load_info = pipeline.run(matroid_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from matroid_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Careers: Information about job opportunities at Matroid. +- Detectors: Manage and retrieve information about detection models. +- User Content: Access and manage user-uploaded content. + +You will then debug the Matroid pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Matroid support. + ```shell + dlt init dlthub:matroid_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Matroid API, as specified in @matroid_migration-docs.yaml + Start with endpoints careers and and skip incremental loading for now. + Place the code in matroid_migration_pipeline.py and name the pipeline matroid_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python matroid_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is performed via OAuth2, requiring the setup of a connected app in Matroid to obtain a refresh token. + + To get the appropriate API keys, please visit the original source at https://www.matroid.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python matroid_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline matroid_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset matroid_migration_data + The duckdb destination used duckdb:/matroid_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline matroid_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("matroid_migration_pipeline").dataset() + # get areer table as Pandas frame + data.areer.df().head() + ``` + +## Running into errors? + +Ensure proper OAuth scopes are set up to avoid unauthorized access errors. Be aware of rate limits and potential for request timeouts if filters are too broad. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/matroid_computer_vision/matroid-computer-vision-docs.yaml b/matroid_computer_vision/matroid-computer-vision-docs.yaml new file mode 100644 index 00000000..887d01f2 --- /dev/null +++ b/matroid_computer_vision/matroid-computer-vision-docs.yaml @@ -0,0 +1,223 @@ +resources: +- name: detectors + endpoint: + path: /detectors + method: POST + data_selector: response + params: {} +- name: query_collection_by_image + endpoint: + path: /query_collection_by_image + method: POST + data_selector: response + params: {} +- name: detector + endpoint: + path: /detectors + method: POST + data_selector: null + params: {} +- name: image_classification + endpoint: + path: /classify_image + method: POST + data_selector: null + params: {} +- name: monitor_stream + endpoint: + path: /monitor_stream + method: POST + data_selector: null + params: {} +- name: query_collection_by_image + endpoint: + path: /query_collection_by_image + method: POST + data_selector: null + params: {} +- name: defect_detection + endpoint: + path: /defect_detection + method: GET + data_selector: records +- name: component_inspection + endpoint: + path: /component_inspection + method: GET + data_selector: records +- name: defect_detection + endpoint: + path: /defect-detection + method: GET + data_selector: records +- name: batch_inspection + endpoint: + path: /batch-inspection + method: GET + data_selector: records +- name: defect_detection + endpoint: + path: /defect_detection + method: GET + data_selector: records + params: {} +- name: component_inspection + endpoint: + path: /component_inspection + method: GET + data_selector: records + params: {} +- name: turnaround_monitoring + endpoint: + path: /services/data/vXX.X/sobjects/TurnaroundMonitoring + method: GET + data_selector: records +- name: turnaround_monitoring + endpoint: + path: /turnaround_monitoring + method: GET + data_selector: records +- name: detector + endpoint: + path: /detectors + method: GET + data_selector: records +- name: object_detection + endpoint: + path: /object-detection + method: POST + data_selector: results +- name: careers + endpoint: + path: /careers + method: GET + data_selector: openings +- name: case_study + endpoint: + path: /case-studies + method: GET + data_selector: records + params: {} +- name: detector + endpoint: + path: /detectors + method: GET + data_selector: records +- name: detector + endpoint: + path: /create_detector + method: POST + data_selector: detector_info +- name: stream + endpoint: + path: /register_stream + method: POST + data_selector: stream_info +- name: Quality Assurance + endpoint: + path: /quality-assurance + method: GET +- name: Assembly Verification + endpoint: + path: /assembly-verification + method: GET +- name: Process Optimization + endpoint: + path: /process-optimization + method: GET +- name: Safety and Compliance + endpoint: + path: /safety-and-compliance + method: GET +- name: traffic_monitoring + endpoint: + path: /traffic-monitoring + method: GET + data_selector: records +- name: road_conditions + endpoint: + path: /road-conditions + method: GET + data_selector: records +- name: work_zone_detection + endpoint: + path: /work-zone-detection + method: GET + data_selector: records +- name: wildlife_detection + endpoint: + path: /wildlife-detection + method: GET + data_selector: records +- name: user_content + endpoint: + path: /user/content + method: GET + data_selector: records + params: {} +notes: +- API calls are authenticated via account credentials or via a token. +- The platform provides a no code interface where you upload examples, label them, + and train a model through guided steps. +- Accuracy varies by data quality and labeling, but detectors are designed to meet + industry level standards for reliability. +- No new hardware required. Use your existing cameras and devices to monitor and collect + visual data. +- No coding required! +- Uses OAuth2 with refresh token — requires setup of connected app in Matroid +- Detectors verify that parts are correctly installed and steps are completed according + to specifications. +- Early detection of defects prevents faulty products from reaching customers, lowering + the chance of costly recalls. +- The system provides dashboards, logs, and alerts so staff can quickly address issues + on the line. +- Matroid's computer vision platform has allowed our production teams to rapidly deploy + highly advanced inspection solutions aiding in Mercedes' commitment to world class + quality. +- Some objects may return nulls in deeply nested fields +- Automated quality control that inspects, tracks, and alerts you when production + or safety issues occur. +- Enable automated early detection of issues, removing costly and time-consuming reworks. +- Automated quality control that inspects, tracks, and alerts you when production + issues occur +- A single defect in safety-critical manufacturing can put lives at risk +- GDPR compliant - protects personally identifiable information +- GDPR compliant +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Requires setup of connected app in Matroid +- Matroid’s easy-to-use point-and-click capabilities mean that you don’t need to be + a data scientist to use and understand the platform. +- Some technology may not be compatible with every device. +- All video and image files in your collection will be indexed. +- Images and videos from compressed files (like .zip or .tar files) will not be extracted. +- Matroid provides real-time alerts and feedback for machines, systems, and operations. +- Optimize your workflow by integrating with your QMS to improve production performance. +- Conduct inspections on weld quality, kitting and more to find flaws and defects. +- If our FAQs don’t answer your question, fill out this form and we’ll reply within + 24 hours (or less)! +- For any dispute with Matroid, you agree to first contact us at help@matroid.com + and attempt to resolve the dispute with us informally. +- The Services are not directed to or intended for use by children under 13 +- We do not knowingly collect or solicit Personal Data from children under 13 +- We will not discriminate against you for exercising your rights under the CCPA. +- Some objects like User Content may return nulls in deeply nested fields +- Arbitration conducted pursuant to the terms of this Agreement shall be governed + by the Federal Arbitration Act (9 U.S.C. §§ 1-16). +- Services are not directed to or intended for use by children under 13 +errors: +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '400 Bad Request: Check request parameters' +- No waiver of any term of this Agreement shall be deemed a further or continuing + waiver of such term or any other term. +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://www.matroid.com/api/ + auth: + type: oauth2 +source_metadata: null diff --git a/modx_user_management/modx-user-management-docs.md b/modx_user_management/modx-user-management-docs.md new file mode 100644 index 00000000..5f552d10 --- /dev/null +++ b/modx_user_management/modx-user-management-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete MODX data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def modx_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://modx.com/api/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + users,,topics,,forums + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='modx_migration_pipeline', + destination='duckdb', + dataset_name='modx_migration_data', + ) + # Load the data + load_info = pipeline.run(modx_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from modx_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Users: Manage user accounts within the MODX system. +- Topics: Interact with forum topics. +- Forums: Access and manage forum discussions. + +You will then debug the MODX pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with MODX support. + ```shell + dlt init dlthub:modx_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for MODX API, as specified in @modx_migration-docs.yaml + Start with endpoints users and and skip incremental loading for now. + Place the code in modx_migration_pipeline.py and name the pipeline modx_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python modx_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Auth requires an API key, which is used for authentication when making requests to the MODX system. + + To get the appropriate API keys, please visit the original source at https://modx.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python modx_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline modx_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset modx_migration_data + The duckdb destination used duckdb:/modx_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline modx_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("modx_migration_pipeline").dataset() + # get ser table as Pandas frame + data.ser.df().head() + ``` + +## Running into errors? + +Ensure that user accounts are set up properly in MODX, as the API requires a connected app for OAuth2 authentication. Passwords need to be hashed, and there are request limits that may require throttling API calls. Additionally, check OAuth scopes and token expiration to avoid 401 Unauthorized errors. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/modx_user_management/modx-user-management-docs.yaml b/modx_user_management/modx-user-management-docs.yaml new file mode 100644 index 00000000..b98cfea6 --- /dev/null +++ b/modx_user_management/modx-user-management-docs.yaml @@ -0,0 +1,103 @@ +resources: +- name: modUser + endpoint: + path: /modx/user + method: POST + data_selector: data + params: {} +- name: modUser + endpoint: + path: /modx/api/user + method: POST + data_selector: user + params: {} +- name: hosting_experiences + endpoint: + path: /forums/modx.com/board?board=13 + method: GET + data_selector: topics + params: {} +- name: forums + endpoint: + path: /forums + method: GET + data_selector: posts + params: {} +- name: forums + endpoint: + path: /forums + method: GET + data_selector: posts +- name: topics + endpoint: + path: /topics + method: GET + data_selector: topics +- name: MaxiGallery + endpoint: + path: /maxigallery + method: GET +- name: user + endpoint: + path: /modx/api/user + method: POST + data_selector: user + params: {} +- name: modUser + endpoint: + path: /newObject/modUser + method: POST + data_selector: user + params: {} +- name: modProfile + endpoint: + path: /newObject/modProfile + method: POST + data_selector: profile + params: {} +- name: modUser + endpoint: + path: /users + method: POST + data_selector: user + params: {} +- name: user + endpoint: + path: /newObject/modUser + method: POST + data_selector: user_data + params: {} +- name: user_profile + endpoint: + path: /newObject/modUserProfile + method: POST + data_selector: profile_data + params: {} +notes: +- Generic usage that applies to all objects (xPDOObject) in MODX +- The password field requires special handling. +- We launched new forums in March 2019—join us there. +- In a hurry for help with your website? +- Currently viewing site statistics include 1,258 people. +- We launched new forums in March 2019 +- Requires setup of connected app in MODX +- Current member count is 54,482. +- Total posts made are 552,471 in 100,661 topics. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Requires setup of modUser for user creation +- Password needs to be hashed (e.g., md5) +- modUser requires username and password fields to create a new user. +- Profile must be added to the user using the addOne method. +- To create a user, use $user = $modx->newObject('modUser', array ('username'=>'MyUser')); +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'no user??: User not found.' +- 'this should be modUserProfile, not modProfile: Incorrect profile object.' +auth_info: + mentioned_objects: [] +client: + base_url: https://modx.com + headers: + Accept: application/json +source_metadata: null diff --git a/napkin_ai/napkin-ai-docs.md b/napkin_ai/napkin-ai-docs.md new file mode 100644 index 00000000..d03eb55a --- /dev/null +++ b/napkin_ai/napkin-ai-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Napkin data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def napkin_visual_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.napkin.ai/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + visual,,visual/:request-id/status,,visual/:request-id/file/:file-id + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='napkin_visual_migration_pipeline', + destination='duckdb', + dataset_name='napkin_visual_migration_data', + ) + # Load the data + load_info = pipeline.run(napkin_visual_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from napkin_visual_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- visual: Create and manage visual requests +- status: Check the status of visual requests +- file: Retrieve files associated with visual requests + +You will then debug the Napkin pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Napkin support. + ```shell + dlt init dlthub:napkin_visual_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Napkin API, as specified in @napkin_visual_migration-docs.yaml + Start with endpoints visual and and skip incremental loading for now. + Place the code in napkin_visual_migration_pipeline.py and name the pipeline napkin_visual_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python napkin_visual_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is required via a Bearer token provided in the header. + + To get the appropriate API keys, please visit the original source at https://www.napkin.ai/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python napkin_visual_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline napkin_visual_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset napkin_visual_migration_data + The duckdb destination used duckdb:/napkin_visual_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline napkin_visual_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("napkin_visual_migration_pipeline").dataset() + # get isua table as Pandas frame + data.isua.df().head() + ``` + +## Running into errors? + +Access to the API is currently by invitation only. It is in developer preview, which means it is not suitable for production use or mission-critical applications. Additionally, the API is not intended for use by individuals under 13 years of age. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/napkin_ai/napkin-ai-docs.yaml b/napkin_ai/napkin-ai-docs.yaml new file mode 100644 index 00000000..3ffd03c7 --- /dev/null +++ b/napkin_ai/napkin-ai-docs.yaml @@ -0,0 +1,88 @@ +resources: +- name: create_visual_request + endpoint: + path: /v1/visual + method: POST +- name: check_request_status + endpoint: + path: /v1/visual/{request-id}/status + method: GET +- name: download_generated_files + endpoint: + path: + method: GET +- name: visual_request + endpoint: + path: /v1/visual + method: POST + data_selector: request + params: {} +- name: visual_request_status + endpoint: + path: /v1/visual/:request-id/status + method: GET + data_selector: status +- name: download_generated_file + endpoint: + path: /v1/visual/:request-id/file/:file-id + method: GET + data_selector: string + params: {} +- name: create_visual_request + endpoint: + path: /v1/visual + method: POST + data_selector: request +- name: visual_request_status + endpoint: + path: /v1/visual/:request-id/status + method: GET + data_selector: status +- name: download_generated_file + endpoint: + path: /v1/visual/:request-id/file/:file-id + method: GET +notes: +- Access to the API is currently by invitation only. +- The API is in developer preview and not suitable for production use. +- API is not intended for use by individuals under 13 years of age. +- The API is currently in developer preview and is not intended for production applications + or mission-critical use cases. +- The API is not intended for use by individuals under 13 years of age. +errors: +- 201 - Visual request created successfully +- 400 - Invalid request data +- 401 - Authentication required or invalid token +- 403 - Access denied to resource +- 404 - Resource not found +- 410 - Request has expired +- 429 - Rate limit exceeded +- 500 - Internal server error +- 'Validation failed: format is required; content is required' +- 'Unauthorized: Authentication required. Please provide a valid Bearer token.' +- 'Rate limit exceeded: Too many requests. Limit: 60 per minute.' +- 'Forbidden: You don''t have permission to access this request' +- 'Request not found: The specified request ID does not exist' +- 'Request expired: Request has expired and is no longer available' +- 'Internal server error: An unexpected error occurred. Please try again later.' +- '400: Invalid request ID or file ID format' +- '401: Authentication required or invalid token' +- '403: Access denied - request belongs to another user' +- '404: Request or file not found' +- '410: Request has expired and is no longer available' +- '500: Internal server error' +- 'Rate limit exceeded: Too many requests. Limit: 60 per minute. Try again in 45 seconds.' +- '401 Unauthorized: Authentication required. Please provide a valid Bearer token.' +- '403 Forbidden: You don''t have permission to access this request' +- '404 Not Found: The specified request ID does not exist' +- '410 Gone: Request has expired and is no longer available' +- '500 Internal Server Error: An unexpected error occurred. Please try again later.' +- Rate limits may vary by user during the preview period. +auth_info: + mentioned_objects: [] +client: + base_url: https://api.napkin.ai + auth: + location: header + header_name: Authorization +source_metadata: null diff --git a/natif/natif-docs.md b/natif/natif-docs.md new file mode 100644 index 00000000..41d6a08f --- /dev/null +++ b/natif/natif-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Natif data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def natif_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.natif.ai/processing", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "workflows", "feedback" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='natif_pipeline', + destination='duckdb', + dataset_name='natif_data', + ) + # Load the data + load_info = pipeline.run(natif_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from natif’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Documents**: Endpoints related to managing and accessing documents, including document retrieval and manipulation. +- **User Management**: Endpoints for managing users and customers, including creating, updating, and retrieving user and customer information. +- **Processing**: Endpoints related to processing workflows, error reports, and feedback associated with processing tasks. +- **Reseller Management**: Endpoints for managing reseller customers, including searching and accessing specific customer details. +- **Usage**: Endpoint for tracking usage statistics and analytics. +- **Token Management**: Endpoint for generating and managing authentication tokens. +- **Events**: Endpoint for handling events related to the application, potentially for logging or notifications. +- **Share Tokens**: Endpoint for generating share tokens related to documents for secure sharing. + +You will then debug the Natif pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Natif support. + ```shell + dlt init dlthub:natif duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Natif API, as specified in @natif-docs.yaml + Start with endpoints workflows and feedback and skip incremental loading for now. + Place the code in natif_pipeline.py and name the pipeline natif_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python natif_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + To authenticate with the API, use the OAuth 2.0 specification to obtain a bearer token through the `password` flow, which will provide you with an access token and a refresh token; the refresh token can be used with the `refresh_token` flow to replace an expired access token. + + To get the appropriate API keys, please visit the original source at https://api.natif.ai/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python natif_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline natif load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset natif_data + The duckdb destination used duckdb:/natif.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline natif_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("natif_pipeline").dataset() + # get "workflows" table as Pandas frame + data."workflows".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/natif/natif-docs.yaml b/natif/natif-docs.yaml new file mode 100644 index 00000000..52b74ee8 --- /dev/null +++ b/natif/natif-docs.yaml @@ -0,0 +1,27 @@ +client: + auth: To authenticate with the API, use the OAuth 2.0 specification to obtain a + bearer token through the `password` flow, which will provide you with an access + token and a refresh token; the refresh token can be used with the `refresh_token` + flow to replace an expired access token. + most_recurring_base_url: https://api.natif.ai + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://api.natif.ai/': + - /documents + - /user-management/customer + - /documents/{document\_id + - /user-management/users + - /processing/error-reports/extractions + - /processing/feedback/{processing\_id + - /openapi.json + - /reseller/customers + - /user-management/customers + - /processing/{workflow\_id + - /user-management/customers/{customer\_id + - /reseller/customers/search/by-user-email + - /token + - /usage + - /reseller/customers/{customer\_id + - /events + - /share-tokens/documents + - /processing/workflows diff --git a/netbird_networks/netbird-networks-docs.md b/netbird_networks/netbird-networks-docs.md new file mode 100644 index 00000000..d89edb36 --- /dev/null +++ b/netbird_networks/netbird-networks-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete NetBird data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def netbird_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.netbird.io/v", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + net-a,,srv-c,,agents + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='netbird_migrations_pipeline', + destination='duckdb', + dataset_name='netbird_migrations_data', + ) + # Load the data + load_info = pipeline.run(netbird_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from netbird_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Management: Operations related to user management and configuration. +- Routes: Endpoints for managing network routes. +- Agents: Interactions with agent services for peer connections. +- Users: Operations regarding user accounts and authentication. + +You will then debug the NetBird pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with NetBird support. + ```shell + dlt init dlthub:netbird_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for NetBird API, as specified in @netbird_migrations-docs.yaml + Start with endpoints net-a and and skip incremental loading for now. + Place the code in netbird_migrations_pipeline.py and name the pipeline netbird_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python netbird_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication requires an API key, which needs to be set up in a connected application. The service supports OAuth2 with refresh tokens, allowing for secure access. + + To get the appropriate API keys, please visit the original source at https://www.netbird.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python netbird_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline netbird_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset netbird_migrations_data + The duckdb destination used duckdb:/netbird_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline netbird_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("netbird_migrations_pipeline").dataset() + # get et- table as Pandas frame + data.et-.df().head() + ``` + +## Running into errors? + +Ensure that your API key is properly configured and valid. Be cautious with the 'rm -rf' command as it can lead to permanent data loss. Some endpoints may have limitations based on user permissions and network configurations, so check carefully if you encounter errors. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/netbird_networks/netbird-networks-docs.yaml b/netbird_networks/netbird-networks-docs.yaml new file mode 100644 index 00000000..ba90fdb3 --- /dev/null +++ b/netbird_networks/netbird-networks-docs.yaml @@ -0,0 +1,1088 @@ +resources: +- name: networks + endpoint: + path: /api/networks/routers + method: GET + data_selector: '' + params: {} +- name: list_all_networks + endpoint: + path: /api/networks/routers + method: GET + data_selector: '' +- name: create_a_network + endpoint: + path: /api/networks + method: POST + data_selector: '' +- name: retrieve_a_network + endpoint: + path: /api/networks/{networkId} + method: GET + data_selector: '' +- name: update_a_network + endpoint: + path: /api/networks/{networkId} + method: PUT + data_selector: '' +- name: delete_a_network + endpoint: + path: /api/networks/{networkId} + method: DELETE + data_selector: '' +- name: list_all_network_resources + endpoint: + path: /api/networks/{networkId}/resources + method: GET + data_selector: '' +- name: create_a_network_resource + endpoint: + path: /api/networks/{networkId}/resources + method: POST + data_selector: '' +- name: retrieve_a_network_resource + endpoint: + path: /api/networks/{networkId}/resources/{resourceId} + method: GET + data_selector: '' +- name: update_a_network_resource + endpoint: + path: /api/networks/{networkId}/resources/{resourceId} + method: PUT + data_selector: '' +- name: delete_a_network_resource + endpoint: + path: /api/networks/{networkId}/resources/{resourceId} + method: DELETE + data_selector: '' +- name: list_all_network_routers + endpoint: + path: /api/networks/{networkId}/routers + method: GET + data_selector: '' +- name: create_a_network_router + endpoint: + path: /api/networks/{networkId}/routers + method: POST + data_selector: '' +- name: network_router + endpoint: + path: /api/networks/routers + method: GET + data_selector: records + params: {} +- name: network_router + endpoint: + path: /api/networks/routers + method: GET + data_selector: records + params: {} +- name: accounts + endpoint: + path: /api/resources/accounts + method: GET +- name: users + endpoint: + path: /api/resources/users + method: GET +- name: tokens + endpoint: + path: /api/resources/tokens + method: GET +- name: peers + endpoint: + path: /api/resources/peers + method: GET +- name: setup_keys + endpoint: + path: /api/resources/setup-keys + method: GET +- name: groups + endpoint: + path: /api/resources/groups + method: GET +- name: networks + endpoint: + path: /api/resources/networks + method: GET +- name: policies + endpoint: + path: /api/resources/policies + method: GET +- name: routes + endpoint: + path: /api/resources/routes + method: GET +- name: dns + endpoint: + path: /api/resources/dns + method: GET +- name: events + endpoint: + path: /api/resources/events + method: GET +- name: accounts + endpoint: + path: /api/resources/accounts + method: GET +- name: users + endpoint: + path: /api/resources/users + method: GET +- name: tokens + endpoint: + path: /api/resources/tokens + method: GET +- name: peers + endpoint: + path: /api/resources/peers + method: GET +- name: setup_keys + endpoint: + path: /api/resources/setup-keys + method: GET +- name: groups + endpoint: + path: /api/resources/groups + method: GET +- name: networks + endpoint: + path: /api/resources/networks + method: GET +- name: policies + endpoint: + path: /api/resources/policies + method: GET +- name: dns + endpoint: + path: /api/resources/dns + method: GET +- name: events + endpoint: + path: /api/resources/events + method: GET +- name: peers + endpoint: + path: /api/peers + method: GET + data_selector: records +- name: peers + endpoint: + path: /api/peers + method: GET + data_selector: records +- name: accounts + endpoint: + path: /api/accounts + method: GET + data_selector: records +- name: update_account + endpoint: + path: /api/accounts/{accountId} + method: PUT + data_selector: settings +- name: accounts + endpoint: + path: /api/accounts + method: GET + data_selector: accounts +- name: current_user + endpoint: + path: /api/users/current + method: GET + data_selector: records +- name: users + endpoint: + path: /api/users + method: GET + data_selector: records +- name: current_user + endpoint: + path: /api/users/current + method: GET + data_selector: '' +- name: list_all_tokens + endpoint: + path: /api/users/{userId}/tokens + method: GET +- name: create_token + endpoint: + path: /api/users/{userId}/tokens + method: POST +- name: retrieve_token + endpoint: + path: /api/users/{userId}/tokens/{tokenId} + method: GET +- name: delete_token + endpoint: + path: /api/users/{userId}/tokens/{tokenId} + method: DELETE +- name: tokens + endpoint: + path: /api/users/{userId}/tokens + method: GET + data_selector: tokens +- name: create_token + endpoint: + path: /api/users/{userId}/tokens + method: POST + data_selector: token +- name: retrieve_token + endpoint: + path: /api/users/{userId}/tokens/{tokenId} + method: GET + data_selector: token +- name: delete_token + endpoint: + path: /api/users/{userId}/tokens/{tokenId} + method: DELETE + data_selector: response +- name: peers + endpoint: + path: /api/peers + method: GET + data_selector: records + params: {} +- name: accessible_peers + endpoint: + path: /api/peers/{peerId}/accessible-peers + method: GET + data_selector: records + params: {} +- name: port_allocation + endpoint: + path: /api/ingress/ports + method: GET + data_selector: records +- name: ingress_peer + endpoint: + path: /api/ingress/peers + method: GET + data_selector: records +- name: peers + endpoint: + path: /api/peers + method: GET + data_selector: records + params: {} +- name: accessible_peers + endpoint: + path: /api/peers/{peerId}/accessible-peers + method: GET + data_selector: records + params: {} +- name: ingress_peer + endpoint: + path: /api/ingress/peers/{ingressPeerId} + method: DELETE +- name: port_allocation + endpoint: + path: /api/ingress/peers/{peerId}/ingress/ports + method: GET + data_selector: records +- name: ingress_peer + endpoint: + path: /api/ingress/peers + method: GET + data_selector: records +- name: setup_keys + endpoint: + path: /api/setup-keys + method: GET + data_selector: records +- name: ingress_peer + endpoint: + path: /api/ingress/peers/{ingressPeerId} + method: DELETE + data_selector: id + params: {} +- name: groups + endpoint: + path: /api/groups + method: GET + data_selector: groups +- name: delete_group + endpoint: + path: /api/groups/{groupId} + method: DELETE +- name: setup_keys + endpoint: + path: /api/setup-keys + method: GET + data_selector: records +- name: policies + endpoint: + path: /api/policies + method: GET + data_selector: records +- name: policy + endpoint: + path: /api/policies/{policyId} + method: DELETE +- name: groups + endpoint: + path: /api/groups + method: GET + data_selector: groups +- name: posture_checks + endpoint: + path: /api/posture-checks + method: GET + data_selector: records +- name: policies + endpoint: + path: /api/policies + method: GET + data_selector: null + params: {} +- name: delete_posture_check + endpoint: + path: /api/posture-checks/{postureCheckId} + method: DELETE +- name: policy + endpoint: + path: /api/policies/{policyId} + method: DELETE +- name: posture_checks + endpoint: + path: /api/posture-checks + method: GET + data_selector: records +- name: countries + endpoint: + path: /api/locations/countries + method: GET + data_selector: geoname_id + params: {} +- name: cities + endpoint: + path: /api/locations/countries/{country}/cities + method: GET + data_selector: city_name + params: {} +- name: posture_check + endpoint: + path: /api/posture-checks/{postureCheckId} + method: DELETE +- name: routes + endpoint: + path: /api/routes + method: GET + data_selector: routes + params: {} +- name: countries + endpoint: + path: /api/locations/countries + method: GET + data_selector: records +- name: city_names_by_country + endpoint: + path: /api/locations/countries/{country}/cities + method: GET + data_selector: records +- name: nameserver_groups + endpoint: + path: /api/dns/nameservers + method: GET + data_selector: disabled_management_groups + params: {} +- name: dns_settings + endpoint: + path: /api/dns/settings + method: PUT + data_selector: disabled_management_groups + params: {} +- name: routes + endpoint: + path: /api/routes + method: GET + data_selector: routes +- name: Nameserver Groups + endpoint: + path: /api/dns/nameservers + method: GET +- name: Update DNS Settings + endpoint: + path: /api/dns/settings + method: PUT +- name: network_traffic + endpoint: + path: /api/events/network-traffic + method: GET + data_selector: data + params: + page: optional + page_size: optional + user_id: optional + reporter_id: optional + protocol: optional + type: optional + connection_type: optional + direction: optional + search: optional + start_date: optional + end_date: optional +- name: network_traffic + endpoint: + path: /api/events/network-traffic + method: GET + data_selector: data + params: {} +- name: Linux Install Script + endpoint: + path: /how-to/installation/linux#linux-install-script + method: GET + data_selector: script + params: {} +- name: Ubuntu/Debian (APT) + endpoint: + path: /how-to/installation/linux#ubuntu-debian-apt + method: GET + data_selector: installation + params: {} +- name: RHEL/Amazon Linux 2 (RPM) + endpoint: + path: /how-to/installation/linux#rhel-amazon-linux-2-rpm + method: GET + data_selector: installation + params: {} +- name: Fedora/Amazon Linux 2023 (DNF) + endpoint: + path: /how-to/installation/linux#fedora-amazon-linux-2023-dnf + method: GET + data_selector: installation + params: {} +- name: openSUSE (zypper) + endpoint: + path: /how-to/installation/linux#open-suse-zypper + method: GET + data_selector: installation + params: {} +- name: Desktop UI Application + endpoint: + path: /how-to/installation/linux#desktop-ui-application + method: GET + data_selector: application + params: {} +- name: Linux Install Script + endpoint: + path: /how-to/installation/linux#linux-install-script + method: GET + data_selector: '' + params: {} +- name: Ubuntu/Debian (APT) + endpoint: + path: /how-to/installation/linux#ubuntu-debian-apt + method: GET + data_selector: '' + params: {} +- name: RHEL/Amazon Linux 2 (RPM) + endpoint: + path: /how-to/installation/linux#rhel-amazon-linux-2-rpm + method: GET + data_selector: '' + params: {} +- name: Fedora/Amazon Linux 2023 (DNF) + endpoint: + path: /how-to/installation/linux#fedora-amazon-linux-2023-dnf + method: GET + data_selector: '' + params: {} +- name: Universal Blue (Native package) + endpoint: + path: /how-to/installation/linux#universal-blue-native-package + method: GET + data_selector: '' + params: {} +- name: Fedora Universal Blue / SteamOS (DistroBox) + endpoint: + path: /how-to/installation/linux#fedora-universal-blue-steam-os-distro-box + method: GET + data_selector: '' + params: {} +- name: openSUSE (zypper) + endpoint: + path: /how-to/installation/linux#open-suse-zypper + method: GET + data_selector: '' + params: {} +- name: NixOS 22.11+/unstable + endpoint: + path: /how-to/installation/linux#nix-os-22-11-unstable + method: GET + data_selector: '' + params: {} +- name: Binary Install + endpoint: + path: /how-to/installation/linux#binary-install + method: GET + data_selector: '' + params: {} +- name: install_script + endpoint: + path: /install.sh + method: GET + data_selector: script +- name: download_intel + endpoint: + path: /macos/amd64 + method: GET + data_selector: download_link +- name: download_apple_silicon + endpoint: + path: /macos/arm64 + method: GET + data_selector: download_link +- name: Linux Install Script + endpoint: + path: /how-to/installation/linux#linux-install-script + method: GET + data_selector: script + params: {} +- name: Ubuntu/Debian (APT) + endpoint: + path: /how-to/installation/linux#ubuntu-debian-apt + method: GET + data_selector: commands + params: {} +- name: RHEL/Amazon Linux 2 (RPM) + endpoint: + path: /how-to/installation/linux#rhel-amazon-linux-2-rpm + method: GET + data_selector: commands + params: {} +- name: Fedora/Amazon Linux 2023 (DNF) + endpoint: + path: /how-to/installation/linux#fedora-amazon-linux-2023-dnf + method: GET + data_selector: commands + params: {} +- name: openSUSE (zypper) + endpoint: + path: /how-to/installation/linux#open-suse-zypper + method: GET + data_selector: commands + params: {} +- name: Desktop UI Application + endpoint: + path: /how-to/installation/linux#desktop-ui-application + method: GET + data_selector: instructions + params: {} +- name: pfSense Installation + endpoint: + path: /how-to/installation/pfsense + method: GET + data_selector: installation +- name: NetBird Installation + endpoint: + path: /how-to/installation/synology + method: GET + data_selector: records +- name: NetBird Authentication + endpoint: + path: /authenticate + method: POST + data_selector: authentication_response +- name: up + endpoint: + path: /api/up + method: POST +- name: login + endpoint: + path: /api/login + method: POST +- name: down + endpoint: + path: /api/down + method: POST +- name: setup_key + endpoint: + path: /setup-keys + method: POST + data_selector: setup_key + params: {} +- name: network_route + endpoint: + path: /network-routes + method: POST + data_selector: network_route + params: {} +- name: access_control_policy + endpoint: + path: /access-control-policies + method: POST + data_selector: access_control_policy + params: {} +- name: netbird_agent_deployment + endpoint: + path: /deployments + method: POST + data_selector: deployment + params: {} +- name: setup_key + endpoint: + path: /setup-keys + method: POST + data_selector: setup_key + params: {} +- name: network_route + endpoint: + path: /network-routes + method: POST + data_selector: network_route + params: {} +- name: access_control_policy + endpoint: + path: /access-control-policies + method: POST + data_selector: access_policy + params: {} +- name: netbird_agent + endpoint: + path: /agents + method: POST + data_selector: agent + params: {} +- name: container + endpoint: + path: /container + method: GET + data_selector: records + params: {} +- name: management + endpoint: + path: /management.ManagementService/ + method: GET +- name: signal + endpoint: + path: /signalexchange.SignalExchange/ + method: GET +- name: management_service + endpoint: + path: /management + method: GET + data_selector: data +- name: StoreConfig + endpoint: + path: /selfhosted/postgres-store + method: GET + data_selector: Engine + params: {} +- name: activity_events + endpoint: + path: /selfhosted/activity-postgres-store + method: POST + data_selector: events + params: + store_engine: postgres + dsn: host=localhost port=5432 user= password= dbname= +- name: netbird + endpoint: + path: /realms/netbird/.well-known/openid-configuration + method: GET +- name: Netbird + endpoint: + path: /realms/netbird/.well-known/openid-configuration + method: GET +- name: NetBird + endpoint: + path: /silent-auth + method: POST + data_selector: data + params: {} +- name: GeoLite2 City Database + endpoint: + path: https://pkgs.netbird.io/geolocation-dbs/GeoLite2-City/download?suffix=tar.gz + method: GET +- name: GeoLite2 City Database (SHA256) + endpoint: + path: https://pkgs.netbird.io/geolocation-dbs/GeoLite2-City/download?suffix=tar.gz.sha256 + method: GET +- name: GeoLite2 City CSV Database + endpoint: + path: https://pkgs.netbird.io/geolocation-dbs/GeoLite2-City-CSV/download?suffix=zip + method: GET +- name: GeoLite2 City CSV Database (SHA256) + endpoint: + path: https://pkgs.netbird.io/geolocation-dbs/GeoLite2-City-CSV/download?suffix=zip.sha256 + method: GET +- name: GeoLite2 City Database + endpoint: + path: /geolocation-dbs/GeoLite2-City/download?suffix=tar.gz + method: GET +- name: GeoLite2 City Database (SHA256) + endpoint: + path: /geolocation-dbs/GeoLite2-City/download?suffix=tar.gz.sha256 + method: GET +- name: GeoLite2 City CSV Database + endpoint: + path: /geolocation-dbs/GeoLite2-City-CSV/download?suffix=zip + method: GET +- name: GeoLite2 City CSV Database (SHA256) + endpoint: + path: /geolocation-dbs/GeoLite2-City-CSV/download?suffix=zip.sha256 + method: GET +- name: internal_networks + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET +- name: access_control + endpoint: + path: /how-to/troubleshooting-client#access-from-peer-a-to-srv-c + method: GET +- name: int-net1 + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: srv-c + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: int-dns1 + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: int-dns2 + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: cf-dns + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: peer-a + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: peer-b + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: users:employees + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: routers:int-net1 + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: access:srv-c + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: access:int-net1 + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: net-a + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: route:int-net1 + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: route:srv-c + endpoint: + path: /how-to/troubleshooting-client#glossary + method: GET + data_selector: resources + params: {} +- name: network_resources + endpoint: + path: /api/v1/network_resources + method: GET + data_selector: resources + params: {} +- name: access_control_rules + endpoint: + path: /api/v1/access_control_rules + method: GET + data_selector: rules + params: {} +- name: net-a + endpoint: + path: /net-a + method: GET + data_selector: net_resources + params: {} +- name: srv-c + endpoint: + path: /srv-c + method: GET + data_selector: srv_details + params: {} +- name: int-net1 + endpoint: + path: /int-net1 + method: GET + data_selector: network_details + params: {} +- name: users + endpoint: + path: /api/users + method: POST + data_selector: users + params: {} +- name: user_approval + endpoint: + path: /how-to/approve-users#require-user-approval + method: GET + data_selector: enabled +- name: network_route + endpoint: + path: /routes + method: POST + data_selector: routes + params: {} +- name: indirect_user_invites + endpoint: + path: /how-to/add-users-to-your-network#indirect-user-invites + method: GET +- name: direct_user_invites + endpoint: + path: /how-to/add-users-to-your-network#direct-user-invites + method: GET +- name: identity_provider_sync + endpoint: + path: /how-to/add-users-to-your-network#identity-provider-id-p-sync + method: GET +- name: manage_user_roles + endpoint: + path: /how-to/add-users-to-your-network#manage-user-roles + method: GET +- name: network_route + endpoint: + path: /how-to/routing-traffic-to-private-networks + method: GET + data_selector: '' + params: {} +notes: +- Peer Identifier associated with route can not be set together with peer_groups. +- Peers Group Identifier associated with route can not be set together with peer. +- If you are self-hosting netbird, and used the advanced guide, you may need to use + port 33073 with your management URL. +- Requires setup of API key for authorization +- Route metric number. Lowest number has higher priority +- Indicate if the route should be kept after a domain doesn't resolve that IP anymore +- Authorization requires a Token +- 'NetBird relies on four components: Client application, Management, Signal, and + Relay services.' +- The Management service runs in the cloud NetBird-managed. It can also be self-hosted. +- All connections are made directly from the user's browser to target peers. +- Temporary peer will be automatically removed from the management server after 10 + minutes of inactivity. +- NetBird simplifies the setup by automatically generating private and public keys, + assigning unique private IP addresses, and takes care of sharing public keys between + the machines. +- The Browser Client enables secure remote connections directly from web browsers + without requiring client software installation. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Supports any OIDC-compliant provider, including social logins like Gmail and GitHub + for personal use. +- Multi-factor authentication (MFA) is supported. +- If you installed the Desktop UI client, you can launch it and click on Connect. +- It will open your browser, and you will be prompt for email and password. +- MFA enabled on IdP account will work automatically. +- Alternatively, you could use command line. +- After installing, you can follow the steps from Running NetBird with SSO Login. +- To uninstall the client remove the app from /Applications +- netbird will copy any existing configuration from the netbird's default configuration + paths to the new NetBird's default location +- NetBird makes use of eBPF and raw sockets, therefore to guarantee the client software + functionality, we recommend adding the flags `--cap-add=SYS_ADMIN` and `--cap-add=SYS_RESOURCE` + for docker clients. +- The experience may vary depending on the docker daemon, operating system, or kernel + version. +- If you installed the Desktop UI client, you can launch it and click on Connect. + It will open your browser, and you will be prompt for email and password. +- In case you are activating a server peer, you can use a setup key as described in + the steps below. +- Requires setup of connected app in api +- This installation is intended for early adopters while the pfSense package is under + review and not yet available in the pfSense package manager. +- If netbird was previously installed with homebrew, you will need to run commands + to stop and uninstall the daemon service. +- Netbird will copy any existing configuration from the netbird's default configuration + paths to the new NetBird's default location. +- Some objects like Contact may return nulls in deeply nested fields +- If a NetBird deployment is not yet available, there are both managed and self-hosted + options available. +- In some cases on Synology, the NetBird service will not have the correct modules + loaded on a reboot. +- Uses a command-line interface to interact with the daemon service +- Ensure that SSH Access is enabled both on the target peer and in the NetBird Dashboard +- Users cannot create, switch, or remove profiles when profiles are disabled +- The client operates with a single, fixed configuration when profiles are disabled +- The command will check if the peer is logged in and connect to the management service. +- If the peer is not logged in, by default, it will attempt to initiate an SSO login + flow. +- 'Management: Connected to https://api.netbird.io:33073' +- 'Signal: Connected to https://signal2.wiretrustee.com:10000' +- NetBird agent can be deployed using a daemon set or deployment. +- For high availability, increase the number of replicas in the deployment configuration. +- Profiles feature can be disabled using the --disable-profiles flag. +- Users cannot create, switch, or remove profiles when profiles are disabled. +- The DNS feature is not supported. You can reach the peers by IP address only. +- Uses RouterOS containers which are CPU-bound and may not be suitable for large file + transfers. +- NetBird in RouterOS containers cannot perform NAT but can do direct routing. +- Setup key is passed as an environment variable. +- Make deployment highly available by increasing replicas. +- It should take around 5 minutes to get started if you already have a public domain + and a VM. +- You would need to obtain a setup key to associate NetBird client with your account. +- The setup key could be found in the NetBird Management dashboard under the Setup + Keys tab. +- RouterOS containers are unsupported by both MikroTik and NetBird. +- Routing through RouterOS containers is relatively slow and CPU intensive. +- NetBird is open-source and can be self-hosted on your servers. +- A Linux VM with at least 1CPU and 2GB of memory is required. +- Management service runs in a single account mode by default since version v0.10.1. +- It might be a good idea to try NetBird before self-hosting on your servers. +- The NetBird quickstart script generates a user name and a password for the administrator. +- NetBird supports automatic renewal by default when using Let's Encrypt. +- Single account mode ensures that all the users signing up for your self-hosted installation + will join the same account/network. +- SQLite is the default storage engine for new installations. +- Switching between storage options requires migration steps to prevent data loss. +- Foreign key constraints are enforced in PostgreSQL, including cascading deletes. +- Starting from version 0.26.0, SQLite is the default storage engine for new installations. +- As of version 0.26.0, the default configuration for fresh installations is SQLite + storage. +- 'To enable Postgres, add to your setup.env the following variable: NETBIRD_STORE_CONFIG_ENGINE=postgres.' +- To enable Postgres, set NB_ACTIVITY_EVENT_STORE_ENGINE to postgres +- The default configuration for fresh installations is SQLite storage. +- Double-check if the endpoint returns a JSON response by calling it from your browser. +- Make sure that your Keycloak instance use HTTPS. Otherwise, the setup won't work. +- Azure AD is a managed service and can't be self-hosted. +- Okta is a managed service and can't be self-hosted. +- Google Workspace integration requires Admin SDK API to be enabled. +- This guide is a part of the NetBird Self-hosting Guide and explains how to integrate + self-hosted NetBird with Auth0. +- Auth0 is a flexible, drop-in solution to add authentication and authorization services + to your applications. +- NETBIRD_USE_AUTH0 should be set to true in the setup.env file. +- Token Endpoint Authentication Method should be set to None. +- GeoLite2 databases are updated twice a week to reflect changes in geolocation data. +- To disable automatic updates, pass the --disable-geolite-update flag to the management + command. +- If srflx and relay are not present then the TURN server is not working or not accessible + and you should review the required ports in the requirements section. +- The `management` service checks for outdated databases upon startup. +- A single machine can only connect to one NetBird account as the same user/login + method throughout the lifetime of the config.json file +- Client logs are located in the `/var/log/netbird/client.log` file on macOS and Linux + and in the `C:\ProgramData\netbird\client.log` file on Windows. +- Access Control rule is not required for connectivity from `peer-a` to `peer-b` +- Uses OAuth2 with refresh token — requires setup of connected app in NetBird +- Some objects may return nulls in deeply nested fields +- Netbird client acts as a proxy for public nameservers. +- Ensure proper configuration of routing and access control rules. +- To configure int-dns1, substitute port 80 for port 53 and substitute ip address + 10.123.45.17 for 10.123.45.6. +- To configure int-dns2, substitute port 80 for port 53, ignore the 10.123.45.0/24 + network instructions, substitute ip address 10.123.45.17 for 10.7.8.9, and create + a respective Network or Network Route for the 10.7.8.9/32 IP address range. +- The default logging level is info. To revert back to the original state, you can + repeat the procedure with info instead of debug or trace. +- The Default policy is created when you first create your account. +- The 'All' group serves as a default group that automatically includes every peer + in your network. +- Uses setup keys for authentication of machines. +- Access Control rule is not required for connectivity from peer-a to peer-b +- To configure int-dns2, substitute port 80 for port 53, completely ignore the 10.123.45.0/24 + network instructions, substitute ip address 10.123.45.17 for 10.7.8.9, and create + a respective Network (along with Resources and Routing Peers) or Network Route for + the 10.7.8.9/32 IP address range. +- Nameservers feature is available in NetBird v0.11.0 or later on both cloud and self-hosted + versions. +- 'DNS Forwarder port change: starting with NetBird v0.59.0, the local DNS forwarder + used for routed DNS routes switches from port 5353 to 22054.' +- Default policy allows communication between all peers in your network. +- Users can only be invited if they do not already have a NetBird account. +- By default, every reusable key has unlimited usage. +- 'DNS Forwarder port change: starting with NetBird v0.59.0, the local DNS forwarder + used for routed DNS routes switches from port 5353 to 22054 to avoid collisions + on client devices.' +- If any peer is below v0.59.0, port 5353 will be used for all peers in that account. +- Requires manual approval for new users joining via domain matching if enabled. +- Users will be blocked until approved. +- Network routes are available in NetBird v0.9.0 or later. +- DNS Routes are available for NetBird v0.28.0 or later. +- This feature isn't available in the self-hosted setup. +- You can run the netbird up command in the terminal to connect. +- A successful ping response confirms that your routing peer is correctly routing + traffic to resources in your home network. +- Any peer included in your access policy can now securely access resources in your + home subnet via your designated routing peer, without the need to open router ports + or install software on every device. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- A 4xx status code indicates a client error - those are mostly related to missing + permissions or invalid parameters inside the request. +- A 5xx status code indicates a server error - in this case please reach out to us + via Slack or GitHub. +- '2xx: A 2xx status code indicates a successful response.' +- '4xx: A 4xx status code indicates a client error - those are mostly related to missing + permissions or invalid parameters inside the request.' +- '5xx: A 5xx status code indicates a server error - in this case please reach out + to us via Slack or GitHub.' +- '401 Unauthorized: Recheck API token or permissions' +- '401 Unauthorized: Recheck API key or token expiration' +- '401 Unauthorized: Recheck API token' +- '401 Unauthorized: Recheck API key or token' +- 'Request timeout: Connection blocked by access policy.' +- Be very careful when using the rm -rf command, as it will permanently delete the + specified files and directories. Double-check the paths before executing the command. +- 'Error setting up sysctl: 1 errors occurred' +- 'io timeout: check the connectivity to signal.netbird.io' +- Error when migrating due to compatibility issues. +- '2025-04-08T15:03:04+01:00 ERRO management/client/grpc.go:351: failed to login to + Management Service: rpc error: code = PermissionDenied desc = peer login has expired, + please log in once more' +- '2025-04-08T15:03:04+01:00 ERRO management/client/grpc.go:351: failed to login to + Management Service: rpc error: code = PermissionDenied desc = invalid user' +- '2025-04-08T15:03:04+01:00 ERRO client/internal/login.go:145: failed registering + peer rpc error: code = PermissionDenied desc = invalid user,00000000-0000-0000-0000-000000000000' +- '2025-04-08T15:03:04+01:00 WARN client/server/server.go:267: failed login: rpc error: + code = PermissionDenied desc = invalid user' +- '401 Unauthorized: Check OAuth token validity.' +- '403 Forbidden: Access denied, check ACL rules.' +- 'USER_ALREADY_EXISTS: The user already has an account and cannot be invited.' +auth_info: + mentioned_objects: [] +client: + base_url: https://api.netbird.io + headers: + Accept: application/json +source_metadata: null diff --git a/netlify_functions/netlify-functions-docs.md b/netlify_functions/netlify-functions-docs.md new file mode 100644 index 00000000..d141a39b --- /dev/null +++ b/netlify_functions/netlify-functions-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Netlify data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def netlify_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.netlify.com/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + users,,sites,,forms + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='netlify_migrations_pipeline', + destination='duckdb', + dataset_name='netlify_migrations_data', + ) + # Load the data + load_info = pipeline.run(netlify_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from netlify_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- User Management: Manage user accounts and authentication settings. +- Site Management: Create, update, and delete sites. +- Functions: Manage serverless functions for dynamic capabilities. +- Forms: Handle submissions and configurations for web forms. +- Deployments: Manage site deployments and build processes. + +You will then debug the Netlify pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Netlify support. + ```shell + dlt init dlthub:netlify_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Netlify API, as specified in @netlify_migrations-docs.yaml + Start with endpoints users and and skip incremental loading for now. + Place the code in netlify_migrations_pipeline.py and name the pipeline netlify_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python netlify_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Netlify uses OAuth2 authentication with a refresh token flow, requiring setup of a connected application. The access token must be included in the Authorization header for requests. + + To get the appropriate API keys, please visit the original source at https://www.netlify.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python netlify_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline netlify_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset netlify_migrations_data + The duckdb destination used duckdb:/netlify_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline netlify_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("netlify_migrations_pipeline").dataset() + # get ser table as Pandas frame + data.ser.df().head() + ``` + +## Running into errors? + +Ensure that you set up the OAuth application correctly in Netlify. Be mindful of CORS policy restrictions when making requests to functions from different domains. Some endpoints may have specific access restrictions, and automated performance testing might require prior permission. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/netlify_functions/netlify-functions-docs.yaml b/netlify_functions/netlify-functions-docs.yaml new file mode 100644 index 00000000..aea3a3a1 --- /dev/null +++ b/netlify_functions/netlify-functions-docs.yaml @@ -0,0 +1,872 @@ +resources: +- name: support_category + endpoint: + path: /support/category + method: GET + data_selector: categories +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: deploy + endpoint: + path: /deploys + method: GET + data_selector: deploys + params: {} +- name: build + endpoint: + path: /t/request-to-increase-build-time-limit-to-1-hour + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: functions + endpoint: + path: /.netlify/functions/ + method: GET +- name: build_time_limit + endpoint: + path: /builds + method: POST + data_selector: build_time_limit + params: {} +- name: functions + endpoint: + path: /functions + method: GET + data_selector: functions + params: {} +- name: DNS Records + endpoint: + path: /dns/records + method: GET + data_selector: records + params: {} +- name: lambda_function_errors + endpoint: + path: /t/lambda-function-errors + method: GET +- name: latest_email_topics + endpoint: + path: /latest/topics/tag/email + method: GET + data_selector: topics +- name: 404_error + endpoint: + path: /t/404-page-not-found-issues-deploying-my-first-site + method: GET + data_selector: posts + params: {} +- name: build + endpoint: + path: /builds + method: POST + data_selector: data + params: {} +- name: delete_site_request + endpoint: + path: /sites/delete + method: POST + data_selector: response + params: + site_url: https://chicboutique.netlify.app +- name: users + endpoint: + path: /.netlify/functions/users + method: POST +- name: fetch_all_users + endpoint: + path: /.netlify/functions/fetch-all-users + method: GET +- name: fetch_one_user + endpoint: + path: /.netlify/functions/fetch-one-user/:id + method: GET +- name: update_user + endpoint: + path: /.netlify/functions/update-user/:id + method: PUT +- name: site_deployment + endpoint: + path: /site/deployment + method: GET + data_selector: deploys + params: {} +- name: form_submissions + endpoint: + path: /forms + method: POST + data_selector: submissions +- name: site + endpoint: + path: /sites + method: DELETE + data_selector: site + params: {} +- name: contact + endpoint: + path: / + method: POST + data_selector: form + params: {} +- name: create_user + endpoint: + path: /users + method: POST +- name: fetch_all_users + endpoint: + path: /users + method: GET +- name: fetch_one_user + endpoint: + path: /users/:id + method: GET +- name: update_user + endpoint: + path: /users/:id + method: PUT +- name: contact + endpoint: + path: / + method: POST + data_selector: '' + params: + form-name: contact +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: deploy_settings + endpoint: + path: /settings/deploys + method: GET + data_selector: settings + params: {} +- name: forms + endpoint: + path: /forms/setup + method: GET + data_selector: forms + params: {} +- name: form_submission + endpoint: + path: /sites/YOURSITENAME/forms + method: GET + data_selector: forms + params: {} +- name: widgets + endpoint: + path: /widgets/:id + method: GET + data_selector: records + params: {} +- name: widgets + endpoint: + path: /widgets/ + method: POST + data_selector: records + params: {} +- name: widgets + endpoint: + path: /widgets/:id + method: PUT + data_selector: records + params: {} +- name: widgets + endpoint: + path: /widgets/:id + method: DELETE + data_selector: records + params: {} +- name: contact_submission + endpoint: + path: / + method: POST + data_selector: submission + params: + form-name: Contact +- name: redirects + endpoint: + path: /:owner/:repo/badge-v1.svg + method: GET + data_selector: records + params: {} +- name: api_endpoint + endpoint: + path: /api/endpoint + method: GET +- name: latest_netflix + endpoint: + path: /api/latest_netflix + method: GET +- name: functions + endpoint: + path: /.netlify/functions/ + method: GET + data_selector: functions +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: functions + endpoint: + path: /.netlify/functions + method: GET + data_selector: functions + params: {} +- name: latest_netflix + endpoint: + path: /api/latest_netflix + method: GET + params: + path: :path +- name: lambda_functions + endpoint: + path: /.netlify/functions/:function + method: GET + data_selector: functions + params: {} +- name: default_function + endpoint: + path: /.netlify/functions/default + method: GET + data_selector: body +- name: express_function + endpoint: + path: /.netlify/functions/express + method: GET + data_selector: body +- name: proxy_redirect + endpoint: + path: /.netlify/functions/hello + method: GET + data_selector: '' + params: {} +- name: environment_variables + endpoint: + path: /path/to/environment_variables + method: GET + data_selector: records +- name: deployments + endpoint: + path: /path/to/deployments + method: GET + data_selector: records +- name: redirects + endpoint: + path: /api/* + to: /.netlify/functions/:splat + status: 200 +- name: redirects + endpoint: + path: /:owner/:repo/badge-v1.svg + method: GET + data_selector: records + params: {} +- name: redirects + endpoint: + path: /api/endpoint + method: GET + data_selector: redirects + params: {} +- name: functions + endpoint: + path: /.netlify/functions/ + method: GET + data_selector: functions + params: {} +- name: functions + endpoint: + path: /functions + method: GET + data_selector: records +- name: functions + endpoint: + path: /api/* + method: GET + data_selector: functions + params: {} +- name: checkout + endpoint: + path: /checkout + method: POST + data_selector: sessionId +- name: redirects + endpoint: + path: /api/* + method: GET + data_selector: redirects + params: {} +- name: checkout_function + endpoint: + path: /.netlify/functions/checkout + method: POST +- name: stripe_checkout_session_function + endpoint: + path: /.netlify/functions/stripe-checkout-session-fix + method: POST +- name: default_function + endpoint: + path: /.netlify/functions/default + method: GET + data_selector: body + params: {} +- name: express_function + endpoint: + path: /.netlify/functions/express + method: GET + data_selector: body + params: {} +- name: proxy_redirects + endpoint: + path: /.netlify/functions/hello + method: GET + data_selector: '' + params: {} +- name: mail + endpoint: + path: /.netlify/functions/mail + method: POST + data_selector: '' + params: {} +- name: redirects + endpoint: + path: /api/* + method: GET + data_selector: rules + params: + status: 200 +- name: search_function + endpoint: + path: /.netlify/functions/search + method: GET + data_selector: posts + params: + term: searchterm +- name: proxying_topics + endpoint: + path: /t/ + method: GET + data_selector: topics + params: {} +- name: api + endpoint: + path: /api/* + method: GET + data_selector: records + params: {} +- name: checkout_function + endpoint: + path: /.netlify/functions/checkout + method: POST + data_selector: sessionId +- name: api_proxy + endpoint: + path: /api/* + method: POST + data_selector: response + params: {} +- name: mail + endpoint: + path: /.netlify/functions/mail + method: POST + data_selector: '' + params: {} +- name: hello_restricted + endpoint: + path: /.netlify/functions/hello_restricted + method: GET + data_selector: body +- name: redirect_a + endpoint: + path: /a + method: GET + data_selector: headers + params: {} +- name: redirect_b + endpoint: + path: /b + method: GET + data_selector: headers + params: {} +- name: proxy_function + endpoint: + path: /.netlify/functions/whatever-your-function-name/:splat + method: GET + data_selector: response + params: {} +- name: search_function + endpoint: + path: /.netlify/functions/search + method: GET + data_selector: '' + params: + term: searchterm +- name: GetSubscriptionData + endpoint: + path: /api/User/GetSubscriptionData + method: POST + data_selector: '' + params: {} +- name: test_function + endpoint: + path: /.netlify/functions/test_function + method: POST + data_selector: body + params: {} +- name: proxy_requests + endpoint: + path: /api/* + method: GET + data_selector: records + params: {} +- name: contact-form-send-email + endpoint: + path: /.netlify/functions/contact-form-send-email + method: POST + data_selector: body + params: {} +- name: proxy_post_request + endpoint: + path: /api/* + method: POST +- name: redirects + endpoint: + path: /.netlify/functions/getImageList + method: GET +- name: hello_restricted + endpoint: + path: /.netlify/functions/hello_restricted + method: GET + data_selector: body +- name: redirects + endpoint: + path: /.netlify/functions/slug + method: GET + data_selector: event.headers + params: {} +- name: contact-form-send-email + endpoint: + path: /.netlify/functions/contact-form-send-email + method: POST +notes: +- You can only route to functions based on path. +- In the future, it is possible you could use Netlify’s Edge Handlers to route based + on HTTP method. +- Requires setup of OAuth application in Netlify +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Uses OAuth2 with refresh token — requires setup of connected app in Netlify +- Some objects may return nulls in deeply nested fields +- Support Guides are the Netlify Forums version of a Frequently Asked Questions. +- Written and regularly updated by Support staff, they contain information and approaches + useful for debugging, troubleshooting, and optimizing your projects for Netlify. +- Modern white label crypto exchange platforms are built to be scalable, meaning they + support large trading volumes, have advanced APIs, and allow for the addition of + new tokens or payment methods without any hassle. +- Some objects like Contact may return nulls in deeply nested fields +- In the Netlify UI, set the environment variable NETLIFY_BUILD_DEBUG to true to print + additional debugging information in the build logs. +- The final part of the build after it gives the number of files to upload can time + out without completing if you have many tens of thousands of files. +- Re-running the same build will eventually get all your files uploaded and the build + will complete. +- Once the first deployment has completed, subsequent deployments should be fairly + fast so long as there aren’t too many unchanged files. +- Don’t forget to switch it off after you have found the problem, as it does slow + down your build and may use up more build minutes. +- Some of the files will have been processed, so if you re-run the same build you + will find that there are now fewer files to upload. +- Repeating build re-runs will eventually get all your files uploaded and the build + will complete. +- There is a second 'uploading' stage after the build has completed that can easily + take several hours for the first deployment for a site with many tens of thousands + of files. +- Once that deployment has completed, subsequent deployments should be fairly fast + so long as there aren’t too many unchanged files. +- Netlify Identity has been deprecated. +- Some API endpoints may have specific access restrictions. +- NETLIFY_SITE_ID gets auto-populated when using @netlify/blobs in Netlify Functions + and Edge Functions. +- Automated performance or load testing is forbidden without specific written permission + from our team by our terms of service +- Looks like you’ve followed a broken link or entered a URL that doesn’t exist on + this site. +- 'Ensure to use the correct URL for functions: /.netlify/functions/' +- Build time limit increased to 45 minutes from the default 15 minutes. +- Build time limit can be increased to 60 minutes. +- NETLIFY_SITE_ID is auto-populated when using @netlify/blobs in Netlify Functions + and Edge Functions. +- Copy all required DNS records to the Managed DNS service before changing the domain’s + name servers to avoid possible interruption of services. +- Automated performance or load testing is forbidden without specific written permission + from our team by our terms of service. +- Account flagged by automatic fraud protection system may require verification. +- Some topics may not be accessible without proper authentication. +- DNS verification failed — custom domain doesn’t appear to be served by Netlify +- Allow up to 24 hours for DNS changes to propagate +- Configuration settings for Publish Directory and Functions Directory may vary. +- URL for functions should be prefixed with .netlify/functions/ +- Build time limit increased to 45 minutes for multiple sites. +- Build time limit can also be increased to 60 minutes upon request. +- Netlify supports Next.js via open-next out of the box by adding @netlify/plugin-nextjs. +- You must copy all required DNS records to the Managed DNS service before changing + the domain’s name servers to avoid possible interruption of services. +- If you don’t copy required DNS records to Netlify when you switch, those records + will stop working. +- Uses OAuth2 with refresh token — requires setup of connected app in netlify +- 'Command failed with exit code 1: npm run generate may indicate issues with the + build script.' +- You can trigger SSL reprovisioning by toggling HTTPS off and on again from the Domain + settings tab. +- If it’s still stuck, clear the deploy cache and retry deploy to reset any stale + domain verification state. +- This article is only about builds within Netlify’s Continuous Integration (CI) environment, + as triggered from git commits or from incoming build webhooks. +- Netlify fails to build the monorepo. After lots of trial and error netlify still + doesn’t managed to build and deploy nextjs monorepo successfully. +- Documentation seems really confusing. netlify.toml seems also confusing like where + to put and what value we should put. +- I advice netlify team to just create a project via turborepo, nextjs and try to + deploy your own project on your own infrastructure. +- Only worked is my own trial-n-error and back-n-forth tweaking. +- Btw, someone, somewhere suggested If I’ll make it standalone and let make node_modules + in apps/my-app dir then it will start working. +- This forum doesn’t have many active members, so you’re unlikely to find much guidance + here. +- Support for creating RESTful APIs with Netlify Functions +- Synthetic performance testing is a key component for optimizing the performance + of websites. +- 'Build script returned non-zero exit code: 2' +- Ensure correct publish directory is set in Netlify Site settings. +- Uses netlify attribute in HTML forms for automatic handling +- Form submissions must have unique name attributes +- Certain field names like `from` can cause submissions to be marked as spam. +- Forms work at any URL, submissions will not be affected by domain name or SSL setup. +- User must provide site URL for deletion. +- Account deletion may complicate site deletion requests. +- Last reviewed by Netlify Support - October 2024 +- 'If you’re building a Single Page Application (SPA), or an app that manages its + own routes (url paths), you’ll want to add a _redirects file to your publish directory + with the following line to take advantage of browser history pushstate: /* /index.html 200' +- For single page applications which require all URLs to be routed to this index.html + page so that they can handle the routing in JavaScript, that JavaScript logic is + going to need to handle the 404s too. +- Support for creating RESTful APIs with Netlify Functions requires additional configuration + for specifying endpoints. +- The link from your repository to our service only authenticates us against the 'main' + repo that you first configured, and won’t automatically allow access to submodules. +- If your submodule is public, change the URI schema for it to start with 'https://'. +- You’ll need to supply whatever you need to access that repository somehow. +- 'HTML version MUST match what your JS submits exactly: same form name, and field + names.' +- Use the expanded data-netlify="true" attribute and data-netlify-recaptcha="true" + in your JavaScript form. +- If someone is trying to deploy their site directly, without any build step, a common + scenario is that they upload their site to a git repo and place all the files inside + a sub-folder. +- For Single-Page Applications, it is important to have the contents of the _redirects + file as '/* /index.html 200'. +- Use built-in form handling to simplify adding and managing forms for your project. + There’s no need to make an API call or include extra form handling code. +- HTML forms must include `netlify` or `data-netlify=true` attribute. +- Form name should be unique across a site. +- Max function runtime is 10 seconds, customizable up to 26 seconds. +- Certain field names, such as 'from', can cause all submissions to be marked as spam. +- Forms work at any URL. +- Form submissions require a hidden 'form-name' input field. +- Last reviewed by Netlify Support in July 2025 +- We will not provide any further tech support on that configuration for any customers + below the Enterprise account level, as it causes all the problems listed in this + article and we generally do not intend for people to configure their sites this + way. +- 'If you’re building a Single Page Application (SPA), or an app that manages its + own routes (url paths), you’ll want to add a `_redirects` file to your publish directory + with the following line to take advantage of browser history pushstate: /* /index.html 200' +- A 200 status code passes the request along to the proxied endpoint, and returns + the response, such that if the endpoint returns a 500 Internal Server Error, or + 405 Method Not Allowed, that is returned to the code that made the original request. +- By default, Netlify uses a 301 status code for rewrite. +- 'The HTML version MUST match what your JS submits exactly: same form name, and field + names.' +- You need to apply the same work around if you want to use our reCAPTCHA 2 integration, + and create a div element in the hidden HTML with the data-netlify-recaptcha="true" + attribute. +- Redirects need to be defined in netlify.toml or _redirects file. +- Netlify Functions have no build step and dependencies must be resolved from the + closest node_modules folder. +- Netlify functions can't be organized into folders, but you can create a build script + to handle the bundling of files. +- You can set up redirects in netlify.toml to map /api/ to /.netlify/functions/ +- Serverless functions have a max of 10 seconds default runtime (customizable up to + only 26 seconds, at a cost). +- Redirects from /api/* to /.netlify/functions/servers/:splat +- Ensure the build command includes netlify-lambda build /netlify-lambda +- Redirects may affect lambda functions. +- By defining the status as ‘200’ one defines it as a POST request and by defining + it as a ‘301’ one defines it as a GET. +- Ensure functions directory in netlify.toml matches the repo directory +- Setting a different functions folder name in netlify.toml or online via admin does + not get reflected in final function URL. +- You cannot change the production URL of your function. +- You cannot call lambda function with DELETE or PUT methods; only POST and GET are + permitted. +- Uses redirects to route /api/endpoint to /.netlify/functions/servers/endpoint +- Netlify creates a unique HTTP response header for each request it replies to - the + x-nf-request-id response header. +- This header allows support teams to find exact HTTP responses in their logs. +- Netlify encourages JAMstack architecture, relying on static assets and APIs instead + of traditional backends. +- Functions have no build step; dependencies must be resolved from the closest node_modules + folder. +- Netlify Functions can be deployed with multiple dependencies. +- Netlify functions can't be organized into folders; each function needs to have the + same name as its folder during deployment. +- Netlify functions depend on a return value whereas nextJS API routes depend on a + call to res.status(). +- CORS policy may block requests from different domains unless properly configured. +- Redirects require a query string param of 'path' to work. +- Ensure netlify-lambda build command is included in the Netlify console. +- 'CORS policy: Ensure Access-Control-Allow-Origin is set correctly in the function + response.' +- The Same Origin Policy disallows reading the remote resource at http://localhost:3000/.netlify/functions/testing +- The server is running on localhost:8888 +- CORS headers must be set in the Netlify function response for preflight requests. +- Functions directory in netlify.toml must match the actual directory name in the + repo. +- Use a _redirects file to set up proxy redirects. +- CORS policy requires setting 'Access-Control-Allow-Origin' header in response. +- No 'Access-Control-Allow-Origin' header is present on the requested resource +- 500 Internal Server Error for only PUT and DELETE requests. +- 'You mentioned you tried adding the header: Access-Control-Allow-Methods'': ''*''. + Did you do this in your function’s response? You should add that header to your + function response so that the browser knows that the request is allowed.' +- Sites without a custom domain will be moved from site-name.netlify.com to site-name.netlify.app. +- CORS checks are required in the function. +- POSTs should work via proxy; we just send the POST to your remote service and then + proxy its response back +- You might try sending the value of the x-nf-request-id HTTP response header from + a failed POST +- 'Access to fetch at ‘wonderful-cray-1fd516.netlify.com/.netlify/functions/cuttly’ + from origin ‘chrome-extension://naniojgmdmkbiohhclebmfemiioanclc’ has been blocked + by CORS policy: Response to preflight request doesn’t pass access control check: + No ‘Access-Control-Allow-Origin’ header is present on the requested resource.' +- API_URL is set per-environment to allow for environment-specific APIs and we replace + API_URL_PLACEHOLDER with its value in the build command. +- CORS policy may block requests from other domains if headers are not correctly set. +- CORS policy error when fetching a netlify function from another domain +- Access-Control-Allow-Origin header must be set in the function response +- Uses a proxy to redirect POST requests to specified external API +- Status code 307/308 may lead to 404 Not Found +- CORS headers need to be set in the lambda function for preflight requests. +- Netlify started returning 500 errors on redirect +- Redirect is resulting in a 500 response +- Proxied requests to REST API suddenly failing in some browsers +- Help debugging 502 intermittent error in proxy redirect +- 'Api redirects going to unknown url: https://proapi.azurewebsites.net//api/me' +- CORS error when accessing the function from a different origin. +- This function acts as a proxy server for a client app. +- Uses event.httpMethod to block GET requests +- Can authenticate POST requests by checking headers or using Netlify identity +- _redirect returns 500 Internal Server Error for only PUT and DELETE requests +- All existing sites will continue to operate properly using their current URLs. +- Traffic to .com addresses will be forwarded to .app using an HTTP 301 redirect. +- When deployed on Netlify env, headers are undefined. +- Use Netlify Functions to create a proxy for API requests. +- CORS checks are implemented in the function. +- Your headers will NOT apply to anything in the path /.netlify/* which are handled + via a different system. +- You should be able to send HTTP headers as output from the function itself. +- CORS preflight requires OPTIONS method to be allowed. +- The method returns response headers to allow cross domain access +- Seems the preflight requires an HTTP 204 response +- Uses status code 307/308 to maintain POST request +- If using status code 200, POST request becomes GET request +- Had some Basic-Auth header set up for the site. Just had to attach an Auth header + to the request. +- Netlify may prevent post/put/delete requests from different domains +- Uses Access-Control-Allow-Origin header to restrict access +- Adding HTTP headers is not a fool-proof way to block access. +- Uses event.httpMethod to restrict access +- Authenticate POST requests by checking headers or using Netlify identity +- When using a proxy redirect to a Netlify function, headers may not be passed correctly + in production. +- CORS issues may require adding Access-Control-Allow-Origin header on the server + side. +- You cannot use our normal custom headers directly on functions. +- To enable CORS, allow OPTIONS method and return Access-Control-Allow-Origin header. +errors: +- '500 Internal Server Error: Check server status' +- '404 Not Found: Verify the endpoint URL' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '404: Resource not found' +- '404 Not Found: Check the endpoint path' +- Internal Server Error +- Npm run build failed exit code 137 +- Deploy processing failed after 5 attempts +- '422 Unprocessable Content: Failed to handle signup webhook' +- '401 Unauthorized: Check your credentials or token expiration.' +- '404 could not be found: Check the endpoint or resource' +- '429 Too Many Requests: Throttle API calls' +- '500 Internal Server Error: Retry after a short delay' +- '422: Unprocessable Content: Failed to handle signup webhook' +- 'MissingBlobsEnvironmentError: NETLIFY_SITE_ID is undefined.' +- 'MissingBlobsEnvironmentError: Check your configuration' +- '502: The deployment failed while serving the request' +- '500: Internal server error' +- '404 Not Found: Page not found' +- '404: Page not found' +- '404: Page not found - Check your function URL and deployment settings.' +- '502 Gateway Error: Check server function for issues' +- 'MissingBlobsEnvironmentError: Ensure the environment variable is set' +- '404 Not Found: Check the URL or resource availability' +- '404 Not Found: Check the endpoint URL' +- '401 Unauthorized: Ensure valid authentication' +- 'DNS verification failed: domain doesn’t appear to be served by Netlify' +- We could not provision a Let’s Encrypt certificate for your custom domain +- '404 Page not found: Check the provided URL and ensure the correct path.' +- 'Invocation Failed: Error - Cannot find module ''next/dist/server/lib/start-server.js''' +- 'ELIFECYCLE: Indicates a problem with the npm script execution.' +- '127: Command not found error, possibly due to missing dependencies or incorrect + scripts.' +- 'DNS verification failed: Domain doesn’t appear to be served by Netlify' +- We could not provision a Let’s Encrypt certificate for your custom domain. +- 'FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript + heap out of memory' +- Killed +- 'This function has crashed: An unhandled error in the function code triggered the + following message: Error - Cannot find module ''next/dist/server/lib/start-server.js'' + Require stack: - /var/task/.netlify/dist/run/next.cjs' +- npm ERR! code ELIFECYCLE +- npm ERR! errno 1 +- npm ERR! Exit status 1 +- '404: Page not found - Check if the correct URL is being used.' +- 'Page Not Found: Ensure correct form name and field definitions.' +- 'Blank submissions: Check for duplicate field names or spam filtering.' +- '404 Not Found: Site does not exist or was already deleted.' +- '403 Forbidden: User is not authorized to delete this site.' +- '404: Page not found - Check if the publish directory is set correctly.' +- Check if you’re running any Edge Functions that could be blocking the request. +- 'Page Not Found: Ensure the form URL is correct.' +- 'Blank form submissions: Check input field names.' +- 'Submissions marked as spam: Ensure valid data is entered.' +- 'HTTP 429: Rate limit vast numbers of connections to your site' +- '200 OK with HTML response but no submission in the dashboard: Check if the form + name matches.' +- If you change the submit path to other than '/', I got status 404. +- Cannot GET /api/latest_netflix +- '404: Page not found - check the redirect rules' +- 'CORS error: Ensure headers are set correctly' +- '404: Page not found.' +- Invalid /.netlify path in redirect source. +- 'Access Denied: Check permissions' +- '422: Validation failed' +- '503: Service unavailable' +- '500 Internal Server Error: This occurs for only PUT and DELETE requests.' +- '404 Not Found: Check the URL requested.' +- '301 Redirect: Ensure correct URL is used.' +- 'CORS policy: No ''Access-Control-Allow-Origin'' header is present on the requested + resource.' +- '404 Not Found: Check redirect rules in the netlify.toml file.' +- 'CORS policy error: No ''Access-Control-Allow-Origin'' header is present on the + requested resource.' +- 'CORS error: Access-Control-Allow-Origin header not set' +- No 'Access-Control-Allow-Origin' header is present on the requested resource. +- '404: page not found when accessing the function URL directly.' +- 'Method Not Allowed: Ensure the correct HTTP method is used.' +- 'Network Error: Check for CORS policy issues.' +- 'Access to XMLHttpRequest at ''serverURL/endpoint'' from origin ''clientURL'' has + been blocked by CORS policy: No ''Access-Control-Allow-Origin'' header is present + on the requested resource.' +- '500 Internal Server Error: PUT and DELETE requests not reaching API server.' +- '401 Unauthorized: Check CORS configuration or function access' +- '403 Forbidden: Check your proxy settings or endpoint permissions' +- No ‘Access-Control-Allow-Origin’ header is present on the requested resource +- 'Network Error: Axios method for setting the callback for the XMLHttpRequest onerror + function.' +- 'CORS policy: Response to preflight request doesn''t pass access control check: + No ''Access-Control-Allow-Origin'' header is present on the requested resource.' +- 'CORS policy: Response to preflight request doesn''t pass access control check' +- '404 Not Found: The URL may not exist or the method may not be allowed' +- '500: Internal Server Error' +- '500 Internal Server Error: Check server logs for details' +- '502 Bad Gateway: Verify the upstream server is reachable' +- '405 Method Not Allowed: Ensure the correct HTTP method is being used.' +- '500: ah ah ah didn''t say the magic word' +- '500 Internal Server Error: PUT and DELETE requests not reaching API server' +- '401 Unauthorized: Recheck function access permissions.' +- '403 Forbidden: Check proxy rules or remote service configuration' +- '401 Unauthorized: Recheck Basic-Auth header' +- 'Network Error: Axios method for setting callback for XMLHttpRequest onerror function.' +- 'HTTP 405: Method Not Allowed' +- 'HTTP 400: Bad Request' +- '400: You are not using a http POST method for this endpoint.' +- '400: Name, email, and message are required.' +- '402: No name specified. Please specify a name.' +- '404 Not Found: Ensure the correct API endpoint is being called' +- '500 Internal Server Error: Throttle API calls or reduce frequency' +- '500 Internal Server Error: Check server logs for more information' +- '502 Bad Gateway: Check if the upstream server is available' +- '403: Forbidden' +- Headers are undefined when deployed on Netlify environment. +- unexpected json parse character +- '401: Recheck Basic-Auth header for access' +- '403 Forbidden: Check permissions or CORS settings' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://api.netlify.com + auth: + type: oauth2 + flow: refresh_token + token_url: https://api.netlify.com/oauth/token + client_id: '{{ dlt.secrets[''netlify_client_id''] }}' + client_secret: '{{ dlt.secrets[''netlify_client_secret''] }}' + refresh_token: '{{ dlt.secrets[''netlify_refresh_token''] }}' + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/nintex_k2_five/nintex-k2-five-docs.md b/nintex_k2_five/nintex-k2-five-docs.md new file mode 100644 index 00000000..df03319b --- /dev/null +++ b/nintex_k2_five/nintex-k2-five-docs.md @@ -0,0 +1,156 @@ +In this guide, we'll set up a complete Nintex Community data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def nintex_community_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://community.nintex.com/", + "auth": { + "type": "saml", + "token": access_token, + }, + }, + "resources": [ + news,,help,,ideas + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='nintex_community_migration_pipeline', + destination='duckdb', + dataset_name='nintex_community_migration_data', + ) + # Load the data + load_info = pipeline.run(nintex_community_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from nintex_community_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- News: Retrieve the latest announcements and updates. +- Help: Access support articles and FAQs. +- Ideas: View and submit feature requests and suggestions. +- Badges: Check user achievements and badges earned. +- Gallery: Browse user-generated content and showcases. +- Actions: Manage automations and workflow actions. +- Fix Packs: Download and manage fix packs for Nintex products. +- University: Access training and educational resources. + +You will then debug the Nintex Community pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Nintex Community support. + ```shell + dlt init dlthub:nintex_community_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Nintex Community API, as specified in @nintex_community_migration-docs.yaml + Start with endpoints news and and skip incremental loading for now. + Place the code in nintex_community_migration_pipeline.py and name the pipeline nintex_community_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python nintex_community_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is handled via SAML and requires the location of the token to be specified in the header. + + To get the appropriate API keys, please visit the original source at https://www.nintex.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python nintex_community_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline nintex_community_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset nintex_community_migration_data + The duckdb destination used duckdb:/nintex_community_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline nintex_community_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("nintex_community_migration_pipeline").dataset() + # get ew table as Pandas frame + data.ew.df().head() + ``` + +## Running into errors? + +Ensure compliance with authentication requirements, including SAML setup. Be aware of potential rate limits on API calls, and check for specific OAuth scopes needed for certain actions. Some endpoints may return null values in deeply nested fields and take note of compatibility with specific versions of K2 software. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/nintex_k2_five/nintex-k2-five-docs.yaml b/nintex_k2_five/nintex-k2-five-docs.yaml new file mode 100644 index 00000000..5f9c624a --- /dev/null +++ b/nintex_k2_five/nintex-k2-five-docs.yaml @@ -0,0 +1,1572 @@ +resources: +- name: SharePoint List + endpoint: + path: /services/data/vXX.X/sobjects/SharePointList + method: GET + data_selector: records + params: {} +- name: Fix Pack 45 + endpoint: + path: /fixpacks/45 + method: GET +- name: Fix Pack 1 + endpoint: + path: /fixpacks/1 + method: GET +- name: Fix Pack 2 + endpoint: + path: /fixpacks/2 + method: GET +- name: dwiz_import_error + endpoint: + path: /import/dwiz + method: POST + data_selector: error_message + params: {} +- name: process_discovery + endpoint: + path: /services/data/vXX.X/sobjects/ProcessDiscovery + method: GET + data_selector: records +- name: Update List Item + endpoint: + path: /services/data/vXX.X/sobjects/UpdateListItem + method: POST + data_selector: records + params: {} +- name: DocGen for Salesforce + endpoint: + path: /docgen-for-salesforce + method: GET +- name: Nintex DocGen + endpoint: + path: /nintex-docgen + method: GET +- name: authentication_credentials + endpoint: + path: /api/documentnow/v3.7/authentication/credentials + method: POST + data_selector: response + params: {} +- name: eSign + endpoint: + path: /api/v1/esign + method: GET + data_selector: records +- name: workflow + endpoint: + path: /api/workflows + method: GET + data_selector: records +- name: task + endpoint: + path: /api/tasks + method: GET + data_selector: records +- name: workflow + endpoint: + path: /services/data/vXX.X/sobjects/Workflow + method: GET + data_selector: records +- name: SmartObject + endpoint: + path: /services/smartobjects + method: GET + data_selector: records + params: {} +- name: process_manager + endpoint: + path: /v1/processes + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: K2 Cloud Learning Paths + endpoint: + path: /services/data/v5.8.1/learning-paths + method: GET + data_selector: learningPaths +- name: Dynamic Theme Enhancements + endpoint: + path: /services/data/v5.8.1/dynamic-theme + method: GET + data_selector: dynamicTheme +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Nintex Licensing and Permitting Solution + endpoint: + path: /nintex/licensing-permitting + method: GET + data_selector: content + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET +- name: document + endpoint: + path: /v1/documents + method: GET + data_selector: records + params: + incremental: updated_at +- name: signatures + endpoint: + path: /api/v1/signatures + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: collection_action + endpoint: + path: /services/data/vXX.X/collection + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: DocGen for Salesforce + endpoint: + path: /docgen/salesforce + method: GET + data_selector: records +- name: DocGen + endpoint: + path: /nintex-docgen + method: GET +- name: workflow + endpoint: + path: /services/data/v1/workflow + method: GET + data_selector: records +- name: task + endpoint: + path: /services/data/v1/task + method: GET + data_selector: records +- name: K2 SmartObjects + endpoint: + path: /odata/SmartObjects + method: GET + data_selector: value + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Nintex Customer Central + endpoint: + path: /customer-central + method: GET + data_selector: records +- name: Nintex Help + endpoint: + path: /help + method: GET + data_selector: records +- name: Nintex University + endpoint: + path: /university + method: GET + data_selector: records +- name: Nintex Gallery + endpoint: + path: /gallery + method: GET + data_selector: records +- name: Nintex Ideas + endpoint: + path: /ideas + method: GET + data_selector: records +- name: Request a Demo + endpoint: + path: /request-demo + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: DocGen for Salesforce + endpoint: + path: /docgen/salesforce + method: GET + data_selector: records +- name: Nintex Workflow + endpoint: + path: /nintex/workflow + method: GET +- name: Nintex Apps + endpoint: + path: /nintex/apps + method: GET +- name: workflow + endpoint: + path: /services/data/vXX.X/sobjects/Workflow + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: badges + endpoint: + path: /badges + method: GET + data_selector: badges + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: pop_up_issue + endpoint: + path: /community/pop_up_issue + method: GET + data_selector: pop_up_data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: site_content + endpoint: + path: /api/v1/site_content + method: GET + data_selector: data + params: {} +- name: Upgrade Nintex RPA + endpoint: + path: /learn.nintex.com/c/fbecc528c3490b7ca4f125e460e4e28323d77568 + method: GET + data_selector: course_details +- name: Nintex University Updates + endpoint: + path: /updates/nintex_university + method: GET + data_selector: updates + params: {} +- name: popup_box_issue + endpoint: + path: /community/popup_box_issue + method: GET + data_selector: responses + params: {} +- name: saved_pdf + endpoint: + path: /get_url_of_saved_pdf + method: GET + data_selector: attachments + params: {} +- name: DocGen package + endpoint: + path: /create-docgen-package + method: POST + data_selector: package + params: {} +- name: document_package + endpoint: + path: /api/v1/packages + method: POST + data_selector: package + params: {} +- name: template + endpoint: + path: /api/v1/templates + method: POST + data_selector: template + params: {} +- name: Nintex University Update + endpoint: + path: /news/nintex-university-update + method: GET + data_selector: updates + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: DocGen package + endpoint: + path: /nintex-docgen-124/create-a-docgen-package-for-nintex-apps-and-workflow + method: POST + data_selector: result + params: {} +- name: document_package + endpoint: + path: /documents/packages + method: POST + data_selector: packageData +- name: template + endpoint: + path: /documents/templates + method: GET + data_selector: templatesData +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: AI Moderation + endpoint: + path: /moderation + method: POST + data_selector: results + params: {} +- name: code_fix_rich_text_control + endpoint: + path: /code-fix-rich-text-control-does-not-render-as-expected-73436 + method: GET + data_selector: records +- name: code_fix_broker_management + endpoint: + path: /code-fix-an-error-occurs-when-using-the-brokermanagent-exe-utility-73432 + method: GET + data_selector: records +- name: code_fix_pdf_converter + endpoint: + path: /code-fix-using-the-system-smartobject-method-pdf-converter-does-not-work-as-expected-73419 + method: GET + data_selector: records +- name: code_fix_sap_odata + endpoint: + path: /code-fix-load-delete-and-update-methods-not-working-as-expected-for-sap-odata-73400 + method: GET + data_selector: records +- name: code_fix_objects_not_visible + endpoint: + path: /code-fix-objects-not-visible-when-created-from-my-items-in-designer-73386 + method: GET + data_selector: records +- name: code_fix_smart_actions_outlook + endpoint: + path: /code-fix-smart-actions-in-outlook-for-macbook-unable-to-process-workflow-tasks-73385 + method: GET + data_selector: records +- name: code_fix_snowflake_access_token + endpoint: + path: /code-fix-snowflake-access-token-not-refreshed-when-using-jssp-broker-with-oauth-authentication-73347 + method: GET + data_selector: records +- name: code_fix_json_data_truncation + endpoint: + path: /code-fix-json-data-truncation-issue-in-sharepoint-list-smartobject-getlist-method-73345 + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: news + endpoint: + path: /news + method: GET + data_selector: records + params: {} +- name: Nintex University + endpoint: + path: /university + method: GET + data_selector: university_content +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: K2 for SharePoint + endpoint: + path: /services/data/v5.6/sobjects/K2ForSharePoint + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: JS to Execute + endpoint: + path: /nintex-workflow-2/js-insert-functions-to-execute + method: POST + data_selector: data + params: {} +- name: JS to Execute + endpoint: + path: /nintex-workflow-2/js-insert-functions-to-execute + method: GET + data_selector: records + params: {} +- name: Fix Pack 18 + endpoint: + path: /fixpacks/18 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 19 + endpoint: + path: /fixpacks/19 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 20 + endpoint: + path: /fixpacks/20 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 21 + endpoint: + path: /fixpacks/21 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 22 + endpoint: + path: /fixpacks/22 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 23 + endpoint: + path: /fixpacks/23 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 24 + endpoint: + path: /fixpacks/24 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 25 + endpoint: + path: /fixpacks/25 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 26 + endpoint: + path: /fixpacks/26 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 27 + endpoint: + path: /fixpacks/27 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 28 + endpoint: + path: /fixpacks/28 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack + endpoint: + path: /fix-packs + method: GET + data_selector: fix_packs +- name: Fix Pack 1 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 2 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 3 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 4 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 5 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 6 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 7 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 8 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 9 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 10 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 11 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 12 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 13 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 14 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 15 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 16 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 17 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 18 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 19 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 20 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 21 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 22 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 23 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 24 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 25 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 26 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 27 + endpoint: + path: /customer/nintex.com/cases/default.aspx + method: GET +- name: Fix Pack 28 + endpoint: + path: /download/nintex.com/k2product/NOP57FixPack28.zip + method: GET +- name: Fix Pack 01 + endpoint: + path: /k2product/NOP581FixPack01.zip + method: GET +- name: Fix Pack 02 + endpoint: + path: /k2product/NOP581FixPack02.zip + method: GET +- name: Fix Pack 03 + endpoint: + path: /k2product/NOP581FixPack03.zip + method: GET +- name: Fix Pack 04 + endpoint: + path: /k2product/NOP581FixPack04.zip + method: GET +- name: Fix Pack 05 + endpoint: + path: /k2product/NOP581FixPack05.zip + method: GET +- name: Fix Pack 06 + endpoint: + path: /k2product/NOP581FixPack06.zip + method: GET +- name: Fix Pack 07 + endpoint: + path: /k2product/NOP581FixPack07.zip + method: GET +- name: Fix Pack 08 + endpoint: + path: /k2product/NOP581FixPack08.zip + method: GET +- name: Fix Pack 18 + endpoint: + path: /fixpacks/18 + method: GET + data_selector: fixes +- name: Fix Pack 19 + endpoint: + path: /fixpacks/19 + method: GET + data_selector: fixes +- name: Fix Pack 20 + endpoint: + path: /fixpacks/20 + method: GET + data_selector: fixes +- name: Fix Pack 21 + endpoint: + path: /fixpacks/21 + method: GET + data_selector: fixes +- name: Fix Pack 22 + endpoint: + path: /fixpacks/22 + method: GET + data_selector: fixes +- name: Fix Pack 23 + endpoint: + path: /fixpacks/23 + method: GET + data_selector: fixes +- name: Fix Pack 24 + endpoint: + path: /fixpacks/24 + method: GET + data_selector: fixes +- name: Fix Pack 25 + endpoint: + path: /fixpacks/25 + method: GET + data_selector: fixes +- name: Fix Pack 26 + endpoint: + path: /fixpacks/26 + method: GET + data_selector: fixes +- name: Fix Pack 27 + endpoint: + path: /fixpacks/27 + method: GET + data_selector: fixes +- name: Fix Pack 28 + endpoint: + path: /fixpacks/28 + method: GET + data_selector: fixes +- name: Fix Pack 44 + endpoint: + path: /k2five/fixpack/44 + method: GET + data_selector: fix_pack_details +- name: Fix Pack 45 + endpoint: + path: /k2five/fixpack/45 + method: GET + data_selector: fix_pack_details +- name: fix_pack_44 + endpoint: + path: /fix_packs/44 + method: GET + data_selector: fixes + params: {} +- name: fix_pack_45 + endpoint: + path: /fix_packs/45 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 01 + endpoint: + path: /customer/nintex.com/cases/Pages/default.aspx + method: GET + data_selector: fix_pack_details + params: {} +- name: Fix Pack 02 + endpoint: + path: /customer/nintex.com/cases/Pages/default.aspx + method: GET + data_selector: fix_pack_details + params: {} +- name: Fix Pack 03 + endpoint: + path: /customer/nintex.com/cases/Pages/default.aspx + method: GET + data_selector: fix_pack_details + params: {} +- name: Fix Pack 04 + endpoint: + path: /customer/nintex.com/cases/Pages/default.aspx + method: GET + data_selector: fix_pack_details + params: {} +- name: Fix Pack 05 + endpoint: + path: /customer/nintex.com/cases/Pages/default.aspx + method: GET + data_selector: fix_pack_details + params: {} +- name: Fix Pack 06 + endpoint: + path: /customer/nintex.com/cases/Pages/default.aspx + method: GET + data_selector: fix_pack_details + params: {} +- name: Fix Pack 07 + endpoint: + path: /customer/nintex.com/cases/Pages/default.aspx + method: GET + data_selector: fix_pack_details + params: {} +- name: Fix Pack 08 + endpoint: + path: /download/nintex.com/k2product/NOP581FixPack08.zip + method: GET + data_selector: fix_pack_details + params: {} +- name: k2_fix_pack + endpoint: + path: /k2/fixpack + method: GET + data_selector: fix_packs + params: {} +- name: Fix Pack 01 + endpoint: + path: /k2product/NOP581FixPack01.zip + method: GET + data_selector: details + params: {} +- name: Fix Pack 02 + endpoint: + path: /k2product/NOP581FixPack02.zip + method: GET + data_selector: details + params: {} +- name: Fix Pack 03 + endpoint: + path: /k2product/NOP581FixPack03.zip + method: GET + data_selector: details + params: {} +- name: Fix Pack 04 + endpoint: + path: /k2product/NOP581FixPack04.zip + method: GET + data_selector: details + params: {} +- name: Fix Pack 05 + endpoint: + path: /k2product/NOP581FixPack05.zip + method: GET + data_selector: details + params: {} +- name: Fix Pack 06 + endpoint: + path: /k2product/NOP581FixPack06.zip + method: GET + data_selector: details + params: {} +- name: Fix Pack 07 + endpoint: + path: /k2product/NOP581FixPack07.zip + method: GET + data_selector: details + params: {} +- name: Fix Pack 08 + endpoint: + path: /k2product/NOP581FixPack08.zip + method: GET + data_selector: details + params: {} +- name: Fix Pack + endpoint: + path: /fix_packs + method: GET + data_selector: fix_packs +- name: actions + endpoint: + path: /actions + method: POST + data_selector: actions + params: {} +- name: Fix Pack 45 + endpoint: + path: /download.nintex.com/k2product/K2Five56Fixpack45.zip + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Fix Pack 19 + endpoint: + path: /api/fixpacks/19 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 20 + endpoint: + path: /api/fixpacks/20 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 21 + endpoint: + path: /api/fixpacks/21 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 22 + endpoint: + path: /api/fixpacks/22 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 23 + endpoint: + path: /api/fixpacks/23 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 24 + endpoint: + path: /api/fixpacks/24 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 25 + endpoint: + path: /api/fixpacks/25 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 26 + endpoint: + path: /api/fixpacks/26 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 27 + endpoint: + path: /api/fixpacks/27 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 28 + endpoint: + path: /api/fixpacks/28 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 29 + endpoint: + path: /api/fixpacks/29 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 30 + endpoint: + path: /api/fixpacks/30 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 31 + endpoint: + path: /api/fixpacks/31 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 32 + endpoint: + path: /api/fixpacks/32 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 33 + endpoint: + path: /api/fixpacks/33 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 34 + endpoint: + path: /api/fixpacks/34 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 35 + endpoint: + path: /api/fixpacks/35 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 36 + endpoint: + path: /api/fixpacks/36 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 37 + endpoint: + path: /api/fixpacks/37 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 38 + endpoint: + path: /api/fixpacks/38 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 39 + endpoint: + path: /api/fixpacks/39 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 40 + endpoint: + path: /api/fixpacks/40 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 41 + endpoint: + path: /api/fixpacks/41 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 42 + endpoint: + path: /api/fixpacks/42 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 43 + endpoint: + path: /api/fixpacks/43 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 44 + endpoint: + path: /api/fixpacks/44 + method: GET + data_selector: fixes + params: {} +- name: Fix Pack 45 + endpoint: + path: /api/fixpacks/45 + method: GET + data_selector: fixes + params: {} +- name: Nintex Workflow + endpoint: + path: /nintex/workflow + method: GET +- name: Nintex Apps + endpoint: + path: /nintex/apps + method: GET +- name: popup_issue + endpoint: + path: /community/popup-issue + method: GET + data_selector: responses + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: list_item + endpoint: + path: /share/list_item + method: GET + data_selector: items + params: {} +notes: +- The client app token made the most sense because we can limit the scope to just + read only to get the list of tasks. +- Ensure you have the correct K2 version and/or Cumulative update installed. +- Download the latest Fix Pack using the links in the table above for the version + you require. +- Some objects may return nulls in deeply nested fields +- Uses OAuth2 with refresh token — requires setup of connected app in Nintex +- K2 Five (5.6) must be installed first after which the latest Fix Pack must be installed. +- Unsupported amount (2) of imported libraries! +- Use import through the local wizard (save as a lwiz file). +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Ready to start your upgrade journey from Nintex for SharePoint On-Premises to Automation + Cloud. +- The specified envelope 'xxxxxxxxxxx' was previously completed so signing is no longer + available. +- Some formats like YYYY/MM/DD do not work as expected. +- Some objects like Contact may return nulls in deeply nested fields +- 'If you perform a reconfigure without reinstalling the fix pack, users will not + be able to log into Nintex Automation Designer/Manager/Workspace/Runtime after the + reconfigure completes and the below error will occur: “HTTP Error 500.19 - Internal + Server Error”' +- If you have client tools installed, please do a manual IIS Reset after installing + the Fix Pack. +- Ensure you have the correct K2 version and/or Cumulative update installed. See KB001893 + to see what Fix Pack level you have installed. +- It is recommended to clear browser cache and refresh the page. +- Error handling for import functionality may be required when fields contain commas +- API may require specific scopes for certain actions +- Uses OAuth2 with refresh token — requires setup of connected app in nintex +- Uses OAuth2 with refresh token — requires setup of connected app in K2 +- REST based SmartObjects may return only HTTP response codes if there are strange + characters in the Service Instance System Name. +- Can use upload component to store an image on Google Drive in a specific folder. +- Can retrieve the image from Google Drive using the image component. +- System may check for a valid license to continue working after contract expiration. +- Sorry, our virus scanner detected that this file isn't safe to download. +- Some aspects of display logic aren’t migrating correctly +- Access will be restricted to ensure data integrity during the migration period. +- Upcoming Authentication Change for Nintex DocGen for Salesforce – Take Action Before + 2026 +- 'If you upgrade to a new package version (released after January 2026) and have + NOT enabled OAuth: DocGen automated runs will fail' +- Requires setup of Google Drive API credentials. +- This file cannot be downloaded +- We do not approve accounts registered with generic or disposable email services + (e.g., Gmail, Hotmail, Live, Outlook, iCloud, Yahoo, Mailinator, TempMail, 10MinuteMail, + Guerrilla Mail). +- 'Your password must meet the following criteria: At least eight (8) characters in + length. Contain at least three (3) of the following four (4) types of characters: + Lower case letters (a-z) Upper case letters (A-Z) Numbers (0-9) Special characters + (e.g., !@#$%^&* )' +- 'Important Reminder: Nintex Workflow for O365 End-of-Support Approaching on December + 31st, 2025.' +- New Customer Enablement Content announced. +- It is important to use the https://learn.nintex.com URL and not any other provided + link. +- 'Your password must meet the following criteria: At least eight (8) characters in + length. Contain at least three (3) of the following four (4) types of characters: + Lower case letters (a-z) Upper case letters (A-Z) Numbers (0-9) Special characters + (e.g., !@#$%^&*)' +- If you are a new Nintex Partner, please contact your Nintex Partner Manager for + access via the Nintex Partner Portal. +- The email username and password combination for Nintex University is NOT the same + credentials set for Nintex Automation Cloud or Nintex Process Manager. +- An important authentication update coming in early 2026. +- Important authentication update coming in early 2026. +- Great news, Nintex Apps has offically launched! +- Newly created forms will now default to the Dynamic theme. +- The Dynamic theme offers a more contemporary design and consistent color styling. +- Nintex DocGen has arrived in the Community! +- New course available on Nintex University for the Nintex Licensing and Permitting + Solution. +- Feedback is welcomed to improve Nintex University, Community, and How-To Center. +- Ensure proper OAuth setup before integration. +- Some endpoints may have rate limits. +- 'Nintex Upgrades SSO: Enhancing Stability, Performance, and Flexibility' +- Access troubleshooting tips and solutions to resolve issues and optimize document + generation with Nintex DocGen. +- Find troubleshooting tips and solutions to address issues and optimize workflows + and applications with Nintex K2 Cloud. +- Some API calls may have rate limits +- Requires OAuth2 authentication for API access. +- Requires setup of connected app in Nintex K2 Cloud. +- Nintex DocGen requires configuration in Salesforce. +- Only SAML federated customers need to perform the upgrade. +- WAAD federated customers are not affected. +- The current third-party solution will reach its end of life in November 2025. +- Customers that have not upgraded by the 30th of November 2025 will be unfederated + and fall back to OTP. +- The current SSO solution will be retired on the 30th of November 2025. Customers + that have not upgraded by this date will be unfederated and fall back to OTP. +- The current SSO solution will be retired on the 30th of November 2025. +- Current SSO solution will be retired on the 30th of November 2025. +- SAML federated customers will need to perform a simple upgrade by changing some + values in their Identity Provider. +- Uses OAuth2 with refresh token — requires setup of connected app in Nintex Community +- Enhancing Stability, Performance, and Flexibility +- Upgrade process is designed to make the upgrade easier and more efficient. +- User is unable to close the pop-up box, and refreshing the page causes data loss. +- Depending on how your view on your form is configured, the view header can be set + to not show when Collapsible is set to false and the view header title is empty. +- If your list view has anything configured in the toolbar section, the toolbar area + will still display, so make sure there are no controls in the toolbar of the list + view. +- Only active profiles accessed within the past 24 months were migrated. +- Nintex may modify terms at any time without notice. +- The only change is that generic email domains (e.g., Gmail, Yahoo) are no longer + allowed for new registrations. +- Using a corporate email helps create a more seamless learning experience while allowing + us to manage and track data effectively. +- This course will give you the confidence to complete pre-installation steps and + gather required information to begin your upgrade. +- Upgrade from your current RPA version to the latest version available. +- Complete the post-installation steps. +- The full experience goes live by the end of this week +- Minor glitches may occur during updates +- User unable to close pop-up box that appears on a form. +- Access will be restricted to ensure data integrity. +- No new users can be created. +- No new enrollments can be made in courses, learning paths, or certifications. +- No direct way to link the URL of an attachment. +- Build a document package in one place and use it in Apps and Workflow to automate + dynamic documents. +- Setup requires creating a document package and uploading templates. +- Generic email domains (e.g., Gmail, Yahoo) are no longer allowed for new registrations. +- The full experience goes LIVE by the end of this week. +- Access will be restricted from September 17 through October 2, 2025 +- No new users can be created during this period +- No new enrollments can be made in courses, learning paths, or certifications +- Starting with Nintex DocGen for Salesforce package versions released after January + 2026, the app will no longer support running DocGen Packages without Connected Apps + and OAuth enabled. +- Requires setup of connected app in Nintex +- Document templates can be created or uploaded +- Automated Moderation AI Agent reviews posts and replies before they are published. +- Language-agnostic AI Agent can analyze content in any language. +- DocGen for Salesforce will continue working as it does today, even if you haven’t + enabled OAuth yet. +- The Automated Moderation AI Agent will automatically review posts and replies before + they are published. +- Posts containing links or images might take a little longer to process. +- The Nintex University experience goes live by the end of the week. +- If you perform a reconfigure without reinstalling the fix pack, users will not be + able to log into Nintex Automation Designer/Manager/Workspace/Runtime after the + reconfigure completes. +- Localization available in Arabic, French, German, and Spanish. +- New forms will use the modern style by default. +- OTP is the only available authentication method at this time. +- Localization is now available in Arabic, French, German, and Spanish languages. +- Building one form in multiple languages is now possible. +- Updated default theme inspired by Material design. +- No tags are needed. Simply paste the code as shown in the example. +- The code is 'on blur', which means that the code is only executed once you have + clicked into the text field and then out of it. +- If your app requests a new access token with a refresh token, then the consent flow + is only required once. +- Your organization's trial period has expired. Please have your administrator contact + support for assistance. (LicenseInvalid) +- 'If you perform a reconfigure without reinstalling the fix pack, users will not + be able to log into Nintex Automation Designer/Manager/Workspace/Runtime after the + reconfigure completes and the below error will occur: ''HTTP Error 500.19 - Internal + Server Error''' +- The Fix Packs are only compatible with Nintex Automation (5.7) products. +- Fix Packs are cumulative, each new Fix Pack contains the updates and fixes that + were included with the previous Fix Pack releases. +- 'IMPORTANT: If you perform a reconfigure without reinstalling the fix pack, users + will not be able to log into Nintex Automation Designer/Manager/Workspace/Runtime + after the reconfigure completes and the below error will occur: ''HTTP Error 500.19 + - Internal Server Error''' +- Because Fix Packs are cumulative, each new Fix Pack contains the updates and fixes + that were included with the previous Fix Pack releases. +- If you had K2 4.7 installed before any of the Nintex Automation versions, and you + make use of the client tools that was installed with K2 4.7, you need to start the + re-install with K2 4.7 before you can re-install the Nintex Automation Five version. +- For any of the previous Fix Packs, please contact support here. +- The previous Fix Pack releases must be installed in order. +- K2 Five (5.6) Fix Pack 44 is now available for download +- K2 Five (5.6) Fix Pack 45 is now available for download +- The Fix Packs are only compatible with Nintex Automation (5.8) products. +- Fix Packs are cumulative. +- We’re looking to better understand how our customers are authenticating today, particularly + those who are using username and password sign-in rather than federated identity + (SSO). +- User is unable to close pop-up box on the form without losing data. +- Issue may be specific to user’s machine and browser configuration. +- Form must be upgraded to New Responsive Format +- Must have a Nintex Automation Cloud Tenant +- Must have a valid active license +- 'If you perform a reconfigure without reinstalling the fix pack, users will not + be able to log into Nintex Automation Designer/Manager/Workspace/Runtime after the + reconfigure completes and the below error will occur: ''HTTP Error 500.19 - Internal + Server Error''.' +- Nintex Automation K2 (5.8.1) Fix Pack 01 is now available for download +- Nintex Automation K2 (5.8.1) Fix Pack 02 is now available for download +- Nintex Automation K2 (5.8.1) Fix Pack 03 is now available for download +- Nintex Automation K2 (5.8.1) Fix Pack 05 is now available for download +- Nintex Automation K2 (5.8.1) Fix Pack 08 is now available for download +- No new code fixes are to be issued for the legacy workflow designers. +- Previous Fix Pack releases must be installed in order. +- This applies to RPA LE v17.8 or later but can also help with older versions. +- Ensure IMAP is enabled for the mailbox +- Microsoft has disabled basic authentication for IMAP. Ensure the client uses AUTHENTICATE + XOAUTH2, not username/password. +- An 'Anyone' guest link doesn’t work if the list has a Nintex Form associated with + it. +- Guest user cannot edit an existing record. +- Enhanced security to resolve possible unchecked manipulation, where user input was + discovered to be deserialized without proper validation or sanitization. +- Looking to understand challenges around authentication and access. +- User unable to close pop-up box on form. +- Refreshing the page leads to loss of data entered on the main form. +- Parameter on sub view may exceed allowed limit. +- Our Dev Team plans to implement a simpler way to compare the rules in the future, + but it will probably be in 2026. +- Modern Authentication is required +errors: +- '415: Unsupported Media Type' +- '500: Internal Server Error' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '500 INTERNAL_SERVER_ERROR: Check API user credentials and account context' +- The specified envelope 'xxxxxxxxxxx' was previously completed so signing is no longer + available. +- '500 INTERNAL_SERVER_ERROR: Check API user credentials and environment setup.' +- HTTP Error 500.19 - Internal Server Error +- Invalid URI segment +- 'Error : ''Conversion failed when converting date and/or time from character string.''' +- '401 Unauthorized: Invalid token or insufficient permissions' +- '404 Not Found: Endpoint does not exist or is misspelled' +- '500 Internal Server Error: Retry the request after some time' +- 'Authentication_MissingOrMalformed: Access Token missing or malformed.' +- 'TemporaryRedirect: The response is not in a JSON format.' +- Insufficient access rights on cross-reference id +- Sorry, our virus scanner detected that this file isn't safe to download. +- '400 Bad Request: Verify request parameters.' +- '401 Unauthorized: Check authentication details.' +- '404 Not Found: Endpoint may not exist.' +- '403 FORBIDDEN: Check permissions or access rights' +- '401 Unauthorized: Check client credentials or token expiration.' +- Parameter value exceeds allowed limit. +- Inactive profiles older than 24 months will not be migrated. +- '400 Bad Request: Check your request parameters' +- DocGen automated runs will fail if you upgrade to a new package version and have + NOT enabled OAuth. +- The K2 server was unable to action the workflow task +- '403 Forbidden: Check your access permissions.' +- '404 Not Found: Ensure the endpoint is correct.' +- 'HTTP Error 500.19 - Internal Server Error: Recheck configuration after reconfigure + without reinstalling the fix pack' +- Workflow cannot be loaded, saved or published at this time. +- 'LicenseInvalid: Your organization''s trial period has expired.' +- Correct, there was an issue identified with guest/external user which are working + on resolving. +- An exception occurred. Exception:Exception has been thrown by the target on an invocation. +- Guest users experiencing issues with login prompts +- 'Insufficient access rights on cross-reference id: [a salesforce id]' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://community.nintex.com + auth: + type: saml + location: header +source_metadata: null diff --git a/nyse_top/nyse-top-docs.md b/nyse_top/nyse-top-docs.md new file mode 100644 index 00000000..56c81447 --- /dev/null +++ b/nyse_top/nyse-top-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete NYSE Client data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def nyse_client_symbol_data_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.developer.nyse.com/client/top/api/symbol-data/v2/", + "auth": { + "type": "Authorization", + "token": access_token, + }, + }, + "resources": [ + symbol-data,,user-sessions,,allocate_trade + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='nyse_client_symbol_data_migration_pipeline', + destination='duckdb', + dataset_name='nyse_client_symbol_data_migration_data', + ) + # Load the data + load_info = pipeline.run(nyse_client_symbol_data_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from nyse_client_symbol_data_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Symbol Data: Accesses various symbol-related data. +- User Sessions: Manages user session data. +- Trade Allocation: Handles allocation of trades. +- Risk Entities: Manages risk-related entities and their consents. +- Trade Transactions: Fetches details related to trade transactions. + +You will then debug the NYSE Client pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with NYSE Client support. + ```shell + dlt init dlthub:nyse_client_symbol_data_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for NYSE Client API, as specified in @nyse_client_symbol_data_migration-docs.yaml + Start with endpoints symbol-data and and skip incremental loading for now. + Place the code in nyse_client_symbol_data_migration_pipeline.py and name the pipeline nyse_client_symbol_data_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python nyse_client_symbol_data_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication method requires an Authorization token to access the API endpoints. + + To get the appropriate API keys, please visit the original source at https://www.nyse.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python nyse_client_symbol_data_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline nyse_client_symbol_data_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset nyse_client_symbol_data_migration_data + The duckdb destination used duckdb:/nyse_client_symbol_data_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline nyse_client_symbol_data_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("nyse_client_symbol_data_migration_pipeline").dataset() + # get ymbol-dat table as Pandas frame + data.ymbol-dat.df().head() + ``` + +## Running into errors? + +Members are encouraged to test updates and new features in the certification (UAT) environments before using them in production. This service is applicable only to equities markets, and some objects may not be available for update even if they are included in the response. Rate limits apply, and exceeding them will result in a 429 error. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/nyse_top/nyse-top-docs.yaml b/nyse_top/nyse-top-docs.yaml new file mode 100644 index 00000000..195be846 --- /dev/null +++ b/nyse_top/nyse-top-docs.yaml @@ -0,0 +1,496 @@ +resources: +- name: risk_entities + endpoint: + path: /api/v2/risk-entities + method: GET + data_selector: data +- name: symbol_data + endpoint: + path: /api/symbol-data + method: GET + data_selector: data +- name: fetch_risk_entities + endpoint: + path: /api/v2/risk-entities + method: GET +- name: create_symbol_risk_entity + endpoint: + path: /api/v2/risk-entities/settings/{entityId} + method: PUT +- name: cancel_non_auction_orders + endpoint: + path: /symbol-data + method: GET + data_selector: data + params: {} +- name: fetch_reinstatements + endpoint: + path: /symbol-data + method: GET + data_selector: data + params: {} +- name: fetch_risk_monitor + endpoint: + path: /symbol-data + method: GET + data_selector: data + params: {} +- name: fetch_risk_monitor_by_entity_id + endpoint: + path: /symbol-data + method: GET + data_selector: data + params: {} +- name: block_risk_entity + endpoint: + path: /symbol-data + method: GET + data_selector: data + params: {} +- name: unblock_risk_entity + endpoint: + path: /symbol-data + method: GET + data_selector: data + params: {} +- name: perform_reinstatement + endpoint: + path: /symbol-data + method: GET + data_selector: data + params: {} +- name: remove_symbol_risk_entity + endpoint: + path: /api/symbol-data + method: DELETE + data_selector: data + params: {} +- name: fetch_reinstatements + endpoint: + path: /api/symbol-data + method: GET + data_selector: data + params: {} +- name: fetch_risk_monitor + endpoint: + path: /api/symbol-data + method: GET + data_selector: data + params: {} +- name: fetch_risk_monitor_by_entity_id + endpoint: + path: /api/symbol-data + method: GET + data_selector: data + params: {} +- name: unblock_risk_entity + endpoint: + path: /api/symbol-data + method: POST + data_selector: data + params: {} +- name: perform_reinstatement + endpoint: + path: /api/symbol-data + method: POST + data_selector: data + params: {} +- name: block_risk_entity + endpoint: + path: /api/symbol-data + method: POST + data_selector: data + params: {} +- name: cancel_non_auction_orders + endpoint: + path: /api/symbol-data + method: DELETE + data_selector: data + params: {} +- name: risk_entity_consent + endpoint: + path: /risk_entity_consent + method: POST + data_selector: data + params: {} +- name: fetch_symbol_adv + endpoint: + path: /fetch_symbol_adv + method: GET + data_selector: data + params: + limit: '500' +- name: fetch_risk_settings_by_entity_id + endpoint: + path: /fetch_risk_settings_by_entity_id + method: GET + data_selector: data + params: {} +- name: risk_entity_consent + endpoint: + path: /update-risk-entity-consent + method: POST + data_selector: data +- name: cancel_gtc_orders + endpoint: + path: /cancel-gtc-orders + method: POST + data_selector: data +- name: fetch_symbol_adv + endpoint: + path: /fetch-symbol-adv + method: GET + data_selector: data +- name: fetch_risk_ranges + endpoint: + path: /fetch-risk-ranges + method: GET + data_selector: data +- name: fetch_risk_settings_by_entity_id + endpoint: + path: /fetch-risk-settings-by-entity-id + method: GET + data_selector: data +- name: update_limit_order_price_protections + endpoint: + path: /api/symbol-data + method: POST + data_selector: data +- name: update_order_restrictions + endpoint: + path: /api/symbol-data + method: POST + data_selector: data +- name: update_order_percent_adv + endpoint: + path: /api/symbol-data + method: POST + data_selector: data +- name: fetch_trade_detail + endpoint: + path: /api/symbol-data + method: GET + data_selector: data +- name: fetch_trade_transaction_detail + endpoint: + path: /api/symbol-data + method: GET + data_selector: data +- name: fetch_reason_codes + endpoint: + path: /api/symbol-data + method: GET + data_selector: data +- name: fetch_cap_strategy + endpoint: + path: /api/symbol-data + method: GET + data_selector: data +- name: update_limit_order_price_protections + endpoint: + path: /updateLimitOrderPriceProtections + method: POST + data_selector: data +- name: update_order_restrictions + endpoint: + path: /updateOrderRestrictions + method: POST + data_selector: data +- name: fetch_trade_detail + endpoint: + path: /fetchTradeDetail + method: GET + data_selector: data +- name: fetch_trade_transaction_detail + endpoint: + path: /fetchTradeTransactionDetail + method: GET + data_selector: data +- name: fetch_reason_codes + endpoint: + path: /fetchReasonCodes + method: GET + data_selector: data +- name: fetch_cap_strategy + endpoint: + path: /fetchCapStrategy + method: GET + data_selector: data +- name: symbol-data + endpoint: + path: /api/symbol-data + method: GET + data_selector: data +- name: symbol_data + endpoint: + path: /api/symbol-data + method: GET + data_selector: data +- name: fetch_floor_trades + endpoint: + path: /fetch_floor_trades + method: GET + data_selector: data + params: + startRefExecTs: '' + endRefExecTs: '' + crd: '' + allocatedTradeSummary: '' + custFirmId: '' + custClearingNumber: '' + custSndrSubId: '' + custSubmittingBkrId: '' + limit: '100' + offset: '0' +- name: unallocate_trade + endpoint: + path: /unallocate_trade + method: POST + data_selector: data + params: + origTdate: '' + evtTyp: INF + dealNum: '' + crd: 0 +- name: allocate_trade + endpoint: + path: /allocate_trade + method: POST + data_selector: data + params: + origTdate: '' + evtTyp: INF + dealNum: '' + crd: 0 +- name: fetch_trade_transactions + endpoint: + path: /fetch_trade_transactions + method: GET + data_selector: data + params: + startRefExecTs: '' + endRefExecTs: '' + crd: '' + allocatedTradeSummary: '' + custFirmId: '' + custClearingNumber: '' + custSndrSubId: '' + custSubmittingBkrId: '' + limit: '100' + offset: '0' +- name: symbol_data + endpoint: + path: /get/api/symbol-data + method: GET + data_selector: data + params: + limit: '500' + offset: '0' +- name: user_sessions + endpoint: + path: /get/api/symbol-data + method: GET + data_selector: data + params: + limit: '500' + offset: '0' +- name: risk_entities_settings + endpoint: + path: /api/v2/risk-entities/settings/{entityId} + method: PUT +- name: symbol_data + endpoint: + path: /api/symbol-data + method: GET +- name: fetch_floor_trades + endpoint: + path: /api/symbol-data + method: GET + data_selector: data + params: + startRefExecTs: required + endRefExecTs: required + crd: required + allocatedTradeSummary: string + custFirmId: string + custClearingNumber: string + custSndrSubId: string + custSubmittingBkrId: string + columns: Array of objects + sortFields: Array of objects + endOrdPrc: string + startOrdPrc: string + endExecQty: string + startExecQty: string + custLqdtyInd: string + limit: string + offset: string + status: string + userTxId: string + startUpdatedTs: string + endUpdatedTs: string + dealNum: string + evtTyp: string + execPrc: string + strikePrice: string + execQty: string + msgSeq: string + tradeSequenceNumber: string + expirationDate: string + origTdate: string + contraOrdClearingNumber: string + contraOrdCustFirm: string + contraOrdFirmId: string + contraOrdSndrSubId: string + contraOrdSubmittingBkrId: string + contraOrdCrossId: string + custCrossId: string + contraOrdCapStrategyId: string + custCapStrategyId: string + crossId: string + custAccount: string + custClOrdId: string + custCmta: string + custFirm: string + custFirmDisplay: string + custIdPub: string + custOpenClose: string + custOpenCloseDisplay: string + custSessionId: string + custSide: string + putCall: string + custOptnlData: string + selectedSide: string + symb: string + osiRootSymb: string + underlyingSymbol: string + dealIdOrig: string + dealIdRef: string + custTradeType: string +- name: unallocate_trade + endpoint: + path: /api/symbol-data + method: GET + data_selector: data + params: + origTdate: required + evtTyp: required + dealNum: required + crd: required + unallocations: Array of objects +- name: allocate_trade + endpoint: + path: /api/symbol-data + method: GET + data_selector: data + params: + origTdate: required + evtTyp: required + dealNum: required + crd: required + allocations: Array of objects +- name: fetch_trades_for_approval + endpoint: + path: /api/symbol-data + method: GET + data_selector: data + params: + startRefExecTs: string + endRefExecTs: string + crd: required + allocatedTradeSummary: string + custFirmId: string + custClearingNumber: string + custSndrSubId: string + custSubmittingBkrId: string + columns: Array of objects + sortFields: Array of objects + endOrdPrc: string + startOrdPrc: string + endExecQty: string + startExecQty: string + status: string + custLqdtyInd: string + userTxId: string + limit: string + offset: string + startUpdatedTs: string + endUpdatedTs: string + dealNum: string + evtTyp: string + execPrc: string + strikePrice: string + execQty: string + msgSeq: string + tradeSequenceNumber: string + expirationDate: string + origTdate: string + contraOrdClearingNumber: string + contraOrdCustFirm: string + contraOrdFirmId: string + contraOrdSndrSubId: string + contraOrdSubmittingBkrId: string + contraOrdCrossId: string + custCrossId: string + contraOrdCapStrategyId: string + custCapStrategyId: string + crossId: string + custAccount: string + custClOrdId: string + custCmta: string + custFirm: string + custFirmDisplay: string + custIdPub: string + custOpenClose: string + custOpenCloseDisplay: string + custSessionId: string + custSide: string + putCall: string + custOptnlData: string + selectedSide: string + symb: string + osiRootSymb: string + underlyingSymbol: string + dealIdOrig: string + dealIdRef: string + custTradeType: string +- name: symbol_data + endpoint: + path: /symbol-data + method: GET + data_selector: data + params: + limit: '500' + offset: '0' +- name: user_sessions + endpoint: + path: /user-sessions + method: GET + data_selector: data + params: {} +- name: risk_entities_settings + endpoint: + path: /api/v2/risk-entities/settings/{entityId} + method: PUT +- name: symbol_data + endpoint: + path: /api/symbol-data + method: GET +notes: +- Members are encouraged to test updates and new features in the certification (UAT) + environments prior to usage in production environment. +- Applicable to Equities markets only +- Some objects may not be available for update even if included in the response. +errors: +- '429 TOO_MANY_REQUESTS: Rate Limit Exceeded' +- '401 UNAUTHORIZED - Invalid Token: invalid_token' +- '400 BAD_REQUEST - Bad User Credentials: invalid_grant' +- '429 TOO_MANY_REQUESTS - Rate Limit Exceeded: You have exceeded the allowed rate + limit for this resource. Please try again later.' +auth_info: + mentioned_objects: [] +client: + base_url: https://api.developer.nyse.com/client/top/api/symbol-data + auth: + type: Authorization +source_metadata: null diff --git a/onlysq/onlysq-docs.md b/onlysq/onlysq-docs.md new file mode 100644 index 00000000..6fcc021b --- /dev/null +++ b/onlysq/onlysq-docs.md @@ -0,0 +1,150 @@ +In this guide, we'll set up a complete OnlySQ data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def onlysq_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.onlysq.ru/ai/openai/v2/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + ai/v2,,models,,chat/completions + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='onlysq_migrations_pipeline', + destination='duckdb', + dataset_name='onlysq_migrations_data', + ) + # Load the data + load_info = pipeline.run(onlysq_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from onlysq_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- AI Models: Endpoints for managing and retrieving AI model information. +- Chat Completions: Endpoints for generating chat responses using AI models. + +You will then debug the OnlySQ pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with OnlySQ support. + ```shell + dlt init dlthub:onlysq_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for OnlySQ API, as specified in @onlysq_migrations-docs.yaml + Start with endpoints ai/v2 and and skip incremental loading for now. + Place the code in onlysq_migrations_pipeline.py and name the pipeline onlysq_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python onlysq_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The source uses an API key for authentication, which needs to be included in the request headers for successful API calls. + + To get the appropriate API keys, please visit the original source at https://www.onlysq.ru/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python onlysq_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline onlysq_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset onlysq_migrations_data + The duckdb destination used duckdb:/onlysq_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline onlysq_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("onlysq_migrations_pipeline").dataset() + # get i/v table as Pandas frame + data.i/v.df().head() + ``` + +## Running into errors? + +Ensure that the API key is kept secure and not exposed in client-side code. Additionally, be aware of any rate limits or usage quotas that may apply to API calls. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/onlysq/onlysq-docs.yaml b/onlysq/onlysq-docs.yaml new file mode 100644 index 00000000..9cebac84 --- /dev/null +++ b/onlysq/onlysq-docs.yaml @@ -0,0 +1,50 @@ +resources: +- name: chat_completions + endpoint: + path: /chat/completions + method: POST + data_selector: choices + params: {} +- name: text_response + endpoint: + path: /ai/v2 + method: POST +- name: imagen + endpoint: + path: /ai/imagen + method: POST +- name: models + endpoint: + path: /ai/models + method: GET +- name: request + endpoint: + path: /ai/v2 + method: POST + data_selector: choices + params: {} +- name: models + endpoint: + path: /models + method: GET + data_selector: models +- name: chat_completions + endpoint: + path: /ai/openai/chat/completions + method: POST + data_selector: choices + params: {} +- name: imagen + endpoint: + path: /ai/imagen + method: POST + data_selector: files +notes: [] +errors: [] +auth_info: + mentioned_objects: [] +client: + base_url: https://api.onlysq.ru/ai/openai + auth: + type: apikey +source_metadata: null diff --git a/openwater/openwater-docs.md b/openwater/openwater-docs.md new file mode 100644 index 00000000..8b3d72e5 --- /dev/null +++ b/openwater/openwater-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete OpenWater data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def openwater_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.openwater.com/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + judges,,prefill,,apikeys + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='openwater_migrations_pipeline', + destination='duckdb', + dataset_name='openwater_migrations_data', + ) + # Load the data + load_info = pipeline.run(openwater_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from openwater_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Judges: Manage and retrieve information about judges. +- Applicants: Handle applicant-related operations and submissions. +- Sessions: Manage session data and related resources. +- Admin: Admin-level operations and account management. + +You will then debug the OpenWater pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with OpenWater support. + ```shell + dlt init dlthub:openwater_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for OpenWater API, as specified in @openwater_migrations-docs.yaml + Start with endpoints judges and and skip incremental loading for now. + Place the code in openwater_migrations_pipeline.py and name the pipeline openwater_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python openwater_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + OpenWater uses OAuth2 for authentication, specifically a refresh token flow. This requires a setup of a connected app in the OpenWater API. + + To get the appropriate API keys, please visit the original source at https://www.openwater.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python openwater_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline openwater_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset openwater_migrations_data + The duckdb destination used duckdb:/openwater_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline openwater_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("openwater_migrations_pipeline").dataset() + # get udge table as Pandas frame + data.udge.df().head() + ``` + +## Running into errors? + +All applicants and judges must log in to OpenWater to participate. Multi-factor authentication is required, and users will receive auto-generated passwords. Users are auto-logged out after 15 minutes of inactivity, and accounts are locked after 10 failed login attempts. It is crucial to handle applicant data in compliance with privacy regulations. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/openwater/openwater-docs.yaml b/openwater/openwater-docs.yaml new file mode 100644 index 00000000..965c2dfd --- /dev/null +++ b/openwater/openwater-docs.yaml @@ -0,0 +1,586 @@ +resources: +- name: user_profile + endpoint: + path: /api/user_profile + method: GET + data_selector: fields + params: {} +- name: admin_account + endpoint: + path: /admin/accounts + method: POST + data_selector: records +- name: authenticated_domains + endpoint: + path: /system/settings/authenticated_domains + method: GET + data_selector: domains + params: {} +- name: guest_submission + endpoint: + path: /api/guest_submission + method: POST + data_selector: submissions + params: {} +- name: payment_configuration + endpoint: + path: /apikeys + method: GET +- name: evaluation_form + endpoint: + path: /evaluation/forms + method: GET + data_selector: forms + params: {} +- name: scores_results + endpoint: + path: /scores/results + method: POST + data_selector: results + params: {} +- name: submissions + endpoint: + path: /api/v1/submissions + method: GET + data_selector: records +- name: applicants + endpoint: + path: /api/v1/applicants + method: GET + data_selector: records +- name: submissions + endpoint: + path: /api/v1/submissions + method: GET + data_selector: records +- name: applicant + endpoint: + path: /v1/applicants + method: GET + data_selector: data + params: {} +- name: submission_export + endpoint: + path: /export/submissions + method: GET + data_selector: exports +- name: judges + endpoint: + path: /judges + method: GET + data_selector: records +- name: submissions + endpoint: + path: /submissions + method: GET + data_selector: records +- name: judges + endpoint: + path: /judges + method: GET + data_selector: records +- name: email_blast + endpoint: + path: /email_blast/send + method: POST + data_selector: response + params: {} +- name: judging_results + endpoint: + path: /judging/results + method: GET + data_selector: results + params: {} +- name: submission + endpoint: + path: /forward_submission + method: POST + data_selector: submission_status + params: {} +- name: ApplicationSurveyTabulationReport + endpoint: + path: /v2/Export/Reports/{reportId}/ApplicationSurveyTabulationReport + method: GET + data_selector: records +- name: submission_files + endpoint: + path: /api/submissions/files + method: GET + data_selector: files + params: {} +- name: submission_pdfs + endpoint: + path: /api/submissions/pdfs + method: GET + data_selector: pdfs + params: {} +- name: sessions + endpoint: + path: /api/sessions + method: GET + data_selector: records + params: {} +- name: submissions + endpoint: + path: /api/submissions + method: GET + data_selector: records + params: {} +- name: abstracts + endpoint: + path: /api/v1/abstracts + method: GET + data_selector: abstracts + params: {} +- name: submissions + endpoint: + path: /api/v1/submissions + method: GET + data_selector: data + params: {} +- name: abstracts + endpoint: + path: /api/v1/abstracts + method: GET + data_selector: data + params: {} +- name: Session Type Groups + endpoint: + path: /sessions/type_groups + method: GET +- name: Sessions Configuration + endpoint: + path: /sessions/configuration + method: GET +- name: session_type_group + endpoint: + path: /sessions/type/groups + method: GET + data_selector: sessionGroups +- name: session_configuration + endpoint: + path: /sessions/configuration + method: GET + data_selector: sessionConfigurations +- name: sessions + endpoint: + path: /api/v1/sessions + method: GET + data_selector: records + params: {} +- name: sessions + endpoint: + path: /api/sessions + method: GET + data_selector: sessions + params: {} +- name: rooms + endpoint: + path: /api/rooms + method: GET + data_selector: rooms + params: {} +- name: time_slots + endpoint: + path: /api/time_slots + method: GET + data_selector: time_slots + params: {} +- name: session_agenda + endpoint: + path: /api/sessions + method: GET + data_selector: sessions + params: {} +- name: ThriveSubmission + endpoint: + path: /higherlogic/external/oauth/connect/authorize +- name: OpenWaterSSO + endpoint: + path: /website/content/OpenWaterSSO + method: POST +- name: OpenWater Login + endpoint: + path: /website/content/OpenWaterLogin + method: POST +- name: user_info + endpoint: + path: /OpenWater/GetDataByUserId + method: GET + data_selector: data +- name: membership_service + endpoint: + path: /asicommon/services/membership/membershipwebservice.asmx?wsdl + method: GET +- name: query_service + endpoint: + path: /asicommon/services/query/queryservice.asmx?wsdl + method: GET +- name: login_url + endpoint: + path: https://{imisInstanceUrl}/OpenWaterRedirect.aspx + method: GET +- name: CsContact + endpoint: + path: /services/data/vXX.X/sobjects/CsContact + method: GET + data_selector: records + params: {} +- name: user_profile + endpoint: + path: /OpenWater/GetDataByUserId + method: GET + data_selector: properties +- name: Membership Web Service + endpoint: + path: /asicommon/services/membership/membershipwebservice.asmx?wsdl + method: GET +- name: Query Service + endpoint: + path: /asicommon/services/query/queryservice.asmx?wsdl + method: GET +- name: credentials + endpoint: + path: /add_credentials + method: POST + data_selector: credentials + params: {} +- name: field_mapping + endpoint: + path: /field_mapping + method: GET + data_selector: fields + params: {} +- name: user_info + endpoint: + path: /api/v1/profile/me + method: GET + data_selector: profile +- name: user_profile + endpoint: + path: /auth/profile + method: GET + data_selector: user_data +- name: Authentication + endpoint: + path: /CENSSAWEBSVCLIB.AUTHENTICATION + method: GET +- name: Customer Info + endpoint: + path: /CENSSAWEBSVCLIB.GET_CUST_INFO_XML + method: GET +- name: Customer Details + endpoint: + path: /CENSSAWEBSVCLIB.GET_ID_BY_NAME_AND_EMAIL_XML + method: GET +- name: Decryption + endpoint: + path: /CENSSAWEBSVCLIB.DECRYPT_STR_XML + method: GET +- name: Look Up + endpoint: + path: /integrations/hub/lookup + method: POST + data_selector: fields + params: {} +- name: autocomplete + endpoint: + path: /autocomplete + method: GET + data_selector: results +- name: prefill + endpoint: + path: /prefill + method: GET + data_selector: results +- name: autocomplete + endpoint: + path: /autocomplete + method: GET + data_selector: results + params: {} +- name: prefill + endpoint: + path: /prefill + method: GET + data_selector: results + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: user_verification + endpoint: + path: /check-if-user-is-allowed + method: GET + data_selector: isValid + params: + email: test@test.com +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: user_verification + endpoint: + path: /check-if-user-is-allowed + method: GET + data_selector: isValid + params: + email: test@test.com +- name: submission_form + endpoint: + path: /a/solicitations/8/home + method: GET + data_selector: fields + params: {} +- name: autocomplete + endpoint: + path: /your-endpoint + method: GET + data_selector: '[]' + params: + query: '{value user typed in}' +- name: set_field_values + endpoint: + path: /your-value-endpoint + method: GET + data_selector: '[]' + params: + value: '{value received from autocomplete}' +- name: submission + endpoint: + path: /a/solicitations/8/home + method: GET + data_selector: records + params: {} +- name: autocomplete + endpoint: + path: /your-endpoint + method: GET + data_selector: '[]' + params: + query: '{value user typed in}' +- name: set_field_values + endpoint: + path: /your-value-endpoint + method: GET + data_selector: '[]' + params: + value: '{value received from autocomplete}' +notes: +- Uses OAuth2 with refresh token — requires setup of connected app in api +- All applicants and judges are required to login to OpenWater to participate. +- Many built-in user profile fields are hidden and not in use by default. +- Users receive an auto-generated password to login when added. +- Uses Microsoft Authenticator or Google Authenticator for multi-factor authentication +- If a user forgets their token, an admin can reset it +- Enable multi-factor authentication (MFA) to increase security and meet compliance + requirements. +- When enabled, users logging in from a new device will be required to enter a code + sent to their email address. +- 'Magic Link Expires After: This is how many hours the link will work for once it + is generated' +- You can paste a google sheet as long as the google sheet is cloned from this one + AND you have set the google sheet to ALLOW ANYONE TO VIEW THIS SHEET +- Supports login with Facebook, Google, and LinkedIn +- Some customers need High Security Mode enabled in order to comply with their internal + IT security policies. +- Auto-logout after 15 minutes of inactivity. +- User accounts are locked out after 10 failed login attempts. +- Ensure email deliverability and avoid spam +- If your organization uses a proprietary transactional email service like SendGrid, + MailGun, or sendinblue, you can contact customer support and provide them with your + SMTP credentials. +- Domain authentication is available by adding the appropriate SPF and DKIM DNS records + for a customer’s domain. +- 'If your incoming mail server needs to have emails white listed, be sure to set + us up on that whitelist. Provide them our IP address: 192.254.116.40.' +- OpenWater can provision a SendGrid sub-account on your behalf for an additional + fee. +- Guests must complete and submit their application in a single session. +- Generating PDFs that include other PDF information can be computationally intensive. +- For best results, the original image size should be less than 25 MB and no more + than 20 images should exist in a single application. +- Individual PDFs should not be more than 25 MB and no more than 20 PDFs should exist + in a single application. +- The uploaded PDFs should not be password protected or use digital signatures. +- File is less than 10 MB and is not password protected and is generated using Microsoft + Office 365 on PC or Mac. +- Authorize.NET, Paypal / Pay Flow Pro, Braintree, and Stripe are currently the best + payment gateways that our customers are most satisfied with. +- For many gateways, you will find a Payment Coding or Reference Coding field available. +- Be sure to select 'StripeJS' and not the legacy 'Stripe' option. +- Uses HPP or Hosted Payment Page, which minimized the PCI compliance exposure as + all sensitive content is transmitted through Global Pay servers. +- Request API signature when acquiring credentials. +- Commonly requested is to have a thumbnail image appear next to the submission. +- If you want to completely customize your judging view, you can build it with HTML. +- Edit content on review and checkout pages, my submissions, and login box headings. +- Requires setup of OAuth2 client credentials in OpenWater +- Requires setup of connected app in OpenWater +- Ensure to handle applicant data according to privacy regulations. +- Enables Sub Accounts to group users by organization +- Impersonation feature available for applicants +- Applicants can export their submissions to Excel. +- Allow Public Users to Change Program Scope must be enabled in System Settings > + System Features +- By default, we show application number, program name, and application title +- Lead judges must be members of the team they manage +- Lead judges must be assigned at least one submission +- The system will not email judges by default when added. +- By default, OpenWater will sort the results from highest average score to lowest. +- Email notification for forwarded applications is off by default. +- You can restrict access to your galleries by requiring visitors to enter a password + or by requiring them to log in. +- You can further restrict access by selecting Restrict Access to Logged in Users + Based on Conditions. +- 'Shows the Field Name, the Option Value Selected, # of Times out of Total and the + % of Total' +- Use Dropbox for faster downloads. +- Some conferences have a committee that review the abstracts before they become available + to session organizers. +- Invited speakers can submit materials directly without review. +- Uses OAuth2 with refresh token — requires setup of connected app in OpenWater +- Session building occurs in the Call for Abstracts program. +- Conference Sessions can now have different sets of fields depending on the type + of session. +- Fields can be set to Hidden, Default, Required, or Not Required based on session + type. +- Requires Session Builder configuration before adding sessions +- General Pool allows abstracts to be available to other sessions. +- Configure timezone for the scheduler. +- Unique email address is used for conflict detection. +- Enables online viewing of session agendas. +- Enable License Setting for Integrations Hub +- User permission for access is managed by OpenWater support staff +- No need for refresh token +- 'OAuth is used by a lot of places and systems, here is a small list of compatible + providers: GrowthZone, Member Clicks, Microsoft 365 / Microsoft Dynamics, Neon AMS + / Neon CRM, Novi AMS, Personify, Wild Apricot, YourMembership, CiviCRM (Drupal / + WordPress), Auth0, Okta.' +- OpenWater supports SAML authentication. +- The Entity ID is typically OpenWater, but you can enter whatever entity ID used + to assign. +- Use the Integrations Hub module to connect a single sign on to iMIS EMS. +- Available via the REST API needs to be enabled for Integrations Hub to find this + IQA. +- Your Base URL is your iMIS account URL minus "/staff" at the end +- 'Your iMIS object is going to be the Query Path we set earlier: $/OpenWater/GetDataByUserId' +- Allow 3rd Party Corporate Handshake Authentication must be checked +- Json Web Token should be chosen from the list +- Use the Integrations Hub module to connect a single sign on to iMIS Legacy (20.2 + or earlier) using Web Service and IQAs. +- Advanced Mode must be enabled for filters +- Allow 3rd Party Corporate Handshake Authentication +- Login with {CompanyName} +- Request admin login credentials from your staff if you don't have them already. +- Once published, you can test the integration by clicking 'Test'. +- 'Scopes: read, write, read write' +- You will need at least a basic level of Javascript understanding to format the field + for public display. +- Requires setup of Json Web Token for authentication +- Ensure the returnUrl is saved for the handshake process +- Some objects like Contact may return nulls in deeply nested fields +- Uses OAuth2 with JWT — requires setup of connected app in api +- Testing is super important! +- Look Ups are integrations that query an outside source to autofill information for + the user. +- A Look Up is a set of fields in an OpenWater form that queries an outside source + to autofill information for the user. +- Google Sheet must be shared to everyone with the link to avoid errors. +- The Google Sheet must be Shared to Everyone with the link. +- Rule must be created before proceeding with Prefill setup. +- Ensure the checkbox 'Available via the REST API' is enabled for the IQA. +- Ensure you have admin login credentials for iMIS. +- Enable 'Available via the REST API' for the IQA. +- Autocomplete and Set Field Values URLs need to be set in the form. +- You can reuse your SSO credentials, or add a different set. It will ask for WSDL + Name, Username and Password. +- In order to set up a Pushback through Integrations Hub, you must configure an Integrations + Hub SSO first. +- Request admin login credentials from your staff if you don't have them already (it's + important that these credentials are admin, other account types will not have access + to what we need). +- In iMIS, every IQA now has a checkbox for security settings called 'Allow Access + via REST API'. You must check this box. +- We normally suggest Every Hour for the CRON Expression. +- Uses OAuth for authentication +- iMIS Pay Central is a centralized view of payments within iMIS +- Default settings can be kept during initialization +- Pushback can be disabled per program +- OpenWater requires its own payment gateway configuration +- Some organizations may need to add 'test.' in front of 'salesforce.com' in the URL + in order to make sure you log into your staging site and not production. +- The 'Manage System' permission is needed +- Failed Web Hooks will be retried 3 times, after that they will appear in the Failed + tab for your further review +- It may take up to 5 minutes after an event in OpenWater to occur before the webhook + is fired +- When a webhook receives a failed response 50 consecutive times, it will self disable + and send the WebHook Deactivated email +- API usage can be enabled for $2,000 per year. +- 'API rates are as follows: 3 or less calls per second, no charge.' +- The feature must be enabled in System Features. +- Failed Web Hooks will be retried 3 times. +- It may take up to 5 minutes after an event in OpenWater to occur before the webhook + is fired. +- 3 or less calls per second, no charge. +- CORS header is required +- To pre-fill fields, append query string parameters to the submission URL. +errors: +- '508 Incorrect Hash: This often means you were given Sandbox Credentials instead + of Production Credentials or the shared secret is incorrect.' +- 'Invalid Account ID: This often means the account ID is not accurate.' +- '401 Unauthorized: Check client credentials and token validity' +- '403 Forbidden: Ensure proper permissions are set for the API access' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '400 Bad Request: Check request parameters' +- '401 Unauthorized: Verify API credentials' +- '404 Not Found: Requested resource does not exist' +- '400 Bad Request: Check the request parameters' +- '401 Unauthorized: Verify the authentication details' +- '404 Not Found: Ensure the endpoint exists' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '400 Bad Request: Check the request parameters.' +- '401 Unauthorized: Verify your authentication details.' +- Webhook Deactivated email is sent after 50 consecutive failed responses. +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - OAuthToken + - Json Web Token + - NamedCredential +client: + base_url: https://api.openwater.com + auth: + type: oauth2 + flow: refresh_token + token_url: https://api.openwater.com/oauth/token + client_id: '{{ dlt.secrets[''openwater_client_id''] }}' + client_secret: '{{ dlt.secrets[''openwater_client_secret''] }}' + refresh_token: '{{ dlt.secrets[''openwater_refresh_token''] }}' + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/packagecloud/packagecloud-docs.md b/packagecloud/packagecloud-docs.md new file mode 100644 index 00000000..d6864af9 --- /dev/null +++ b/packagecloud/packagecloud-docs.md @@ -0,0 +1,161 @@ +In this guide, we'll set up a complete Packagecloud data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def packagecloud_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://packagecloud.io/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + docker,pricing,gpg_key + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='packagecloud_migration_pipeline', + destination='duckdb', + dataset_name='packagecloud_migration_data', + ) + # Load the data + load_info = pipeline.run(packagecloud_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from packagecloud_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Docker: Manage Docker repositories and images. +- Pricing: Access pricing information for various services. +- GPG Key: Manage GPG keys for package signing. +- Repository: Interact with various package repositories. +- Distributions: Handle different distributions for packages. +- npm Registry: Interface with npm package repositories. +- APT Repository: Manage APT package repositories. +- YUM Repository: Manage YUM package repositories. +- Helm Repository: Manage Helm chart repositories. +- PyPI Repository: Interface with Python package repositories. +- Maven Repository: Manage Maven repositories. +- Alpine Repository: Manage Alpine package repositories. +- RubyGems Repository: Manage RubyGems repositories. + +You will then debug the Packagecloud pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Packagecloud support. + ```shell + dlt init dlthub:packagecloud_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Packagecloud API, as specified in @packagecloud_migration-docs.yaml + Start with endpoints docker and pricing and skip incremental loading for now. + Place the code in packagecloud_migration_pipeline.py and name the pipeline packagecloud_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python packagecloud_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The API requires OAuth2 authentication for accessing resources. + + To get the appropriate API keys, please visit the original source at https://www.packagecloud.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python packagecloud_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline packagecloud_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset packagecloud_migration_data + The duckdb destination used duckdb:/packagecloud_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline packagecloud_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("packagecloud_migration_pipeline").dataset() + # get ocke table as Pandas frame + data.ocke.df().head() + ``` + +## Running into errors? + +All API requests must be made over HTTPS. Most API requests require an API token for authentication. Certain file uploads for Debian packages need to include all files contained in the .dsc. The default date range for queries is set to 7 days ago. Some deeply nested fields may return null values. Packagecloud is SOC 2 compliant and adheres to HIPAA standards. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/packagecloud/packagecloud-docs.yaml b/packagecloud/packagecloud-docs.yaml new file mode 100644 index 00000000..f1381032 --- /dev/null +++ b/packagecloud/packagecloud-docs.yaml @@ -0,0 +1,482 @@ +resources: +- name: distributions + endpoint: + path: /distributions + method: GET + data_selector: deb + params: {} +- name: gpg_keys + endpoint: + path: /repos/:user_id/:repo/gpg_keys + method: GET + data_selector: gpg_keys + params: {} +- name: master_tokens + endpoint: + path: /repos/:user_id/:repo/master_tokens + method: GET + data_selector: master_tokens + params: {} +- name: packages + endpoint: + path: /repos/:user_id/:repo/packages + method: GET + data_selector: packages + params: {} +- name: read_tokens + endpoint: + path: /repos/:user_id/:repo/master_tokens/:master_token/read_tokens + method: GET + data_selector: read_tokens + params: {} +- name: read_token + endpoint: + path: /api/v1/repos/:user_id/:repo/master_tokens/:master_token/read_tokens + method: POST + data_selector: ReadToken +- name: package + endpoint: + path: /api/v1/repos/:user_id/:repo/packages + method: POST + data_selector: PackageDetails +- name: show_package + endpoint: + path: /api/v1/repos/:user_id/:repo/package/:type/:distro/:version/:package/:arch/:package_version/:release.json + method: GET + data_selector: PackageDetails +- name: gem_show + endpoint: + path: /api/v1/repos/:user_id/:repo/package/gem/:package/:version.json + method: GET + data_selector: PackageDetails +- name: python_package + endpoint: + path: /api/v1/repos/:user_id/:repo/package/python/:package/:version.json + method: GET + data_selector: PackageDetails + params: {} +- name: java_package + endpoint: + path: /api/v1/repos/:user_id/:repo/package/java/maven2/:package/:version.json + method: GET + data_selector: PackageDetails + params: {} +- name: helm_package + endpoint: + path: /api/v1/repos/:user_id/:repo/package/helm/:index_name/:package/:version.json + method: GET + data_selector: PackageDetails + params: {} +- name: package_versions + endpoint: + path: /api/v1/repos/:user_id/:repo/package/:type/:distro/:version/:package/:arch/versions.json + method: GET + data_selector: PackageFragment + params: {} +- name: gem_package_versions + endpoint: + path: /api/v1/repos/:user_id/:repo/package/gem/:package/versions.json + method: GET + data_selector: PackageFragment + params: {} +- name: node_show + endpoint: + path: /api/v1/repos/:user_id/:repo/package/node/:package/:version.json + method: GET + data_selector: PackageDetails +- name: node_versions + endpoint: + path: /api/v1/repos/:user_id/:repo/package/node/:package/versions.json + method: GET + data_selector: PackageFragment +- name: python_versions + endpoint: + path: /api/v1/repos/:user_id/:repo/package/python/:package/versions.json + method: GET + data_selector: PackageFragment +- name: java_versions + endpoint: + path: /api/v1/repos/:user_id/:repo/package/java/maven2/:group/:package/versions.json + method: GET + data_selector: PackageFragment +- name: anyfile_versions + endpoint: + path: /api/v1/repos/:user_id/:repo/package/anyfile/:package/versions.json + method: GET + data_selector: PackageFragment +- name: index + endpoint: + path: /api/v1/repos/:user_id/:repo/packages/:type/:distro/:version/:arch.json + method: GET + data_selector: PackageVersion +- name: create + endpoint: + path: /api/v1/repos/:user_id/:repo/master_tokens/:master_token/read_tokens.json + method: POST +- name: destroy_gem + endpoint: + path: /api/v1/repos/:user_id/:repo/gems/:package.gem + method: DELETE +- name: destroy_java + endpoint: + path: /api/v1/repos/:user_id/:repo/java/maven2/:group/:filename + method: DELETE +- name: downloads_count + endpoint: + path: /api/v1/repos/:user_id/:repo/package/:type/:distro/:version/:package/:arch/:package_version/:release/stats/downloads/count.json + method: GET +- name: downloads_detail + endpoint: + path: /api/v1/repos/:user_id/:repo/package/:type/:distro/:version/:package/:arch/:package_version/:release/stats/downloads/detail.json + method: GET +- name: create_read_token + endpoint: + path: /api/v1/repos/:user_id/:repo/master_tokens/:master_token/read_tokens.json + method: POST +- name: show_read_token + endpoint: + path: /api/v1/repos/:user_id/:repo/master_tokens/:master_token/read_tokens/:id + method: GET +- name: destroy_read_token + endpoint: + path: /api/v1/repos/:user_id/:repo/master_tokens/:master_token/read_tokens/:id + method: DELETE +- name: downloads_series + endpoint: + path: /repos/:user_id/:repo/package/:type/:distro/:version/:package/:arch/:package_version/:release/stats/downloads/series/:interval.json + method: GET + data_selector: SeriesValue + params: {} +- name: installs_count + endpoint: + path: /repos/:user_id/:repo/stats/installs/count.json + method: GET + data_selector: CountValue + params: {} +- name: installs_detail + endpoint: + path: /repos/:user_id/:repo/stats/installs/detail.json + method: GET + data_selector: RepositoryInstalls + params: {} +- name: installs_series + endpoint: + path: /repos/:user_id/:repo/stats/installs/series/:interval.json + method: GET + data_selector: RepositoryInstalls + params: {} +- name: package + endpoint: + path: /api/v1/repos/test_user/test_repo/package/rpm/fedora/22/jake/x86_64/1.0/1.el6.json + method: GET + data_selector: package +- name: downloads + endpoint: + path: /api/v1/repos/test_user/test_repo/package/rpm/fedora/22/jake/x86_64/1.0/1.el6/stats/downloads/detail.json + method: GET + data_selector: downloads +- name: npm_repository + endpoint: + path: /l/npm-registry + method: GET +- name: debian_repository + endpoint: + path: /l/apt-repository + method: GET +- name: maven_repository + endpoint: + path: /l/maven-repository + method: GET +- name: rpm_repository + endpoint: + path: /l/yum-repository + method: GET +- name: rubygem_repository + endpoint: + path: /l/rubygem-repository + method: GET +- name: python_repository + endpoint: + path: /l/pypi-repository + method: GET +- name: alpine_repository + endpoint: + path: /l/alpine-repository + method: GET +- name: helm_repository + endpoint: + path: /l/helm-repository + method: GET +- name: docker_repository + endpoint: + path: /docker/ + method: GET +- name: npm_repository + endpoint: + path: /l/npm-registry + method: GET +- name: debian_repository + endpoint: + path: /l/apt-repository + method: GET +- name: maven_repository + endpoint: + path: /l/maven-repository + method: GET +- name: rpm_repository + endpoint: + path: /l/yum-repository + method: GET +- name: rubygem_repository + endpoint: + path: /l/rubygem-repository + method: GET +- name: python_repository + endpoint: + path: /l/pypi-repository + method: GET +- name: alpine_repository + endpoint: + path: /l/alpine-repository + method: GET +- name: helm_repository + endpoint: + path: /l/helm-repository + method: GET +- name: docker_repository + endpoint: + path: /docker + method: GET +- name: repository + endpoint: + path: /repository + method: POST + data_selector: repository + params: {} +- name: gpg_key + endpoint: + path: /gpg_key + method: POST + data_selector: gpg_key + params: {} +- name: npm_repository + endpoint: + path: /l/npm-registry + method: GET +- name: debian_repository + endpoint: + path: /l/apt-repository + method: GET +- name: maven_repository + endpoint: + path: /l/maven-repository + method: GET +- name: rpm_repository + endpoint: + path: /l/yum-repository + method: GET +- name: rubygem_repository + endpoint: + path: /l/rubygem-repository + method: GET +- name: python_repository + endpoint: + path: /l/pypi-repository + method: GET +- name: alpine_repository + endpoint: + path: /l/alpine-repository + method: GET +- name: helm_repository + endpoint: + path: /l/helm-repository + method: GET +- name: docker_repository + endpoint: + path: /docker/ + method: GET +- name: plans + endpoint: + path: /pricing + method: GET + data_selector: plans + params: {} +- name: repository + endpoint: + path: /repository + method: POST + data_selector: repository + params: {} +- name: gpg_key + endpoint: + path: /gpg_key + method: POST + data_selector: gpg_keys + params: {} +- name: NPM Repository + endpoint: + path: /l/npm-registry/ + method: GET +- name: Debian Repository + endpoint: + path: /l/apt-repository/ + method: GET +- name: Maven Repository + endpoint: + path: /l/maven-repository/ + method: GET +- name: RPM Repository + endpoint: + path: /l/yum-repository/ + method: GET +- name: RubyGem Repository + endpoint: + path: /l/rubygem-repository/ + method: GET +- name: Python Repository + endpoint: + path: /l/pypi-repository/ + method: GET +- name: Helm Repository + endpoint: + path: /l/helm-repository/ + method: GET +- name: NPM Repository + endpoint: + path: /l/npm-registry/ + method: GET +- name: Debian Repository + endpoint: + path: /l/apt-repository/ + method: GET +- name: Maven Repository + endpoint: + path: /l/maven-repository/ + method: GET +- name: RPM Repository + endpoint: + path: /l/yum-repository/ + method: GET +- name: RubyGem Repository + endpoint: + path: /l/rubygem-repository/ + method: GET +- name: Python Repository + endpoint: + path: /l/pypi-repository/ + method: GET +- name: Helm Repository + endpoint: + path: /l/helm-repository/ + method: GET +- name: npm_repository + endpoint: + path: /l/npm-registry + method: GET +- name: debian_repository + endpoint: + path: /l/apt-repository + method: GET +- name: maven_repository + endpoint: + path: /l/maven-repository + method: GET +- name: rpm_repository + endpoint: + path: /l/yum-repository + method: GET +- name: rubygem_repository + endpoint: + path: /l/rubygem-repository + method: GET +- name: python_repository + endpoint: + path: /l/pypi-repository + method: GET +- name: alpine_repository + endpoint: + path: /l/alpine-repository + method: GET +- name: helm_repository + endpoint: + path: /l/helm-repository + method: GET +- name: docker_repository + endpoint: + path: /docker/ + method: GET +- name: npm_repository + endpoint: + path: /l/npm-registry + method: GET +- name: debian_repository + endpoint: + path: /l/apt-repository + method: GET +- name: maven_repository + endpoint: + path: /l/maven-repository + method: GET +- name: rpm_repository + endpoint: + path: /l/yum-repository + method: GET +- name: rubygem_repository + endpoint: + path: /l/rubygem-repository + method: GET +- name: python_repository + endpoint: + path: /l/pypi-repository + method: GET +- name: alpine_repository + endpoint: + path: /l/alpine-repository + method: GET +- name: helm_repository + endpoint: + path: /l/helm-repository + method: GET +- name: docker_repository + endpoint: + path: /docker/ + method: GET +notes: +- All API requests must be made over HTTPS. +- Most API requests are authenticated using an API token. +- For Debian .dsc packages, you must upload each of the files contained in the .dsc. +- Default date range is 7 days ago. +- Some objects like Contact may return nulls in deeply nested fields +- Packagecloud solutions are trusted by Fortune 500 companies around the world +- Our site only works over HTTPS, so there is no chance of a misconfiguration accidentally + exposing your repository or packages over plaintext HTTP +- Packagecloud solutions are trusted by Fortune 500 companies around the world. +- Our site only works over HTTPS, so there is no chance of a misconfiguration accidentally + exposing your repository or packages over plaintext HTTP. +- Packagecloud works with Bundler API without requiring any extra configuration +- 'Security-first: Our site only works over HTTPS, so there is no chance of a misconfiguration + accidentally exposing your repository or packages over plaintext HTTP.' +- 'Future-proof connectivity powered by IPv6: Stay future-ready! All our package repositories + and API endpoints are accessible with IPv6.' +- All our package repositories and API endpoints are accessible with IPv6 +- Packagecloud adheres to the Business Associate’s standards and complies with HIPAA + in protecting personal health information (PHI). +- packagecloud.io is strictly HTTPS/SSL only. There is no plain text access whatsoever. +- Packagecloud is certified as SOC 2 compliant. +errors: +- '401 Unauthorized: The username and password are incorrect or when the API token + used for a request is invalid.' +- '404 Not Found: The specified API resource was not found.' +- '422 Unprocessable Entity: A parameter to the API was provided but was unexpected, + malformed, not supported, or otherwise invalid.' +- HTTP/1.1 204 OK +- HTTP/1.1 201 Created +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +auth_info: + mentioned_objects: [] +client: + base_url: https://packagecloud.io + auth: + type: oauth2 +source_metadata: null diff --git a/peach_payments_payouts/peach-payments-payouts-docs.md b/peach_payments_payouts/peach-payments-payouts-docs.md new file mode 100644 index 00000000..db317779 --- /dev/null +++ b/peach_payments_payouts/peach-payments-payouts-docs.md @@ -0,0 +1,154 @@ +In this guide, we'll set up a complete Peach Payments data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def peach_payments_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://peachpayments.com/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + status,,payments,,checkout + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='peach_payments_migration_pipeline', + destination='duckdb', + dataset_name='peach_payments_migration_data', + ) + # Load the data + load_info = pipeline.run(peach_payments_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from peach_payments_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Status: Check the current status of the service. +- Payments: Manage and process payments. +- Checkout: Handle checkout operations including payment links. +- User Logs: Retrieve logs related to user activities. +- Payouts: Process payouts to users. +- Transactions: Manage transaction records. + +You will then debug the Peach Payments pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Peach Payments support. + ```shell + dlt init dlthub:peach_payments_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Peach Payments API, as specified in @peach_payments_migration-docs.yaml + Start with endpoints status and and skip incremental loading for now. + Place the code in peach_payments_migration_pipeline.py and name the pipeline peach_payments_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python peach_payments_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Peach Payments uses OAuth2 for authentication, requiring a connected app setup to generate access tokens. Ensure that the access token is refreshed as needed. + + To get the appropriate API keys, please visit the original source at https://www.peachpayments.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python peach_payments_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline peach_payments_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset peach_payments_migration_data + The duckdb destination used duckdb:/peach_payments_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline peach_payments_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("peach_payments_migration_pipeline").dataset() + # get tatu table as Pandas frame + data.tatu.df().head() + ``` + +## Running into errors? + +Be aware of API rate limits, webhooks requiring acknowledgment, and ensure that your application complies with security measures like SSL and signature requirements. Test thoroughly in the sandbox before going live, as there are limitations on certain operations, such as refunds and payment methods. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/peach_payments_payouts/peach-payments-payouts-docs.yaml b/peach_payments_payouts/peach-payments-payouts-docs.yaml new file mode 100644 index 00000000..95b8b0b3 --- /dev/null +++ b/peach_payments_payouts/peach-payments-payouts-docs.yaml @@ -0,0 +1,1350 @@ +resources: +- name: create_payout_request + endpoint: + path: /api/payouts + method: POST + data_selector: payouts + params: {} +- name: list_payout_requests + endpoint: + path: /api/payouts + method: GET + data_selector: payouts + params: {} +- name: query_payout_request + endpoint: + path: /api/payouts/{payoutId} + method: GET + data_selector: payout + params: {} +- name: retrieve_balance + endpoint: + path: /api/balance + method: GET + data_selector: balance + params: {} +- name: download_transaction_report + endpoint: + path: /api/payouts/report + method: GET + data_selector: report + params: {} +- name: download_statement_report + endpoint: + path: /api/payouts/statement + method: GET + data_selector: statement + params: {} +- name: initiate_checkout + endpoint: + path: /v2/checkout + method: POST + data_selector: checkoutId + params: {} +- name: payment_methods + endpoint: + path: /docs/pp-payment-methods + method: GET + data_selector: records +- name: checkout + endpoint: + path: /v2/checkout + method: POST + data_selector: checkoutId +- name: checkout + endpoint: + path: /v2/checkout + method: POST +- name: checkout + endpoint: + path: /checkout + method: POST + data_selector: url +- name: checkout_instance + endpoint: + path: /checkout/:checkoutId + method: GET + data_selector: response +- name: checkout_status + endpoint: + path: /v2/checkout/{checkoutId}/status + method: GET + data_selector: status + params: {} +- name: payment_methods + endpoint: + path: /payment-methods + method: GET + data_selector: enabled_payment_methods + params: {} +- name: checkout_status + endpoint: + path: /status + method: GET + params: + authentication.entityId: 8ac7a4c8708b8dae01708be6bb3b018e + merchantTransactionId: ffghfsdrererwsdsf + signature: 99699bb4a04af65a762ec4d15363a3d79aa21a12786721e0e89fa6c98933fb18 +- name: checkout_initiate + endpoint: + path: /checkout + method: POST + params: + amount: '2' + authentication.entityId: 8ac7a4ca68c22c4d0168c2caab2e0025 + currency: ZAR + merchantTransactionId: TESTING002 + nonce: Test1234 + paymentType: DB + shopperResultUrl: https://example.com/example-webhook + signature: 311ed8e11e2da00d98c7479ca390a5396fe643e13629d850243dada877963afd +- name: checkout_initiate + endpoint: + path: /checkout/initiate + method: POST + data_selector: response + params: {} +- name: checkout + endpoint: + path: /checkout + method: POST + data_selector: response + params: {} +- name: payment_response + endpoint: + path: /checkout/payment/response + method: POST + data_selector: response + params: {} +- name: redirect_response + endpoint: + path: /checkout/redirect-response + method: POST +- name: checkout_status + endpoint: + path: /status + method: GET + data_selector: status + params: + merchantTransactionId: Test1234 +- name: merchant_specs + endpoint: + path: /merchant_specs + method: GET + data_selector: payment_methods +- name: refund + endpoint: + path: /v1/checkout/refund + method: POST + data_selector: '' + params: {} +- name: checkout_event + endpoint: + path: /checkout/events + method: POST + data_selector: event + params: {} +- name: checkout_uncertain_status + endpoint: + path: /webhooks/checkout/uncertain_status + method: POST + data_selector: '' + params: {} +- name: checkout_cancelled + endpoint: + path: /webhooks/checkout/cancelled + method: POST + data_selector: '' + params: {} +- name: generate_payment_link + endpoint: + path: /generate-link + method: POST +- name: cancel_payment_link + endpoint: + path: /cancel-link + method: POST +- name: query_payment_status + endpoint: + path: /query-payment + method: GET +- name: retrieve_all_payment_links + endpoint: + path: /retrieve-all-payment-links + method: GET +- name: generate_payment_link + endpoint: + path: /reference/post_api-channels-entityid-payments-1 + method: POST +- name: cancel_payment_link + endpoint: + path: /reference/delete_api-payments-paymentid-1 + method: DELETE +- name: query_payment_status + endpoint: + path: /reference/get_api-payments-paymentid-1 + method: GET +- name: retrieve_all_payment_links + endpoint: + path: /reference/get_api-payments-1 + method: GET +- name: upload_pdf + endpoint: + path: /reference/post_api-attachments + method: POST +- name: download_pdf + endpoint: + path: /reference/get_api-payments-paymentid-files-fileid + method: GET +- name: generate_batch_link + endpoint: + path: /reference/post_api-channels-entityid-payments-batches + method: POST +- name: query_all_batch_statuses + endpoint: + path: /reference/get_api-channels-entityid-payments-batches + method: GET +- name: query_batch_status + endpoint: + path: /reference/get_api-batches-batchid + method: GET +- name: retrieve_batch_error_files + endpoint: + path: /reference/get_api-batches-batchid-files + method: GET +- name: payment_link + endpoint: + path: /api/payments/{paymentLinkId} + method: GET + data_selector: payment_link_details +- name: generate_payment_link + endpoint: + path: /api/channels/{entityId}/payments + method: POST +- name: cancel_payment_link + endpoint: + path: /api/channels/{entityId}/payments/cancel + method: POST +- name: query_payment_status + endpoint: + path: /api/channels/{entityId}/payments/status + method: GET +- name: retrieve_all_payment_links + endpoint: + path: /api/channels/{entityId}/payments + method: GET +- name: generate_bulk_payment_links + endpoint: + path: /api/channels/{entityId}/payments/bulk + method: POST +- name: cancel_payment_link + endpoint: + path: /api/payments/{paymentId} + method: DELETE +- name: payment_status + endpoint: + path: /api/payments/{paymentId} + method: GET + data_selector: payment_details +- name: payment_links + endpoint: + path: /api/payments + method: GET + data_selector: payment_links +- name: bulk_payment_links + endpoint: + path: /api/channels/{entityId}/payments/batches + method: POST + data_selector: url +- name: payment_link + endpoint: + path: /payment-links + method: POST +- name: bulk_payment_links + endpoint: + path: /payment-links/bulk + method: POST +- name: payment_link_status + endpoint: + path: /payment-links/status + method: GET +- name: generate_payment_link + endpoint: + path: /api/generate-link + method: POST + data_selector: link +- name: cancel_payment_link + endpoint: + path: /api/cancel-link + method: POST + data_selector: status +- name: query_payment_status + endpoint: + path: /api/query-payment + method: GET + data_selector: payment_status +- name: retrieve_all_payment_links + endpoint: + path: /api/retrieve-all-payment-links + method: GET + data_selector: payment_links +- name: generate_bulk_payment_links + endpoint: + path: /api/generate-bulk-payment-links + method: POST + data_selector: bulk_links +- name: generate_payment_link + endpoint: + path: /docs/generate-link-1 + method: POST +- name: cancel_payment_link + endpoint: + path: /docs/cancel-link + method: DELETE +- name: query_payment_status + endpoint: + path: /docs/query-payment + method: GET +- name: retrieve_all_payment_links + endpoint: + path: /docs/retrieve-all-payment-links + method: GET +- name: generate_bulk_payment_links + endpoint: + path: /docs/generate-bulk-payment-links + method: POST +- name: bulk_payment_links + endpoint: + path: /bulk-payment-links + method: POST + data_selector: links +- name: payments + endpoint: + path: /payments + method: POST + data_selector: transaction + params: {} +- name: refund + endpoint: + path: /payments/{unique_transaction_id}/ + method: POST + data_selector: refund + params: + payment_type: RF +- name: transaction_status + endpoint: + path: /transactions/status + method: GET + data_selector: status + params: {} +- name: capture + endpoint: + path: /payments/{id} + method: POST + data_selector: transaction + params: + paymentType: CP +- name: reverse + endpoint: + path: /payments/{id} + method: POST + data_selector: transaction + params: + paymentType: RV +- name: payment_links + endpoint: + path: /payment-links + method: GET + data_selector: data + params: {} +- name: transactions + endpoint: + path: /transactions + method: GET + data_selector: transactions + params: {} +- name: settlement_reconciliation + endpoint: + path: /dashboard/reporting/settlements + method: GET +- name: user_logs + endpoint: + path: /user_logs + method: GET + data_selector: logs + params: {} +- name: Payment extensions + endpoint: + path: /docs/payment-extensions-overview + method: GET + data_selector: payment_extensions +- name: Checkout credentials + endpoint: + path: /docs/checkout-overview#/find-your-credentials + method: GET + data_selector: checkout_credentials +- name: payment_links + endpoint: + path: /pp-hosted/secure/webhook + method: POST +- name: pay_in_request + endpoint: + path: /checkout/sbt + method: POST +- name: check_status_request + endpoint: + path: /status/sbt + method: GET +- name: payment_links + endpoint: + path: /payment_links + method: POST +- name: payments + endpoint: + path: /payments + method: POST +- name: payouts + endpoint: + path: /docs/payouts-api-1 + method: GET +- name: payout_requests + endpoint: + path: /v1/payouts + method: POST + data_selector: data + params: {} +- name: reconciliation_reports + endpoint: + path: /docs/dashboard-reporting-reconciliation + method: GET +- name: transaction_reconciliation + endpoint: + path: /docs/bus-ops-recon-api + method: GET +- name: transactions_recon + endpoint: + path: /api/merchants/{merchantId}/transactions-recon + method: GET + data_selector: transactions + params: + startDate: '2024-04-01T00:00:00.000Z' + endDate: '2024-04-02T00:00:00.000Z' +- name: list_transactions_recon + endpoint: + path: /api/merchants/{merchantId}/transactions-recon + method: GET + data_selector: transactions + params: + batchNumber: filter + settlementReference: filter +- name: payment_types + endpoint: + path: /docs/payment-types + method: GET + data_selector: payment_types + params: {} +- name: create_payout_request + endpoint: + path: /api/merchants/{merchantId}/payouts + method: POST +- name: list_payout_requests + endpoint: + path: /listpayoutrequests + method: GET +- name: query_payout_request + endpoint: + path: /querypayoutrequest + method: GET +- name: create_payout_request + endpoint: + path: /api/merchants/{merchantId}/payouts + method: POST + data_selector: payoutRequestId + params: {} +- name: initiate_checkout + endpoint: + path: /v2/checkout + method: POST +- name: query_checkout_status + endpoint: + path: /v2/checkout/{checkoutId}/status + method: GET +- name: initiate_checkout + endpoint: + path: /v2/checkout + method: POST + data_selector: checkoutId +- name: query_checkout_status + endpoint: + path: /v2/checkout/{checkoutId}/status + method: GET + data_selector: status +- name: checkout_status + endpoint: + path: /checkout/{checkoutId}/status + method: GET + data_selector: object + params: {} +- name: checkout_status + endpoint: + path: /v2/checkout/{checkoutId}/status + method: GET + data_selector: object + params: {} +- name: checkout_validation + endpoint: + path: /v2/checkout/validate + method: POST + data_selector: message +- name: validate_checkout_request + endpoint: + path: /v2/checkout/validate + method: POST +- name: payment_methods + endpoint: + path: /v2/channels/{entityId}/payment-methods + method: GET + data_selector: paymentMethods + params: + currency: '' +- name: payment_methods + endpoint: + path: /v2/channels/{entityId}/payment-methods + method: GET + data_selector: paymentMethods + params: + currency: USD +- name: initiate_redirect_based_checkout + endpoint: + path: /checkout/initiate + method: POST +- name: initiate_checkout + endpoint: + path: /checkout + method: POST +- name: query_checkout_status + endpoint: + path: /get_status + method: GET +- name: validate_checkout_request + endpoint: + path: /post_checkout-validate + method: POST +- name: initiate_redirect_checkout + endpoint: + path: /checkout/initiate + method: POST + data_selector: null + params: {} +- name: validate_checkout_request + endpoint: + path: /checkout/validate + method: POST +- name: initiate_checkout + endpoint: + path: /checkout + method: POST +- name: query_checkout_status + endpoint: + path: /get_status + method: GET +- name: checkout_status + endpoint: + path: /status + method: GET + data_selector: object + params: + authentication.entityId: string + checkoutId: string + merchantTransactionId: string + signature: string +- name: validate_checkout_request + endpoint: + path: /checkout/validate + method: POST +- name: payment_methods + endpoint: + path: /merchant_specs + method: POST + data_selector: response + params: + authentication.entityId: string + signature: string + currency: string +- name: checkout_status + endpoint: + path: /status + method: GET + data_selector: object + params: + authentication.entityId: '' + checkoutId: '' + merchantTransactionId: '' + signature: '' +- name: generate_link + endpoint: + path: /api/channels/{entityId}/payments + method: POST + data_selector: object + params: {} +- name: payment_methods + endpoint: + path: /merchant_specs + method: POST + data_selector: payment_methods + params: {} +- name: cancel_link + endpoint: + path: /payments/{paymentId} + method: DELETE +- name: payment_links + endpoint: + path: /payments + method: GET + params: + offset: 0 + perPage: 50 +- name: generate_link + endpoint: + path: /api/channels/{entityId}/payments + method: POST +- name: cancel_link + endpoint: + path: /api/payments/paymentid-1 + method: DELETE +- name: retrieve_payment_methods + endpoint: + path: /api/channels/entityid/payment-methods + method: GET +- name: query_payment_status + endpoint: + path: /api/payments/paymentid-1 + method: GET +- name: query_payment_status + endpoint: + path: /{paymentId} + method: GET +- name: cancel_link + endpoint: + path: /payments/{paymentId} + method: DELETE +- name: download_file + endpoint: + path: /api/payments/{paymentId}/files/{fileId} + method: GET + data_selector: object +- name: payment_links + endpoint: + path: /api/payments + method: GET + data_selector: payments + params: + offset: 0 + perPage: 50 +- name: upload_file + endpoint: + path: /api/attachments + method: POST +- name: payment_status + endpoint: + path: /api/payments/{paymentId} + method: GET +- name: generate_batch_link + endpoint: + path: /api/channels/{entityId}/payments/batches + method: POST +- name: download_file + endpoint: + path: /api/payments/{paymentId}/files/{fileId} + method: GET + data_selector: object +- name: upload_file + endpoint: + path: /api/attachments + method: POST +- name: batch_statuses + endpoint: + path: /api/channels/{entityId}/payments/batches + method: GET + data_selector: batches + params: + offset: 0 + perPage: 50 +- name: batch_link_status + endpoint: + path: /api/batches/{batchId} + method: GET +- name: get_all_batch_statuses + endpoint: + path: /api/channels/entityid/payments/batches + method: GET +- name: get_batch_error_files + endpoint: + path: /api/batches/{batchId}/files + method: GET +- name: generate_batch_link + endpoint: + path: /api/channels/{entityId}/payments/batches + method: POST + data_selector: object + params: {} +- name: batch_error_files + endpoint: + path: /api/batches/{batchId}/files + method: GET + data_selector: errorFileUrl + params: {} +- name: batch_statuses + endpoint: + path: /api/channels/{entityId}/payments/batches + method: GET + data_selector: batches + params: + offset: 0 + perPage: 50 +- name: batch_link_status + endpoint: + path: /{batchId} + method: GET + data_selector: object +- name: payment + endpoint: + path: /payments + method: POST + data_selector: result + params: {} +- name: transaction_status + endpoint: + path: /transaction_status + method: GET + data_selector: result + params: {} +- name: batch_error_files + endpoint: + path: /batches/{batchId}/files + method: GET + data_selector: errorFileUrl + params: {} +- name: refund + endpoint: + path: /payments/{uniqueId} + method: POST + data_selector: result + params: {} +- name: payment + endpoint: + path: /payments + method: POST +- name: transaction_status + endpoint: + path: /payments + method: GET + params: + authentication.userId: string + authentication.password: string + authentication.entityId: string + merchantTransactionId: string +- name: transaction + endpoint: + path: /payments/{uniqueId} + method: GET + data_selector: object + params: + authentication.entityId: string + authentication.userId: string + authentication.password: string +- name: transaction_status + endpoint: + path: /payments + method: GET + data_selector: result + params: + authentication.userId: string + authentication.password: string + authentication.entityId: string + merchantTransactionId: string +- name: balance + endpoint: + path: /merchants/{merchantId}/balance + method: GET +- name: transaction_status + endpoint: + path: /payments/{uniqueId} + method: GET + data_selector: result + params: + authentication.entityId: required + authentication.userId: required + authentication.password: required +- name: list_payout_requests + endpoint: + path: /api/merchants/{merchantId}/payouts + method: GET + data_selector: requests + params: + startDate: string + endDate: string + search: string + order: string +- name: balance + endpoint: + path: /api/merchants/{merchantId}/balance + method: GET + data_selector: object +- name: query_payout_request + endpoint: + path: /api/merchants/{merchantId}/payouts/{payoutRequestId}/status + method: GET + data_selector: payoutRequestId + params: {} +- name: list_payout_requests + endpoint: + path: /api/merchants/{merchantId}/payouts + method: GET + data_selector: requests + params: + startDate: string + endDate: string + search: string + order: string +- name: payouts_transaction_report + endpoint: + path: /api/merchants/{merchantId}/reports/payouts/download + method: GET + params: + startDate: string + endDate: string +- name: query_payout_request + endpoint: + path: /api/merchants/{merchantId}/payouts/{payoutRequestId}/status + method: GET +- name: payouts_statement_report + endpoint: + path: /api/merchants/{merchantId}/reports/statement/download + method: GET + data_selector: string + params: + startDate: string + endDate: string +- name: payouts_transaction_report + endpoint: + path: /api/merchants/{merchantId}/reports/payouts/download + method: GET + params: + startDate: string + endDate: string +- name: bulk_payout_file + endpoint: + path: /api/merchants/{merchantId}/payouts/upload + method: POST + data_selector: bulkPayoutId + params: {} +- name: payouts_statement_report + endpoint: + path: /api/merchants/{merchantId}/reports/statement/download + method: GET + data_selector: CSV + params: + startDate: string + endDate: string +- name: bulk_payouts + endpoint: + path: /merchants/{merchantId}/payouts/upload + method: GET + data_selector: bulkPayouts +- name: bulk_payouts + endpoint: + path: /api/merchants/{merchantId}/payouts/upload + method: POST + data_selector: bulkPayoutId + params: {} +- name: error_file_url + endpoint: + path: /api/merchants/{merchantId}/payouts/upload/{bulkPayoutId}/error + method: GET +- name: bulk_payout_uploads + endpoint: + path: /merchants/{merchantId}/payouts/upload + method: GET + data_selector: bulkPayouts +- name: transactions_recon + endpoint: + path: /api/merchants/{merchantId}/transactions-recon + method: GET + params: + startDate: '' + endDate: '' + isSuccessful: '' + paymentMethod: '' + batchNumber: '' + settlementReference: '' +- name: get_error_file_url + endpoint: + path: /api/merchants/{merchantId}/payouts/upload/{bulkPayoutId}/error + method: GET +- name: initiate_checkout + endpoint: + path: /v2/checkout + method: POST + data_selector: checkoutId + params: {} +- name: transactions_recon + endpoint: + path: /api/merchants/{merchantId}/transactions-recon + method: GET + data_selector: array of objects + params: + merchantId: required + startDate: required + endDate: required +- name: initiate_redirect_based_checkout + endpoint: + path: /checkout/initiate + method: POST +- name: checkout + endpoint: + path: /checkout + method: POST + data_selector: checkoutId + params: {} +- name: checkout_status + endpoint: + path: /checkout/{checkoutId}/status + method: GET + data_selector: status + params: {} +- name: generate_link + endpoint: + path: /api/channels/{entityId}/payments + method: POST +- name: initiate_redirect_based_checkout + endpoint: + path: /checkout/initiate + method: POST + data_selector: redirectUrl +- name: payment_links + endpoint: + path: /payments + method: GET + data_selector: payments + params: + offset: 0 + perPage: 50 +- name: download_file + endpoint: + path: /api/payments/{paymentId}/files/{fileId} + method: GET + data_selector: null + params: {} +- name: generate_link + endpoint: + path: /api/channels/{entityId}/payments + method: POST +- name: cancel_link + endpoint: + path: /api/payments/paymentid-1 + method: DELETE +- name: retrieve_payment_methods + endpoint: + path: /api/payments-1 + method: GET +- name: query_payment_status + endpoint: + path: /api/payments/paymentid-1 + method: GET +- name: generate_batch_link + endpoint: + path: /api/channels/{entityId}/payments/batches + method: POST + data_selector: id + params: {} +- name: payment_links + endpoint: + path: /payments + method: GET + data_selector: payments + params: + offset: 0 + perPage: 50 +- name: download_file + endpoint: + path: /api/payments/{paymentId}/files/{fileId} + method: GET +- name: payments + endpoint: + path: /payments + method: POST + data_selector: null + params: {} +- name: generate_batch_link + endpoint: + path: /api/channels/{entityId}/payments/batches + method: POST +- name: transaction_status + endpoint: + path: /payments + method: GET + data_selector: result + params: + authentication.userId: required + authentication.password: required + authentication.entityId: required + merchantTransactionId: required +- name: payment + endpoint: + path: /payments + method: POST +- name: transaction_status + endpoint: + path: /transaction_status + method: GET +- name: balance + endpoint: + path: /api/merchants/{merchantId}/balance + method: GET + data_selector: object +- name: transaction_status + endpoint: + path: /payments + method: GET + data_selector: result + params: + authentication.userId: string + authentication.password: string + authentication.entityId: string + merchantTransactionId: string +- name: create_payout_request + endpoint: + path: /api/merchants/{merchantId}/payouts + method: POST + data_selector: payoutRequestId +- name: balance + endpoint: + path: /merchants/{merchantId}/balance + method: GET +- name: payouts_transaction_report + endpoint: + path: /api/merchants/{merchantId}/reports/payouts/download + method: GET + data_selector: CSV file containing the payout transaction report + params: + startDate: required + endDate: required +- name: bulk_payout + endpoint: + path: /api/merchants/{merchantId}/payouts/upload + method: POST +- name: create_payout_request + endpoint: + path: /api/merchants/{merchantId}/payouts + method: POST +- name: list_payout_requests + endpoint: + path: /listpayoutrequests + method: GET +- name: query_payout_request + endpoint: + path: /querypayoutrequest + method: GET +- name: payouts_transaction_report + endpoint: + path: /api/merchants/{merchantId}/reports/payouts/download + method: GET + params: + startDate: required + endDate: required +- name: transactions_recon + endpoint: + path: /api/merchants/{merchantId}/transactions-recon + method: GET + data_selector: array of objects + params: + merchantId: string + startDate: date-time + endDate: date-time + isSuccessful: boolean + paymentMethod: string + batchNumber: string + settlementReference: string +notes: +- Webhooks provide updates on any changes in the state of the payouts. +- Peach Payments uses exponential backoff logic for retrying webhooks. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Enterprise-grade security (3-D Secure enabled and PCI compliant) +- Mobile-optimised user experience +- Industry-leading conversion rates +- Supports multiple currencies +- Hosted Checkout powers Payment Links and all payment extensions, including Xero. +- The Payments API does not support card payments. +- Customers with Bitcoin Lightning Network wallets must provide their wallet address + during the initial payment process if they want to be able to request a refund later. +- Checkout V2 supports Embedded Checkout and Hosted Checkout and uses modern authentication + techniques. +- Embedded Checkout does not support PayPal. +- Embedded Checkout does not support Google Pay Web and Samsung Pay Web in React Native + and Flutter integrations due to how they try to open new tabs or windows to complete + a payment. +- Requires a unique nonce for each request made to the /v2/checkout URL +- Requires that you allowlist URL domains that execute the API POST request to Checkout + for added security +- Never store or use your Peach Payments credentials from your mobile app. +- Using the `source={{html}}` property of WebView does not work as expected. +- Apple Pay, Google Pay, and Samsung Pay buttons are logos and are not affected by + font changes. +- The CVV and card number fields do not support certain fonts. +- Sending a Hosted Checkout link to a customer using WhatsApp or a service that unfurls + the link is not supported. +- Checkout (both Embedded and Hosted) does not support iframing. +- The initial status is created. +- Embedded Checkout is a new integration and does not support an upgrade path from + Hosted Checkout. +- The secret token provided by Peach Payments acts as the key to generate the signature. +- All requests must be over SSL. +- Each payment request requires a unique nonce parameter to ensure authenticity. +- For the Form POST method, you must sign the data on the backend and execute the + POST from the browser. +- The response includes parameters passed in the Hosted Checkout payment POST request. +- The API signs all redirect requests with a signature using the secret token as the + key. +- All GET status requests require a signature using the secret token as the key. +- Use unique merchantTransactionId values for each checkout request. +- High-risk merchants must provide verified ID numbers in requests to enable their + customers to pay using Capitec Pay. +- All refund requests require a signature and the API signs all responses with a signature + using the secret token as the key. +- Tokenisation is only available for Visa, Mastercard, Amex, and Diners cards. +- You must get permission from your customers before tokenising their cards. +- Webhooks are HTTP callbacks that deliver notification messages for events. +- Peach Payments cannot guarantee the order of webhooks. +- You can generate a payment link or a batch of up to 1000 payment links for amounts + up to 99999999.99 for the selected currency. +- Receive payment and batch updates via webhooks and successful transaction email + receipts. +- You can reuse the access token from step 2 for multiple API calls. +- When the token expires, you need to generate a new one. +- The merchant must upload a CSV file with payment links' details. +- Payment Links uses Checkout to accept payments. +- Only certain roles can activate Payment Links. +- Only certain roles can create and cancel payment links. +- Support for sending payment link notifications using WhatsApp is still in development + and is not supported. +- Ensure your system responds with a 200 status response for webhooks. +- Webhook payloads must be decrypted to process transaction data. +- Peach Payments sends webhooks for certain events. +- Peach Payments expects a 200 HTTP for successful webhook delivery and a non-200 + HTTP status code for failures. +- For an unsuccessful response, Peach Payments retries the webhook for seven days + or until a successful acknowledgement (200 HTTP) occurs. +- The Payments API does not support card, A+ store cards, Apple Pay, and PayPal. +- Payment Page supports your default currency and cannot accept multiple currencies. +- Payment Page uses Embedded Checkout to accept payments and has the same payment + method limitations that Embedded Checkout has. +- You have seven days to capture or reverse a preauthorisation. +- You cannot undo a full or partial capture after Peach Payments has processed it. +- You cannot undo a full or partial reversal after Peach Payments has processed it. +- Refunds are not allowed on preauthorisations. +- Some functionality is limited until onboarding is completed. +- Not all card transactions feature the Merchant Advice Code. +- Only certain roles can export transactions. +- Only certain roles can refund transactions. +- The refund should reflect in the customer's account in 3 to 10 working days. +- A refund older than six months must be manually processed by the Peach Payments + team. +- The proof of refund becomes available 10 minutes after the processing of the transaction. +- The proof of 3-D Secure is not available immediately. +- Peach Payments might withhold settlement for various reasons, including outstanding + FICA documents, suspected fraud, chargeback disputes, sudden spikes in transaction + volumes, incomplete verifications, outstanding fees, and so on. +- You can only view and activate payment methods that Peach Payments offers in your + country. +- If you have not completed onboarding, you cannot activate payment methods. +- Adding a domain on sandbox does not need verification. +- Only certain roles can manage settings. +- Documentation for integration available on the website +- Most Dashboard information is static, merchants cannot edit their business settings + or enable payment methods or services. +- Take App only supports live payments. You cannot test in sandbox. +- Requires review by Peach Payments South Africa for account activation. +- Does not support recurring payments, only once-off payments. +- Does not support full or partial refunds. +- Peach Payments strongly recommends testing using sandbox credentials before accepting + live payments. +- Embedded Checkout does not support certain payment methods +- Does not support full or partial refunds. Use the platform's offline refund feature + to log the refund. +- The OpenCart payment extension supports once-off payments, but not recurring payments + or one-click payments using stored cards. +- Does not support full or partial refunds. Use the platform's offline refund feature + to log the refund, and then either manually refund your customer or do so using + the Peach Payments Dashboard. +- Full or partial refunds are not supported, you must request that Peach Payments + process refunds manually. +- Sandbox Dashboard cannot accept live payments. +- Wix supports one base currency. If you set your currency to one that is not supported + by a payment method, then you cannot offer that payment method. +- You must have a Wix business & eCommerce premium plan to accept payments with Peach + Payments. +- Peach Payments does not have sandbox environments for Wix. The API key provided + when you sign up can process live transactions. +- Peach Payments does not support webhooks for Wix. +- Embedded Checkout does not support certain payment methods. +- Before executing any payouts, you should send Peach Payments a source of funds document + for compliance reasons. +- Once a payout is successfully submitted, you cannot recall it. +- Refunds are not supported. +- Failed payouts incur fees. +- Only certain roles can activate Payouts. +- Only certain roles can create payouts. +- This API has certain limitations. +- Retrieve your Payouts API credentials from the Payouts section of the Dashboard. +- 'Rate limit: One request per second' +- Cannot query transactions before 1 January 2023 +- Cannot query transactions on a date range longer than 24 hours per request +- Reference materials for the Reconciliation product +- The Reconciliation API offers the ability to list transactions programmatically + for internal reconciliation processes. +- The Reconciliation API offers you the ability to list transactions programmatically + for your internal reconciliation processes. +- Card payments are not available on Payments API. +- When testing multi-currency processing in sandbox, you must use either 92.00 or + 15.99 as the transaction amount to simulate a successful transaction. +- You must have an Apple developer test account to test Apple Pay. +- Google Pay is only available on Checkout. +- Samsung Pay is only available on Checkout. +- You cannot test Samsung Pay in sandbox and must perform testing in the live environment. +- You cannot test MoneyBadger in sandbox and must perform testing in the live environment. +- When testing the successful payment scenario on sandbox using the `51100000` number, + when you get to the confirmation message screen, wait for the confirmation request + to expire to simulate a successful payment. +- Testing this way requires manual intervention and synchronisation between you, Peach + Payments, and Emtel. +- Apple Pay is only available on Checkout. +- Peach Payments uses webhooks to inform merchant systems when certain events occur. +- Peach Payments does not store any sensitive cardholder data on our servers at any + time for either once-off or recurring payments. +- Sensitive cardholder details are directly transmitted from users' browsers to Peach + Payments' systems. +- The entity for the request is the channel ID. +- Load Hosted Checkout to complete a payment. +- The POST request contains the entityId, signature, purchase parameters, and any + custom parameters that a merchant optionally sends. +- The URL for this request expired after 30 days. +- The POST request contains the entityId, signature, purchase parameters, and any + custom parameters. +errors: +- '2001.002.106: Payout processing error - There is no account associated with the + account number and the bank you entered.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '400: A validation error has occurred with Checkout.' +- '401: Request lacks valid authentication, message in response contains specifics.' +- '404: Invalid entity ID passed.' +- '500: Internal server error.' +- '800.100.195: Attempts to refund the transaction fail if wallet address is not provided + during the initial payment' +- 'RESPONSE_ERROR: Check the payment parameters and signature.' +- 'RESPONSE_CODE: Check the response codes documentation for specific error handling.' +- 'INVALID_PARAMETER: Check request parameters for correctness' +- 'SIGNATURE_MISMATCH: Ensure signature is generated correctly' +- '100.550.701: amounts not matched' +- '700.400.200: cannot refund (refund volume exceeded or tx reversed or invalid workflow?)' +- '700.300.100: referenced tx can not be refunded, captured or reversed (invalid type)' +- '200: Successful acknowledgment of the webhook.' +- 'Non-200: Webhook delivery considered failed, will be retried.' +- Unable to authenticate +- Unable to retrieve Payment Link details +- '000.200.000: Transaction created and is in a pending state' +- '000.000.000: Transaction successful' +- '000.400.000: Transaction failed' +- Non-200 HTTP status code indicates a failure. +- Response codes available in the documentation +- 'Error [CURL] - The requested URL returned error: 401' +- Webhook delivery requires a 200 HTTP status response. +- Non-200 HTTP status code for failures results in retries. +- '2000 to 2899 response codes: Typically returned due to incorrect customer bank + details or issues with the customer''s bank account.' +- '400: There have been one or more field validation errors.' +- '401: The request is not authenticated. Please re-authenticate and provide a new + token.' +- '403: The request is not authorised. Please contact your business administrator.' +- 400 - There have been one or more field validation errors. +- 401 - The request is not authenticated. Please re-authenticate and provide a new + token. +- 403 - The request is not authorised. Please contact your business administrator. +- 400 A validation error has occurred with Checkout. +- 401 Request lacks valid authentication, message in response contains specifics. +- 404 Invalid entity ID passed. +- 500 Internal server error. +- 401 Invalid authentication information. +- 404 Checkout not found. +- 401 Request lacks valid authentication. +- '400: Invalid authentication information.' +- 400 Invalid state, check the body for more details. +- 400 Invalid request +- 500 Internal server error +- '400 Bad request: Has additional fields' +- 401 Request lacks valid authentication +- 404 The specified resource was not found. +- 400 Bad request +- 404 The specified resource was not found +- '400 Bad request: required' +- '401 Request lacks valid authentication: required' +- '404 The specified resource was not found: required' +- '400 Bad request: Required field missing' +- 400 Bad request. +- '400 Bad request: message required' +- '401 Request lacks valid authentication: message required' +- '404 The specified resource was not found: message required' +- '400 Bad request: Error result object describing the error code and parameter errors.' +- '401 Unauthorised: The result object.' +- '500 Internal server error: The result object.' +- 401 Unauthorized +- 404 Not found +- 502 Bad gateway +- 401 Unauthorised +- '401 Unauthorised: The result object with additional details about the error.' +- '404 Not found: The unique code that indicates the result status of the request.' +- '500 Internal server error: The result object with additional details about the + error.' +- '401 Unauthorised: The unique code that indicates the result status of the request.' +- '403 Forbidden: The unique code that indicates the result status of the request.' +- '500 Internal server error: The unique code that indicates the result status of + the request.' +- '401 Unauthorised: The result object indicating the result status of the request.' +- '404 Not found: The result object indicating the result status of the request.' +- '500 Internal server error: The result object indicating the result status of the + request.' +- '400: There was an error with the request. Please fix the request and try again.' +- '404: No last balance was found on your account.' +- 403 Forbidden +- 400 Invalid date range. Three month maximum window size allowed. +- 401 The request is not authenticated. Please re-authenticate and provide a new token. +- 403 The request is not authorised. Please contact your business administrator. +- 400 There are missing or invalid path parameters. +- 404 The payout request was not found. +- 400 An invalid date range has been provided for the payout transaction report. +- 400 - An invalid date range has been provided for the payout transaction report. +- 400 There was an error with the request. Please fix the request and try again. +- '400: merchantId required' +- '400: startDate required' +- '400: endDate required' +- '401: default' +- '403: default' +- '500: default' +- '401: Request lacks valid authentication.' +- '401 Request lacks valid authentication: Check your credentials' +- '400: An object containing the error message string.' +- '401: An object containing the error message string.' +- '403: An object containing the error message string.' +- '500: An object containing the error message string.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://peachpayments.com + auth: + type: oauth2 +source_metadata: null diff --git a/pipeliner_sales/pipeliner-sales-docs.md b/pipeliner_sales/pipeliner-sales-docs.md new file mode 100644 index 00000000..048d93de --- /dev/null +++ b/pipeliner_sales/pipeliner-sales-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Pipeliner Sales data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def pipeliner_sales_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://us-east.pipelinersales.com/api/v100/rest/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + entities/Leads,,entities/Tasks,,entities/Clients + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='pipeliner_sales_migrations_pipeline', + destination='duckdb', + dataset_name='pipeliner_sales_migrations_data', + ) + # Load the data + load_info = pipeline.run(pipeliner_sales_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from pipeliner_sales_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Entities: Access and manage various entity types such as Leads, Tasks, and Clients. +- Webhooks: Configure webhook notifications for real-time updates. +- Bulk Operations: Perform bulk create, update, or delete actions on entities. + +You will then debug the Pipeliner Sales pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Pipeliner Sales support. + ```shell + dlt init dlthub:pipeliner_sales_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Pipeliner Sales API, as specified in @pipeliner_sales_migrations-docs.yaml + Start with endpoints entities/Leads and and skip incremental loading for now. + Place the code in pipeliner_sales_migrations_pipeline.py and name the pipeline pipeliner_sales_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python pipeliner_sales_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Pipeliner Sales uses OAuth2 for authentication, requiring the setup of a connected app to obtain an access token and refresh token. + + To get the appropriate API keys, please visit the original source at https://www.pipelinersales.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python pipeliner_sales_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline pipeliner_sales_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset pipeliner_sales_migrations_data + The duckdb destination used duckdb:/pipeliner_sales_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline pipeliner_sales_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("pipeliner_sales_migrations_pipeline").dataset() + # get ntities/Lead table as Pandas frame + data.ntities/Lead.df().head() + ``` + +## Running into errors? + +Ensure proper authentication setup before using the API. The API has limits on the number of records returned per request (default is 30, maximum is 100). Some fields may not be creatable through the API, and it is important to follow the specific API parameter formats. Additionally, all dates are stored in UTC and should follow ISO 8601 formatting. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/pipeliner_sales/pipeliner-sales-docs.yaml b/pipeliner_sales/pipeliner-sales-docs.yaml new file mode 100644 index 00000000..98fe0800 --- /dev/null +++ b/pipeliner_sales/pipeliner-sales-docs.yaml @@ -0,0 +1,689 @@ +resources: +- name: Products + endpoint: + path: /entities/Products/batch-modify + method: POST + data_selector: data +- name: ProductCategories + endpoint: + path: /entities/ProductCategories + method: GET + data_selector: '' +- name: ProductPriceLists + endpoint: + path: /entities/ProductPriceLists + method: GET + data_selector: '' +- name: OpptyProductRelations + endpoint: + path: /entities/OpptyProductRelations + method: POST + data_selector: '' +- name: products + endpoint: + path: /spaces//entities/Products/batch-modify + method: POST + data_selector: data +- name: product_categories + endpoint: + path: /entities/ProductCategories + method: GET + data_selector: '' +- name: product_price_lists + endpoint: + path: /entities/ProductPriceLists + method: GET + data_selector: '' +- name: accounts + endpoint: + path: /entities/Accounts + method: GET +- name: contacts + endpoint: + path: /entities/Contacts + method: GET +- name: opportunities + endpoint: + path: /entities/Opportunities + method: GET +- name: leads + endpoint: + path: /entities/Leads + method: GET +- name: appointments + endpoint: + path: /entities/Appointments + method: GET +- name: tasks + endpoint: + path: /entities/Tasks + method: GET +- name: products + endpoint: + path: /entities/Products + method: GET +- name: product_line_items + endpoint: + path: /entities/OpptyProductRelations + method: GET +- name: cloud_objects + endpoint: + path: /entities/CloudObjects + method: GET +- name: accounts + endpoint: + path: /entities/Accounts + method: GET +- name: contacts + endpoint: + path: /entities/Contacts + method: GET +- name: opportunities + endpoint: + path: /entities/Opportunities + method: GET +- name: leads + endpoint: + path: /entities/Leads + method: GET +- name: appointments + endpoint: + path: /entities/Appointments + method: GET +- name: tasks + endpoint: + path: /entities/Tasks + method: GET +- name: products + endpoint: + path: /entities/Products + method: GET +- name: product_line_items + endpoint: + path: /entities/OpptyProductRelations + method: GET +- name: cloud_objects + endpoint: + path: /entities/CloudObjects + method: GET +- name: MasterRights + endpoint: + path: /entities/MasterRights + method: GET + data_selector: data + params: + include-deleted: 'false' +- name: Clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + include-deleted: 'false' +- name: SalesUnits + endpoint: + path: /entities/SalesUnits + method: GET + data_selector: data + params: + include-deleted: 'false' +- name: MasterRights + endpoint: + path: /entities/MasterRights + method: GET + data_selector: data + params: + include-deleted: true + first: 30 +- name: Clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + include-deleted: true + first: 30 +- name: SalesUnits + endpoint: + path: /entities/SalesUnits + method: GET + data_selector: data + params: + include-deleted: true + first: 30 +- name: fields + endpoint: + path: /entities/Fields + method: POST + data_selector: data + params: {} +- name: fields + endpoint: + path: /api/v100/rest/spaces//entities/Fields + method: GET + data_selector: data +- name: fields + endpoint: + path: /entities/Fields + method: POST + data_selector: data + params: {} +- name: Clients + endpoint: + path: /entities/Clients + method: GET + params: + include-deleted: 'true' + first: '-8971250' + last: '-8971250' + before: 'true' + after: 'true' + expand: owner,sales_unit,account_relations.account + order-by: created,-modified + load-only: id,default_unit_id + filter: email=john.doe@example.com +- name: fields + endpoint: + path: /entities/Fields + method: GET + data_selector: data + params: + first: 30 +- name: Clients + endpoint: + path: /entities/Clients + method: GET + params: + include-deleted: 'true' +- name: Pipelines + endpoint: + path: /entities/Pipelines + method: GET + params: + expand: steps +- name: Opportunities + endpoint: + params: + after: end_cursor +- name: batch_modify + endpoint: + path: /entities/{{Entity-name}}/batch-modify + method: POST + data_selector: records + params: + rollback-method: '0' +- name: batch_delete + endpoint: + path: /entities/{{Entity-name}}/batch-delete + method: POST + data_selector: records + params: {} +- name: Webhooks + endpoint: + path: /entities/Webhooks + method: POST + data_selector: data + params: {} +- name: batch_modify + endpoint: + path: /entities/{{Entity-name}}/batch-modify + method: POST +- name: batch_delete + endpoint: + path: /entities/{{Entity-name}}/batch-delete + method: POST +- name: Webhooks + endpoint: + path: /entities/Webhooks + method: POST + data_selector: data + params: {} +- name: clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + include-deleted: false + first: 30 +- name: accounts + endpoint: + path: /entities/Accounts + method: POST + data_selector: data + params: {} +- name: industry_fields + endpoint: + path: /entities/Fields + method: GET + data_selector: data + params: + expand: data_set + load-only: api_name,data_set.option_name,data_set.id + filter[api_name]: industry_id +- name: clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + include-deleted: 'false' +- name: accounts + endpoint: + path: /entities/Accounts + method: GET + data_selector: data + params: + include-deleted: 'false' +- name: clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + include-deleted: 'false' + first: 30 +- name: accounts + endpoint: + path: /entities/Accounts + method: POST + data_selector: data +- name: Contacts + endpoint: + path: /entities/Contacts + method: POST + data_selector: data + params: + validation-level: integer +- name: Clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + load-only: id,default_unit_id + filter[email]: john.doe@example.com +- name: Accounts + endpoint: + path: /entities/Accounts + method: GET + data_selector: data + params: + include-deleted: 'false' + filter[email1]: info@ziemann-and-sons.de +- name: opportunity + endpoint: + path: /entities/Opportunities + method: POST + data_selector: records +- name: contact + endpoint: + path: /entities/Contacts + method: POST + data_selector: data + params: {} +- name: opportunity + endpoint: + path: /entities/Opportunities + method: POST + data_selector: records + params: {} +- name: Clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + include-deleted: false +- name: Pipelines + endpoint: + path: /entities/Pipelines + method: GET + data_selector: data + params: + include-deleted: false +- name: Accounts + endpoint: + path: /entities/Accounts + method: GET + data_selector: data + params: + include-deleted: false +- name: ContactAccountRelations + endpoint: + path: /entities/ContactAccountRelations + method: GET + data_selector: data + params: + include-deleted: false +- name: Currencies + endpoint: + path: /entities/Currencies + method: GET + data_selector: data + params: + include-deleted: false +- name: opportunity + endpoint: + path: /spaces//entities/Opportunities + method: POST + data_selector: data +- name: clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + first: 30 + include-deleted: false +- name: pipelines + endpoint: + path: /entities/Pipelines + method: GET + data_selector: data + params: + first: 30 + include-deleted: false +- name: accounts + endpoint: + path: /entities/Accounts + method: GET + data_selector: data + params: + include-deleted: false +- name: contact_account_relations + endpoint: + path: /entities/ContactAccountRelations + method: GET + data_selector: data + params: + first: 30 + include-deleted: false +- name: currencies + endpoint: + path: /entities/Currencies + method: GET + data_selector: data + params: + filter[is_base]: 'true' +- name: Clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + include-deleted: 'false' + first: 30 +- name: CustomEntityType + endpoint: + path: /entities/{custom_entity_api_name}Type + method: GET + data_selector: data +- name: CustomEntities + endpoint: + path: /entities/{custom_entity_api_name} + method: POST + data_selector: data +- name: opportunity + endpoint: + path: /entities/Opportunities + method: POST + data_selector: data + params: {} +- name: Opportunities + endpoint: + path: /api/v100/rest/spaces/{space_id}/entities/Opportunities + method: GET + data_selector: data + params: + include-deleted: boolean + first: integer + last: integer + before: string + after: string + expand: string + order-by: string + filter: object + filter-op: object +- name: CustomEntities + endpoint: + path: /api/v100/rest/spaces/{space_id}/entities/{custom_entity_api_name} + method: GET + data_selector: data + params: + include-deleted: boolean + first: integer + last: integer + before: string + after: string + expand: string + order-by: string + filter: object + filter-op: object +- name: CustomEntities.update + endpoint: + path: /api/v100/rest/spaces/{space_id}/entities/{custom_entity_api_name}/{id} + method: PATCH + data_selector: data + params: + validation-level: integer + name: string + owner_id: string + share_mode: integer + type_id: string + unit_id: string + sharing_units: object[] + sharing_clients: object[] + documents: object[] + revision: integer +- name: clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + include-deleted: false + first: 30 +- name: custom_entity_types + endpoint: + path: /entities/{custom_entity_api_name}Type + method: GET + data_selector: data +- name: create_custom_entity + endpoint: + path: /entities/{custom_entity_api_name} + method: POST + data_selector: data +- name: CloudObjectRelations + endpoint: + path: /entities/CloudObjectRelations + method: POST + data_selector: data + params: {} +- name: Accounts + endpoint: + path: /entities/Accounts + method: GET + data_selector: records + params: + include-deleted: 'false' + filter[email1]: info@ziemann-and-sons.de +- name: opportunities + endpoint: + path: /api/v100/rest/spaces/{space_id}/entities/Opportunities + method: GET + data_selector: data + params: + first: 30 +- name: custom_entities + endpoint: + path: /api/v100/rest/spaces/{space_id}/entities/{custom_entity_api_name} + method: GET + data_selector: data + params: + first: 30 +- name: merge_accounts + endpoint: + path: /entities/Accounts/merge + method: POST + data_selector: data + params: {} +- name: merge_contacts + endpoint: + path: /entities/Contacts/merge + method: POST + data_selector: data + params: {} +- name: cloud_object_relation + endpoint: + path: /entities/CloudObjectRelations + method: POST + data_selector: data + params: {} +- name: account + endpoint: + path: /entities/Accounts + method: GET + data_selector: records + params: + include-deleted: 'false' + filter[email1]: info@ziemann-and-sons.de +- name: merge_accounts + endpoint: + path: /entities/Accounts/merge + method: POST + data_selector: data + params: {} +- name: merge_contacts + endpoint: + path: /entities/Contacts/merge + method: POST + data_selector: data + params: {} +- name: clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + include-deleted: false + first: 30 +- name: accounts + endpoint: + path: /entities/Accounts + method: POST + data_selector: data + params: {} +- name: fields + endpoint: + path: /entities/Fields + method: GET + data_selector: data + params: + expand: data_set + load-only: api_name,data_set.option_name,data_set.id + filter[api_name]: industry_id +- name: clients + endpoint: + path: /entities/Clients + method: GET + data_selector: data + params: + include-deleted: false + first: 30 +- name: accounts + endpoint: + path: /entities/Accounts + method: POST + data_selector: data +notes: +- Use 1 for All Pipelines when creating products. +- Uses OAuth2 for authentication. +- User Name and Password are used for Basic Authentication and are generated only + once, so store them carefully +- Users can be assigned only to one Role. +- Every Entity has to be connected with the Sales Unit. +- Some fields can be created through API. +- Not every field can be created through API. +- Uses OAuth2 with refresh token — requires setup of connected app in Pipeliner Sales +- API parameters may vary from endpoint to endpoint. +- All dates are stored in the UTC timezone. +- Data are formatted by standard ISO 8601. +- If you include Timezone in the request header, Pipeliner will automatically convert + dates to the specified timezone. +- Pipeliner sends a maximum of 100 records per request. The limit can be changed by + API parameter `first`. +- All dates are stored in the UTC timezone. Data are formatted by standard ISO 8601 +- 'Pipeliner sends a maximum of 100 (Default: 30) records per request. The limit can + be changed by API parameter first.' +- It is recommended to use Bulk Create, Update, Delete methods when working with a + lot of data at once. +- If True, remote side ssl certificate will not be validated when delivering notifications. +- Webhook URL must be specified for notifications. +- Requires setup of connected app in Pipeliner. +- When working with dropdown fields like industry_id, use the corresponding id from + the data_set. +- Contact should not be standalone records, but they should always be linked to the + Accounts. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- When working with Dropdown fields like industry_id, use the relation to the id of + the value in field data_set. +- Create Opportunity in the Pipeline within the First Step of the Pipeline. +- When creating account relations at least one Account needs to be primary. +- When creating contact relations at least one Contact needs to be primary. +- Opportunity represents existing potential business for a company. +- Opportunity is always part of the Pipeline and pipeline step. +- Max number of entities to return is 100, default is 30. +- 'is_delete_protected: true' +- 'is_deleted: false' +- 'is_base: true' +- 'revision: 18' +- When creating account relations at least one Account needs to be primary +- When creating contact relations at least one Contact needs to be primary +- When only owner_id is specified, Pipeliner will automatically create the opportunity + with the default User’s sales unit. +- is_delete_protected is true +- is_deleted is false +- is_base is true +- Ensure proper authentication setup before using the API +- Error on field account_relations. Exactly one 'is_primary' item must be set. +- Uses OAuth2 with refresh token — requires setup of connected app in pipeliner +- Some objects may return nulls in deeply nested fields +- It is recommended to include the File Type in the file name of the document. +- Max number of entities to return is 100. Default is 30. +- The merging functionality through API works in the same way as in the Application. +- Document types must be specified in the filename for automatic recognition. +- Merger multiple Accounts or Contacts into master record. +- Ensure authentication works before making API calls. +- Use correct parameter formats as specified in the API documentation. +- Uses OAuth2 with refresh token — requires setup of connected app in Pipeliner +- For dropdown fields like industry_id use relation to the id of the value in field + data_set. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 500 unexpected error +- '201: Creation confirmation. Returns created field' +- '500: Unexpected error' +- '500: unexpected error' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '40000: ERROR_ENTITY_VALIDATION: An object in a request is invalid.' +- '40002: ERROR_FIELD_VALIDATION: Validation error on a specific field.' +- '422: Validation error: If at least one object in a request is invalid.' +- 'ERROR_ENTITY_VALIDATION: Check entity validation errors.' +- 'ERROR_RELATIONS_DOESNT_EXIST: Relation does not exist.' +- 200 list of Clients +- Error on field account_relations. Exactly one 'is_primary' item must be set. +- '201: Creation confirmation.' +- '400: Bad Request - Check your request parameters.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://us-east.pipelinersales.com/api/v100/rest/spaces + headers: + Content-Type: application/json + Accept: '*/*' +source_metadata: null diff --git a/piprapay/piprapay-docs.md b/piprapay/piprapay-docs.md new file mode 100644 index 00000000..4f0d0e31 --- /dev/null +++ b/piprapay/piprapay-docs.md @@ -0,0 +1,150 @@ +In this guide, we'll set up a complete PipraPay data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def piprapay_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://sandbox.piprapay.com/api/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + create-charge,,verify-payments + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='piprapay_migrations_pipeline', + destination='duckdb', + dataset_name='piprapay_migrations_data', + ) + # Load the data + load_info = pipeline.run(piprapay_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from piprapay_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- create-charge: This endpoint is used to initiate a payment charge. +- verify-payments: This endpoint allows for the verification of payment transactions. + +You will then debug the PipraPay pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with PipraPay support. + ```shell + dlt init dlthub:piprapay_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for PipraPay API, as specified in @piprapay_migrations-docs.yaml + Start with endpoints create-charge and and skip incremental loading for now. + Place the code in piprapay_migrations_pipeline.py and name the pipeline piprapay_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python piprapay_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is done using an API key, which needs to be included in the request headers. + + To get the appropriate API keys, please visit the original source at https://www.piprapay.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python piprapay_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline piprapay_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset piprapay_migrations_data + The duckdb destination used duckdb:/piprapay_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline piprapay_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("piprapay_migrations_pipeline").dataset() + # get reate-charg table as Pandas frame + data.reate-charg.df().head() + ``` + +## Running into errors? + +Ensure that the API key is kept secure and not exposed in public repositories. Also, be aware of the potential for '401 Unauthorized' errors if the API key is incorrect or not included in requests. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/piprapay/piprapay-docs.yaml b/piprapay/piprapay-docs.yaml new file mode 100644 index 00000000..ab1bf921 --- /dev/null +++ b/piprapay/piprapay-docs.yaml @@ -0,0 +1,37 @@ +resources: +- name: create_charge + endpoint: + path: /api/create-charge + method: POST + data_selector: response + params: {} +- name: verify_payment + endpoint: + path: /api/verify-payments + method: POST + data_selector: response + params: {} +- name: verify_payment + endpoint: + path: /api/verify-payments + method: POST + data_selector: json + params: + pp_id: string +- name: verify_payment + endpoint: + path: /api/verify-payments + method: POST + data_selector: json + params: {} +notes: [] +errors: +- '401 Unauthorized: Unauthorized request.' +auth_info: + mentioned_objects: [] +client: + base_url: https://sandbox.piprapay.com + headers: + accept: application/json + content-type: application/json +source_metadata: null diff --git a/podio/podio-docs.md b/podio/podio-docs.md new file mode 100644 index 00000000..c63af8d4 --- /dev/null +++ b/podio/podio-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Podio data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def podio_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://company.podio.com/v", + "auth": { + "type": "apikey", + "token": access_token, + }, + }, + "resources": [ + item,,items,,doc/tasks + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='podio_migration_pipeline', + destination='duckdb', + dataset_name='podio_migration_data', + ) + # Load the data + load_info = pipeline.run(podio_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from podio_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Item Management: Manage items and their details. +- Task Management: Handle tasks associated with items. +- File Management: Upload and manage files. +- Hook Management: Create and manage webhooks. + +You will then debug the Podio pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Podio support. + ```shell + dlt init dlthub:podio_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Podio API, as specified in @podio_migration-docs.yaml + Start with endpoints item and and skip incremental loading for now. + Place the code in podio_migration_pipeline.py and name the pipeline podio_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python podio_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The Podio API uses OAuth2 for authentication, requiring an API key for access. + + To get the appropriate API keys, please visit the original source at https://podio.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python podio_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline podio_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset podio_migration_data + The duckdb destination used duckdb:/podio_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline podio_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("podio_migration_pipeline").dataset() + # get te table as Pandas frame + data.te.df().head() + ``` + +## Running into errors? + +The API has a general limit of 1,000 API calls per hour, but resource-intensive calls are limited to 250 calls per hour. Access tokens are valid for 8 hours and refresh tokens for 28 days. To interact with a single Podio app, app authentication is recommended. Additionally, hooks must be verified before they become active, and only hooks on ports 80 and 443 are supported. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/podio/podio-docs.yaml b/podio/podio-docs.yaml new file mode 100644 index 00000000..8a1202b2 --- /dev/null +++ b/podio/podio-docs.yaml @@ -0,0 +1,226 @@ +resources: +- name: Applications + endpoint: + path: /doc/applications +- name: Comments + endpoint: + path: /doc/comments +- name: Contacts + endpoint: + path: /doc/contacts +- name: Files + endpoint: + path: /doc/files +- name: Hooks + endpoint: + path: /doc/hooks +- name: Items + endpoint: + path: /doc/items +- name: OAuth authorization + endpoint: + path: /doc/oauth-authorization +- name: Status + endpoint: + path: /doc/status +- name: Tasks + endpoint: + path: /doc/tasks +- name: item + endpoint: + path: /item + method: GET +- name: status + endpoint: + path: /status/space + method: POST +- name: webhook + endpoint: + path: /doc/hooks/create-hook-215056 + method: POST + data_selector: hook + params: {} +- name: webhook + endpoint: + path: /doc/hooks + method: POST + data_selector: params + params: {} +- name: item + endpoint: + path: /doc/items/get-item-22360 + method: GET +- name: basic_item + endpoint: + path: /doc/items/get-basic-item-61768 + method: GET +- name: items + endpoint: + path: /doc/items + method: GET +- name: get_item + endpoint: + path: /doc/items/get-item-basic-61768 + method: GET +- name: items + endpoint: + path: /items + method: GET + data_selector: items +- name: item + endpoint: + path: /doc/items/get-item-22360 + method: GET + data_selector: item +- name: basic_item + endpoint: + path: /doc/items/get-basic-item-61768 + method: GET + data_selector: item +- name: items + endpoint: + path: /items + method: GET +- name: item + endpoint: + path: /item/{item_id} + method: DELETE +- name: task + endpoint: + path: /doc/tasks + method: GET + data_selector: tasks +- name: hook.verify + endpoint: + path: /doc/hooks/validate-hook-verification-215241 + method: POST +- name: item.create + endpoint: + path: /doc/hooks/create-hook-215056 + method: POST +- name: item.update + endpoint: + path: /doc/hooks/update-hook-215056 + method: POST +- name: item.delete + endpoint: + path: /doc/hooks/delete-hook-215291 + method: DELETE +- name: hook.verify + endpoint: + path: /doc/hooks/validate-hook-verification-215241 + method: POST +- name: create hook + endpoint: + path: /doc/hooks/create-hook-215056 + method: POST +- name: delete hook + endpoint: + path: /doc/hooks/delete-hook-215291 + method: DELETE +- name: get hooks + endpoint: + path: /doc/hooks/get-hooks-215285 + method: GET +- name: request hook verification + endpoint: + path: /doc/hooks/request-hook-verification-215232 + method: POST +- name: hooks + endpoint: + path: /hook/{ref_type}/{ref_id}/ + method: POST + data_selector: hook_id +- name: hooks + endpoint: + path: /hook/{ref_type}/{ref_id}/ + method: POST + data_selector: hook_id + params: {} +- name: validate_hook_verification + endpoint: + path: /hook/{hook_id}/verify/validate + method: POST + data_selector: code + params: + hook_id: Required +- name: validate_hook_verification + endpoint: + path: /hook/{hook_id}/verify/validate + method: POST + data_selector: '' +- name: item + endpoint: + path: /item/app/{app_id}/ + method: POST +- name: item + endpoint: + path: /item/app/{app_id}/ + method: POST +- name: update_item + endpoint: + path: /item/{item_id} + method: PUT + data_selector: '' + params: {} +- name: item + endpoint: + path: /item/{item_id} + method: PUT +- name: delete_item + endpoint: + path: /item/{item_id} + method: DELETE + params: + item_id: required + hook: 'true' + silent: 'false' +- name: delete_item + endpoint: + path: /item/{item_id} + method: DELETE +notes: +- The general limit is 1,000 API calls per hour, but if the API call is marked as + 'Rate limited' the call is deemed resource intensive and a lower rate of 250 calls + per hour is enforced. +- If you hit the rate limits the API will begin returning 420 HTTP error codes for + all API calls. +- Access Token is valid for 8 hours. +- Refresh Token is valid for 28 days. +- The Podio API is based on REST requests passing JSON back and forth. +- If you need only to interact with a single Podio app from your code and you don't + want to bother with a full login flow, we recommend using app authentication. +- Only hooks on port 80 and 443 are supported. +- Events will only be sent to the endpoint after a completed verification. +- You can have up to 10 webhooks of each type (create, update, delete etc.) of each + item, app, comment etc. +- Only hooks on port 80 and 443 are supported +- Uses OAuth2 for authentication. +- Most operations returning a list of objects support options limiting and sorting + the result. +- Tasks can be used as todo list for yourself and to assign work to be done to other + people. +- Tasks can also be private or public, they can have a due date, they can include + one or more files and they can be organized with custom labels. +- Files can be uploaded to Podio, but they don't stand on their own, they are always + attached to another object. +- The maximum allowed file size is currently 100MB. +- Whenever you subscribe to a channel you need to provide extra information in the + subscribe call for each channel. +- Hooks needs to be verified before they become active +- The hook must respond with a 2xx status code +- The sandbox only handles GET operations for now. +errors: +- '420: Rate limit exceeded' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 4xx or 5xx HTTP status code will throw an exception. +- All unsuccessful responses returned by the API (everything that has a 4xx or 5xx + HTTP status code) will throw an exception. +- '409 Conflict: Check for conflicts with the specified revision.' +auth_info: + mentioned_objects: [] +client: + base_url: https://company.podio.com + auth: + type: apikey +source_metadata: null diff --git a/precisionsec/precisionsec-docs.md b/precisionsec/precisionsec-docs.md new file mode 100644 index 00000000..a173a909 --- /dev/null +++ b/precisionsec/precisionsec-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Precision Security data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def precision_security_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.precisionsec.com/", + "auth": { + "type": "apikey", + "token": access_token, + }, + }, + "resources": [ + get/ip,,get/url,,get/domain + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='precision_security_migrations_pipeline', + destination='duckdb', + dataset_name='precision_security_migrations_data', + ) + # Load the data + load_info = pipeline.run(precision_security_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from precision_security_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- IP Management: Endpoints for retrieving and checking IP information. +- URL Management: Endpoints for checking and retrieving URL-related data. +- Domain Management: Endpoints for checking and retrieving domain-related data. +- Sample Analysis: Endpoints for retrieving samples based on hash values. + +You will then debug the Precision Security pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Precision Security support. + ```shell + dlt init dlthub:precision_security_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Precision Security API, as specified in @precision_security_migrations-docs.yaml + Start with endpoints get/ip and and skip incremental loading for now. + Place the code in precision_security_migrations_pipeline.py and name the pipeline precision_security_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python precision_security_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication mechanism requires an API key to be provided in requests for access. + + To get the appropriate API keys, please visit the original source at https://www.precisionsec.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python precision_security_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline precision_security_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset precision_security_migrations_data + The duckdb destination used duckdb:/precision_security_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline precision_security_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("precision_security_migrations_pipeline").dataset() + # get et/i table as Pandas frame + data.et/i.df().head() + ``` + +## Running into errors? + +Ensure that the API key is kept secure and not exposed in client-side code. Be aware of rate limits on requests to avoid service interruptions. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/precisionsec/precisionsec-docs.yaml b/precisionsec/precisionsec-docs.yaml new file mode 100644 index 00000000..2972ddc7 --- /dev/null +++ b/precisionsec/precisionsec-docs.yaml @@ -0,0 +1,65 @@ +resources: +- name: Get IP feed + endpoint: + path: /get/ip + method: GET + data_selector: ips +- name: Get URL feed + endpoint: + path: /get/url + method: GET + data_selector: urls +- name: Get sample by MD5 + endpoint: + path: /get/sample/md5 + method: GET + data_selector: samples +- name: Get sample by SHA256 + endpoint: + path: /get/sample/sha256 + method: GET + data_selector: samples +- name: Get domain information + endpoint: + path: /get/domain + method: GET + data_selector: domains +- name: Check if URL is malicious + endpoint: + path: /check/url + method: GET + data_selector: urls +- name: Check if domain is malicious + endpoint: + path: /check/domain + method: GET + data_selector: domains +- name: Get IPv4 information + endpoint: + path: /get/ipv4 + method: GET + data_selector: ips +- name: Check if IPv4 addresses exist + endpoint: + path: /check/ipv4 + method: POST + data_selector: ips +- name: List available tags + endpoint: + path: /list/tags + method: GET + data_selector: tags +- name: Get IOCs for tag + endpoint: + path: /get/iocs/tag + method: GET + data_selector: iocs +notes: [] +errors: [] +auth_info: + mentioned_objects: [] +client: + base_url: https://api.precisionsec.com + auth: + type: apikey +source_metadata: null diff --git a/pricecharting/pricecharting-docs.md b/pricecharting/pricecharting-docs.md new file mode 100644 index 00000000..927b5f0e --- /dev/null +++ b/pricecharting/pricecharting-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete PriceCharting data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def pricecharting_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.pricecharting.com/api/v1/", + "auth": { + "type": "bearer", + "token": PRICECHARTING_API_KEY, + }, + }, + "resources": [ + game,,sales,,offers + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='pricecharting_migrations_pipeline', + destination='duckdb', + dataset_name='pricecharting_migrations_data', + ) + # Load the data + load_info = pipeline.run(pricecharting_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from pricecharting_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- game: Retrieves game-related information. +- sales: Provides sales data and statistics. +- offers: Accesses offer listings for products. + +You will then debug the PriceCharting pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with PriceCharting support. + ```shell + dlt init dlthub:pricecharting_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for PriceCharting API, as specified in @pricecharting_migrations-docs.yaml + Start with endpoints game and and skip incremental loading for now. + Place the code in pricecharting_migrations_pipeline.py and name the pipeline pricecharting_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python pricecharting_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The API requires an API key for authentication, which should be included as a parameter in each request. + + To get the appropriate API keys, please visit the original source at https://www.pricecharting.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python pricecharting_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline pricecharting_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset pricecharting_migrations_data + The duckdb destination used duckdb:/pricecharting_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline pricecharting_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("pricecharting_migrations_pipeline").dataset() + # get am table as Pandas frame + data.am.df().head() + ``` + +## Running into errors? + +Accessing the API requires a paid subscription. Each subscription comes with a unique 40-character token for authentication, which must be included as the 't' parameter in your requests. Additionally, API calls are throttled to a maximum of once every 5 minutes to prevent excessive load. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/pricecharting/pricecharting-docs.yaml b/pricecharting/pricecharting-docs.yaml new file mode 100644 index 00000000..9aaad701 --- /dev/null +++ b/pricecharting/pricecharting-docs.yaml @@ -0,0 +1,3951 @@ +resources: +- name: product + endpoint: + path: /api/product + method: GET + data_selector: status +- name: offer_publish + endpoint: + path: /api/offer-publish + method: POST + data_selector: status + params: {} +- name: products + endpoint: + path: /api/products + method: GET + data_selector: products + params: {} +- name: product + endpoint: + path: /api/product + method: GET + data_selector: status + params: + id: '6910' + t: c0b53bce27c1bdab90b1605249e600dc43dfd1d5 +- name: products + endpoint: + path: /products + method: GET + data_selector: products + params: {} +- name: offer_publish + endpoint: + path: /api/offer-publish + method: POST + data_selector: status + params: + product: '9331' + price-max: '901' + condition-id: '1' + sku: 123abc + cost-basis: '125' + quantity: '1' +- name: products + endpoint: + path: /api/products + method: GET + data_selector: products + params: + q: earthbound +- name: product + endpoint: + path: /api/product + method: GET + data_selector: status +- name: offers + endpoint: + path: /api/offers + method: GET + data_selector: offers + params: + status: sold +- name: offer-publish + endpoint: + path: /api/offer-publish + method: POST + data_selector: status +- name: offer-details + endpoint: + path: /api/offer-details + method: GET + data_selector: status + params: + offer-id: vtdsww72uyslgooawzyyijsllm +- name: offer-feedback + endpoint: + path: /api/offer-feedback + method: POST + data_selector: status +- name: offer-ship + endpoint: + path: /api/offer-ship + method: POST + data_selector: status +- name: offer-end + endpoint: + path: /api/offer-end + method: POST + data_selector: status +- name: offer-refund + endpoint: + path: /api/offer-refund + method: POST + data_selector: status +- name: products + endpoint: + path: /products + method: GET + data_selector: products + params: {} +- name: marketplace + endpoint: + path: /api/marketplace + method: GET + data_selector: records +- name: Nintendo Switch Prices + endpoint: + path: /game/pal-nintendo-switch + method: GET + data_selector: games + params: {} +- name: one_piece_card_sets + endpoint: + path: /category/one-piece-cards + method: GET + data_selector: card_sets + params: {} +- name: new_releases + endpoint: + path: /console/new-releases + method: GET + data_selector: new_releases + params: {} +- name: offers + endpoint: + path: /api/offers + method: GET + data_selector: offers + params: + status: sold +- name: offer_publish + endpoint: + path: /api/offer-publish + method: POST + data_selector: status +- name: offer_details + endpoint: + path: /api/offer-details + method: GET + data_selector: status + params: + offer-id: vtdsww72uyslgooawzyyijsllm +- name: offer_feedback + endpoint: + path: /api/offer-feedback + method: POST + data_selector: status +- name: offer_ship + endpoint: + path: /api/offer-ship + method: POST + data_selector: status +- name: offer_end + endpoint: + path: /api/offer-end + method: POST + data_selector: status +- name: offer_refund + endpoint: + path: /api/offer-refund + method: POST + data_selector: status +- name: One Piece Card Sets + endpoint: + path: /console/one-piece-card-sets + method: GET + data_selector: sets + params: {} +- name: One Piece Card Prices + endpoint: + path: /page/collection-tracker + method: GET + data_selector: prices + params: {} +- name: game + endpoint: + path: /game/pal-nintendo-switch/ + method: GET + data_selector: records +- name: comic_books + endpoint: + path: /console/comic-books + method: GET + data_selector: titles + params: {} +- name: pokemon_card_prices + endpoint: + path: /api/pokemon-card-prices + method: GET + data_selector: prices + params: {} +- name: One Piece Card Sets + endpoint: + path: /console/one-piece-card-sets + method: GET + data_selector: card_sets +- name: funko_pops + endpoint: + path: /game/funko-pop-animation + method: GET + data_selector: records + params: {} +- name: card_sets + endpoint: + path: /console/one-piece-card-sets + method: GET + data_selector: records +- name: completed_auctions + endpoint: + path: /game + method: GET + data_selector: records + params: {} +- name: marketplace_guarantee + endpoint: + path: /api/marketplace-guarantee + method: GET + data_selector: guarantee_details +- name: titles + endpoint: + path: /game/funko-pop-animation + method: GET + data_selector: titles + params: {} +- name: price_data + endpoint: + path: /api-documentation + method: GET + data_selector: data + params: {} +- name: sets + endpoint: + path: /game/lego-town + method: GET + data_selector: sets + params: {} +- name: video_games + endpoint: + path: /category/video-games + method: GET + data_selector: listings +- name: coins + endpoint: + path: /category/coins + method: GET + data_selector: listings +- name: comics + endpoint: + path: /category/comic-books + method: GET + data_selector: listings +- name: funko_pops + endpoint: + path: /category/funko-pops + method: GET + data_selector: listings +- name: trading_cards + endpoint: + path: /trading-cards + method: GET + data_selector: listings +- name: sports_cards + endpoint: + path: /sports-cards + method: GET + data_selector: listings +- name: sold_listings + endpoint: + path: /offers + method: GET + data_selector: soldListings +- name: item_details + endpoint: + path: /itemdetails + method: GET + data_selector: itemDetails +- name: funko_pop_prices + endpoint: + path: /game/funko-pop-rocks + method: GET + data_selector: items + params: {} +- name: marketplace_guarantee + endpoint: + path: /marketplace-guarantee + method: GET +- name: trading_cards + endpoint: + path: /trading-cards + method: GET +- name: comics + endpoint: + path: /category/comic-books + method: GET +- name: funko_pops + endpoint: + path: /category/funko-pops + method: GET +- name: coins + endpoint: + path: /category/coins + method: GET +- name: sports_cards + endpoint: + path: /category/sports-cards + method: GET +- name: sold_listings + endpoint: + path: /offers + method: GET + data_selector: listings + params: {} +- name: item_details + endpoint: + path: /itemdetails + method: GET + data_selector: item_info + params: {} +- name: video_game_prices + endpoint: + path: /category/video-games + method: GET + data_selector: data + params: {} +- name: funko_pop_prices + endpoint: + path: /category/funko-pops + method: GET + data_selector: data + params: {} +- name: coin_prices + endpoint: + path: /category/coins + method: GET + data_selector: data + params: {} +- name: comic_book_prices + endpoint: + path: /category/comic-books + method: GET + data_selector: data + params: {} +- name: pokemon_card_prices + endpoint: + path: /category/pokemon-cards + method: GET + data_selector: data + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: video_game_data + endpoint: + path: /api-documentation + method: GET +- name: price_guide_download + endpoint: + path: /api-documentation#download + method: GET +- name: collection_tracker + endpoint: + path: /page/collection-tracker + method: GET +- name: funko_pop + endpoint: + path: /api/funko-pop/261 + method: GET + data_selector: data + params: {} +- name: item_details + endpoint: + path: /itemdetails + method: GET + data_selector: records +- name: historic_prices + endpoint: + path: /historic-prices + method: GET + data_selector: records +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /console/funko-pop-rocks + method: GET + data_selector: prices + params: {} +- name: pop_prices + endpoint: + path: /api/pop/prices + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: records +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: Batman & The Joker 2 Pack + endpoint: + path: /api/funko/pop/heroes/batman_joker_2_pack + method: GET + data_selector: prices + params: {} +- name: price_guide + endpoint: + path: /api/price_guide/post_malone_111 + method: GET + data_selector: prices + params: {} +- name: funko_pop_prices + endpoint: + path: /game/funko-pop-rocks + method: GET + data_selector: items + params: {} +- name: funko_pop + endpoint: + path: /de/game/funko-pop-rocks + method: GET + data_selector: records +- name: sold_listings + endpoint: + path: /api/sold_listings + method: GET + data_selector: listings + params: {} +- name: historic_prices + endpoint: + path: /api/historic_prices + method: GET + data_selector: prices + params: {} +- name: titles + endpoint: + path: /fr/game/funko-pop-rocks + method: GET + data_selector: titles + params: {} +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: willie_nelson_261 + endpoint: + path: /game/funko-pop-rocks/willie-nelson-261 + method: GET + data_selector: price_data + params: {} +- name: products + endpoint: + path: /nl/game/funko-pop-rocks + method: GET + data_selector: products + params: {} +- name: collection + endpoint: + path: /nl/game/funko-pop-rocks + method: GET + data_selector: items + params: {} +- name: sold_listings + endpoint: + path: /offers?product=7515016 + method: GET + data_selector: sold_listings + params: {} +- name: historic_prices + endpoint: + path: /historic-prices?product=7515016 + method: GET + data_selector: historic_prices + params: {} +- name: titles + endpoint: + path: /pt/game/funko-pop-rocks + method: GET + data_selector: titles +- name: titles + endpoint: + path: /ru/game/funko-pop-rocks/titles + method: GET + data_selector: records +- name: sales_data + endpoint: + path: /services/data/vXX.X/sobjects/SalesData + method: GET + data_selector: records +- name: collection + endpoint: + path: /ru/game/funko-pop-rocks + method: GET + data_selector: records + params: {} +- name: post_malone_254 + endpoint: + path: /api/v1/post_malone_254 + method: GET + data_selector: data + params: {} +- name: products + endpoint: + path: /game/funko-pop-ad-icons + method: GET + data_selector: products + params: {} +- name: sold_listings + endpoint: + path: /api/sold_listings + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales/photos + method: GET + data_selector: sales_data +- name: fruity_pebbles + endpoint: + path: /funko-pop-ad-icons/fruity-pebbles + method: GET + data_selector: data + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: records +- name: post_malone_111 + endpoint: + path: /api/post_malone_111 + method: GET + data_selector: data + params: {} +- name: Tennis McNugget + endpoint: + path: /console/funko-pop-ad-icons + method: GET + data_selector: items + params: {} +- name: titles + endpoint: + path: /de/game/funko-pop-rocks + method: GET + data_selector: records +- name: sold_listings + endpoint: + path: /sold_listings + method: GET + data_selector: listings +- name: item_details + endpoint: + path: /item_details + method: GET + data_selector: item +- name: products + endpoint: + path: /es/game/funko-pop-rocks + method: GET + data_selector: records + params: {} +- name: sales_data + endpoint: + path: /services/data/vXX.X/sobjects/SalesData + method: GET + data_selector: records + params: + incremental: sale_date +- name: titles + endpoint: + path: /fr/game/funko-pop-rocks/titles + method: GET + data_selector: records + params: {} +- name: price_guide + endpoint: + path: /api/price_guide/bullseye_5 + method: GET + data_selector: prices + params: {} +- name: items + endpoint: + path: /nl/game/funko-pop-rocks + method: GET + data_selector: items + params: {} +- name: sales_data + endpoint: + path: /sales-data + method: GET + data_selector: sales + params: {} +- name: products + endpoint: + path: /nl/game/funko-pop-rocks + method: GET + data_selector: products + params: {} +- name: 'Bullseye [Target Flocked Gold] #5' + endpoint: + path: /game/funko-pop-ad-icons/bullseye-target-flocked-gold-5 + method: GET + data_selector: details + params: {} +- name: products + endpoint: + path: /pt/game/funko-pop-rocks + method: GET + data_selector: records +- name: sold_listings + endpoint: + path: /offers?product=7467673 + method: GET + data_selector: soldListings +- name: item_details + endpoint: + path: /itemdetails + method: GET + data_selector: itemDetails +- name: 'Bullseye [Target Flocked] #5' + endpoint: + path: /api/funko-pop-ad-icons/bullseye-target-flocked-5 + method: GET + data_selector: data + params: {} +- name: products + endpoint: + path: /ru/game/funko-pop-rocks + method: GET + data_selector: products + params: {} +- name: collection + endpoint: + path: /ru/game/funko-pop-rocks/collection + method: GET + data_selector: data +- name: sold_listings + endpoint: + path: /offers + method: GET + data_selector: soldListings + params: {} +- name: sales + endpoint: + path: /path/to/sales + method: GET + data_selector: sales_data + params: {} +- name: sonny_the_cuckoo + endpoint: + path: /console/funko-pop-ad-icons + method: GET + data_selector: details + params: {} +- name: products + endpoint: + path: /game/funko-pop-ad-icons + method: GET + data_selector: products +- name: sold_listings + endpoint: + path: /offers + method: GET + data_selector: listings +- name: item_details + endpoint: + path: /itemdetails + method: GET + data_selector: item +- name: fruity_pebbles + endpoint: + path: /console/funko-pop-ad-icons + method: GET + data_selector: data + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: tennis_mcnugget + endpoint: + path: /console/funko-pop-ad-icons + method: GET + data_selector: records +- name: 'Cap''n Crunch #14' + endpoint: + path: /api/funko-pop-ad-icons/capn-crunch-14 + method: GET + data_selector: details + params: {} +- name: sales_data + endpoint: + path: /api/sales_data + method: GET + data_selector: sales + params: {} +- name: tennis_mcnugget + endpoint: + path: /game/funko-pop-ad-icons/tennis-mcnugget-114 + method: GET +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: sold_listings + endpoint: + path: /offers/sold_listings + method: GET + data_selector: listings +- name: item_details + endpoint: + path: /itemdetails + method: GET + data_selector: itemDetails +- name: 'The Noid #17' + endpoint: + path: /game/funko-pop-ad-icons/the-noid-17 + method: GET + data_selector: data + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: item_details + endpoint: + path: /api/item/7467688 + method: GET + data_selector: data + params: {} +- name: price_history + endpoint: + path: /api/item/7467688/prices + method: GET + data_selector: data + params: {} +- name: 'Bullseye #5 Price Guide' + endpoint: + path: /prices/bullseye-5 + method: GET + data_selector: prices + params: {} +- name: item_details + endpoint: + path: /itemdetails + method: GET + data_selector: item +- name: historic_prices + endpoint: + path: /historicprices + method: GET + data_selector: prices +- name: item_details + endpoint: + path: /item_details + method: GET + data_selector: item_data +- name: sales_history + endpoint: + path: /sales_history + method: GET + data_selector: sales_data +- name: 'Bullseye [Target Flocked Gold] #5' + endpoint: + path: /api/v1/items/bullseye-target-flocked-gold-5 + method: GET + data_selector: item + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sold_listings + endpoint: + path: /offers + method: GET + data_selector: records + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: 'Bullseye [Target Flocked] #5' + endpoint: + path: /api/item/Bullseye-Target-Flocked-5 + method: GET + data_selector: data + params: {} +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales + params: {} +- name: sold_listings + endpoint: + path: /api/sold_listings + method: GET + data_selector: listings + params: {} +- name: price_history + endpoint: + path: /api/price_history + method: GET + data_selector: prices + params: {} +- name: price_guide + endpoint: + path: /api/price_guide/sonny_the_cuckoo_9 + method: GET + data_selector: prices + params: {} +- name: limited_edition + endpoint: + path: /de/game/funko-pop-ad-icons/twinkie-the-kid-limited-edition-27 + method: GET +- name: king_ding_dong + endpoint: + path: /de/game/funko-pop-ad-icons/king-ding-dong-28 + method: GET +- name: geoffrey_as_iron_man + endpoint: + path: /de/game/funko-pop-ad-icons/geoffrey-as-iron-man-29 + method: GET +- name: jollibee + endpoint: + path: /de/game/funko-pop-ad-icons/jollibee-30 + method: GET +- name: metallic_jollibee + endpoint: + path: /de/game/funko-pop-ad-icons/jollibee-metallic-jollibee-30 + method: GET +- name: item_details + endpoint: + path: /itemdetails + method: GET + data_selector: item + params: {} +- name: historic_prices + endpoint: + path: /historic-prices + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: funko_pop_ad_icons + endpoint: + path: /api/funko-pop-ad-icons + method: GET + data_selector: data + params: {} +- name: FunkoPop + endpoint: + path: /es/game/funko-pop-ad-icons + method: GET + data_selector: items + params: {} +- name: sold_listings + endpoint: + path: /sold_listings + method: GET + data_selector: sold_listings + params: {} +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales_data +- name: titles + endpoint: + path: /fr/game/funko-pop-ad-icons + method: GET + data_selector: records + params: {} +- name: the_noid_17 + endpoint: + path: /game/funko-pop-ad-icons/the-noid-17 + method: GET + data_selector: data + params: {} +- name: funko_pop_ad_icons + endpoint: + path: /api/funko/pop/ad/icons + method: GET + data_selector: data + params: {} +- name: Twinkie the Kid + endpoint: + path: /fr/game/funko-pop-ad-icons/twinkie-the-kid-limited-edition-27 + method: GET + data_selector: records + params: {} +- name: King Ding Dong + endpoint: + path: /fr/game/funko-pop-ad-icons/king-ding-dong-28 + method: GET + data_selector: records + params: {} +- name: Geoffrey as Iron Man + endpoint: + path: /fr/game/funko-pop-ad-icons/geoffrey-as-iron-man-29 + method: GET + data_selector: records + params: {} +- name: Jollibee + endpoint: + path: /fr/game/funko-pop-ad-icons/jollibee-30 + method: GET + data_selector: records + params: {} +- name: Metallic Jollibee + endpoint: + path: /fr/game/funko-pop-ad-icons/jollibee-metallic-jollibee-30 + method: GET + data_selector: records + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: item_details + endpoint: + path: /itemdetails + method: GET + data_selector: details + params: {} +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales_records + params: {} +- name: bazooka_joe_19 + endpoint: + path: /game/funko-pop-ad-icons/bazooka-joe-19 + method: GET + data_selector: details + params: {} +- name: sold_listings + endpoint: + path: /offers + method: GET + data_selector: sold_listings + params: {} +- name: sales_data + endpoint: + path: /sales/photos + method: GET + data_selector: sales + params: {} +- name: polaroid_camera + endpoint: + path: /nl/game/funko-pop-ad-icons/polaroid-camera-164 + method: GET + data_selector: records + params: {} +- name: cozmic_capn_crunch + endpoint: + path: /nl/game/funko-pop-ad-icons/cozmic-cap%27n-crunch-20 + method: GET + data_selector: records + params: {} +- name: smokey_bear + endpoint: + path: /nl/game/funko-pop-ad-icons/smokey-bear-76 + method: GET + data_selector: records + params: {} +- name: woodsy_owl + endpoint: + path: /nl/game/funko-pop-ad-icons/woodsy-owl-96 + method: GET + data_selector: records + params: {} +- name: fruity_pebbles + endpoint: + path: /nl/game/funko-pop-ad-icons/fruity-pebbles-108 + method: GET + data_selector: records + params: {} +- name: tennis_mcnugget + endpoint: + path: /nl/game/funko-pop-ad-icons/tennis-mcnugget-114 + method: GET + data_selector: records + params: {} +- name: hohos + endpoint: + path: /nl/game/funko-pop-ad-icons/hohos-215 + method: GET + data_selector: records + params: {} +- name: whoopers + endpoint: + path: /nl/game/funko-pop-ad-icons/whoopers-219 + method: GET + data_selector: records + params: {} +- name: ronald_mcdonald + endpoint: + path: /nl/game/funko-pop-ad-icons/ronald-mcdonald-diamond-50-years-85 + method: GET + data_selector: records + params: {} +- name: danny_trejo + endpoint: + path: /nl/game/funko-pop-ad-icons/danny-trejo-229 + method: GET + data_selector: records + params: {} +- name: count_chocula + endpoint: + path: /nl/game/funko-pop-ad-icons/count-chocula-1 + method: GET + data_selector: records + params: {} +- name: franken_berry + endpoint: + path: /nl/game/funko-pop-ad-icons/franken-berry-2 + method: GET + data_selector: records + params: {} +- name: franken_berry_metallic + endpoint: + path: /nl/game/funko-pop-ad-icons/franken-berry-metallic-2 + method: GET + data_selector: records + params: {} +- name: boo_berry + endpoint: + path: /nl/game/funko-pop-ad-icons/boo-berry-sdcc-3 + method: GET + data_selector: records + params: {} +- name: big_boy + endpoint: + path: /nl/game/funko-pop-ad-icons/big-boy-4 + method: GET + data_selector: records + params: {} +- name: bullseye + endpoint: + path: /nl/game/funko-pop-ad-icons/bullseye-5 + method: GET + data_selector: records + params: {} +- name: sugar_bear_22 + endpoint: + path: /game/funko-pop-ad-icons/sugar-bear-22 + method: GET + data_selector: data + params: {} +- name: products + endpoint: + path: /de/game/funko-pop-ad-icons + method: GET + data_selector: products +- name: Twinkie the Kid Chase + endpoint: + path: /nl/game/funko-pop-ad-icons/twinkie-the-kid-chase-27 + method: GET + data_selector: records +- name: Twinkie the Kid Limited Edition + endpoint: + path: /nl/game/funko-pop-ad-icons/twinkie-the-kid-limited-edition-27 + method: GET + data_selector: records +- name: King Ding Dong + endpoint: + path: /nl/game/funko-pop-ad-icons/king-ding-dong-28 + method: GET + data_selector: records +- name: Geoffrey as Iron Man + endpoint: + path: /nl/game/funko-pop-ad-icons/geoffrey-as-iron-man-29 + method: GET + data_selector: records +- name: Jollibee + endpoint: + path: /nl/game/funko-pop-ad-icons/jollibee-30 + method: GET + data_selector: records +- name: Metallic Jollibee + endpoint: + path: /nl/game/funko-pop-ad-icons/jollibee-metallic-jollibee-30 + method: GET + data_selector: records +- name: Twinkie the Kid + endpoint: + path: /de/game/funko-pop-ad-icons/twinkie-the-kid-limited-edition-27 + method: GET + data_selector: records +- name: King Ding Dong + endpoint: + path: /de/game/funko-pop-ad-icons/king-ding-dong-28 + method: GET + data_selector: records +- name: Geoffrey as Iron Man + endpoint: + path: /de/game/funko-pop-ad-icons/geoffrey-as-iron-man-29 + method: GET + data_selector: records +- name: Jollibee + endpoint: + path: /de/game/funko-pop-ad-icons/jollibee-30 + method: GET + data_selector: records +- name: Metallic Jollibee + endpoint: + path: /de/game/funko-pop-ad-icons/jollibee-metallic-jollibee-30 + method: GET + data_selector: records +- name: products + endpoint: + path: /pt/game/funko-pop-ad-icons + method: GET + data_selector: records +- name: collection_details + endpoint: + path: /publish-offer + method: GET + data_selector: products +- name: wishes + endpoint: + path: /wishes + method: GET + data_selector: wishes +- name: funko_pops + endpoint: + path: /ru/game/funko-pop-ad-icons + method: GET + data_selector: records + params: {} +- name: fruit_pie_the_magician + endpoint: + path: /ru/game/funko-pop-ad-icons/fruit-pie-the-magician-limited-edition-26 + method: GET + data_selector: records + params: {} +- name: twinkie_the_kid + endpoint: + path: /ru/game/funko-pop-ad-icons/twinkie-the-kid-27 + method: GET + data_selector: records + params: {} +- name: twinkie_the_kid_chase + endpoint: + path: /ru/game/funko-pop-ad-icons/twinkie-the-kid-chase-27 + method: GET + data_selector: records + params: {} +- name: twinkie_the_kid_limited_edition + endpoint: + path: /ru/game/funko-pop-ad-icons/twinkie-the-kid-limited-edition-27 + method: GET + data_selector: records + params: {} +- name: king_ding_dong + endpoint: + path: /ru/game/funko-pop-ad-icons/king-ding-dong-28 + method: GET + data_selector: records + params: {} +- name: geoffrey_as_iron_man + endpoint: + path: /ru/game/funko-pop-ad-icons/geoffrey-as-iron-man-29 + method: GET + data_selector: records + params: {} +- name: jollibee + endpoint: + path: /ru/game/funko-pop-ad-icons/jollibee-30 + method: GET + data_selector: records + params: {} +- name: jollibee_metallic + endpoint: + path: /ru/game/funko-pop-ad-icons/jollibee-metallic-jollibee-30 + method: GET + data_selector: records + params: {} +- name: polaroid_camera + endpoint: + path: /es/game/funko-pop-ad-icons/polaroid-camera-164 + method: GET + data_selector: records + params: {} +- name: cozmic_capn_crunch + endpoint: + path: /es/game/funko-pop-ad-icons/cozmic-cap%27n-crunch-20 + method: GET + data_selector: records + params: {} +- name: smokey_bear + endpoint: + path: /es/game/funko-pop-ad-icons/smokey-bear-76 + method: GET + data_selector: records + params: {} +- name: woodsy_owl + endpoint: + path: /es/game/funko-pop-ad-icons/woodsy-owl-96 + method: GET + data_selector: records + params: {} +- name: fruity_pebbles + endpoint: + path: /es/game/funko-pop-ad-icons/fruity-pebbles-108 + method: GET + data_selector: records + params: {} +- name: tennis_mcnugget + endpoint: + path: /es/game/funko-pop-ad-icons/tennis-mcnugget-114 + method: GET + data_selector: records + params: {} +- name: hohos + endpoint: + path: /es/game/funko-pop-ad-icons/hohos-215 + method: GET + data_selector: records + params: {} +- name: whoopers + endpoint: + path: /es/game/funko-pop-ad-icons/whoopers-219 + method: GET + data_selector: records + params: {} +- name: ronald_mcdonald_diamond_50_years + endpoint: + path: /es/game/funko-pop-ad-icons/ronald-mcdonald-diamond-50-years-85 + method: GET + data_selector: records + params: {} +- name: danny_trejo + endpoint: + path: /es/game/funko-pop-ad-icons/danny-trejo-229 + method: GET + data_selector: records + params: {} +- name: count_chocula + endpoint: + path: /es/game/funko-pop-ad-icons/count-chocula-1 + method: GET + data_selector: records + params: {} +- name: franken_berry + endpoint: + path: /es/game/funko-pop-ad-icons/franken-berry-2 + method: GET + data_selector: records + params: {} +- name: franken_berry_metallic + endpoint: + path: /es/game/funko-pop-ad-icons/franken-berry-metallic-2 + method: GET + data_selector: records + params: {} +- name: boo_berry_sdcc + endpoint: + path: /es/game/funko-pop-ad-icons/boo-berry-sdcc-3 + method: GET + data_selector: records + params: {} +- name: big_boy + endpoint: + path: /es/game/funko-pop-ad-icons/big-boy-4 + method: GET + data_selector: records + params: {} +- name: bullseye + endpoint: + path: /es/game/funko-pop-ad-icons/bullseye-5 + method: GET + data_selector: records + params: {} +- name: fruit_brute + endpoint: + path: /es/game/funko-pop-ad-icons/fruit-brute-6 + method: GET + data_selector: records + params: {} +- name: yummy_mummy + endpoint: + path: /es/game/funko-pop-ad-icons/yummy-mummy-7 + method: GET + data_selector: records + params: {} +- name: tony_the_tiger + endpoint: + path: /es/game/funko-pop-ad-icons/tony-the-tiger-8 + method: GET + data_selector: records + params: {} +- name: sonny_the_cuckoo + endpoint: + path: /es/game/funko-pop-ad-icons/sonny-the-cuckoo-9 + method: GET + data_selector: records + params: {} +- name: trix_rabbit + endpoint: + path: /es/game/funko-pop-ad-icons/trix-rabbit-10 + method: GET + data_selector: records + params: {} +- name: lucky_the_leprechaun + endpoint: + path: /es/game/funko-pop-ad-icons/lucky-the-leprechaun-11 + method: GET + data_selector: records + params: {} +- name: geoffrey + endpoint: + path: /es/game/funko-pop-ad-icons/geoffrey-12 + method: GET + data_selector: records + params: {} +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: records +- name: funko_pops + endpoint: + path: /fr/game/funko-pop-ad-icons + method: GET + data_selector: items +- name: Price Guide + endpoint: + path: /api/price-guide/space-center-3368 + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /salesdata + method: GET + data_selector: sales + params: {} +- name: Twinkie the Kid + endpoint: + path: /fr/game/funko-pop-ad-icons/twinkie-the-kid-limited-edition-27 + method: GET +- name: King Ding Dong + endpoint: + path: /fr/game/funko-pop-ad-icons/king-ding-dong-28 + method: GET +- name: Geoffrey as Iron Man + endpoint: + path: /fr/game/funko-pop-ad-icons/geoffrey-as-iron-man-29 + method: GET +- name: Jollibee + endpoint: + path: /fr/game/funko-pop-ad-icons/jollibee-30 + method: GET +- name: Metallic Jollibee + endpoint: + path: /fr/game/funko-pop-ad-icons/jollibee-metallic-jollibee-30 + method: GET +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /price-guide/lego-friends/emmas-lifeguard-post-41028 + method: GET + data_selector: prices + params: {} +- name: items + endpoint: + path: /nl/game/funko-pop-ad-icons + method: GET + data_selector: items + params: {} +- name: games + endpoint: + path: /de/game/pal-nintendo-switch + method: GET + data_selector: games + params: {} +- name: pokemon_card_prices + endpoint: + path: /category/pokemon-cards + method: GET + data_selector: prices +- name: collection_tracker + endpoint: + path: /page/collection-tracker + method: GET + data_selector: collection +- name: Twinkie the Kid [Chase] + endpoint: + path: /nl/game/funko-pop-ad-icons/twinkie-the-kid-chase-27 + method: GET + data_selector: records + params: {} +- name: Twinkie the Kid [Limited Edition] + endpoint: + path: /nl/game/funko-pop-ad-icons/twinkie-the-kid-limited-edition-27 + method: GET + data_selector: records + params: {} +- name: King Ding Dong + endpoint: + path: /nl/game/funko-pop-ad-icons/king-ding-dong-28 + method: GET + data_selector: records + params: {} +- name: Geoffrey as Iron Man + endpoint: + path: /nl/game/funko-pop-ad-icons/geoffrey-as-iron-man-29 + method: GET + data_selector: records + params: {} +- name: Jollibee + endpoint: + path: /nl/game/funko-pop-ad-icons/jollibee-30 + method: GET + data_selector: records + params: {} +- name: Jollibee [Metallic Jollibee] + endpoint: + path: /nl/game/funko-pop-ad-icons/jollibee-metallic-jollibee-30 + method: GET + data_selector: records + params: {} +- name: products + endpoint: + path: /pt/game/funko-pop-ad-icons + method: GET + data_selector: products + params: {} +- name: one_piece_cards + endpoint: + path: /de/category/one-piece-cards + method: GET + data_selector: cards + params: {} +- name: new_releases + endpoint: + path: /de/console/new-releases + method: GET + data_selector: releases + params: {} +- name: one_piece_card_sets + endpoint: + path: /de/console/one-piece-card-sets + method: GET + data_selector: cards + params: {} +- name: Twinkie the Kid + endpoint: + path: /pt/game/funko-pop-ad-icons/twinkie-the-kid-limited-edition-27 + method: GET +- name: King Ding Dong + endpoint: + path: /pt/game/funko-pop-ad-icons/king-ding-dong-28 + method: GET +- name: Geoffrey as Iron Man + endpoint: + path: /pt/game/funko-pop-ad-icons/geoffrey-as-iron-man-29 + method: GET +- name: Jollibee + endpoint: + path: /pt/game/funko-pop-ad-icons/jollibee-30 + method: GET +- name: Metallic Jollibee + endpoint: + path: /pt/game/funko-pop-ad-icons/jollibee-metallic-jollibee-30 + method: GET +- name: funko_pop_products + endpoint: + path: /de/game/funko-pop-animation/ + method: GET + data_selector: products +- name: products + endpoint: + path: /ru/game/funko-pop-ad-icons + method: GET + data_selector: items + params: {} +- name: sets + endpoint: + path: /de/game/lego-town + method: GET + data_selector: sets + params: {} +- name: prices + endpoint: + path: /prices + method: GET + data_selector: data + params: {} +- name: fruit_pie_the_magician + endpoint: + path: /ru/game/funko-pop-ad-icons/fruit-pie-the-magician-limited-edition-26 + method: GET + data_selector: records +- name: twinkie_the_kid + endpoint: + path: /ru/game/funko-pop-ad-icons/twinkie-the-kid-27 + method: GET + data_selector: records +- name: twinkie_the_kid_chase + endpoint: + path: /ru/game/funko-pop-ad-icons/twinkie-the-kid-chase-27 + method: GET + data_selector: records +- name: twinkie_the_kid_limited_edition + endpoint: + path: /ru/game/funko-pop-ad-icons/twinkie-the-kid-limited-edition-27 + method: GET + data_selector: records +- name: king_ding_dong + endpoint: + path: /ru/game/funko-pop-ad-icons/king-ding-dong-28 + method: GET + data_selector: records +- name: geoffrey_as_iron_man + endpoint: + path: /ru/game/funko-pop-ad-icons/geoffrey-as-iron-man-29 + method: GET + data_selector: records +- name: jollibee + endpoint: + path: /ru/game/funko-pop-ad-icons/jollibee-30 + method: GET + data_selector: records +- name: jollibee_metallic + endpoint: + path: /ru/game/funko-pop-ad-icons/jollibee-metallic-jollibee-30 + method: GET + data_selector: records +- name: sales_data + endpoint: + path: /api/v1/sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /offers?product=5875088 + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: + incremental: sale_date +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: records +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales_records + params: {} +- name: price_guide + endpoint: + path: /api/price_guide/doom_64 + method: GET + data_selector: prices +- name: full_price_guide + endpoint: + path: /api/space-center-3368/full-price-guide + method: GET + data_selector: prices +- name: prices + endpoint: + path: /api/prices + method: GET + data_selector: records + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: item_details + endpoint: + path: /item/details + method: GET + data_selector: itemDetails +- name: sold_listings + endpoint: + path: /item/soldListings + method: GET + data_selector: soldListings +- name: historic_prices + endpoint: + path: /item/historicPrices + method: GET + data_selector: historicPrices +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /full-price-guide/41028 + method: GET + data_selector: prices + params: {} +- name: price_guide + endpoint: + path: /price-guide/hunt-for-red-october + method: GET + data_selector: prices + params: {} +- name: games + endpoint: + path: /de/game/pal-nintendo-switch + method: GET + data_selector: games + params: {} +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales_records +- name: Power Rangers Lightspeed Rescue + endpoint: + path: /console/nintendo-64 + method: GET + data_selector: details + params: {} +- name: One Piece Karte Sets + endpoint: + path: /de/console/one-piece-karten-sets + method: GET + data_selector: sets + params: {} +- name: New Releases + endpoint: + path: /de/console/one-piece-new-releases + method: GET + data_selector: new_releases + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: records + params: {} +- name: One Piece Karte Sets + endpoint: + path: /de/console/one-piece-karten-sets + method: GET + data_selector: sets + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: product_list + endpoint: + path: /de/game/funko-pop-animation + method: GET + data_selector: products +- name: price_guide + endpoint: + path: /api/v1/price_guide + method: GET + data_selector: prices + params: {} +- name: prices + endpoint: + path: /prices + method: GET + data_selector: records + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: records + params: {} +- name: videospielpreise + endpoint: + path: /de/category/video-games + method: GET +- name: funko_pop_prices + endpoint: + path: /de/category/funko-pops + method: GET +- name: coin_prices + endpoint: + path: /de/category/coins + method: GET +- name: comic_book_prices + endpoint: + path: /de/category/comic-books + method: GET +- name: pokemon_card_prices + endpoint: + path: /de/category/pokemon-cards + method: GET +- name: baseball_card_prices + endpoint: + path: /category/baseball-cards + method: GET +- name: basketball_card_prices + endpoint: + path: /category/basketball-cards + method: GET +- name: football_card_prices + endpoint: + path: /category/football-cards + method: GET +- name: sales + endpoint: + path: /sales + method: GET + data_selector: records +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /price-guide/star-trek-deep-space-nine-crossroads-of-time + method: GET + data_selector: prices +- name: sales_data + endpoint: + path: /offers?product=6984 + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: Loose Price + endpoint: + path: /prices/loose + method: GET + data_selector: prices + params: {} +- name: Complete Price + endpoint: + path: /prices/complete + method: GET + data_selector: prices + params: {} +- name: New Price + endpoint: + path: /prices/new + method: GET + data_selector: prices + params: {} +- name: Graded Price + endpoint: + path: /prices/graded + method: GET + data_selector: prices + params: {} +- name: Box Only Price + endpoint: + path: /prices/box-only + method: GET + data_selector: prices + params: {} +- name: Manual Only Price + endpoint: + path: /prices/manual-only + method: GET + data_selector: prices + params: {} +- name: price_guide + endpoint: + path: /api/price-guide/lord-of-darkness + method: GET + data_selector: prices + params: {} +- name: completed_sales + endpoint: + path: /sales/photos + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: records +- name: price_guide + endpoint: + path: /price_guide/tetris_attack + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /api/v1/sales + method: GET + data_selector: salesRecords + params: + incremental: sale_date +- name: price_guide + endpoint: + path: /api/v1/price_guide + method: GET + data_selector: prices + params: {} +- name: price_guide + endpoint: + path: /api/price-guide/doom-64 + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: completed_sales + endpoint: + path: /api/completed_sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_photos + endpoint: + path: /sales/photos + method: GET + data_selector: sales + params: {} +- name: empty_boxes + endpoint: + path: /sales/empty_boxes + method: GET + data_selector: sales + params: {} +- name: manuals + endpoint: + path: /sales/manuals + method: GET + data_selector: sales + params: {} +- name: posters + endpoint: + path: /sales/posters + method: GET + data_selector: sales + params: {} +- name: Hunt for Red October + endpoint: + path: /game/super-nintendo/hunt-for-red-october + method: GET + data_selector: data +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /price_guide/power_rangers_lightspeed_rescue + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /price-guide/predator + method: GET + data_selector: prices + params: {} +- name: completed_sales + endpoint: + path: /pricecharting-pro/salesPhotos + method: GET + data_selector: sales + params: {} +- name: prices + endpoint: + path: /prices + method: GET + data_selector: prices + params: {} +- name: sales_history + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /price-guide/Terminator_2_Judgment_Day_Super_Nintendo + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /api/v1/prices/star-trek-deep-space-nine-crossroads-of-time + method: GET + data_selector: prices +- name: sales_data + endpoint: + path: /services/data/vXX.X/sobjects/SalesData + method: GET + data_selector: records + params: + incremental: sale_date +- name: prices + endpoint: + path: /offers + method: GET + data_selector: records + params: {} +- name: price_guide + endpoint: + path: /price-guide/double-dragon/nes + method: GET + data_selector: prices + params: {} +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales + params: {} +- name: game_details + endpoint: + path: /console/super-nintendo + method: GET + data_selector: details +- name: completed_sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /p/1310 + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales/photos + method: GET + data_selector: sales + params: {} +- name: game_prices + endpoint: + path: /prices/ghost-lion-nes + method: GET + data_selector: prices +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /api/price_guide + method: GET + data_selector: prices + params: {} +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales_records +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_data +- name: full_price_guide + endpoint: + path: /price_guide/the_ignition_factor + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: records +- name: price_guide + endpoint: + path: /api/price_guide/metroid_nes + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /offers?product=12157 + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales-data + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: platoon_details + endpoint: + path: /platoon/details + method: GET + data_selector: details + params: {} +- name: platoon_price_guide + endpoint: + path: /platoon/price-guide + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: game_details + endpoint: + path: /console/nes + method: GET + data_selector: details + params: {} +- name: price_guide + endpoint: + path: /price-guide + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: completed_sales + endpoint: + path: /api/v1/sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /price_guide/predator_nes + method: GET + data_selector: prices +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: records +- name: completed_sales + endpoint: + path: /sales/photos/completed + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales-data + method: GET + data_selector: records +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: records +- name: price_guide + endpoint: + path: /price_guide/double_dragon_nes + method: GET + data_selector: prices + params: {} +- name: video_games + endpoint: + path: /category/video-games + method: GET + data_selector: data + params: {} +- name: funko_pops + endpoint: + path: /category/funko-pops + method: GET + data_selector: data + params: {} +- name: coins + endpoint: + path: /category/coins + method: GET + data_selector: data + params: {} +- name: comics + endpoint: + path: /category/comic-books + method: GET + data_selector: data + params: {} +- name: trading_cards + endpoint: + path: /trading-cards + method: GET + data_selector: data + params: {} +- name: sold_listings + endpoint: + path: /sold_listings + method: GET + data_selector: listings + params: {} +- name: item_details + endpoint: + path: /item_details + method: GET + data_selector: details + params: {} +- name: prices + endpoint: + path: /console/super-nintendo + method: GET + data_selector: prices +- name: completed_sales + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_data + params: {} +- name: price_guide + endpoint: + path: /api/price_guide + method: GET + data_selector: prices +- name: sales + endpoint: + path: /sales/data + method: GET + data_selector: records + params: + incremental: sale_date +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /pricecharting/sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: salesRecords + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: game_details + endpoint: + path: /console/super-nintendo + method: GET + data_selector: details + params: {} +- name: price_guide + endpoint: + path: /game/price-guide/super-mario-kart-player's-choice + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: price_history + endpoint: + path: /price_history + method: GET + data_selector: sales + params: {} +- name: item_details + endpoint: + path: /item_details + method: GET + data_selector: details + params: {} +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales_records + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /api/price_guide + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: records + params: {} +- name: sales_photos + endpoint: + path: /sales/photos + method: GET + data_selector: sales + params: {} +- name: instruction_manuals + endpoint: + path: /instruction/manuals + method: GET + data_selector: manuals + params: {} +- name: prices + endpoint: + path: /api/prices + method: GET + data_selector: prices + params: {} +- name: completed_sales + endpoint: + path: /api/completed_sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: completed_sales + endpoint: + path: /api/completed_sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: records +- name: game_details + endpoint: + path: /console/nes + method: GET + data_selector: game_details + params: {} +- name: game_details + endpoint: + path: /console/super-nintendo + method: GET + data_selector: details +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: Price Guide + endpoint: + path: /price-guide/zombiu + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /sales/data + method: GET + data_selector: sales_records +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales + params: {} +- name: Prices + endpoint: + path: /console/gamecube + method: GET + data_selector: prices +- name: Sales + endpoint: + path: /sales + method: GET + data_selector: sales +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales/photos + method: GET + data_selector: sales + params: {} +- name: sales_photos + endpoint: + path: /pricecharting-pro/salesPhotos + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: records + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: video_games + endpoint: + path: /category/video-games + method: GET +- name: funko_pops + endpoint: + path: /category/funko-pops + method: GET +- name: comic_books + endpoint: + path: /category/comic-books + method: GET +- name: coins + endpoint: + path: /category/coins + method: GET +- name: trading_cards + endpoint: + path: /trading-cards + method: GET +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: game_details + endpoint: + path: /console/gamecube + method: GET + data_selector: details + params: {} +- name: prices + endpoint: + path: /prices + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: product + endpoint: + path: /api/product + method: GET + data_selector: product +- name: product + endpoint: + path: /api/product + method: GET + data_selector: status +- name: sales + endpoint: + path: /api/v1/sales + method: GET + data_selector: salesRecords + params: {} +- name: offer_publish + endpoint: + path: /api/offer-publish + method: POST +- name: products + endpoint: + path: /api/products + method: GET +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales + params: {} +- name: product + endpoint: + path: /api/product + method: GET + data_selector: records + params: + t: c0b53bce27c1bdab90b1605249e600dc43dfd1d5 +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: products + endpoint: + path: /api/products + method: GET + data_selector: products +- name: price_guide + endpoint: + path: /api/price_guide + method: GET + data_selector: prices +- name: prices + endpoint: + path: /api/prices + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: offers + endpoint: + path: /api/offers + method: GET + data_selector: offers + params: + status: sold +- name: offer_publish + endpoint: + path: /api/offer-publish + method: POST + data_selector: status +- name: offer_details + endpoint: + path: /api/offer-details + method: GET + data_selector: buyer + params: + offer-id: vtdsww72uyslgooawzyyijsllm +- name: offer_feedback + endpoint: + path: /api/offer-feedback + method: POST + data_selector: status +- name: offer_ship + endpoint: + path: /api/offer-ship + method: POST + data_selector: status +- name: offer_end + endpoint: + path: /api/offer-end + method: POST + data_selector: status +- name: offer_refund + endpoint: + path: /api/offer-refund + method: POST + data_selector: status +- name: sales + endpoint: + path: /api/v1/sales + method: GET + data_selector: records + params: + incremental: sale_date +- name: sales_data + endpoint: + path: /offers + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: + incremental: sale_date +- name: completed_sales_photos + endpoint: + path: /sales/photos + method: GET + data_selector: sales + params: {} +- name: completed_sales_manuals + endpoint: + path: /sales/manuals + method: GET + data_selector: sales + params: {} +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales + params: + incremental: sale_date +- name: game_details + endpoint: + path: /console/nes + method: GET + data_selector: details + params: {} +- name: price_guide + endpoint: + path: /price-guide/alien-syndrome + method: GET + data_selector: prices + params: {} +- name: item_details + endpoint: + path: /item_details + method: GET + data_selector: item_info + params: {} +- name: price_history + endpoint: + path: /price_history + method: GET + data_selector: prices + params: {} +- name: price_guide + endpoint: + path: /price_guide/double_dragon_ii_nes + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_data + params: {} +- name: sales + endpoint: + path: /sales/data + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: game_details + endpoint: + path: /console/nes + method: GET + data_selector: details + params: {} +- name: price_guide + endpoint: + path: /api/v1/price_guide + method: GET + data_selector: prices + params: {} +- name: price_history + endpoint: + path: /price-history + method: GET + data_selector: sales + params: {} +- name: item_details + endpoint: + path: /item-details + method: GET + data_selector: itemInfo + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /api/sales + method: GET + data_selector: records + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: elevator_action + endpoint: + path: /game/nes/elevator-action + method: GET + data_selector: details + params: {} +- name: price_guide + endpoint: + path: /price_guide/zombiu + method: GET + data_selector: prices + params: {} +- name: sale_data + endpoint: + path: /offers?product=2039 + method: GET + data_selector: sales +- name: price_data + endpoint: + path: /prices?product=2039 + method: GET + data_selector: prices +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: records + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: game_details + endpoint: + path: /console/gameboy-advance + method: GET + data_selector: details + params: {} +- name: price_guide + endpoint: + path: /console/gameboy-advance/price-guide + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /services/data/vXX.X/sobjects/SalesData + method: GET + data_selector: records + params: + incremental: sale_date +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales_records + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales_records + params: {} +- name: sales_data + endpoint: + path: /services/data/vXX.X/sobjects/SalesData + method: GET + data_selector: records + params: {} +- name: game_details + endpoint: + path: /console/nintendo-64 + method: GET + data_selector: details + params: {} +- name: game_details + endpoint: + path: /console/gamecube + method: GET + data_selector: details + params: {} +- name: price_guide + endpoint: + path: /full-price-guide + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /services/data/vXX.X/sobjects/Sales + method: GET + data_selector: records + params: + incremental: sale_date +- name: offer_publish + endpoint: + path: /api/offer-publish + method: POST + data_selector: status + params: {} +- name: products + endpoint: + path: /api/products + method: GET + data_selector: products + params: {} +- name: completed_sales + endpoint: + path: /api/v1/completed_sales + method: GET + data_selector: sales_records +- name: price_guide + endpoint: + path: /api/v1/california-speed/price-guide + method: GET + data_selector: prices + params: {} +- name: product + endpoint: + path: /api/product + method: GET + data_selector: status + params: + id: PriceCharting product ID number +- name: prices + endpoint: + path: /api/prices + method: GET + data_selector: prices + params: {} +- name: products + endpoint: + path: /products + method: GET + data_selector: products +- name: sales + endpoint: + path: /sales/data + method: GET + data_selector: records +- name: offers + endpoint: + path: /api/offers + method: GET + data_selector: offers + params: + status: sold +- name: offer_publish + endpoint: + path: /api/offer-publish + method: POST + data_selector: status +- name: offer_details + endpoint: + path: /api/offer-details + method: GET + data_selector: status +- name: offer_feedback + endpoint: + path: /api/offer-feedback + method: POST + data_selector: status +- name: offer_ship + endpoint: + path: /api/offer-ship + method: POST + data_selector: status +- name: offer_end + endpoint: + path: /api/offer-end + method: POST + data_selector: status +- name: offer_refund + endpoint: + path: /api/offer-refund + method: POST + data_selector: status +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: offers + endpoint: + path: /api/v1/offers + method: GET + data_selector: offers +- name: sales_data + endpoint: + path: /sales/photos/completed + method: GET + data_selector: records + params: {} +- name: price_guide + endpoint: + path: /api/price_guide/quest_64 + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: full_price_guide + endpoint: + path: /game/nes/alien-syndrome + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: sales + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /api/prices/turok-2-seeds-of-evil + method: GET + data_selector: prices + params: {} +- name: game_details + endpoint: + path: /console/nes + method: GET + data_selector: details + params: {} +- name: prices + endpoint: + path: /prices + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: + incremental: sale_date +- name: sales + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: box_sales + endpoint: + path: /api/box_sales + method: GET + data_selector: box_sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_data +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /price-guide/elevator-action-nes + method: GET + data_selector: prices +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: salesRecords + params: {} +- name: brother_bear_details + endpoint: + path: /console/gameboy-advance + method: GET + data_selector: details + params: {} +- name: brother_bear_price_guide + endpoint: + path: /full-price-guide/brother-bear + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales + params: {} +- name: prices + endpoint: + path: /prices + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: Blaster Master NES + endpoint: + path: /console/nes + method: GET + data_selector: records + params: {} +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /console/nintendo-64 + method: GET + data_selector: sales + params: {} +- name: completed_sales + endpoint: + path: /pricecharting-pro/salesPhotos + method: GET + data_selector: sales + params: {} +- name: sales_photos + endpoint: + path: /pricecharting-pro/salesPhotos + method: GET + data_selector: records +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records +- name: price_guide + endpoint: + path: /api/price_guide/south_park_chefs_luv_shack + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: + incremental: sale_date +- name: completed_sales_photos + endpoint: + path: /sales/photos + method: GET + data_selector: sales + params: {} +- name: completed_sales_manuals + endpoint: + path: /sales/manuals + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /full-price-guide/wcw-vs-nwo-world-tour + method: GET + data_selector: prices +- name: price_guide + endpoint: + path: /api/price_guide/california_speed + method: GET + data_selector: prices + params: {} +- name: item_prices + endpoint: + path: /offers?product=5123 + method: GET + data_selector: prices +- name: sales + endpoint: + path: /sales + method: GET + data_selector: records + params: {} +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales_records +- name: completed_sales + endpoint: + path: /sales/completed + method: GET + data_selector: sales_records + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales/data + method: GET + data_selector: sales_records +- name: sales + endpoint: + path: /sales + method: GET + data_selector: records + params: {} +- name: prices + endpoint: + path: /offers?product=19824 + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_records + params: {} +- name: quest_64_details + endpoint: + path: /quest/64/details + method: GET + data_selector: details + params: {} +- name: quest_64_price_guide + endpoint: + path: /quest/64/price_guide + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: salesData +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales_records + params: {} +- name: sales_data + endpoint: + path: /pricecharting-pro/sales + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_data + params: {} +- name: sales + endpoint: + path: /pricecharting/sales + method: GET + data_selector: salesRecords + params: {} +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: records +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /api/price_guide + method: GET + data_selector: prices +- name: sales + endpoint: + path: /sales/data + method: GET + data_selector: salesRecords +- name: products + endpoint: + path: /api/products + method: GET + data_selector: data +- name: price_guide + endpoint: + path: /price-guide/turok-2-seeds-of-evil + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: + incremental: sale_date +- name: sales + endpoint: + path: /sales + method: GET + data_selector: records +- name: box_sales + endpoint: + path: /box_sales + method: GET + data_selector: records +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: game_details + endpoint: + path: /api/willow/details + method: GET + data_selector: gameInfo + params: {} +- name: price_guide + endpoint: + path: /api/willow/price_guide + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /api/sales_data + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: + incremental: sale_date +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: records + params: {} +- name: price_guide + endpoint: + path: /api/v1/price_guide + method: GET + data_selector: prices + params: {} +- name: sales + endpoint: + path: /sales_data + method: GET + data_selector: records +- name: sales + endpoint: + path: /pricecharting-pro/sales + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /api/price_guide/wcw_vs_nwo_world_tour + method: GET + data_selector: prices +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales_data +- name: sales_data + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /api/sales + method: GET + data_selector: sales + params: {} +- name: prices + endpoint: + path: /api/prices/devil-may-cry-3 + method: GET + data_selector: prices + params: {} +- name: prices + endpoint: + path: /prices + method: GET + data_selector: prices + params: {} +- name: sales_history + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: completed_sales + endpoint: + path: /sales/photos/completed + method: GET + data_selector: sales + params: {} +- name: sales + endpoint: + path: /sales + method: GET + data_selector: sales + params: {} +- name: sales_data + endpoint: + path: /sales_data + method: GET + data_selector: records +- name: price_guide + endpoint: + path: /api/price_guide + method: GET + data_selector: prices + params: {} +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales_records +- name: sales_data + endpoint: + path: /sales/data + method: GET + data_selector: sales + params: {} +- name: price_guide + endpoint: + path: /api/price_guide + method: GET + data_selector: prices + params: {} +- name: products + endpoint: + path: /api/products + method: GET + data_selector: products +notes: +- API's are a premium tool. You must have a paid subscription to access the API. +- Each subscription has a unique, 40-character token associated with it. +- Each API call is authenticated by including the token as the `t` parameter in the + HTTP request. +- Throttle requests to the same url to a maximum of once every 5 minutes. +- Uses proprietary technology to monitor eBay sales for pricing. +- No Fees to buy or sell +- We monitor every eBay sale for One Piece Cards. +- Using our proprietary technology; We assign each sale to a Card, toss the junk, + and record the grade of each sale. +- No Fees to buy or sell Issues +- Uses OAuth2 with refresh token — requires setup of connected app in api +- The tool checks eBay every minute and will automatically update the page when a + deal is found. +- Items not received or not matching the listing's description are covered by the + guarantee. +- Non-receipt claims need to wait 14 days for delivery before filing a claim. +- Non-receipt claims must be filed within 60 days of payment. +- Not as described claims must be filed within 15 days of item delivery. +- All prices are US Dollars (USD) by default. +- Shipping is free for all items. All shipping costs are included in the price of + the item. +- All sellers on the marketplace agree to offer a 14 day money back guarantee. +- API is user supported and may earn commission from affiliate links. +- We operate a site that helps you price, collect, buy, & sell video games. +- You can't use the site to do something illegal in your country. For example, selling + bootlegged video games. +- You still own any content you upload. We just use it for the purposes of running + our site and marketplace. +- You can use the price data for your personal needs or internal business purposes. +- Whenever money changes hands, you agree to our payment processor's terms of service. +- We can stop providing services at any time. You can stop using our services at any + time. +- Some day we might need to change the terms. If we do we will let you know. +- Sometimes things go wrong and you might lose access to the Site. Potentially forever + if things go really bad. +- We are not liable if something bad happens because you used the site. +- Requires subscription to see photos of completed sales. +- Items not received are covered under the guarantee. +- Claims must be filed within specified time limits. +- API provides access to various pricing categories. +- Time Warp shows photos of completed sales. +- Prices are based on historic sales data. +- Shipping is free for all items. +- This API does not require authentication. +- Both parties agree that the Terms shall be governed in accordance with the laws + of Denver County, Colorado as if both parties were residents thereof. +- Both parties submit to the exclusive jurisdiction of Denver County, Colorado courts. +- All prices are the current market price. +- Prices are based on the historic sales data. +- Data source does not require authentication. +- Data may vary based on sales frequency. +- Prices shown are calculated using a proprietary algorithm. +- Historic sales data are completed sales with a buyer and a seller agreeing on a + price. +- The prices shown are calculated using our proprietary algorithm. +- Uses OAuth2 with refresh token — requires setup of connected app in pricecharting +- Some sales may return null for certain fields +- No authentication is required for accessing product data. +- Data may include nulls in some fields +- Links to external sites may include affiliate tracking +- Requires setup of connected app in api +- Prices are based on the historic sales. +- Subscription required to see photos. +- No additional notes provided. +- 'Series: McDonald''s' +- 'Release Date: January 1, 2020' +- 'Publisher: Funko' +- 'Box Number: #114' +- 'UPC: 889698412360' +- 'PriceCharting ID: 7467799' +- Chart shows the price at the end of each month. +- We are user supported. +- Requires subscription for full access to historical sales data +- No sales data for this condition +- Prices shown are based on historic sales data. +- We are user supported. We may earn an affiliate commission if you buy stuff after + clicking links on our site to eBay or Amazon +- none +- Prices are based on historic sales data with buyer and seller agreement. +- Uses API to retrieve item prices and sales data. +- Prices are based on historic sales. +- Some items may have sales data missing. +- No sales data for certain conditions +- Collection items may include null values for certain fields. +- Some objects may return nulls in deeply nested fields +- Uses proprietary technology to determine card prices. +- We are user supported. We may earn an affiliate commission if you buy stuff after + clicking links on our site to eBay or Amazon. +- Subscription required for premium features. +- Requires subscription for photo access +- Sales data may fluctuate based on market conditions +- Some items may be hard to find or retired. +- We may earn an affiliate commission if you buy stuff after clicking links on our + site to eBay or Amazon +- Data is sourced from completed sales on eBay. +- Wir überwachen jeden eBay-Verkauf für Dragon Ball Karten. +- Mit unserem proprietäre Technologie; Wir weisen jedem Verkauf eine Karte zu. +- No authentication required for accessing price and sales data. +- Data is sourced from eBay listings. +- Sales data may not represent all listings. +- Sales data includes various listings and prices for Tetris Attack. +- Requires subscription for accessing sales photos +- Data may have inconsistencies in deeply nested fields +- No authentication required for accessing sales data. +- Use caution with sales data as prices may fluctuate. +- Data includes sales and pricing information from multiple platforms. +- Data source provides historical pricing for games. +- Requires subscription for certain features +- Some data may be subject to change or inaccuracies +- Volume data is based on sales frequency. +- Prices shown are calculated using our proprietary algorithm. +- Time Warp shows photos of completed sales. Subscription required for full access. +- Some listings may vary in price and availability. +- Uses specific pricing data based on historic sales. +- Prices are calculated using a proprietary algorithm. +- The API provides price comparison data for items. +- No known integration quirks. +- No known issues or notes. +- Requires subscription for access to photos of completed sales. +- Requires subscription for access to sales photos +- Some sales data may be subject to inaccuracies +- 'There are two variants of the game: one has the Nintendo seal of quality on the + bottom right corner of the cartridge art; the other lacks the seal.' +- Prices may vary based on condition and completeness. +- Requires subscription for full access to sales photos. +- Time Warp shows photos of completed sales. Subscription required to see photos. +- Sales data is shown for completed sales. +- Subscription is required to access photos of completed sales. +- Requires subscription to access photos of completed sales. +- Some sales may not include images unless subscribed. +- Sales data may not be available for all conditions. +- See an incorrect/misclassified sale? Please click 'report' to notify admin. +- We earn a commission if you click eBay links and buy stuff. +- Requires subscription to view photos. +- API access requires account creation. +- Requires subscription for access to complete sales photos. +- 1 to 4 Players +- Data may vary across different platforms. +- Each API call is authenticated by including the token as the t parameter in the + HTTP request. +- Prices may vary based on condition and seller. +- Uses OAuth2 with refresh token — requires setup of connected app in Time Warp +- Some sales may contain null values in certain fields +- Sales data is available for tracking collection value over time. +- Requires subscription for access to photos of completed sales +- Requires subscription for accessing photos. +- Sales data may not be complete for all items. +- Sales data includes historical prices and volume. +- Uses Time Warp to show photos of completed sales. +- Shows photos of completed sales. +- Prices are subject to change and may vary based on condition and seller. +- Requires API key for access. +- Either product, upc, asin, epid or offer-id is required for publishing offers. +- Sales data is shown with timestamps and prices. +- Each API call is authenticated by including this token as the `t` parameter in the + HTTP request. +- Historic prices and historic sales are not supported. +- Some objects like Contact may return nulls in deeply nested fields +- Requires subscription to access full sales data +- Some sales may have inaccuracies +- Data may include subscriptions for viewing photos. +- Requires setup of Time Warp API credentials +- Exclusive PlayStation 2 +- Data may include prices from various e-commerce platforms. +- The prices shown are calculated using a proprietary algorithm. +- Requires a subscription for accessing sales photos. +- Uses OAuth2 with refresh token — requires setup of connected app in PriceCharting +- Subscription required to view photos. +- Requires API key for access +- Uses eBay links for sales data. +- Sales data includes various conditions and completeness. +- Prices shown are calculated using proprietary algorithm. +- 'BEST PRACTICE: We STRONGLY RECOMMEND creating one test keyword rule to make sure + prices update as you expect.' +errors: +- 'error-message: describes what went wrong' +- '400: Bad Request - check the request parameters' +- '500: Internal Server Error - something went wrong on the server' +- 'status: error' +- '400 or 500 range: Reserved for errors.' +- '400: Bad Request - Check parameters' +- '401: Unauthorized - Ensure your API token is correct' +- '500: Internal Server Error - Try again later' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '400 Bad Request: Check request parameters.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '404 Not Found: Check the item ID or endpoint path.' +- No sales data for this condition +- 'INVALID_ITEM_ID: Check the item ID provided.' +- 'API_RATE_LIMIT_EXCEEDED: Reduce the frequency of requests.' +- '404 Not Found: Check if the item ID is valid.' +- 'RESOURCE_NOT_FOUND: Check the endpoint path and parameters.' +- '404 Not Found: Check the endpoint path.' +- '401 Unauthorized: Recheck API Key or access rights' +- '401 Unauthorized: Check API key or permissions' +- '404 Not Found: Verify endpoint URL' +- '500 Internal Server Error: Retry after some time' +- '404 Not Found: Check the endpoint path' +- '500 Internal Server Error: Try again later' +- '401 Unauthorized: Recheck API key or token expiration' +- 'QUERY_TIMEOUT: Simplify your query or add selectivity' +- '401 Unauthorized: Verify OAuth credentials or token expiration' +- '404 Not Found: Check the endpoint and parameters' +- '403 Forbidden: Check your API key and permissions' +- '404 Not Found: Verify the endpoint and parameters' +- '404 Not Found: Check if the item exists.' +- '500 Internal Server Error: Try again later.' +- '404 Not Found: Check endpoint URL' +- '404 Not Found: The specified resource does not exist.' +- '500 Internal Server Error: An unexpected error occurred on the server.' +- 'Invalid request: Check your parameters.' +- 'No data found: Ensure the date range is correct.' +- 'INVALID_REQUEST: Check query parameters and request format.' +- '401 Unauthorized: Check if the token is valid.' +- 'error: The request was not successful.' +- 'status: success or error' +- '401 Unauthorized: Check API key and permissions' +- '404 Not Found: Check the endpoint URL' +- 'status: error - The request was not completed successfully.' +- HTTP status code will fall in the 400 or 500 range, reserved for errors. +- 'status: error - indicates what went wrong.' +- No sales data for this game and condition +- '401 Unauthorized: Check API key' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://www.pricecharting.com + auth: + type: apikey +source_metadata: null diff --git a/pyjwt/pyjwt-docs.md b/pyjwt/pyjwt-docs.md new file mode 100644 index 00000000..a132bb5c --- /dev/null +++ b/pyjwt/pyjwt-docs.md @@ -0,0 +1,145 @@ +In this guide, we'll set up a complete PyJWT data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def pyjwt_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://dev-87evx9ru.auth0.com/.well-known", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "jwks.json" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='pyjwt_pipeline', + destination='duckdb', + dataset_name='pyjwt_data', + ) + # Load the data + load_info = pipeline.run(pyjwt_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from pyjwt’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **JWKS Endpoint**: Provides a JSON Web Key Set (JWKS) that contains public keys used to verify JSON Web Tokens (JWTs). The endpoint is commonly found at `/.well-known/jwks.json`. + +You will then debug the PyJWT pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with PyJWT support. + ```shell + dlt init dlthub:pyjwt duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for PyJWT API, as specified in @pyjwt-docs.yaml + Start with endpoint jwks.json and skip incremental loading for now. + Place the code in pyjwt_pipeline.py and name the pipeline pyjwt_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python pyjwt_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Auth information not found. + + To get the appropriate API keys, please visit the original source at https://pyjwt.readthedocs.io/en/stable/api.html. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python pyjwt_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline pyjwt load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset pyjwt_data + The duckdb destination used duckdb:/pyjwt.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline pyjwt_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("pyjwt_pipeline").dataset() + # get "jwks.json" table as Pandas frame + data."jwks.json".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/pyjwt/pyjwt-docs.yaml b/pyjwt/pyjwt-docs.yaml new file mode 100644 index 00000000..a5c0fe6f --- /dev/null +++ b/pyjwt/pyjwt-docs.yaml @@ -0,0 +1,12 @@ +client: + auth: Auth information not found. + most_recurring_base_url: https://dev-87evx9ru.auth0.com + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://pyjwt.readthedocs.io/en/stable/usage.html': + - https://{oidc_server + - /.well-known/jwks.json + - https://expenses-api +- 'endpoints source: https://pyjwt.readthedocs.io/en/stable/changelog.html': + - /.well-known/jwks.json + - https://expenses-api diff --git a/quant_aq/quant-aq-docs.md b/quant_aq/quant-aq-docs.md new file mode 100644 index 00000000..9f8598f8 --- /dev/null +++ b/quant_aq/quant-aq-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete QuantAQ data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def quant_aq_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://app.quant-aq.com/api/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + data,,raw_data,,account + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='quant_aq_migrations_pipeline', + destination='duckdb', + dataset_name='quant_aq_migrations_data', + ) + # Load the data + load_info = pipeline.run(quant_aq_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from quant_aq_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Data Endpoints: Access various types of data collected by devices. +- Organization Endpoints: Manage and retrieve information related to organizations. +- Device Endpoints: Interact with and manage device data. + +You will then debug the QuantAQ pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with QuantAQ support. + ```shell + dlt init dlthub:quant_aq_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for QuantAQ API, as specified in @quant_aq_migrations-docs.yaml + Start with endpoints data and and skip incremental loading for now. + Place the code in quant_aq_migrations_pipeline.py and name the pipeline quant_aq_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python quant_aq_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The source requires OAuth2 authentication, necessitating the setup of a connected app for access. + + To get the appropriate API keys, please visit the original source at https://www.quant-aq.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python quant_aq_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline quant_aq_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset quant_aq_migrations_data + The duckdb destination used duckdb:/quant_aq_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline quant_aq_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("quant_aq_migrations_pipeline").dataset() + # get at table as Pandas frame + data.at.df().head() + ``` + +## Running into errors? + +Users must be confirmed members of the Organization or Network to access certain endpoints. Additionally, devices require a stable internet connection for optimal performance and data collection. Be aware of request limits and the need for proper authentication scopes to avoid unauthorized access errors. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/quant_aq/quant-aq-docs.yaml b/quant_aq/quant-aq-docs.yaml new file mode 100644 index 00000000..6cf5ef97 --- /dev/null +++ b/quant_aq/quant-aq-docs.yaml @@ -0,0 +1,593 @@ +resources: +- name: account + endpoint: + path: /v1/account + method: GET + data_selector: data + params: {} +- name: devices + endpoint: + path: /v1/devices + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: account + endpoint: + path: /v1/account + method: GET + data_selector: null + params: {} +- name: devices + endpoint: + path: /v1/devices + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: device + endpoint: + path: /v1/devices/{serial_number} + method: GET + data_selector: null + params: {} +- name: organizations + endpoint: + path: /v1/orgs/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: organization + endpoint: + path: /v1/orgs/{org_id} + method: GET + data_selector: data +- name: networks + endpoint: + path: /v1/orgs/{org_id}/networks/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: network + endpoint: + path: /v1/orgs/{org_id}/{network_id} + method: GET + data_selector: data +- name: device_data_final + endpoint: + path: /v1/devices/{serial_number}/data/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: device_data_raw + endpoint: + path: /v1/devices/{serial_number}/data/raw/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: organizations + endpoint: + path: /v1/orgs/ + method: GET + data_selector: data +- name: single_organization + endpoint: + path: /v1/orgs/{org_id} + method: GET + data_selector: data +- name: networks + endpoint: + path: /v1/orgs/{org_id}/networks/ + method: GET + data_selector: data +- name: single_network + endpoint: + path: /v1/orgs/{org_id}/{network_id} + method: GET + data_selector: data +- name: final_data + endpoint: + path: /v1/devices/{serial_number}/data/ + method: GET + data_selector: data +- name: raw_data + endpoint: + path: /v1/devices/{serial_number}/data/raw/ + method: GET + data_selector: data +- name: final_data_by_date + endpoint: + path: /v1/devices/{serial_number}/data-by-date/{date}/ + method: GET + data_selector: data + params: {} +- name: raw_data_by_date + endpoint: + path: /v1/devices/{serial_number}/data-by-date/raw/{date}/ + method: GET + data_selector: data + params: {} +- name: most_recent_data + endpoint: + path: /v1/data/most-recent/ + method: GET + data_selector: data + params: {} +- name: resampled_data + endpoint: + path: /v1/data/resampled/ + method: GET + data_selector: data + params: + period: 1h +- name: final_data_by_date + endpoint: + path: /v1/devices/{serial_number}/data-by-date/{date}/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: raw_data_by_date + endpoint: + path: /v1/devices/{serial_number}/data-by-date/raw/{date}/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: most_recent_data + endpoint: + path: /v1/data/most-recent/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: resampled_data + endpoint: + path: /v1/data/resampled/ + method: GET + data_selector: data + params: {} +- name: data + endpoint: + path: /devices/{device_id}/data + method: GET + data_selector: data +- name: local_data + endpoint: + path: /data/local + method: GET + data_selector: records +- name: cloud_data + endpoint: + path: /data/cloud + method: GET + data_selector: records +- name: data + endpoint: + path: /device-api/v1/devices/{device_id}/data/ + method: GET + data_selector: data + params: + incremental: timestamp +- name: data + endpoint: + path: /device-api/v1/devices/{device_id}/data + method: GET + data_selector: data +- name: MODULAIR + endpoint: + path: /software-apis-and-libraries/quantaq-cloud-api + method: GET +- name: sensor_data + endpoint: + path: /api/sensor_data + method: GET + data_selector: data + params: {} +- name: data + endpoint: + path: /data + method: GET + data_selector: records + params: {} +- name: data + endpoint: + path: /device-api/v1/devices/{device_id}/data/ + method: GET + data_selector: data +- name: air_quality_data + endpoint: + path: /api/v1/air_quality + method: GET + data_selector: data + params: {} +- name: air_quality_measurements + endpoint: + path: /api/air_quality + method: GET + data_selector: data + params: {} +- name: device_registration + endpoint: + path: /api/device_registration + method: POST + data_selector: result + params: {} +- name: raw_data + endpoint: + path: /raw_data + method: GET + data_selector: records +- name: final_data + endpoint: + path: /final_data + method: GET + data_selector: records +- name: data + endpoint: + path: /data + method: GET + data_selector: records +- name: MODULAIR-PM Data + endpoint: + path: /software-apis-and-libraries/quantaq-cloud-api + method: GET + data_selector: data + params: {} +- name: air_quality_data + endpoint: + path: /api/v1/air_quality + method: GET + data_selector: data + params: {} +- name: data + endpoint: + path: /device-api/v1/devices/MOD-PM-00001/data/ + method: GET + data_selector: data +- name: data_files + endpoint: + path: /data/files + method: GET + data_selector: records +- name: data + endpoint: + path: /api/v1/data + method: GET + data_selector: records + params: {} +- name: data + endpoint: + path: /device-api/v1/devices/{device_id}/data/ + method: GET + data_selector: data +- name: air_quality_measurements + endpoint: + path: /api/air_quality_measurements + method: GET + data_selector: measurements +- name: power_and_communications + endpoint: + path: /api/power_and_communications + method: GET + data_selector: communications +- name: operating_specifications + endpoint: + path: /api/operating_specifications + method: GET + data_selector: specifications +- name: certifications + endpoint: + path: /api/certifications + method: GET + data_selector: certifications +- name: data + endpoint: + path: /device-api/v1/devices/MOD-PM-00001/data/ + method: GET + data_selector: data +- name: Solar Power System + endpoint: + path: /hardware/solar-power-system + method: GET + data_selector: product_details + params: {} +- name: data + endpoint: + path: /device-api/v1/devices/{device_id}/data/ + method: GET + data_selector: data +- name: Weather Station + endpoint: + path: /hardware/weather-station/gill-maximet-weather-station + method: GET + data_selector: records + params: {} +- name: data + endpoint: + path: /device-api/v1/devices/MOD-UFP-00003/data + method: GET + data_selector: data +- name: solar_power_system + endpoint: + path: /hardware/solar-power-system + method: GET + data_selector: records + params: {} +- name: Gill MaxiMet GMX200 + endpoint: + path: /hardware/weather-station/gill-maximet-weather-station/WS-GMX200 + method: GET +- name: Gill MaxiMet GMX500 + endpoint: + path: /hardware/weather-station/gill-maximet-weather-station/WS-GMX500 + method: GET +- name: account + endpoint: + path: /v1/account + method: GET + data_selector: null + params: {} +- name: devices + endpoint: + path: /v1/devices + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: data + endpoint: + path: /device-api/v1/devices/MOD-UFP-00003/data + method: GET + data_selector: data +- name: organizations + endpoint: + path: /v1/orgs/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: organization + endpoint: + path: /v1/orgs/{org_id} + method: GET + data_selector: data +- name: networks + endpoint: + path: /v1/orgs/{org_id}/networks/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: network + endpoint: + path: /v1/orgs/{org_id}/{network_id} + method: GET + data_selector: data +- name: final_data + endpoint: + path: /v1/devices/{serial_number}/data/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: raw_data + endpoint: + path: /v1/devices/{serial_number}/data/raw/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: final_data_by_date + endpoint: + path: /v1/devices/{serial_number}/data-by-date/{date}/ + method: GET + data_selector: data + params: {} +- name: raw_data_by_date + endpoint: + path: /v1/devices/{serial_number}/data-by-date/raw/{date}/ + method: GET + data_selector: data + params: {} +- name: most_recent_data + endpoint: + path: /v1/data/most-recent/ + method: GET + data_selector: data + params: {} +- name: resampled_data + endpoint: + path: /v1/data/resampled/ + method: GET + data_selector: data + params: + start_date: '' + end_date: '' + period: '' +- name: account + endpoint: + path: /v1/account + method: GET + data_selector: records + params: {} +- name: devices + endpoint: + path: /v1/devices + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: organizations + endpoint: + path: /v1/orgs/ + method: GET + data_selector: data +- name: organization + endpoint: + path: /v1/orgs/{org_id} + method: GET + data_selector: data +- name: networks + endpoint: + path: /v1/orgs/{org_id}/networks/ + method: GET + data_selector: data +- name: network + endpoint: + path: /v1/orgs/{org_id}/{network_id} + method: GET + data_selector: data +- name: device_data_final + endpoint: + path: /v1/devices/{serial_number}/data/ + method: GET + data_selector: data +- name: device_data_raw + endpoint: + path: /v1/devices/{serial_number}/data/raw/ + method: GET + data_selector: data +- name: final_data + endpoint: + path: /v1/devices/{serial_number}/data-by-date/{date}/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: raw_data + endpoint: + path: /v1/devices/{serial_number}/data-by-date/raw/{date}/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: most_recent_data + endpoint: + path: /v1/data/most-recent/ + method: GET + data_selector: data + params: + per_page: 50 + page: 1 +- name: resampled_data + endpoint: + path: /v1/data/resampled/ + method: GET + data_selector: data + params: {} +notes: +- The user must be a confirmed member of the Organization or Network to access their + respective endpoints. +- Ensure the device is mounted securely for optimal performance +- Consider cellular availability during installation +- API designed to allow engineers to build applications and map layers powered by + the QuantAQ platform +- Uses a web interface for programmatic access +- Device logs data locally before pushing to the server +- Data is collected and saved to an onboard µSD card every five seconds. +- Data are available via the QuantAQ API at a 1-minute recording interval +- Data are available via the QuantAQ API at a 1-minute recording interval. +- Device status indicator may flash green and then breathe cyan when connected to + the cloud. +- MODULAIR devices require an internet connection to function properly. +- The API is designed to allow engineers to build applications and map layers powered + by the QuantAQ platform. +- Requires internet connection for operation +- Device can connect via LTE or Wi-Fi +- MODULAIR devices are designed for internet connectivity and require a stable connection + for optimal performance. +- Data files are written each day and can be read or analyzed using any programming + language or spreadsheet program. +- The device logs data locally and pushes it to the server once a connection is established. +- MODULAIR devices are designed to work with QuantAQ's add-on systems. +- Device logs data locally during connectivity issues. +- Data are pushed to the QuantAQ Cloud with 1-minute time resolution. +- When downloading data, you can select whether you would like to download the raw + data, the final data, or both the raw+final data. +- Temperature and relative humidity are measured inside the flow cell and should not + be interpreted as true ambient measurements. +- Common installation approaches include using high-strength zip ties to secure the + device to a fence or post, or using screws to mount the device using the provided + flanges. +- This product is no longer manufactured or sold by QuantAQ as of November 2024. +- QuantAQ supports the integration of Gill MaxiMet weather stations with MODULAIR + (X-series) products. +- Data can be accessed programmatically via the QuantAQ API. +- Flags are consistent across all QuantAQ products, so there may be flags in the table + below that are irrelevant to your product. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- The GMX200 offers wind speed and wind direction measurements. +- The GMX500 offers wind speed and wind direction as well as ambient temperature, + pressure, and relative humidity. +- Remove any rows where FLAG_STARTUP is set. +- Remove any rows where FLAG_OPC is set. +- Remove any rows where FLAG_NEPH is set. +- Remove any rows where FLAG_RHTP is set. +- Remove any rows where FLAG_CO is set. +- Remove any rows where FLAG_NO is set. +- Remove any rows where FLAG_NO2 is set. +- Remove any rows where FLAG_O3 is set. +- Remove any rows where FLAG_CO2 is set. +- Remove any rows where FLAG_SO2 is set. +- Remove any rows where FLAG_H2S is set. +- None. +- Contact QuantAQ. +- Replace the SD card. +- In April 2025, QuantAQ began shipping new MODULAIR systems that are slightly different + than previous versions. +- The attributes for the resampled data object depend on the model of the Device and + will always return the final data. +errors: +- '403 Forbidden: You do not have permissions for this action.' +- '400: Invalid request' +- '403: Forbidden - User is not a member of the Organization or Network.' +- '200: Successful request.' +- '403: Forbidden - User is not a confirmed member' +- '200: OK - Successful response' +- 'Invalid request: The request was not valid' +- 'CLOUD_CONNECTIVITY_PROBLEM: Check device status LED for connectivity issues.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- Connectivity problem indicated by LED not breathing cyan. +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '400 Bad Request: Check your request parameters' +- '401 Unauthorized: Verify your authentication credentials' +- '500 Internal Server Error: Try again later' +- 'DEVICE_NOT_FOUND: Ensure the device is registered and powered on.' +- 'INVALID_CREDENTIALS: Check the provided authentication details.' +- '403: Invalid request' +- '400: bad request, message: period parameter should be one of 1h|15m|8h|1d' +- Invalid request +- '403: Forbidden - User must be a confirmed member of the Organization or Network' +- '200: OK' +- '400: Bad Request' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://app.quant-aq.com +source_metadata: null diff --git a/quine/quine-docs.md b/quine/quine-docs.md new file mode 100644 index 00000000..49f02b41 --- /dev/null +++ b/quine/quine-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Quine data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def quine_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "http://localhost:8080/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + pi,,cdn,,users + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='quine_migration_pipeline', + destination='duckdb', + dataset_name='quine_migration_data', + ) + # Load the data + load_info = pipeline.run(quine_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from quine_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Ingest: Handles data ingestion from various sources. +- Users: Manages user-related information. +- Events: Deals with event streaming and management. +- CDN: Manages content delivery network functionalities. + +You will then debug the Quine pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Quine support. + ```shell + dlt init dlthub:quine_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Quine API, as specified in @quine_migration-docs.yaml + Start with endpoints pi and and skip incremental loading for now. + Place the code in quine_migration_pipeline.py and name the pipeline quine_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python quine_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Quine uses OAuth2 for authentication, requiring a valid access token to interact with the API. This involves setting up a connected app and managing token expiration and refresh processes. + + To get the appropriate API keys, please visit the original source at https://quine.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python quine_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline quine_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset quine_migration_data + The duckdb destination used duckdb:/quine_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline quine_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("quine_migration_pipeline").dataset() + # get table as Pandas frame + data..df().head() + ``` + +## Running into errors? + +Be aware that some API calls may return nulls in nested fields, and the system is designed for high-volume data streams, which may require careful management of resources. Additionally, recipes are not suitable for production workloads without conversion to API calls, and certain functionalities may behave differently across browsers. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/quine/quine-docs.yaml b/quine/quine-docs.yaml new file mode 100644 index 00000000..f9cef6d6 --- /dev/null +++ b/quine/quine-docs.yaml @@ -0,0 +1,1881 @@ +resources: +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: titles + endpoint: + path: /api/titles + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: titles + endpoint: + path: /services/data/vXX.X/sobjects/Titles + method: GET + data_selector: records +- name: Titles + endpoint: + path: /services/data/vXX.X/sobjects/Titles + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: APT Detection + endpoint: + path: /apt-detection/ + method: GET + data_selector: '' + params: {} +- name: CDN Cache Efficiency + endpoint: + path: /cdn/ + method: GET + data_selector: '' + params: {} +- name: Password Spraying + endpoint: + path: /password-spraying/ + method: GET + data_selector: '' + params: {} +- name: Temporal Locality + endpoint: + path: /duration/ + method: GET + data_selector: '' + params: {} +- name: Monitor an MMO + endpoint: + path: /planetside-2/ + method: GET + data_selector: '' + params: {} +- name: IMDB Movie Data + endpoint: + path: /movieData/ + method: GET + data_selector: '' + params: {} +- name: Wikipedia Page Creation Feed + endpoint: + path: /wikipedia/ + method: GET + data_selector: '' + params: {} +- name: Entity Resolution + endpoint: + path: /entity-resolution/ + method: GET + data_selector: '' + params: {} +- name: Webhook Data Enrichment + endpoint: + path: /webhook/ + method: GET + data_selector: '' + params: {} +- name: Ethereum Tag Propagation + endpoint: + path: /ethereum/ + method: GET + data_selector: '' + params: {} +- name: Basic File Ingest + endpoint: + path: /ingest/ + method: GET + data_selector: '' + params: {} +- name: Harry Potter + endpoint: + path: /hpotter/ + method: GET + data_selector: '' + params: {} +- name: Apache Log Analytics + endpoint: + path: /apache_log/ + method: GET + data_selector: '' + params: {} +- name: Certstream Firehose + endpoint: + path: /certstream-firehose/ + method: GET + data_selector: '' + params: {} +- name: Quine Logs Recipe + endpoint: + path: /quine-logs-recipe/ + method: GET + data_selector: '' + params: {} +- name: Approximating Pi + endpoint: + path: /pi/ + method: GET + data_selector: '' + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: wikipedia-page-create + endpoint: + path: /api/v1/ingest/wikipedia-page-create + method: POST + data_selector: data + params: {} +- name: cypher-query + endpoint: + path: /api/v1/query/cypher + method: POST + data_selector: results + params: {} +- name: standing-query + endpoint: + path: /api/v1/query/standing/wikipedia-new-page-node + method: POST + data_selector: data + params: {} +- name: pause-ingest + endpoint: + path: /api/v1/ingest/wikipedia-page-create/pause + method: PUT + data_selector: status + params: {} +- name: shutdown + endpoint: + path: /api/v1/admin/shutdown + method: POST + data_selector: status + params: {} +- name: admin_build_info + endpoint: + path: /api/v1/admin/build-info + method: GET + data_selector: . +- name: admin_shutdown + endpoint: + path: /api/v1/admin/shutdown + method: POST + data_selector: . +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: wikipedia-revision-create + endpoint: + path: /api/v1/ingest/wikipedia-revision-create + method: POST + data_selector: format + params: {} +- name: pause + endpoint: + path: /api/v1/ingest/wikipedia-revision-create/pause + method: PUT + data_selector: '' + params: {} +- name: wikipedia-revision-create + endpoint: + path: /api/v1/ingest/wikipedia-revision-create + method: POST + data_selector: settings.format.query + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: standing_query + endpoint: + path: /api/v1/query/standing/not-a-bot + method: POST + data_selector: meta + params: {} +- name: ingest_stream + endpoint: + path: /api/v1/ingest/{name} + method: POST + data_selector: ingestStreams + params: {} +- name: standing_query + endpoint: + path: /api/v1/standing-query + method: POST + data_selector: standingQueries + params: {} +- name: statusQuery + endpoint: + path: /api/v1/ingest/INGEST-1/pause + method: PUT + data_selector: status + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: KafkaIngest + endpoint: + path: /reference/rest-api/#/paths/api-v1-ingest-name/post + method: POST + data_selector: ingestStreams + params: {} +- name: KinesisIngest + endpoint: + path: /reference/rest-api/#/paths/api-v1-ingest-name/post + method: POST + data_selector: ingestStreams + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: ingest_streams + endpoint: + path: /api/v1/ingest/{name} + method: POST + data_selector: ingestStreams + params: {} +- name: list_running_ingest_streams + endpoint: + path: /api/v1/ingest + method: GET + data_selector: ingestStreams + params: {} +- name: lookup_running_ingest_stream + endpoint: + path: /api/v1/ingest/{name} + method: GET + data_selector: ingestStream + params: {} +- name: pause_ingest_stream + endpoint: + path: /api/v1/ingest/{name}/pause + method: PUT + data_selector: result + params: {} +- name: unpause_ingest_stream + endpoint: + path: /api/v1/ingest/{name}/start + method: PUT + data_selector: result + params: {} +- name: cancel_running_ingest_stream + endpoint: + path: /api/v1/ingest/{name} + method: DELETE + data_selector: result + params: {} +- name: Random Walk + endpoint: + path: /random-walk/ + method: GET + data_selector: description + params: {} +- name: nodes + endpoint: + path: /nodes + method: POST + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: telemetry_event + endpoint: + path: /telemetry/events + method: POST + data_selector: event + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: INGEST-1 + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: type + params: {} +- name: STANDING-1 + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: POST + data_selector: pattern + params: {} +- name: standing_query + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: POST + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: stolen-data + outputs: + type: CypherQuery + query: MATCH (p1)-[:EVENT]->(e1)-[:EVENT]->(f)<-[:EVENT]-(e2)<-[:EVENT]-(p2), + (f)<-[:EVENT]-(e3)<-[:EVENT]-(p2)-[:EVENT]->(e4)-[:EVENT]->(ip) WHERE id(f) + = $that.data.fileId AND e1.type = "WRITE" AND e2.type = "READ" AND e3.type = + "DELETE" AND e4.type = "SEND" AND e1.time < e2.time AND e2.time < e3.time AND + e2.time < e4.time CREATE (e1)-[:NEXT]->(e2)-[:NEXT]->(e4)-[:NEXT]->(e3) WITH + e1, e2, e3, e4, p1, p2, f, ip, "http://localhost:8080/#MATCH" + text.urlencode(" + (e1),(e2),(e3),(e4),(p1),(p2),(f),(ip) WHERE id(p1)='" + strId(p1) + "' AND + id(e1)='" + strId(e1) + "' AND id(f)='" + strId(f) + "' AND id(e2)='" + strId(e2) + + "' AND id(p2)='" + strId(p2) + "' AND id(e3)='" + strId(e3) + "' AND id(e4)='" + + strId(e4) + "' AND id(ip)='" + strId(ip) + "' RETURN e1, e2, e3, e4, p1, p2, + f, ip") as URL RETURN URL +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: INGEST-1 + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: type + params: {} +- name: INGEST-2 + endpoint: + path: /api/v1/ingest/INGEST-2 + method: POST + data_selector: type + params: {} +- name: STANDING-1 + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: POST + data_selector: pattern + params: {} +- name: cdn_data + endpoint: + path: /cdn-data + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: missEvents + endpoint: + path: /missEvents + method: GET + data_selector: records + params: {} +- name: event + endpoint: + path: /event + method: GET + data_selector: records + params: {} +- name: server + endpoint: + path: /server + method: GET + data_selector: records + params: {} +- name: asset + endpoint: + path: /asset + method: GET + data_selector: records + params: {} +- name: clientGeo + endpoint: + path: /clientGeo + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: cdn_data + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: data + params: {} +- name: standing_query + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: POST + data_selector: pattern + params: {} +- name: log-new-certs + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: GET + data_selector: n.data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: entity + endpoint: + path: /entity-resolution + method: POST + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: propagate-tainted + outputs: + query: MATCH (tainted), (otherAccount) WHERE tainted <> otherAccount AND id(tainted) + = $that.data.accountId AND id(otherAccount) = $that.data.otherAccountId WITH + *, coll.min([($that.data.oldTaintedLevel + 1), otherAccount.tainted]) AS newTaintedLevel + SET otherAccount.tainted = newTaintedLevel RETURN strId(tainted) AS taintedSource, + strId(otherAccount) AS newlyTainted, newTaintedLevel + type: CypherQuery + andThen: + type: PrintToStandardOut +- name: INGEST-1 + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: format + params: {} +- name: INGEST-2 + endpoint: + path: /api/v1/ingest/INGEST-2 + method: POST + data_selector: format + params: {} +- name: FileIngest + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: type + params: {} +- name: APT Detection + endpoint: + path: /apt-detection + method: GET +- name: CDN Cache Efficiency + endpoint: + path: /cdn + method: GET +- name: Password Spraying + endpoint: + path: /password-spraying + method: GET +- name: Temporal Locality + endpoint: + path: /duration + method: GET +- name: Monitor an MMO + endpoint: + path: /planetside-2 + method: GET +- name: IMDB Movie Data + endpoint: + path: /movieData + method: GET +- name: Wikipedia Page Creation Feed + endpoint: + path: /wikipedia + method: GET +- name: Entity Resolution + endpoint: + path: /entity-resolution + method: GET +- name: Webhook Data Enrichment + endpoint: + path: /webhook + method: GET +- name: Ethereum Tag Propagation + endpoint: + path: /ethereum + method: GET +- name: Basic File Ingest + endpoint: + path: /ingest + method: GET +- name: Harry Potter + endpoint: + path: /hpotter + method: GET +- name: Apache Log Analytics + endpoint: + path: /apache_log + method: GET +- name: Certstream Firehose + endpoint: + path: /certstream-firehose + method: GET +- name: Quine Logs Recipe + endpoint: + path: /quine-logs-recipe + method: GET +- name: Approximating Pi + endpoint: + path: /pi + method: GET +- name: movie + endpoint: + path: $movie_file + method: POST + data_selector: records +- name: rating + endpoint: + path: $rating_file + method: POST + data_selector: records +- name: wikipedia-page-create + endpoint: + path: /api/v1/ingest/wikipedia-page-create + method: POST + data_selector: '' + params: {} +- name: standing-query-wikipedia-new-page-node + endpoint: + path: /api/v1/query/standing/wikipedia-new-page-node + method: POST + data_selector: '' + params: {} +- name: pause-wikipedia-page-create + endpoint: + path: /api/v1/ingest/wikipedia-page-create/pause + method: PUT + data_selector: '' + params: {} +- name: shutdown + endpoint: + path: /api/v1/admin/shutdown + method: POST + data_selector: '' + params: {} +- name: ingest_stream + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: null + params: {} +- name: standing_query_1 + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: POST + data_selector: null + params: {} +- name: standing_query_2 + endpoint: + path: /api/v1/query/standing/STANDING-2 + method: POST + data_selector: null + params: {} +- name: build_info + endpoint: + path: /api/v1/admin/build-info + method: GET + data_selector: . +- name: shutdown + endpoint: + path: /api/v1/admin/shutdown + method: POST + data_selector: . +- name: wikipedia-revision-create + endpoint: + path: /api/v1/ingest/wikipedia-revision-create + method: POST + data_selector: '' + params: {} +- name: pause + endpoint: + path: /api/v1/ingest/wikipedia-revision-create/pause + method: PUT + data_selector: '' + params: {} +- name: wikipedia-revision-create + endpoint: + path: /api/v1/ingest/wikipedia-revision-create + method: POST + data_selector: query + params: + type: ServerSentEventsIngest +- name: standing_query + endpoint: + path: /api/v1/query/standing/not-a-bot + method: POST + data_selector: meta + params: {} +- name: '[Node] Previous Attempt' + endpoint: + path: '' + method: MATCH + data_selector: attempt + params: {} +- name: '[Node] Next Attempt' + endpoint: + path: '' + method: MATCH + data_selector: attempt + params: {} +- name: '[Node] Show Client and ASN' + endpoint: + path: '' + method: MATCH + data_selector: n,m,o + params: {} +- name: '[Node] Targeted Assets' + endpoint: + path: '' + method: MATCH + data_selector: asset + params: {} +- name: '[Text] Authentication attempts in chronological order' + endpoint: + path: '' + method: MATCH + data_selector: m.timestamp,m.eventId,n.ipAddress,m.zone,m.entityId,m.outcomeResult + params: {} +- name: '[Node] Failed Password Authentication Attempts' + endpoint: + path: '' + method: MATCH + data_selector: attempt + params: {} +- name: '[Node] Targeted Assets' + endpoint: + path: '' + method: MATCH + data_selector: asset + params: {} +- name: '[Text] Authentication attempts in chronological order' + endpoint: + path: '' + method: MATCH + data_selector: m.timestamp,m.eventId,o.ipAddress,m.zone,m.entityId,m.outcomeResult + params: {} +- name: '[Node] Attempts Timeline' + endpoint: + path: '' + method: MATCH + data_selector: m + params: {} +- name: attempt + endpoint: + path: /attempts + method: GET + data_selector: attempts +- name: user + endpoint: + path: /users + method: GET + data_selector: users +- name: client + endpoint: + path: /clients + method: GET + data_selector: clients +- name: asn + endpoint: + path: /asns + method: GET + data_selector: asns +- name: asset + endpoint: + path: /assets + method: GET + data_selector: assets +- name: time + endpoint: + path: /times + method: GET + data_selector: times +- name: standing_query + endpoint: + path: /standing-queries + method: GET +- name: attempts + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: attempts + params: {} +- name: Cypher + endpoint: + path: /query/cypher + method: POST +- name: Gremlin + endpoint: + path: /query/gremlin + method: POST +- name: Quine Log Reader + endpoint: + path: /api/v1/admin/readiness + method: GET +- name: Shutdown Quine + endpoint: + path: /api/v1/admin/shutdown + method: POST +- name: stream-feed + endpoint: + path: /ingest-streams + method: POST + data_selector: ingestStreams + params: {} +- name: quine-output + endpoint: + path: /standing-queries + method: POST + data_selector: standingQueries + params: {} +- name: INGEST-1 + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: type + params: {} +- name: email_ingest + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: data + params: {} +- name: number + endpoint: + path: /webhook + method: POST + data_selector: data + params: {} +- name: ingest_streams + endpoint: + path: /api/v1/ingest/{name} + method: POST + data_selector: ingestStreams + params: {} +- name: list_running_streams + endpoint: + path: /api/v1/ingest + method: GET + data_selector: streams + params: {} +- name: lookup_running_stream + endpoint: + path: /api/v1/ingest/{name} + method: GET + data_selector: stream + params: {} +- name: pause_stream + endpoint: + path: /api/v1/ingest/{name}/pause + method: PUT + data_selector: status + params: {} +- name: unpause_stream + endpoint: + path: /api/v1/ingest/{name}/start + method: PUT + data_selector: status + params: {} +- name: cancel_stream + endpoint: + path: /api/v1/ingest/{name} + method: DELETE + data_selector: status + params: {} +- name: Random Walk + endpoint: + path: /random-walk + method: GET + data_selector: algorithm +- name: persistence_config + endpoint: + path: /configuration/persistence + method: POST + data_selector: persistence + params: + journal-enabled: true + snapshot-schedule: on-node-sleep + snapshot-singleton: false + standing-query-schedule: on-node-sleep +- name: rocksdb_config + endpoint: + path: /configuration/rocksdb + method: POST + data_selector: rocksdb + params: + type: rocks-db +- name: mapdb_config + endpoint: + path: /configuration/mapdb + method: POST + data_selector: mapdb + params: + type: map-db +- name: cassandra_config + endpoint: + path: /configuration/cassandra + method: POST + data_selector: cassandra + params: + type: cassandra +- name: ethereum_tag_propagation + endpoint: + path: /recipes/ethereum/ + method: GET + data_selector: records + params: {} +- name: ingest_stream + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: type + params: {} +- name: standing_query + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: POST + data_selector: pattern + params: {} +- name: standing_query + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: GET + data_selector: data + params: {} +- name: stolen-data + outputs: + type: CypherQuery + query: MATCH (p1)-[:EVENT]->(e1)-[:EVENT]->(f)<-[:EVENT]-(e2)<-[:EVENT]-(p2), + (f)<-[:EVENT]-(e3)<-[:EVENT]-(p2)-[:EVENT]->(e4)-[:EVENT]->(ip) WHERE id(f) + = $that.data.fileId AND e1.type = "WRITE" AND e2.type = "READ" AND e3.type = + "DELETE" AND e4.type = "SEND" AND e1.time < e2.time AND e2.time < e3.time AND + e2.time < e4.time CREATE (e1)-[:NEXT]->(e2)-[:NEXT]->(e4)-[:NEXT]->(e3) WITH + e1, e2, e3, e4, p1, p2, f, ip, "http://localhost:8080/#MATCH" + text.urlencode(" + (e1),(e2),(e3),(e4),(p1),(p2),(f),(ip) WHERE id(p1)='"+strId(p1)+"' AND id(e1)='"+strId(e1)+"' + AND id(f)='"+strId(f)+"' AND id(e2)='"+strId(e2)+"' AND id(p2)='"+strId(p2)+"' + AND id(e3)='"+strId(e3)+"' AND id(e4)='"+strId(e4)+"' AND id(ip)='"+strId(ip)+"' + RETURN e1, e2, e3, e4, p1, p2, f, ip") as URL RETURN URL +- name: INGEST-1 + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: data + params: {} +- name: INGEST-2 + endpoint: + path: /api/v1/ingest/INGEST-2 + method: POST + data_selector: data + params: {} +- name: STANDING-1 + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: POST + data_selector: data + params: {} +- name: cdn_data_50k + endpoint: + path: /cdn_data_50k.json + method: GET + data_selector: cdn_data +- name: missEvents + endpoint: + path: /missEvents + method: MATCH + data_selector: missEvents +- name: event + endpoint: + path: /event + method: MATCH + data_selector: event +- name: asset + endpoint: + path: /asset + method: MATCH + data_selector: asset +- name: server + endpoint: + path: /server + method: MATCH + data_selector: server +- name: clientGeo + endpoint: + path: /clientGeo + method: MATCH + data_selector: clientGeo +- name: origin + endpoint: + path: /origin + method: MATCH + data_selector: origin +- name: pop + endpoint: + path: /pop + method: MATCH + data_selector: pop +- name: asn + endpoint: + path: /asn + method: MATCH + data_selector: asn +- name: cdn_data + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: type + params: + path: cdn_data_50k.json + format: + type: CypherJson + query: 'MATCH (event), (client), (asset), (asn), (server), (pop), (origin), + (clientGeo) WHERE $that.cache_status IS NOT NULL AND id(event) = idFrom(''event'', + $that.timestamp, $that.request_id) AND id(client) = idFrom(''client'', $that.client_ip, + $that.business_unit) AND id(asset) = idFrom(''asset'', $that.path) AND id(asn) + = idFrom(''asn'', toString($that.client_asn)) AND id(server) = idFrom(''server'', + $that.pop, $that.server_id) AND id(pop) = idFrom(''pop'', $that.pop) AND + id(origin) = idFrom(''origin'', $that.backend_ip) AND id(clientGeo) = idFrom(''clientGeo'', + $that.client_geo_country) WITH *, text.regexFirstMatch($that.cache_status, + ''(HIT|MISS(?!.*HIT)).*'') AS hmp WHERE hmp[1] IS NOT NULL CALL incrementCounter(client, + "count",1) YIELD count AS clientCount CALL incrementCounter(client, toLower(hmp[1]),1) + YIELD count AS clientHitMissCount CALL incrementCounter(asset, "count",1) + YIELD count AS assetCount CALL incrementCounter(asset, toLower(hmp[1]),1) + YIELD count AS assetHitMissCount CALL incrementCounter(asn, "count",1) YIELD + count AS asnCount CALL incrementCounter(asn, toLower(hmp[1]),1) YIELD count + AS asnHitMissCount CALL incrementCounter(server, "count",1) YIELD count + AS serverCount CALL incrementCounter(server, toLower(hmp[1]),1) YIELD count + AS serverHitMissCount CALL incrementCounter(pop, "count",1) YIELD count + AS popCount CALL incrementCounter(pop, toLower(hmp[1]),1) YIELD count AS + popHitMissCount CALL incrementCounter(clientGeo, "count",1) YIELD count + AS clientGeoCount CALL incrementCounter(clientGeo, toLower(hmp[1]),1) YIELD + count AS clientGeoHitMissCount CALL incrementCounter(origin, "count",1) + YIELD count AS originGeoCount CALL incrementCounter(origin, toLower(hmp[1]),1) + YIELD count AS originGeoHitMissCount SET event = $that, event.cache_class + = hmp[1], event: event SET origin.backend_ip = $that.backend_ip, origin: + origin SET client.client_geo_country = $that.client_geo_country, client.client_ip + = $that.client_ip, client.user_agent = $that.user_agent, client: client + WITH *, text.regexFirstMatch($that.user_agent, ''\\((.*?)\\)(\\s|$)|(.*?)\\/(.*?)(\\s|$)'') + AS cb SET client.browser = cb[3], client.browserVer = cb[4], client.first_seen + = coll.min([$that.timestamp, coalesce(client.first_seen, $that.timestamp)]), + client.last_seen = coll.max([$that.timestamp, coalesce(client.last_seen, + $that.timestamp)]) SET clientGeo.client_geo_country = $that.client_geo_country, + clientGeo: clientGeo WITH *, text.regexFirstMatch($that.path, ''^(.+\/)([^\/]+)$'') + AS ap SET asset.path = ap[1], asset.name = ap[2], asset.full_path = $that.path, + asset.if_modified_since = coll.max([$that.timestamp, coalesce(asset.if_modified_since, + $that.timestamp)]), asset: asset SET asn.asn_id = toString($that.client_asn), + asn: asn SET server.server_id = $that.server_id, server.server_ip = $that.server_ip, + server.cache_shield = $that.cache_shield, server.environment = $that.environment, + server.host = $that.host, server.role = $that.role, server.pop = $that.pop, + server: server SET pop.source = $that.pop, pop.environment = $that.environment, + pop: pop CREATE (asset)<-[:REQUESTED]-(event)-[:REQUESTED_OVER]->(asn)-[:IN_CLIENT_GEO]->(clientGeo),(origin)<-[:FROM]-(pop)<-[:WITHIN]-(server)<-[:TARGETED]-(event)<-[:ORIGINATED]-(client)' +- name: standing_query + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: POST + data_selector: pattern + params: + type: Cypher + query: MATCH (server1:server)<-[:TARGETED]-(event1 {cache_class:"MISS"})-[:REQUESTED]->(asset)<-[:REQUESTED]-(event2 + {cache_class:"MISS"})-[:TARGETED]->(server2:server) RETURN DISTINCT id(event1) + AS event1 +- name: log-new-certs + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: MATCH + data_selector: n.data + params: {} +- name: resolved + endpoint: + path: public-record-addresses-2021.ndjson + method: FileIngest + data_selector: records +- name: record + endpoint: + path: /public-record-addresses-2021.ndjson + method: GET + data_selector: records + params: {} +- name: block + nodeAppearances: + - predicate: + dbLabel: block + propertyKeys: [] +- name: transaction + nodeAppearances: + - predicate: + dbLabel: transaction + propertyKeys: [] +- name: account + nodeAppearances: + - predicate: + dbLabel: account + propertyKeys: [] +- name: ingest_1 + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: format + params: {} +- name: ingest_2 + endpoint: + path: /api/v1/ingest/INGEST-2 + method: POST + data_selector: format + params: {} +- name: ingest_stream + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: '' + params: {} +- name: movie + endpoint: + path: $movie_file + method: POST + data_selector: records + params: {} +- name: person + endpoint: + path: $movie_file + method: POST + data_selector: records + params: {} +- name: role + endpoint: + path: $movie_file + method: POST + data_selector: records + params: {} +- name: directed + endpoint: + path: $movie_file + method: POST + data_selector: records + params: {} +- name: rating + endpoint: + path: $rating_file + method: POST + data_selector: records + params: {} +- name: killfeed + endpoint: + path: /streaming + method: GET +- name: ingest_stream + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: type + params: {} +- name: standing_query_1 + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: POST + data_selector: pattern + params: {} +- name: standing_query_2 + endpoint: + path: /api/v1/query/standing/STANDING-2 + method: POST + data_selector: pattern + params: {} +- name: attempt + endpoint: + path: attempts.json + method: FileIngest + data_selector: records +- name: '[Node] Previous Attempt' + endpoint: + path: /MATCH (n)<-[:NEXT]-(attempt) RETURN attempt + method: GET + data_selector: attempt + params: {} +- name: '[Node] Next Attempt' + endpoint: + path: /MATCH (n)-[:NEXT]->(attempt) RETURN attempt + method: GET + data_selector: attempt + params: {} +- name: '[Node] Show Client and ASN' + endpoint: + path: /MATCH (n)-[:USING]->(m) MATCH (n)-[:OVER]->(o) RETURN DISTINCT n,m,o + method: GET + data_selector: n,m,o + params: {} +- name: '[Node] Targeted Assets' + endpoint: + path: /MATCH (n)<-[:USING]-(attempt)-[:TARGETED]->(asset:asset) RETURN asset + method: GET + data_selector: asset + params: {} +- name: '[Text] Authentication attempts in chronological order' + endpoint: + path: /MATCH (n)<-[:USING]->(m) RETURN m.timestamp AS Timestamp, m.eventId AS + Attempt, n.ipAddress AS Source, m.zone AS Zone, m.entityId AS Entity, m.outcomeResult + AS Outcome ORDER BY m.timestamp + method: GET + data_selector: m.timestamp, m.eventId, n.ipAddress, m.zone, m.entityId, m.outcomeResult + params: {} +- name: '[Node] Failed Password Authentication Attempts' + endpoint: + path: /MATCH (n)-[:ORIGINATED]->(attempt {outcomeResult:"FAILURE"}) RETURN attempt + method: GET + data_selector: attempt + params: {} +- name: '[Node] Targeted Assets' + endpoint: + path: /MATCH (n)-[:ORIGINATED]->(attempt)-[:TARGETED]->(asset:asset) RETURN asset + method: GET + data_selector: asset + params: {} +- name: '[Text] Authentication attempts in chronological order' + endpoint: + path: /MATCH (n)-[:ORIGINATED]->(m)-[:USING]->(o) MATCH (n)-[:ORIGINATED]->(m) + RETURN m.timestamp AS Timestamp, m.eventId AS Attempt, o.ipAddress AS Source, + m.zone AS Zone, m.entityId AS Entity, m.outcomeResult AS Outcome ORDER BY m.timestamp + method: GET + data_selector: m.timestamp, m.eventId, o.ipAddress, m.zone, m.entityId, m.outcomeResult + params: {} +- name: '[Node] Attempts Timeline' + endpoint: + path: /MATCH (n)-[:ORIGINATED]->(event)-[:NEXT]->(m) RETURN DISTINCT m + method: GET + data_selector: m + params: {} +- name: attempt + endpoint: + path: /attempts + method: GET + data_selector: attempts + params: {} +- name: user + endpoint: + path: /users + method: GET + data_selector: users + params: {} +- name: client + endpoint: + path: /clients + method: GET + data_selector: clients + params: {} +- name: asn + endpoint: + path: /asn + method: GET + data_selector: asn + params: {} +- name: asset + endpoint: + path: /assets + method: GET + data_selector: assets + params: {} +- name: time + endpoint: + path: /time + method: GET + data_selector: time + params: {} +- name: ingest_stream + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: null + params: {} +- name: standing_query + endpoint: + path: /api/v1/query/standing/STANDING-1 + method: POST + data_selector: null + params: {} +- name: INGEST-1 + endpoint: + path: /api/v1/ingest/INGEST-1 + method: POST + data_selector: type + params: {} +- name: Number + endpoint: + path: /api/v1/query/cypher + method: POST + data_selector: data + params: {} +notes: +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Quine is a stateful streaming graph interpreter. +- Quine eliminates complex challenges of managing data ordering and scalability. +- You will need cURL and jq installed in your environment to use the tutorial commands. +- Uses ServerSentEventsIngest type for streaming. +- The ingest stream configuration is based on a Cypher query. +- Standing queries are unique to Quine and monitor streams for specified patterns. +- The Exploration UI is fully supported in Chrome. Other browsers are likely to work + for most cases, but may experience some unusual behavior. +- Quine ingest streams are backpressured +- Quine is designed to solve for both read-heavy and write-heavy workloads. +- Quine saves the history of changes to each node. +- Support for Gremlin in Quine is much less complete than for Cypher. +- Quine can shape, filter, analyze, or take action based on patterns matched in the + event stream. +- Quine ingest is backpressured which makes it very stable in a high-volume event + stream. +- Quine uses a novel caching strategy that we call 'semantic caching'. +- The graph operates in memory, but saves its data to disk. +- RocksDB is the default option for data storage locally. +- Recipes are NOT useful for production workloads. Once you are ready to put the recipe + into production, you need to convert it to API calls because API calls allow for + naming of ingest streams and standing queries. +- Starting the Quine application jar without providing a configuration file, Quine + creates a RocksDB-based persistent data store in the local directory. +- Quine supports a dialect of OpenCypher v9. +- Participation in our telemetry is anonymous and optional (you may easily opt out). +- The recipe reads log entries from the sample data files using an ingest stream to + manifest a graph in Quine. +- The recipe is completely self contained. +- 'Warning: Once you submit the query to begin processing, Quine will immediately + begin to produce new approximations for pi.' +- Graph is ready +- 'Running Recipe: APT Detection' +- Using 5 node appearances +- Using 14 quick queries +- Sample data file for this recipe is in the file 'cdn_data_50k.json' which can be + accessed at https://that.re/cdn-data +- Time between consecutive cache MISSes between 5-45 minutes expressed in ISO 8601 + duration format +- Feel free to alter the range to meet your requirements +- A standing query is configured to look for 10 consecutive cache MISS events involving + the same server and asset pair within a defined duration. +- Download the sample data to the same directory where you will run Quine. +- Standing queries incrementally MATCH on the emergence of :poBox and :postcode edges +- The Ethereum diamond logo is property of the Ethereum Foundation, used under the + terms of the Creative Commons Attribution 3.0 License. +- Quine is a stateful streaming graph interpreter that consumes high volume data streams. +- Before running this recipe beyond a few seconds, you'll need to apply for a service + ID from Daybreak Games in order to access their API. +- The service ID 's:example' is available for casual use--it is throttled to 10 requests + per minute per client IP address. +- Verify that Quine is operating using the admin/build-info API endpoint. +- You can connect to the Quine exploration UI by entering http://127.0.0.1:8080 into + your browser. +- Can verify the stream is active by sending GET to /api/v1/ingest +- A standing query is a feature unique to Quine. +- Standing queries monitor streams for specified patterns. +- Remember that for recipes, the name of the ingest stream is assigned when the recipe + is run. +- The Exploration UI is fully supported in Chrome. Other browsers are likely to work + for most cases, but may experience some unusual behavior. In particular, Safari + occasionally does not update or garbles text values returned in the interactive + documentation. +- Uses streaming data sources like Kafka, Kinesis, or POSIX named pipes. +- The recipe reads Quine log events from a file using ingest streams to manifest a + graph in Quine. +- Running the recipe requires passing the filename at runtime. +- Keep in mind that setting the maximum heap size is not the same as limiting the + total memory used by the application. +- This recipe looks for emails sent or received by cto@company.com within a 4-6 minute + window as a means of highlighting a technique for matching on temporal locality + of nodes. +- This recipe will stream numbers into the graph and stream them out to an HTTP endpoint, + which will then calculate the factors of those numbers, and create relationships + between the numbers and their factors. +- This recipe can serve as a boilerplate for other streaming recipes using the Wikipedia + EventStreams source. +- Data is durably stored, allowing for seamless operation of the graph without time-windows + for matching up data in memory. +- Changes to properties and edges are saved to disk as deltas in an append-only log + using event-sourcing. +- 'Recipes are NOT useful for production workloads. Once you are ready to put the + recipe into production, you need to convert it to API calls because: API calls allow + for naming of ingest streams and standing queries.' +- A standing query is configured to detect nodes that have a type of log and then + create relationships between the nodes and their verbs. +- Incrementally approximates pi using Leibniz' formula +- Once you submit the '[No Output] Run this query to begin processing.' query, Quine + will immediately begin to produce new approximations for pi. +- Reproduces the behavior of the certstream website by connecting to the certstream + firehose via SSL-encrypted websocket and printing to standard out each time a new + certificate is detected. +- Entities will always be resolved for downstream. +- This is the entity resolution problem for addresses, which this recipe will demo. +- The ingest query can ingest data from a file or any other streaming source. +- Before running this Recipe, download the dataset using curl https://quine.io/tutorials/harry_potter_data.json + -o harry_potter_data.json +- Characters can be renamed, but this is rare because it costs the player $25. +- You'll need to apply for a service ID from Daybreak Games in order to access their + API. +- 'Ensure that the attemps.json file is in the same directory as Quine and issue the + following command to begin: java -jar {{ quine }} -r password_spraying.yml' +- Ingest Quine Log Lines +- The regular expression parses each log file into parts. +- Quick Queries are available by right clicking on a node. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- Error suggesting that you run with the option to use MapDB instead. +- Missing required parameter in-file; use --recipe-value in-file= +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: http://localhost:8080 + headers: + Accept: application/json +source_metadata: null diff --git a/raiinmaker_network/raiinmaker-network-docs.md b/raiinmaker_network/raiinmaker-network-docs.md new file mode 100644 index 00000000..9131007e --- /dev/null +++ b/raiinmaker_network/raiinmaker-network-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Raiinmaker data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def raiinmaker_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://raiin.network/v", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + block,,contract,,transactions + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='raiinmaker_migration_pipeline', + destination='duckdb', + dataset_name='raiinmaker_migration_data', + ) + # Load the data + load_info = pipeline.run(raiinmaker_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from raiinmaker_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Block: Interact with blockchain-related data. +- Contracts: Manage smart contracts on the platform. +- Transactions: Handle various transaction types and their details. +- Validators: Information related to validators in the network. +- User Actions: Track user actions and reputation. + +You will then debug the Raiinmaker pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Raiinmaker support. + ```shell + dlt init dlthub:raiinmaker_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Raiinmaker API, as specified in @raiinmaker_migration-docs.yaml + Start with endpoints block and and skip incremental loading for now. + Place the code in raiinmaker_migration_pipeline.py and name the pipeline raiinmaker_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python raiinmaker_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Raiinmaker uses OAuth2 with a refresh token system, which requires the setup of a connected app within the Raiinmaker ecosystem. Users need to ensure their credentials are set properly to authenticate successfully. + + To get the appropriate API keys, please visit the original source at https://www.raiin.network/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python raiinmaker_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline raiinmaker_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset raiinmaker_migration_data + The duckdb destination used duckdb:/raiinmaker_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline raiinmaker_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("raiinmaker_migration_pipeline").dataset() + # get loc table as Pandas frame + data.loc.df().head() + ``` + +## Running into errors? + +When using Raiinmaker's services, be aware of potential issues such as REQUEST_LIMIT_EXCEEDED, which indicates that API calls may need to be throttled. Additionally, errors like TOKEN_EXPIRED and 401 Unauthorized suggest the need to refresh tokens or check OAuth scopes. Compliance with GDPR and CCPA regulations is also necessary when managing data. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/raiinmaker_network/raiinmaker-network-docs.yaml b/raiinmaker_network/raiinmaker-network-docs.yaml new file mode 100644 index 00000000..e0725865 --- /dev/null +++ b/raiinmaker_network/raiinmaker-network-docs.yaml @@ -0,0 +1,225 @@ +resources: +- name: user_action + endpoint: + path: /services/data/vXX.X/sobjects/UserAction + method: GET + data_selector: records + params: + incremental: updated_at +- name: enterprise_application + endpoint: + path: /services/data/vXX.X/sobjects/EnterpriseApplication + method: GET + data_selector: records + params: {} +- name: AI Reputation Score + endpoint: + path: /api/reputation + method: GET + data_selector: score + params: {} +- name: validators + endpoint: + path: /validators + method: GET + data_selector: records +- name: validator_rewards + endpoint: + path: /validator/rewards + method: GET + data_selector: records +- name: transaction + endpoint: + path: /transaction + method: POST + data_selector: response + params: {} +- name: transaction_type + endpoint: + path: /transactionType + method: POST + data_selector: response + params: {} +- name: transaction_types + endpoint: + path: /transactionTypes + method: POST + data_selector: response + params: {} +- name: create_transaction + endpoint: + path: /transactions + method: POST + data_selector: response + params: {} +- name: smart_contract + endpoint: + path: /contract + method: POST + data_selector: response + params: {} +- name: transaction + endpoint: + path: /transaction + method: POST + data_selector: response + params: {} +- name: transaction_type + endpoint: + path: /transactionType + method: POST + data_selector: response + params: {} +- name: transaction + endpoint: + path: /transaction + method: POST + data_selector: response + params: {} +- name: transaction_types + endpoint: + path: /transactionTypes + method: POST + data_selector: response.success +- name: create_transaction + endpoint: + path: /transactions + method: POST + data_selector: response.transaction_id +- name: blocks + endpoint: + path: /block + method: GET + data_selector: response + params: {} +- name: transaction + endpoint: + path: /transaction + method: POST + data_selector: response + params: {} +- name: transactionType + endpoint: + path: /transactionType + method: POST + data_selector: response + params: {} +- name: smart_contract + endpoint: + path: /contracts + method: POST + data_selector: response + params: {} +- name: transaction + endpoint: + path: /transactions + method: POST + data_selector: response + params: {} +- name: blocks + endpoint: + path: /block + method: GET + data_selector: response + params: {} +- name: user_action + endpoint: + path: /api/user_action + method: POST + data_selector: data + params: {} +- name: identity_verification + endpoint: + path: /api/identity_verification + method: POST + data_selector: data + params: {} +- name: user_action + endpoint: + path: /api/v1/user_action + method: POST + data_selector: data + params: {} +- name: enterprise_application + endpoint: + path: /api/v1/enterprise_application + method: GET + data_selector: data + params: {} +notes: +- Decentralized identity management to reduce liability and protect the identity of + customers and employees. +- Privacy regulations can be honored with proof of compliance. +- Raiinmaker AI-Integrated Smart Contracts operate on a hybrid platform within the + Enterprise Application Layer (EAL) +- Raiinmaker can support EVM (Ethereum) based smart contracts +- Uses OAuth2 with refresh token — requires setup of connected app in Raiinmaker +- Some objects may return nulls in deeply nested fields +- Burning Raiin on the native Coiin Console will provide a one time boost to your + Economic Score during the current Lunar cycle, and a permanent boost to your Validator + Score. +- Raiinmaker is the ecosystem of verified human contribution to AI. +- Raiinmaker fosters human-AI collaboration via transparent, equitable, blockchain-secured + mechanisms. +- The TRAIIN Platform is Raiinmaker's flagship data validation and AI training system. +- The TRAIIN Platform is designed to create ethically sourced, high-quality datasets + for AI models. +- The Network Validation Layer (NVL) is the Raiinmaker Network’s mechanism for finalizing + and securing transactions and user actions. +- 'Each of these pools are then distributed based on a variety of different metrics, + such as the # of transactions they validated, amount of time they have had their + validator up, # of Identity factors, how much Coiin they withdrew, deposited, and + converted/burned.' +- To run your own Independent Validator, download the Raiinmaker Network Validator + installer for your desktop or mobile OS from the Validator Nodes page. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- 3rd Party validators are independent users who help to validate transactions and + ensure decentralization. +- Each of the 3rd Party validators are given part of the Coiin pool every lunar cycle + (~29 days). +- Raiinmaker Network EAL command line tool/shell (coiin) installation required. +- Raiinmaker Network EAL Platform makes use of Docker to deploy independently scalable + smart contracts. +- Raiinmaker Network EAL business chains support indexing and searching transactions + based on their transaction type. +- Uses Docker to deploy smart contracts in any programming language. +- Test locally and deploy frequently. +- Smart contracts can be invoked automatically on a scheduled time interval or based + on a crontab configuration. +- Transaction payloads are not included in the block sent for network verification. +- Smart contracts take their command and arguments as parameters when being deployed. +- A smart contract can act as a 'self oracle' in a system wherein a business chain + can pull its own data on any necessary schedule. +- Need help using Raiinmaker or Coiin.ai? +- Requires setup of decentralized identity management. +- Supports both EVM and non-EVM blockchains. +- Raiinmaker smart contracts are individually scalable using traditional devops best + practices. +- Raiinmaker can support EVM (Ethereum) based smart contracts. +- Requires setup of connected app in Raiinmaker +- Ensure to comply with GDPR and CCPA regulations +- Raiinmaker supports RESTful API integration. +- Raiin burns will also affect a user’s ability to participate in governance of the + Raiinmaker Network. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'INVALID_CREDENTIALS: Check client ID and secret.' +- 'TOKEN_EXPIRED: Refresh token required.' +- '403 FORBIDDEN: Insufficient permissions.' +- 'INVALID_REQUEST: Check the request parameters' +- 'UNAUTHORIZED: Recheck the access token' +- 'DATA_NOT_FOUND: Ensure the requested resource exists' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential + - IdentityProvider + - DecentralizedIdentity +client: + base_url: https://raiin.network + headers: + Accept: application/json +source_metadata: null diff --git a/rescue_groups/rescue-groups-docs.md b/rescue_groups/rescue-groups-docs.md new file mode 100644 index 00000000..3be64881 --- /dev/null +++ b/rescue_groups/rescue-groups-docs.md @@ -0,0 +1,158 @@ +In this guide, we'll set up a complete RescueGroups data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def rescue_groups_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://dev1-api.rescuegroups.org/v5/", + "auth": { + "type": "apikey", + "token": access_token, + }, + }, + "resources": [ + colors,,breeds,,species + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='rescue_groups_migrations_pipeline', + destination='duckdb', + dataset_name='rescue_groups_migrations_data', + ) + # Load the data + load_info = pipeline.run(rescue_groups_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from rescue_groups_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Colors: Manage and retrieve color data. +- Breeds: Access breed information. +- Species: Get details about different animal species. +- Patterns: Handle and fetch pattern-related data. +- Contacts: Manage contact information. +- Statuses: Access various status types for animals and organizations. +- Locations: Retrieve geographic location data. +- Organizations: Get details about animal rescue organizations. +- Animal Pictures: Access images of animals for adoption. +- Public Organizations: Search for public organizations and their details. + +You will then debug the RescueGroups pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with RescueGroups support. + ```shell + dlt init dlthub:rescue_groups_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for RescueGroups API, as specified in @rescue_groups_migrations-docs.yaml + Start with endpoints colors and and skip incremental loading for now. + Place the code in rescue_groups_migrations_pipeline.py and name the pipeline rescue_groups_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python rescue_groups_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The API requires an API key for access to public data, which must be included in the request headers. + + To get the appropriate API keys, please visit the original source at https://www.rescuegroups.org/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python rescue_groups_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline rescue_groups_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset rescue_groups_migrations_data + The duckdb destination used duckdb:/rescue_groups_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline rescue_groups_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("rescue_groups_migrations_pipeline").dataset() + # get olor table as Pandas frame + data.olor.df().head() + ``` + +## Running into errors? + +The maximum limit for most endpoints is 250. Make sure to handle rate limits as the API may return a '429 Too Many Requests' error if the request frequency is too high. Additionally, ensure an API key is used correctly as a token to avoid '401 Unauthorized' errors. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/rescue_groups/rescue-groups-docs.yaml b/rescue_groups/rescue-groups-docs.yaml new file mode 100644 index 00000000..3cacc5d1 --- /dev/null +++ b/rescue_groups/rescue-groups-docs.yaml @@ -0,0 +1,168 @@ +resources: +- name: animals + endpoint: + path: /public/animals/search/available + method: GET + data_selector: data + params: + limit: 10 +- name: organizations + endpoint: + path: /public/orgs/ + method: GET + data_selector: records + params: {} +- name: animal_breeds + endpoint: + path: /public/orgs/ + method: GET + data_selector: records + params: {} +- name: animal_patterns + endpoint: + path: /public/orgs/ + method: GET + data_selector: records + params: {} +- name: animal_species + endpoint: + path: /public/orgs/ + method: GET + data_selector: records + params: {} +- name: animal_statuses + endpoint: + path: /public/orgs/ + method: GET + data_selector: records + params: {} +- name: animal_colors + endpoint: + path: /public/orgs/ + method: GET + data_selector: records + params: {} +- name: animals + endpoint: + path: /public/orgs/ + method: GET + data_selector: records + params: {} +- name: orgs + endpoint: + path: /public/orgs/ + method: GET +- name: orgs_search_view + endpoint: + path: /public/orgs/search/{viewName}/ + method: GET +- name: animal_pictures + endpoint: + path: /api/v5/animal_pictures + method: GET + data_selector: pictures +- name: breeds + endpoint: + path: /api/v5/breeds + method: GET + data_selector: breeds +- name: colors + endpoint: + path: /api/v5/colors + method: GET + data_selector: colors +- name: contacts + endpoint: + path: /api/v5/contacts + method: GET + data_selector: contacts +- name: locations + endpoint: + path: /api/v5/locations + method: GET + data_selector: locations +- name: organizations + endpoint: + path: /api/v5/organizations + method: GET + data_selector: organizations +- name: patterns + endpoint: + path: /api/v5/patterns + method: GET + data_selector: patterns +- name: species + endpoint: + path: /api/v5/species + method: GET + data_selector: species +- name: statuses + endpoint: + path: /api/v5/statuses + method: GET + data_selector: statuses +- name: breeds + endpoint: + path: /breeds + method: GET + data_selector: records +- name: colors + endpoint: + path: /colors + method: GET + data_selector: records +- name: contacts + endpoint: + path: /contacts + method: GET + data_selector: records +- name: locations + endpoint: + path: /locations + method: GET + data_selector: records +- name: organizations + endpoint: + path: /organizations + method: GET + data_selector: records +- name: patterns + endpoint: + path: /patterns + method: GET + data_selector: records +- name: species + endpoint: + path: /species + method: GET + data_selector: records +- name: statuses + endpoint: + path: /statuses + method: GET + data_selector: records +notes: +- The maximum limit for most endpoints is 250. +- The API requires an API key to access public data. +errors: +- '429 Too Many Requests: Fix your application to reduce the number of requests to + within the API''s rate limit.' +- '401 Unauthorized: You may have provided an API key when a token was required.' +- '429 Too Many Requests: We''ve received too many requests from your system. Please + fix your application to reduce the number of requests to within the API''s rate + limit.' +- '400: Invalid field' +- '500: Internal server error' +auth_info: + mentioned_objects: [] +client: + base_url: https://dev1-api.rescuegroups.org/v5 + auth: + type: apikey + headers: + Authorization: your_api_key + paginator: + type: page + page_size_param: limit + default_page_size: 25 +source_metadata: null diff --git a/rnoaa_ghcnd_stations/rnoaa-ghcnd-stations-docs.md b/rnoaa_ghcnd_stations/rnoaa-ghcnd-stations-docs.md new file mode 100644 index 00000000..79e42e34 --- /dev/null +++ b/rnoaa_ghcnd_stations/rnoaa-ghcnd-stations-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete NOAA NCDC data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def noaa_ncdc_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://hb.opencpu.org/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + get,,lcd,,gsoy + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='noaa_ncdc_migration_pipeline', + destination='duckdb', + dataset_name='noaa_ncdc_migration_data', + ) + # Load the data + load_info = pipeline.run(noaa_ncdc_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from noaa_ncdc_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- General: General purpose endpoints for accessing data. +- Data Retrieval: Endpoints specifically focused on retrieving climate and weather data. +- Upload/Download: Endpoints for uploading or downloading datasets. + +You will then debug the NOAA NCDC pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with NOAA NCDC support. + ```shell + dlt init dlthub:noaa_ncdc_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for NOAA NCDC API, as specified in @noaa_ncdc_migration-docs.yaml + Start with endpoints get and and skip incremental loading for now. + Place the code in noaa_ncdc_migration_pipeline.py and name the pipeline noaa_ncdc_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python noaa_ncdc_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + You need to obtain an API key from the NOAA Climate Data Online access token generator to access data. Ensure that your token is valid and correctly passed in your requests. + + To get the appropriate API keys, please visit the original source at https://www.ncdc.noaa.gov/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python noaa_ncdc_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline noaa_ncdc_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset noaa_ncdc_migration_data + The duckdb destination used duckdb:/noaa_ncdc_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline noaa_ncdc_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("noaa_ncdc_migration_pipeline").dataset() + # get e table as Pandas frame + data.e.df().head() + ``` + +## Running into errors? + +Requests may time out if the dataset is large or if the API is overloaded. Ensure that your date range for queries is less than one year to avoid timeouts. Additionally, some APIs may return data in unexpected formats or units, requiring careful handling of the responses. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/rnoaa_ghcnd_stations/rnoaa-ghcnd-stations-docs.yaml b/rnoaa_ghcnd_stations/rnoaa-ghcnd-stations-docs.yaml new file mode 100644 index 00000000..1ba54d96 --- /dev/null +++ b/rnoaa_ghcnd_stations/rnoaa-ghcnd-stations-docs.yaml @@ -0,0 +1,1414 @@ +resources: +- name: ghcnd_stations + endpoint: + path: /ghcnd_stations + method: GET + data_selector: dataframe +- name: ncdc_locs + endpoint: + path: /ncdc_locs + method: GET + data_selector: data + params: {} +- name: ncdc_stations + endpoint: + path: /ncdc_stations + method: GET + data_selector: data + params: {} +- name: ncdc_datasets + endpoint: + path: /ncdc_datasets + method: GET + data_selector: data + params: {} +- name: ncdc_datacats + endpoint: + path: /ncdc_datacats + method: GET + data_selector: data + params: {} +- name: daily_mean_water_level + endpoint: + path: /coops_search + method: GET + data_selector: $data + params: + station_name: '9063053' + begin_date: '20150927' + end_date: '20150928' + product: daily_mean + datum: stnd + time_zone: lst +- name: ncdc_locs + endpoint: + path: /ncdc_locs + method: GET + data_selector: data + params: + locationcategoryid: CITY + sortfield: name + sortorder: desc +- name: ncdc_stations + endpoint: + path: /ncdc_stations + method: GET + data_selector: data + params: + datasetid: GHCND + locationid: FIPS:12017 + stationid: GHCND:USC00084289 +- name: ncdc + endpoint: + path: /ncdc + method: GET + data_selector: data + params: + datasetid: NORMAL_DLY + stationid: GHCND:USW00014895 + datatypeid: dly-tmax-normal + startdate: '2010-05-01' + enddate: '2010-05-10' +- name: ncdc_datasets + endpoint: + path: /ncdc_datasets + method: GET + data_selector: data +- name: ncdc_datacats + endpoint: + path: /ncdc_datacats + method: GET + data_selector: data + params: + locationid: CITY:US390029 +- name: buoy + endpoint: + path: /buoy + method: GET + data_selector: records + params: + dataset: cwind +- name: buoys + endpoint: + path: /buoys + method: GET + data_selector: records + params: {} +- name: homr + endpoint: + path: /homr + method: GET + data_selector: records +- name: daily_mean_water_level + endpoint: + path: /coops/data + method: GET + data_selector: data + params: + station_name: '9063053' + begin_date: '20150927' + end_date: '20150928' + product: daily_mean + datum: stnd + time_zone: lst +- name: GHCND + endpoint: + path: /ghcnd + method: GET + data_selector: records + params: {} +- name: GSOM + endpoint: + path: /gsom + method: GET + data_selector: records + params: {} +- name: GSOY + endpoint: + path: /gsoy + method: GET + data_selector: records + params: {} +- name: NORMAL_ANN + endpoint: + path: /normal_ann + method: GET + data_selector: records + params: {} +- name: NORMAL_DLY + endpoint: + path: /normal_dly + method: GET + data_selector: records + params: {} +- name: NORMAL_HLY + endpoint: + path: /normal_hly + method: GET + data_selector: records + params: {} +- name: NORMAL_MLY + endpoint: + path: /normal_mly + method: GET + data_selector: records + params: {} +- name: buoy + endpoint: + path: /buoy + method: GET + data_selector: records + params: + dataset: cwind +- name: buoys + endpoint: + path: /buoys + method: GET + data_selector: records + params: + dataset: cwind +- name: station_metadata + endpoint: + path: /homr + method: GET + data_selector: records +- name: ncdc_stations + endpoint: + path: /ncdc/stations + method: GET + data_selector: data +- name: ncdc + endpoint: + path: /ncdc + method: GET + data_selector: data +- name: GHCND + endpoint: + path: /ghcnd + method: GET + data_selector: records +- name: GSOM + endpoint: + path: /gsom + method: GET + data_selector: records +- name: GSOY + endpoint: + path: /gsoy + method: GET + data_selector: records +- name: NORMAL_ANN + endpoint: + path: /normal_ann + method: GET + data_selector: records +- name: NORMAL_DLY + endpoint: + path: /normal_dly + method: GET + data_selector: records +- name: NORMAL_HLY + endpoint: + path: /normal_hly + method: GET + data_selector: records +- name: NORMAL_MLY + endpoint: + path: /normal_mly + method: GET + data_selector: records +- name: ncdc_stations + endpoint: + path: /ncdc_stations + method: GET + data_selector: data + params: {} +- name: ncdc_datacats + endpoint: + path: /ncdc_datacats + method: GET + data_selector: data + params: {} +- name: ncdc_datasets + endpoint: + path: /ncdc_datasets + method: GET + data_selector: data + params: {} +- name: ncdc_datatypes + endpoint: + path: /ncdc_datatypes + method: GET + data_selector: data + params: {} +- name: ncdc + endpoint: + path: /ncdc + method: GET + data_selector: data + params: + datasetid: GHCND + stationid: GHCND:US1FLCT0002 + datatypeid: PRCP + startdate: '2012-10-01' + enddate: '2013-01-01' +- name: sea_ice + endpoint: + path: /sea_ice + method: GET + data_selector: records +- name: ncdc_stations + endpoint: + path: /ncdc/stations + method: GET + data_selector: data + params: + datasetid: GHCND + locationid: FIPS:12017 + stationid: GHCND:USC00084289 +- name: ncdc_data + endpoint: + path: /ncdc + method: GET + data_selector: data + params: + datasetid: NORMAL_DLY + datatypeid: dly-tmax-normal + startdate: '2010-05-01' + enddate: '2010-05-10' +- name: nx3tvs + endpoint: + path: /swdi + method: GET + data_selector: data + params: + dataset: nx3tvs + startdate: '20060505' + enddate: '20060510' +- name: warn + endpoint: + path: /swdi + method: GET + data_selector: data + params: + dataset: warn + startdate: '20060506' + enddate: '20060507' +- name: plsr + endpoint: + path: /swdi + method: GET + data_selector: data + params: + dataset: plsr + startdate: '20060505' + enddate: '20060510' +- name: count + endpoint: + path: /swdi + method: GET + data_selector: data + params: + dataset: nx3tvs + startdate: '20060505' + enddate: '20090516' + stat: tilesum:-102.0,32.7 +- name: weather_stations + endpoint: + path: /ncdc/stations + method: GET + data_selector: data + params: + locationid: FIPS:12017 +- name: data_categories + endpoint: + path: /ncdc/datacats + method: GET + data_selector: data + params: + stationid: GHCND:US1FLCT0002 +- name: data_sets + endpoint: + path: /ncdc/datasets + method: GET + data_selector: data + params: + stationid: GHCND:US1FLCT0002 +- name: data_types + endpoint: + path: /ncdc/datatypes + method: GET + data_selector: data + params: + datasetid: GHCND + stationid: GHCND:US1FLCT0002 +- name: climate_data + endpoint: + path: /ncdc + method: GET + data_selector: data + params: + datasetid: GHCND + stationid: GHCND:US1FLCT0002 + datatypeid: PRCP + startdate: '2012-10-01' + enddate: '2013-01-01' +- name: sea_ice + endpoint: + path: /sea_ice + method: GET + data_selector: records + params: {} +- name: swdi_csv + endpoint: + path: /swdi + method: GET + data_selector: data + params: + dataset: nx3tvs + startdate: '20060505' + enddate: '20060506' + format: csv +- name: swdi_shp + endpoint: + path: /swdi + method: GET + data_selector: shp + params: + dataset: nx3tvs + startdate: '20060505' + enddate: '20060506' + format: shp + filepath: myfile +- name: swdi_kmz + endpoint: + path: /swdi + method: GET + data_selector: kmz + params: + dataset: nx3tvs + startdate: '20060505' + enddate: '20060506' + format: kmz + radius: 15 + filepath: myfile.kmz +- name: nx3tvs + endpoint: + path: /swdi/nx3tvs + method: GET + data_selector: data + params: + startdate: '20060505' + enddate: '20090516' +- name: warn + endpoint: + path: /swdi/warn + method: GET + data_selector: data + params: + startdate: '20060506' + enddate: '20060507' +- name: plsr + endpoint: + path: /swdi/plsr + method: GET + data_selector: data + params: + startdate: '20060505' + enddate: '20060510' +- name: nx3tvs_csv + endpoint: + path: /swdi + method: GET + data_selector: data + params: + dataset: nx3tvs + startdate: '20060505' + enddate: '20060506' + format: csv +- name: nx3tvs_shp + endpoint: + path: /swdi + method: GET + data_selector: file + params: + dataset: nx3tvs + startdate: '20060505' + enddate: '20060506' + format: shp + filepath: myfile +- name: nx3tvs_kmz + endpoint: + path: /swdi + method: GET + data_selector: file + params: + dataset: nx3tvs + startdate: '20060505' + enddate: '20060506' + format: kmz + radius: 15 + filepath: myfile.kmz +- name: arc2_data + endpoint: + path: /arc2 + method: GET + data_selector: list + params: {} +- name: buoy_stations + endpoint: + path: /buoy_stations + method: GET + data_selector: data + params: + refresh: false +- name: buoys + endpoint: + path: /buoys + method: GET + data_selector: data + params: {} +- name: buoy + endpoint: + path: /buoy + method: GET + data_selector: data + params: + dataset: swden + buoyid: 46012 + year: 9999 +- name: coops_search + endpoint: + path: /api/ + method: GET + data_selector: data + params: {} +- name: gains_function + endpoint: + path: /gains_function + method: GET + data_selector: data +- name: ghcnd_read + endpoint: + path: /ghcnd_read + method: GET + data_selector: data +- name: lcd + endpoint: + path: /lcd + method: GET + data_selector: data +- name: se_data + endpoint: + path: /se_data + method: GET + data_selector: data +- name: se_files + endpoint: + path: /se_files + method: GET + data_selector: data +- name: ghcnd + endpoint: + path: /ghcnd + method: GET + data_selector: data +- name: ghcnd_search + endpoint: + path: /ghcnd_search + method: GET + data_selector: data +- name: ncdc + endpoint: + path: /ncdc + method: GET + data_selector: data +- name: precipitation_data + endpoint: + path: /precipitation + method: GET + data_selector: data.frame +- name: ersst_data + endpoint: + path: /ersst + method: GET + data_selector: ncdf4 + params: {} +- name: ghcnd_data + endpoint: + path: /ghcnd + method: GET + data_selector: data + params: {} +- name: ghcnd_states + endpoint: + path: /ghcnd_states + method: GET +- name: ghcnd_countries + endpoint: + path: /ghcnd_countries + method: GET +- name: ghcnd_version + endpoint: + path: /ghcnd_version + method: GET +- name: ghcnd_search + endpoint: + path: /ghcnd_search + method: GET + data_selector: data + params: {} +- name: buoy + endpoint: + path: /buoy + method: GET +- name: ghcnd + endpoint: + path: /ghcnd + method: GET +- name: isd + endpoint: + path: /isd + method: GET +- name: homr + endpoint: + path: /homr + method: GET +- name: ncdc + endpoint: + path: /ncdc + method: GET +- name: sea_ice + endpoint: + path: /sea_ice + method: GET +- name: storm + endpoint: + path: /storm + method: GET +- name: swdi + endpoint: + path: /swdi + method: GET +- name: tornadoes + endpoint: + path: /tornadoes + method: GET +- name: coops_search + endpoint: + path: /coops_search + method: GET +- name: cpc_prcp + endpoint: + path: /cpc_prcp + method: GET +- name: arc2 + endpoint: + path: /arc2 + method: GET +- name: bsw + endpoint: + path: /bsw + method: GET +- name: ersst + endpoint: + path: /ersst + method: GET +- name: lcd + endpoint: + path: /lcd + method: GET +- name: meteo_coverage + endpoint: + path: /meteo_coverage + method: GET + data_selector: summary +- name: arc2_data + endpoint: + path: /arc2 + method: GET + data_selector: tibbles + params: {} +- name: meteo_distance + endpoint: + path: /meteo_distance + method: GET + data_selector: data + params: + radius: null + limit: null +- name: blended_sea_winds + endpoint: + path: /R/bsw.R + method: GET + data_selector: records + params: {} +- name: meteo_nearby_stations + endpoint: + path: /meteo_nearby_stations + method: GET + data_selector: dataframes + params: {} +- name: meteo_process_geographic_data + endpoint: + path: /R/meteo_distance.R + method: GET + data_selector: station_data + params: {} +- name: buoy_stations + endpoint: + path: /buoy_stations + method: GET + data_selector: stations + params: + refresh: 'FALSE' +- name: buoys + endpoint: + path: /buoys + method: GET + data_selector: available_buoys + params: {} +- name: buoy + endpoint: + path: /buoy + method: GET + data_selector: data + params: + dataset: swden + buoyid: '46012' + year: '9999' +- name: meteo_pull_monitors + endpoint: + path: /helpers_ghcnd.R + method: GET + data_selector: records + params: {} +- name: coops_search + endpoint: + path: /coops_search + method: GET + data_selector: data + params: + begin_date: null + end_date: null + station_name: null + product: null + datum: null + units: metric + time_zone: gmt +- name: meteo_spherical_distance + endpoint: + path: /R/meteo_distance.R + method: GET +- name: precipitation_data + endpoint: + path: /cpc_prcp + method: GET + data_selector: data.frame + params: + drop_undefined: 'TRUE' +- name: meteo_tidy_ghcnd + endpoint: + path: /meteo_tidy_ghcnd + method: GET + data_selector: data + params: {} +- name: ersst_data + endpoint: + path: /ersst + method: GET + data_selector: data + params: + year: year + month: month +- name: vis_miss + endpoint: + path: R/vis_miss.R + method: GET + data_selector: ggplot + params: {} +- name: ghcnd_data + endpoint: + path: /ghcnd + method: GET + data_selector: data + params: {} +- name: homr_metadata + endpoint: + path: /homr + method: GET + data_selector: list + params: {} +- name: ghcnd_states + endpoint: + path: /ghcnd_states + method: GET + data_selector: states +- name: ghcnd_countries + endpoint: + path: /ghcnd_countries + method: GET + data_selector: countries +- name: ghcnd_version + endpoint: + path: /ghcnd_version + method: GET + data_selector: version +- name: isd_data + endpoint: + path: /isd + method: GET + data_selector: data + params: + usaf: usaf + wban: wban + year: year +- name: ghcnd_search + endpoint: + path: /ghcnd_search + method: GET + data_selector: list + params: + var: all + date_min: null + date_max: null + stationid: null + refresh: false +- name: isd_read + endpoint: + path: /isd_read + method: GET + data_selector: data + params: + path: required + additional: 'TRUE' + parallel: 'FALSE' + cores: 2 + progress: 'FALSE' +- name: meteo_clear_cache + endpoint: + path: /meteo_clear_cache + method: POST + data_selector: result + params: + force: 'FALSE' +- name: isd_stations + endpoint: + path: /isd_stations + method: GET + data_selector: data + params: + refresh: 'FALSE' +- name: meteo_coverage + endpoint: + path: /meteo_coverage + method: GET + data_selector: summary + params: {} +- name: isd_stations_search + endpoint: + path: /isd_stations_search + method: GET + data_selector: data.frame + params: + lat: null + lon: null + radius: null + bbox: null +- name: meteo_distance + endpoint: + path: /meteo_distance + method: GET + data_selector: dataframe + params: + radius: null + limit: null +- name: lcd + endpoint: + path: /lcd + method: GET + data_selector: data.frame + params: {} +- name: meteo_nearby_stations + endpoint: + path: /meteo_nearby_stations + method: GET + data_selector: dataframes + params: {} +- name: ncdc_data + endpoint: + path: /ncdc + method: GET + data_selector: data + params: + datasetid: required + startdate: required + enddate: required +- name: meteo_process_geographic_data + endpoint: + path: /meteo_process_geographic_data + method: GET + data_selector: station_data + params: {} +- name: weather_data + endpoint: + path: /ghcnd + method: GET + data_selector: data + params: {} +- name: GSOY + endpoint: + path: /ncdc + method: GET + data_selector: data + params: + datasetid: GSOY + startdate: '2010-01-01' + enddate: '2011-01-01' +- name: NEXRAD2 + endpoint: + path: /ncdc + method: GET + data_selector: data + params: + datasetid: NEXRAD2 + startdate: '2013-10-01' + enddate: '2013-12-01' +- name: ncdc_combine + endpoint: + path: /ncdc_combine + method: GET + data_selector: data.frame + params: {} +- name: meteo_show_cache + endpoint: + path: /meteo_show_cache + method: GET +- name: data_categories + endpoint: + path: /ncdc_datacats + method: GET + params: + limit: 25 +- name: meteo_spherical_distance + endpoint: + path: /R/meteo_distance.R + method: GET + data_selector: value + params: {} +- name: ncdc_datasets + endpoint: + path: /ncdc_datasets + method: GET +- name: ghcnd + endpoint: + path: /meteo_tidy_ghcnd + method: GET + data_selector: data + params: + stationid: ASN00003003 + var: all + date_min: '1989-01-01' +- name: ghcnd_search + endpoint: + path: /ghcnd_search + method: GET + data_selector: data + params: {} +- name: ncdc_datatypes + endpoint: + path: /ncdc_datatypes + method: GET + params: + limit: 25 + offset: 0 +- name: meteo_coverage + endpoint: + path: /R/meteo-autoplot.R + method: METHOD_NOT_SPECIFIED + data_selector: VALUE_NOT_SPECIFIED + params: {} +- name: locations + endpoint: + path: /ncdc_locs + method: GET + data_selector: results + params: + limit: 25 + offset: 0 +- name: homr + endpoint: + path: /homr + method: GET + data_selector: list +- name: location_categories + endpoint: + path: /ncdc_locs_cats + method: GET + data_selector: metadata + params: + limit: 25 + offset: 0 +- name: ncdc + endpoint: + path: /ncdc + method: GET +- name: isd_data + endpoint: + path: /isd + method: GET + data_selector: data + params: + usaf: required + wban: required + year: required +- name: stations + endpoint: + path: /ncdc_stations + method: GET + data_selector: metadata + params: + limit: 25 + offset: 0 +- name: isd_read + endpoint: + path: /isd_read + method: GET + data_selector: tibble + params: {} +- name: sea_ice + endpoint: + path: /sea_ice + method: GET + data_selector: data.frame + params: {} +- name: isd_stations + endpoint: + path: /pub/data/noaa/ + method: GET + data_selector: data.frame + params: {} +- name: monthly_data + endpoint: + path: /north/monthly/data/N_01_extent_v3.0.csv + method: GET + data_selector: data.frame +- name: isd_stations_search + endpoint: + path: /isd_stations_search + method: GET + data_selector: data.frame + params: {} +- name: storm_events + endpoint: + path: /storm_events + method: GET + data_selector: data + params: {} +- name: lcd + endpoint: + path: /local-climatological-data + method: GET + data_selector: data.frame + params: + station: required + year: required +- name: severe_weather_data + endpoint: + path: /swdi + method: GET + data_selector: data + params: + limit: 25 +- name: tornadoes + endpoint: + path: /tornadoes + method: GET + data_selector: SpatialLinesDataFrame + params: {} +- name: ncdc_data + endpoint: + path: /ncdc + method: GET + data_selector: data + params: + datasetid: datasetid + startdate: startdate + enddate: enddate +- name: GSOY + endpoint: + path: /ncdc + method: GET + data_selector: data + params: + datasetid: GSOY + startdate: '2010-01-01' + enddate: '2011-01-01' +- name: NEXRAD2 + endpoint: + path: /ncdc + method: GET + data_selector: data + params: + datasetid: NEXRAD2 + startdate: '2013-10-01' + enddate: '2013-12-01' +- name: get + endpoint: + path: get + method: GET +- name: post + endpoint: + path: post + method: POST +- name: put + endpoint: + path: put + method: PUT +- name: delete + endpoint: + path: delete + method: DELETE +- name: patch + endpoint: + path: patch + method: PATCH +- name: head + endpoint: + path: head + method: HEAD +- name: get + endpoint: + path: /get + method: GET +- name: post + endpoint: + path: /post + method: POST +- name: ncdc_combine + endpoint: + path: /ncdc_combine + method: GET + data_selector: data.frame + params: {} +- name: ncdc_datasets + endpoint: + path: /ncdc_datasets + method: GET + data_selector: data.frame + params: {} +- name: ncdc_datatypes + endpoint: + path: /ncdc_datatypes + method: GET + data_selector: data.frame + params: {} +- name: ncdc_datacats + endpoint: + path: /ncdc_datacats + method: GET + data_selector: data.frame + params: {} +- name: ncdc_locs_cats + endpoint: + path: /ncdc_locs_cats + method: GET + data_selector: data.frame + params: {} +- name: ncdc_locs + endpoint: + path: /ncdc_locs + method: GET + data_selector: data.frame + params: {} +- name: ncdc_plot + endpoint: + path: /ncdc_plot + method: GET + data_selector: data.frame + params: {} +- name: ncdc_stations + endpoint: + path: /ncdc_stations + method: GET + data_selector: data.frame + params: {} +- name: ncdc + endpoint: + path: /ncdc + method: GET + data_selector: data.frame + params: {} +- name: async_requests + endpoint: + path: /get?a=5 + method: GET +- name: varied_request_async + endpoint: + path: /post?a=5&b=6 + method: POST +- name: data_categories + endpoint: + path: /ncdc_datacats + method: GET + data_selector: data.frame + params: + limit: 25 +- name: datasets + endpoint: + path: /datasets + method: GET + data_selector: data + params: + limit: 25 + offset: 0 +- name: works + endpoint: + path: /works + method: GET + data_selector: message + params: + rows: '0' +- name: ncdc_datatypes + endpoint: + path: /ncdc_datatypes + method: GET + params: + limit: 25 + offset: 0 +- name: ncdc_locs + endpoint: + path: /ncdc_locs + method: GET + data_selector: results + params: + limit: 25 + offset: 0 +- name: ncdc_locs_cats + endpoint: + path: /ncdc_locs_cats + method: GET + params: + limit: 25 + offset: 0 +- name: ncdc + endpoint: + path: /ncdc + method: GET + data_selector: records + params: + datasetid: GHCND + stationid: GHCND:USW00014895 + datatypeid: PRCP + startdate: '2010-05-01' + enddate: '2010-10-31' + limit: 500 +- name: stations + endpoint: + path: /ncdc_stations + method: GET + data_selector: metadata + params: + limit: 25 + offset: 0 +- name: sea_ice + endpoint: + path: /sea_ice + method: GET + data_selector: data.frame + params: + year: null + month: null + pole: null + format: shp +- name: sea_ice_data + endpoint: + path: /DATASETS/NOAA/G02135/north/monthly/data/N_01_extent_v3.0.csv + method: GET + data_selector: data.frame +- name: storm_events + endpoint: + path: /storm_events + method: GET + data_selector: data + params: + year: numeric + type: character +- name: journals + endpoint: + path: api/v1/journals/f3f2e7f23d444370ae5f5199f85bc100 + method: GET +- name: journals_2 + endpoint: + path: api/v1/journals/9abfb36b06404e8a8566e1a44180bbdc + method: GET +- name: severe_weather_data + endpoint: + path: / + method: GET + data_selector: data + params: + limit: 25 +- name: get + endpoint: + path: /get + method: GET +- name: post + endpoint: + path: /post + method: POST +- name: async_requests + endpoint: + path: /get + method: GET + data_selector: responses + params: {} +- name: post_request + endpoint: + path: /post + method: POST + data_selector: responses + params: {} +- name: works + endpoint: + path: /works + method: GET + data_selector: message + params: + rows: 0 +- name: http_request + endpoint: + path: /get + method: GET +- name: http_post_request + endpoint: + path: /post + method: POST +- name: journals + endpoint: + path: api/v1/journals/{journal_id} + method: GET + data_selector: response_headers + params: {} +notes: +- Since this function is pulling a large dataset by ftp, it may take a while to run. +- You’ll need an API key to use the NOAA NCDC functions. +- Some APIs use seemingly odd units. +- rnoaa doesn’t do any conversion of values from the APIs and some APIs use seemingly + odd units. +- By convention, rnoaa doesn’t do any conversion of values from the APIs and some + APIs use seemingly odd units. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- rnoaa package level options; stored in an internal package environment `roenv` +- The box parameter filters the arc2 data to a bounding box you supply. +- We only handle the netcdf files for now, we're avoiding the ieee files +- some buoy ids are character, case doesn't matter, we'll account for it +- Values of -99.0 are classified as 'undefined'. These values can be removed by setting + drop_undefined = TRUE. +- ersst() currently defaults to use ERSST v5 - you can set v4 or v5 using the version + parameter +- If a request is unsuccesful, the file written to disk is deleted before the function + exits. +- The base url for data requests can be changed. +- If TRUE, force re-download of data. +- Government shutdowns can greatly affect data sources in this package. +- This function will clear all cached *meteo* files. +- FIXME - units param is ignored +- Products are available from July 9th, 1987 - present. +- We only handle the netcdf files for now, we're avoiding the ieee files. +- By default, this function will pull the full station list from NOAA to use to identify + nearby locations. +- Southern latitudes should be given as negative values. +- Western longitudes should be given as negative values. +- This function may take a while to run. +- Required parameters include begin_date, end_date, station_name, product, and datum. +- This function assumes an earth radius of 6,371 km. +- Values of -99.0 are classified as 'undefined'. These values can be removed by setting + 'drop_undefined = TRUE'. +- 'The weather flags, which are kept by specifying keep_flags = TRUE are: *_mflag, + *_qflag, *_sflag.' +- 'The allowed urls are: https://www1.ncdc.noaa.gov/pub/data/ghcn/daily/all, https://ncei.noaa.gov/pub/data/ghcn/daily/all' +- The first time a dataset is pulled down we must download the data, process the data, + and save a compressed .rds file to disk. +- This function calls ghcnd(), which will download and save data from all available + dates and weather variables for the queried weather station. +- isd_read - read a .gz file as downloaded from NOAA's website +- The data table is cached, but you can force download of data from NOAA by setting + refresh=TRUE +- Three parameters, datasetid, startdate, and enddate are required. +- The NOAA API doesn't perform well with very long timespans, and will time out. +- Calls with both startdate and enddate don't seem to work, though specifying one + or the other mostly works. +- Get an API key (aka, token) at https://www.ncdc.noaa.gov/cdo-web/token +- 'You can pass your token in as an argument or store it one of two places: your .Rprofile + file or your .Renviron file' +- All weather variables may not exist for all weather stations. +- Requires an API key from the NOAA Climate Data Online access token generator +- A valid token must be supplied to access data. +- The first time a dataset is requested takes longer +- Requires a valid token supplied by NCDC's Climate Data Online access token generator. +- The data table is cached, but you can force download of data from NOAA by setting + refresh=TRUE. +- A value in any cell of -9999 indicates missing data +- Keep in mind that three parameters, datasetid, startdate, and enddate are required. +- An HTTP client, taking inspiration from Ruby’s faraday and Python’s requests +- If you are on windows you may require extra setup if you want to play with curl + on the command line. +- For some web resources, using headers is mandatory, and httr makes including them + quite easy. +- You must know what dataset it is in to retrieve data. +- The date range for startdate and enddate must be less than 1 year. +- Asynchronous requests can be used when any one HTTP request takes too long. +- You can pass your token in as an argument or store it in your .Rprofile or .Renviron + files. +- Main interface to making HTTP requests. Synchronous requests only. +- Get an API key at https://www.ncdc.noaa.gov/cdo-web/token +- The 'Content-Type' header in HTTP responses gives the media type of the response. +- You can pass your token in as an argument or store it in your .Rprofile or .Renviron + file +- HTTP requests mostly fail in ways that you are probably familiar with, including + when there's a 400 response (the URL not found), and when the server made a mistake + (a 500 series HTTP status code). +- However, for async requests we don't want to fail immediately because that would + stop the subsequent requests from occurring. +- get geotiff instead of shp data +- For async requests we don't want to fail immediately because that would stop the + subsequent requests from occurring. +- Time out issues likely to occur at higher limits. +- may take 10 sec or so to render +- A little quirk about crul is that because user agent string can be passed as either + a header or a curl option. +- One thing to think about before using async is whether the data provider is okay + with it. +- Some web resources may require specific user-agent strings. +- Asynchronous HTTP requests may be used when any one HTTP request takes too long. +- Synchronous requests only. +- Requests can fail sometimes where there is no HTTP status code, and no agreed upon + way to handle it other than to just fail immediately. +errors: +- 'Error in tornadoes(): could not find function ''tornadoes''' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'Error: download failed for https://ftp.ncdc.noaa.gov/pub/data/noaa/1955/011490-99999-1955.gz' +- '401 Unauthorized: Recheck token validity' +- 'Error: download failed for https://ftp.ncdc.noaa.gov/pub/data/noaa/[year]/[usaf]-[wban]-[year].gz: + The file does not exist on NOAA''s servers.' +- '401 Unauthorized: Check your token' +- HTTP (400) - Bad request syntax or unsupported method +- '400: URL not found' +- '500: Server made a mistake' +- 'Could not resolve host: https://foo.com' +- Failed to connect to foo.com +- Resolving timed out after 10 milliseconds +- '400: Bad Request - Ensure dataset ID is valid' +- '401: Unauthorized - Check authentication credentials' +- '404: Not Found - Verify endpoint and parameters' +- '200: Successful request' +auth_info: + mentioned_objects: + - NCDC's Climate Data Online access token generator +client: + base_url: https://hb.opencpu.org +source_metadata: null diff --git a/robust_softech/robust-softech-docs.md b/robust_softech/robust-softech-docs.md new file mode 100644 index 00000000..24e23172 --- /dev/null +++ b/robust_softech/robust-softech-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Cloud Services data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def cloud_services_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "/api/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + blogs,,health,,contact + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='cloud_services_migrations_pipeline', + destination='duckdb', + dataset_name='cloud_services_migrations_data', + ) + # Load the data + load_info = pipeline.run(cloud_services_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from cloud_services_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Blogs: Access information and articles related to various topics. +- Health: Check the status and health of the API. +- Contact: Reach out for support or inquiries. +- Web Application: Manage and interact with web application resources. +- E-commerce Solution: Integration and support for e-commerce services. + +You will then debug the Cloud Services pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Cloud Services support. + ```shell + dlt init dlthub:cloud_services_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Cloud Services API, as specified in @cloud_services_migrations-docs.yaml + Start with endpoints blogs and and skip incremental loading for now. + Place the code in cloud_services_migrations_pipeline.py and name the pipeline cloud_services_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python cloud_services_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The source uses an API key for authentication, which must be included in the request headers. + + To get the appropriate API keys, please visit the original source at https://www.cloudservices.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python cloud_services_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline cloud_services_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset cloud_services_migrations_data + The duckdb destination used duckdb:/cloud_services_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline cloud_services_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("cloud_services_migrations_pipeline").dataset() + # get log table as Pandas frame + data.log.df().head() + ``` + +## Running into errors? + +It's important to note that the API has a request limit, and exceeding this limit may result in throttling of API calls. Additionally, the security solutions offered comply with major industry standards, making it vital to ensure compliance when using the service. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/robust_softech/robust-softech-docs.yaml b/robust_softech/robust-softech-docs.yaml new file mode 100644 index 00000000..75c169f8 --- /dev/null +++ b/robust_softech/robust-softech-docs.yaml @@ -0,0 +1,108 @@ +resources: +- name: health + endpoint: + path: /api/health + method: GET +- name: contact + endpoint: + path: /api/contact + method: POST +- name: blogs + endpoint: + path: /api/blogs + method: GET +- name: IAM Setup & Auditing + endpoint: + path: /services/iam-setup-auditing + method: GET + data_selector: records +- name: SSO, MFA & RBAC Integration + endpoint: + path: /services/sso-mfa-rbac + method: GET + data_selector: records +- name: Regulatory Compliance Support + endpoint: + path: /services/regulatory-compliance + method: GET + data_selector: records +- name: Security Assessment & Penetration Testing + endpoint: + path: /services/security-assessment + method: GET + data_selector: records +- name: AWS Cloud Services + endpoint: + path: /services/aws-cloud-services + method: GET +- name: Microsoft Azure Services + endpoint: + path: /services/microsoft-azure-services + method: GET +- name: Google Cloud Services + endpoint: + path: /services/google-cloud-services-support + method: GET +- name: Cloud Migration & Architecture + endpoint: + path: /services/cloud-migration + method: GET +- name: Multi-Cloud Strategy + endpoint: + path: /services/multi-cloud-strategy + method: GET +- name: Cloud Cost Optimization + endpoint: + path: /services/cloud-cost-optimization + method: GET +- name: web_application + endpoint: + path: /api/web_application + method: GET + data_selector: applications + params: {} +- name: ecommerce_solution + endpoint: + path: /api/ecommerce_solution + method: GET + data_selector: solutions + params: {} +- name: cloud_services + endpoint: + path: /services/cloud-services + method: GET + data_selector: records +- name: cybersecurity_services + endpoint: + path: /services/cybersecurity-services + method: GET + data_selector: records +notes: +- We combine deep technical expertise with industry best practices to deliver security + solutions that protect your business today and scale for tomorrow. +- Role-based access control (RBAC) implementation +- Least privilege principle enforcement +- Multi-cloud IAM policy management +- Identity provider integration (SAML, OAuth) +- Access review and certification processes +- Compliance reporting and audit trails +- Automated user provisioning and deprovisioning +- Privileged access management (PAM) +- IAM policy optimization and cost reduction +- Security best practices implementation +- Implement SSO across cloud and SaaS platforms +- Set up MFA for secure user authentication +- Design and enforce RBAC policies +- Transform your business with scalable, secure, and cost-effective cloud solutions. +- We provide 24/7 cloud support and monitoring services. +- Our security solutions comply with major industry standards including ISO 27001, + SOC 2, GDPR, HIPAA, and FedRAMP. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +auth_info: + mentioned_objects: [] +client: + base_url: /api + headers: + Accept: application/json +source_metadata: null diff --git a/ror_api/ror-api-docs.md b/ror_api/ror-api-docs.md new file mode 100644 index 00000000..3da216c1 --- /dev/null +++ b/ror_api/ror-api-docs.md @@ -0,0 +1,148 @@ +In this guide, we'll set up a complete ROR data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def ror_api_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.ror.org/v1/organizations", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "03fyd9f03", "[ror" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='ror_api_pipeline', + destination='duckdb', + dataset_name='ror_api_data', + ) + # Load the data + load_info = pipeline.run(ror_api_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from ror_api’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Organization Endpoints (v1)**: Access to organizational data from version 1 of the API, including filters for types and specific queries. +- **Organization Endpoints (v2)**: Access to organizational data from version 2 of the API, with additional filtering options and specific organization retrieval. +- **Filtered Organization Endpoints**: Endpoints that allow filtering by specific criteria such as location or type (e.g., continent, funder). +- **Specific Organization Retrieval**: Endpoints designed to retrieve data for specific organizations identified by unique identifiers (e.g., ROR IDs). + +You will then debug the ROR pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with ROR support. + ```shell + dlt init dlthub:ror_api duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for ROR API, as specified in @ror_api-docs.yaml + Start with endpoints 03fyd9f03 and [ror and skip incremental loading for now. + Place the code in ror_api_pipeline.py and name the pipeline ror_api_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python ror_api_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + To use the ROR REST API, you need to register for a client ID at by December 2025, as it is required to receive the current rate limit of 2000 requests per 5 minutes; requests without it will be limited to 50 requests per 5 minutes. + + To get the appropriate API keys, please visit the original source at https://ror.readme.io/docs/rest-api. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python ror_api_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline ror_api load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset ror_api_data + The duckdb destination used duckdb:/ror_api.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline ror_api_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("ror_api_pipeline").dataset() + # get "03fyd9f03" table as Pandas frame + data."03fyd9f03".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/ror_api/ror-api-docs.yaml b/ror_api/ror-api-docs.yaml new file mode 100644 index 00000000..6c6c4144 --- /dev/null +++ b/ror_api/ror-api-docs.yaml @@ -0,0 +1,168 @@ +client: + auth: To use the ROR REST API, you need to register for a client ID at + by December 2025, as it is required to receive the current rate limit of 2000 + requests per 5 minutes; requests without it will be limited to 50 requests per + 5 minutes. + most_recurring_base_url: https://api.ror.org + paginator: Pagination is required, and it is applied by using the `page` parameter + in the request URL, with a default page size of 20 results returned; for example, + `page=4` retrieves the fourth page of results. +endpoints: +- 'endpoints source: https://ror.readme.io/docs/rest-api': + - /v2/organizations +- 'endpoints source: https://ror.readme.io/docs': + - /v1/organizations + - /v2/organizations + - /v2/organizations/https://ror.org/03yrm5c26 + - /organizations +- 'endpoints source: https://ror.readme.io/docs/basics': + - /v1/organizations + - /v2/organizations + - /v2/organizations/https://ror.org/03yrm5c26 + - /organizations +- 'endpoints source: https://ror.readme.io/docs/schema-2-1': + - /v2/organizations?filter=locations.geonames_details.continent_name:Asia` + - /v2/organizations?filter=locations.geonames_details.continent_code:AS` + - /v1/organizations?filter=types:Funder` + - /v1/organizations` + - /v2/organizations` +- 'endpoints source: https://ror.readme.io/docs/client-id': + - /v2/organizations?query=oxford +- 'endpoints source: https://ror.readme.io/docs/api-single': + - /v2/organizations/[ror + - /v2/organizations/00tjv0s33 + - /v2/organizations/03fyd9f03 +- 'endpoints source: https://ror.readme.io/docs/api-list': + - /v2/organizations + - http://maiage.jouy.inra.fr + - /v2/organizations?all_status +- 'endpoints source: https://ror.readme.io/docs/api-filtering': + - /v2/organizations?filter=types:facility,country.country_code:GB + - /v2/organizations?filter=status:inactive,status:withdrawn + - http://maiage.jouy.inra.fr + - /v2/organizations?filter=locations.geonames_details.continent_name:South+America + - /v2/organizations?filter=locations.geonames_details.country_name:Djibouti + - /v2/organizations?filter=[filter + - /v2/organizations?filter=types:facility + - /v2/organizations?filter=status:inactive + - /v2/organizations?filter=status:inactive,types:company,locations.geonames_details.country_code:AU + - /v2/organizations?filter=locations.geonames_details.continent_code:AF + - /v2/organizations?filter= + - /v2/organizations?filter=country.country_code:ZA +- 'endpoints source: https://ror.readme.io/docs/api-paging': + - /v2/organizations?page=[page + - /v2/organizations?page=4 +- 'endpoints source: https://ror.readme.io/docs/api-query': + - /v2/organizations?query=Technology&filter=country.country_name:Jordan + - /v2/organizations?query=%22Franklin%20%26%20Marshall%20College%22 + - /v2/organizations?query=%22Bath%20College%22 + - /v2/organizations?query=Osaka&filter=status:inactive,locations.geonames_details.country_name:Japan + - /v2/organizations?query=Bath%20College + - /v2/organizations?query=Bath&filter=types:Facility,country.country_code:GB + - /v2/organizations?query=Harvard&page=2&all_status + - /v2/organizations?query=[value + - /v2/organizations?query=%22grid.85084.31%22 + - /v2/organizations?query=Bath +- 'endpoints source: https://ror.readme.io/docs/api-affiliation': + - /v2/organizations?affiliation=UCL%20School%20of%20Slavonic%20and%20East%20European%20Studies + - /v2/organizations?affiliation=[URL-encoded-string + - /v2/organizations?affiliation=Department%20of%20Civil%20and%20Industrial%20Engineering%2C%20University%20of%20Pisa%2C%20Largo%20Lucio%20Lazzarino%202%2C%20Pisa%2056126%2C%20Italy +- 'endpoints source: https://ror.readme.io/docs/api-versions': + - https://api.staging.ror.org/organizations +- 'endpoints source: https://ror.readme.io/docs/data-dump': + - https://zenodo.org/api/communities/ror-data/records?q=&sort=newest + - https://zenodo.org/api/records/?communities=ror-data&sort=mostrecent +- 'endpoints source: https://ror.readme.io/docs/openrefine-reconciler': + - https://reconcile.ror.org/reconcile` +- 'endpoints source: https://ror.readme.io/docs/matching': + - /v2/organizations?affiliation=Universit%C3%A4tsbibliothek%20der%20Ludwig-Maximilians-Universit%C3%A4t%20M%C3%BCnchen + - /v2/organizations?affiliation= + - /v2/organizations?query= + - /v2/organizations?affiliation=Department%20of%20Civil%20and%20Industrial%20Engineering%2C%20University%20of%20Pisa%2C%20Largo%20Lucio%20Lazzarino%202%2C%20Pisa%2056126%2C%20Italy + - /v2/organizations?affiliation=Incorporated%20Research%20Institutions%20for%20Seismology%20(IRIS + - /v2/organizations?query=%22Ministry+of+Health%22&filter=types:Government,country.country_code:NZ + - /v2/organizations?affiliation=university+of+wisconsin+madison +- 'endpoints source: https://ror.readme.io/docs/mapping': + - /v2/organizations?query=%22grid.14003.36%22 + - /v2/organizations?query.advanced=external_ids.type:wikidata +- 'endpoints source: https://ror.readme.io/docs/funder-registry': + - https://doi.org/10.13039/501100001691 + - https://doi.org/10.13039/100000879 +- 'endpoints source: https://ror.readme.io/v1/docs/basics': + - /v1/organizations + - /v2/organizations + - /organizations/https://ror.org/03yrm5c26 + - /organizations +- 'endpoints source: https://ror.readme.io/v1/docs/rest-api': + - /v1/organizations + - /organizations +- 'endpoints source: https://ror.readme.io/v1/docs': + - /v1/organizations + - /v2/organizations + - /organizations/https://ror.org/03yrm5c26 + - /organizations +- 'endpoints source: https://ror.readme.io/v1/docs/client-id': + - /v1/organizations?query=oxford +- 'endpoints source: https://ror.readme.io/v1/docs/api-single': + - /v1/organizations/00tjv0s33 + - /v1/organizations/[ror + - /v1/organizations/03fyd9f03 +- 'endpoints source: https://ror.readme.io/v1/docs/data-dump': + - https://zenodo.org/api/communities/ror-data/records?q=&sort=newest + - https://zenodo.org/api/records/?communities=ror-data&sort=mostrecent +- 'endpoints source: https://ror.readme.io/v1/docs/openrefine-reconciler': + - https://reconcile.ror.org/reconcile` +- 'endpoints source: https://ror.readme.io/v1/docs/matching': + - /v1/organizations?query=%22Ministry+of+Health%22&filter=types:Government,country.country_code:NZ + - /organizations?query= + - /v1/organizations?affiliation=Department%20of%20Civil%20and%20Industrial%20Engineering%2C%20University%20of%20Pisa%2C%20Largo%20Lucio%20Lazzarino%202%2C%20Pisa%2056126%2C%20Italy + - /organizations?affiliation= + - /v1/organizations?affiliation=Incorporated%20Research%20Institutions%20for%20Seismology%20(IRIS + - /v1/organizations?affiliation=Universit%C3%A4tsbibliothek%20der%20Ludwig-Maximilians-Universit%C3%A4t%20M%C3%BCnchen + - /v1/organizations?affiliation=university+of+wisconsin+madison +- 'endpoints source: https://ror.readme.io/v1/docs/mapping': + - /organizations?query=%22grid.14003.36%22 +- 'endpoints source: https://ror.readme.io/v1/docs/schema-2-1': + - /v2/organizations?filter=locations.geonames_details.continent_name:Asia` + - /v2/organizations?filter=locations.geonames_details.continent_code:AS` + - /v1/organizations?filter=types:Funder` + - /v1/organizations` + - /v2/organizations` +- 'endpoints source: https://ror.readme.io/v1/docs/api-list': + - /v1/organizations + - /v1/organizations?all_status +- 'endpoints source: https://ror.readme.io/v1/docs/api-filtering': + - /v1/organizations?filter=types:Facility + - /v1/organizations?filter=country.country_name:Djibouti + - /v1/organizations?filter=country.country_code:ZA + - /v1/organizations?filter=types:Facility,country.country_code:GB + - /v1/organizations?filter= + - /v1/organizations?filter=status:inactive,types:Company,country.country_code:AU + - /v1/organizations?filter=status:inactive + - /v1/organizations?filter=status:inactive,status:withdrawn + - /v1/organizations?filter=[filter +- 'endpoints source: https://ror.readme.io/v1/docs/api-paging': + - /v1/organizations?page=4 + - /organizations?page=[page +- 'endpoints source: https://ror.readme.io/v1/docs/api-query': + - /v1/organizations?query=Technology&filter=country.country_name:Jordan + - /v1/organizations?query=%22Franklin%20%26%20Marshall%20College%22 + - /v1/organizations?query=%22grid.85084.31%22 + - /v1/organizations?query=%22Bath%20College%22 + - /v1/organizations?query=Bath&filter=types:Facility,country.country_code:GB + - /v1/organizations?query=Osaka&filter=status:inactive,country.country_name:Japan + - /v1/organizations?query=[value + - /v1/organizations?query=Harvard&page=2&all_status + - /v1/organizations?query=Bath%20College + - /v1/organizations?query=Bath +- 'endpoints source: https://ror.readme.io/v1/docs/api-affiliation': + - /v1/organizations?affiliation=Department%20of%20Civil%20and%20Industrial%20Engineering%2C%20University%20of%20Pisa%2C%20Largo%20Lucio%20Lazzarino%202%2C%20Pisa%2056126%2C%20Italy + - /v1/organizations?affiliation=[URL-encoded-string + - /v1/organizations?affiliation=UCL%20School%20of%20Slavonic%20and%20East%20European%20Studies +- 'endpoints source: https://ror.readme.io/v1/docs/api-versions': + - https://api.staging.ror.org/organizations +- 'endpoints source: https://ror.readme.io/v1/docs/funder-registry': + - https://doi.org/10.13039/501100001691 + - https://doi.org/10.13039/100000879 +- 'endpoints source: https://ror.readme.io/v2/docs/rest-api': + - /v2/organizations diff --git a/sansay_vsxi/sansay-vsxi-docs.md b/sansay_vsxi/sansay-vsxi-docs.md new file mode 100644 index 00000000..ae04100d --- /dev/null +++ b/sansay_vsxi/sansay-vsxi-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete NSS data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def nss_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://nss.sansay.com:3334/", + "auth": { + "type": "basic", + "username": username, + "password": password, + }, + }, + "resources": [ + qdr,,CDR,,stats + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='nss_migrations_pipeline', + destination='duckdb', + dataset_name='nss_migrations_data', + ) + # Load the data + load_info = pipeline.run(nss_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from nss_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- QDR: Endpoints related to Quality Data Records. +- CDR: Endpoints for Call Detail Records. +- Stats: Provides statistical data on call activities. +- Routes: Manages call routing configurations. + +You will then debug the NSS pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with NSS support. + ```shell + dlt init dlthub:nss_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for NSS API, as specified in @nss_migrations-docs.yaml + Start with endpoints qdr and and skip incremental loading for now. + Place the code in nss_migrations_pipeline.py and name the pipeline nss_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python nss_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + API authentication is done on each request using basic authentication, which requires a valid GUI/API username and password to be embedded in the HTTPS basic authentication header. + + To get the appropriate API keys, please visit the original source at https://www.sansay.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python nss_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline nss_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset nss_migrations_data + The duckdb destination used duckdb:/nss_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline nss_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("nss_migrations_pipeline").dataset() + # get d table as Pandas frame + data.d.df().head() + ``` + +## Running into errors? + +It is essential to ensure that the Content-Type header is set to application/json; otherwise, requests will be rejected. Also, testing should be conducted in a staging environment before moving to production. Users should be cautious about session timeouts, which can occur due to SIP routing errors. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/sansay_vsxi/sansay-vsxi-docs.yaml b/sansay_vsxi/sansay-vsxi-docs.yaml new file mode 100644 index 00000000..57fd5846 --- /dev/null +++ b/sansay_vsxi/sansay-vsxi-docs.yaml @@ -0,0 +1,1891 @@ +resources: +- name: app_server_lnp + endpoint: + path: /download/app_server_lnp + method: GET +- name: app_server_cnam + endpoint: + path: /download/app_server_cnam + method: GET +- name: app_server_sti_as + endpoint: + path: /download/app_server_sti_as + method: GET +- name: app_server_sti_vs + endpoint: + path: /download/app_server_sti_vs + method: GET +- name: cac_index + endpoint: + path: /download/cac_index + method: GET +- name: cause_code_profile + endpoint: + path: /download/cause_code_profile + method: GET +- name: digit_mapping + endpoint: + path: /download/digit_mapping + method: GET +- name: digit_mapping_index + endpoint: + path: /download/digit_mapping_index + method: GET +- name: media_server + endpoint: + path: /download/media_server?format=xml + method: GET +- name: media_server_profile + endpoint: + path: /download/media_server_profile + method: GET +- name: resource + endpoint: + path: /download/resource + method: GET +- name: resourceblock + endpoint: + path: /download/resourceblock + method: GET +- name: route + endpoint: + path: /download/route + method: GET +- name: app_server_lnp + endpoint: + path: /SSConfig/webresources/download/app_server_lnp + method: GET +- name: app_server_cnam + endpoint: + path: /SSConfig/webresources/download/app_server_cnam + method: GET +- name: app_server_sti_as + endpoint: + path: /SSConfig/webresources/download/app_server_sti_as + method: GET +- name: app_server_sti_vs + endpoint: + path: /SSConfig/webresources/download/app_server_sti_vs + method: GET +- name: cac_index + endpoint: + path: /SSConfig/webresources/download/cac_index + method: GET +- name: cause_code_profile + endpoint: + path: /SSConfig/webresources/download/cause_code_profile + method: GET +- name: digit_mapping + endpoint: + path: /SSConfig/webresources/download/digit_mapping + method: GET +- name: digit_mapping_index + endpoint: + path: /SSConfig/webresources/download/digit_mapping_index + method: GET +- name: media_server + endpoint: + path: /SSConfig/webresources/download/media_server?format=xml + method: GET +- name: media_server_profile + endpoint: + path: /SSConfig/webresources/download/media_server_profile + method: GET +- name: resource + endpoint: + path: /SSConfig/webresources/download/resource + method: GET +- name: resourceblock + endpoint: + path: /SSConfig/webresources/download/resourceblock + method: GET +- name: route + endpoint: + path: /SSConfig/webresources/download/route + method: GET +- name: route + endpoint: + path: /SSConfig/webresources/update/route + method: POST + data_selector: XBRouteList + params: {} +- name: routegroup + endpoint: + path: /SSConfig/webresources/update/routegroup + method: POST + data_selector: XBRouteGroupList + params: {} +- name: routetable + endpoint: + path: /SSConfig/webresources/update/routetable + method: POST + data_selector: XBRouteTableList + params: {} +- name: serviceport + endpoint: + path: /SSConfig/webresources/update/serviceport + method: POST + data_selector: XBServicePortList + params: {} +- name: serviceport_certificates + endpoint: + path: /SSConfig/webresources/update/serviceport_certificates + method: POST + data_selector: null + params: + passphrase: sansay123 +- name: smc_profile + endpoint: + path: /SSConfig/webresources/update/smc_profile + method: POST + data_selector: null + params: {} +- name: stop_route_profile + endpoint: + path: /SSConfig/webresources/update/stop_route_profile + method: POST + data_selector: XBStopRouteProfileList + params: {} +- name: subscriber + endpoint: + path: /SSConfig/webresources/update/subscriber + method: POST + data_selector: XBSubscriberList + params: {} +- name: virtualip + endpoint: + path: /SSConfig/webresources/update/virtualip + method: POST + data_selector: XBVirtualIpList + params: {} +- name: active_calls + endpoint: + path: /SSConfig/webresources/stats/active_calls + method: GET + data_selector: records +- name: cdrlookup + endpoint: + path: /SSConfig/webresources/query/cdrlookup + method: GET + data_selector: records +- name: cdr_stats + endpoint: + path: /SSConfig/webresources/system/cdr_stats + method: GET + data_selector: records +- name: realtime + endpoint: + path: /SSConfig/webresources/stats/realtime + method: GET + data_selector: records +- name: resource + endpoint: + path: /SSConfig/webresources/stats/resource + method: GET + data_selector: records +- name: route + endpoint: + path: /update/route + method: POST + data_selector: XBRouteList + params: {} +- name: routegroup + endpoint: + path: /update/routegroup + method: POST + data_selector: XBRouteGroupList + params: {} +- name: routetable + endpoint: + path: /update/routetable + method: POST + data_selector: XBRouteTableList + params: {} +- name: serviceport + endpoint: + path: /update/serviceport + method: POST + data_selector: XBServicePortList + params: {} +- name: serviceport_certificates + endpoint: + path: /update/serviceport_certificates + method: POST + data_selector: '' + params: {} +- name: smc_profile + endpoint: + path: /update/smc_profile + method: POST + data_selector: '' + params: {} +- name: smc_datafile + endpoint: + path: /downloadLarge/smcDataFile + method: GET + data_selector: '' + params: {} +- name: stop_route_profile + endpoint: + path: /update/stop_route_profile + method: POST + data_selector: XBStopRouteProfileList + params: {} +- name: subscriber + endpoint: + path: /update/subscriber + method: POST + data_selector: XBSubscriberList + params: {} +- name: virtualip + endpoint: + path: /update/virtualip + method: POST + data_selector: XBVirtualIpList + params: {} +- name: resource_detail + endpoint: + path: /stats/resource_detail + method: GET +- name: sip_stats + endpoint: + path: /stats/sip_stats + method: GET +- name: sub_stats + endpoint: + path: /stats/sub_stats + method: GET +- name: system_info + endpoint: + path: /system/realtime + method: GET +- name: systemConfiguration + endpoint: + path: /downloadLarge/systemConfiguration + method: GET +- name: users + endpoint: + path: /update/users + method: POST +- name: active_calls + endpoint: + path: /SSConfig/webresources/stats/active_calls + method: GET + data_selector: records +- name: cdrlookup + endpoint: + path: /SSConfig/webresources/query/cdrlookup + method: GET + data_selector: records +- name: cdr_stats + endpoint: + path: /SSConfig/webresources/system/cdr_stats + method: GET + data_selector: records +- name: realtime + endpoint: + path: /SSConfig/webresources/stats/realtime + method: GET + data_selector: records +- name: resource + endpoint: + path: /SSConfig/webresources/stats/resource + method: GET + data_selector: records +- name: resource_detail + endpoint: + path: /stats/resource_detail + method: GET +- name: sip_stats + endpoint: + path: /stats/sip_stats + method: GET +- name: sub_stats + endpoint: + path: /stats/sub_stats + method: GET +- name: system_info + endpoint: + path: /system/realtime + method: GET +- name: systemConfiguration + endpoint: + path: /downloadLarge/systemConfiguration + method: GET +- name: users + endpoint: + path: /update/users + method: POST +- name: Short Video Tutorials + endpoint: + path: /category/shortvideos + method: GET +- name: articles + endpoint: + path: /category/articles + method: GET + data_selector: records + params: {} +- name: call_data + endpoint: + path: /api/v1/call_data + method: GET + data_selector: data + params: {} +- name: short_video_tutorials + endpoint: + path: /category/shortvideos + method: GET + data_selector: tutorials +- name: NSS Management + endpoint: + path: /t/y4hls8d/nss-management-via-rest-api + method: GET + data_selector: records + params: {} +- name: NSS STI-AS and STI-VS + endpoint: + path: /t/83hhxd8/nss-sti-as-and-sti-vs-rest-interface + method: GET + data_selector: records + params: {} +- name: SHAKEN Echo Number + endpoint: + path: /t/y4hw8a0/shaken-echo-number + method: GET +- name: STIR/SHAKEN Identity Header Decoder + endpoint: + path: /t/60hctx8/stirshaken-identity-header-decoder + method: GET +- name: Troubleshooting STIR/SHAKEN + endpoint: + path: /t/35hfntb/troubleshooting-stirshaken + method: GET +- name: sip_session_timers + endpoint: + path: /vsxi/sip/session/timers + method: GET + data_selector: sessionTimers + params: {} +- name: SSL + endpoint: + path: /decrypting-sip-tls + method: POST + data_selector: RSA keys list + params: {} +- name: CDR Trace + endpoint: + path: /cdr/trace + method: GET + data_selector: cdr_records +- name: APIBAN + endpoint: + path: /api/get + method: POST + data_selector: ipaddress + params: {} +- name: SMC Profile + endpoint: + path: /api/smc/profile + method: GET + data_selector: profiles + params: {} +- name: SMC Rule + endpoint: + path: /api/smc/rule + method: GET + data_selector: rules + params: {} +- name: global_statistics + endpoint: + path: /sip/stats/global + method: GET + data_selector: statistics + params: {} +- name: error_statistics + endpoint: + path: /sip/stats/error + method: GET + data_selector: errors + params: {} +- name: StoredVariables + endpoint: + path: /StoredVariables + method: GET + data_selector: variables + params: {} +- name: RejectCallXXX + endpoint: + path: /RejectCallXXX + method: GET + data_selector: rules + params: {} +- name: RemoteIP + endpoint: + path: /RemoteIP + method: GET + data_selector: rules + params: {} +- name: Date + endpoint: + path: /Date + method: GET + data_selector: rules + params: {} +- name: Media Inspector + endpoint: + path: /media-inspector + method: GET + data_selector: media_inspector + params: {} +- name: Randomizer + endpoint: + path: /randomizer + method: GET + data_selector: randomizer + params: {} +- name: Google SIP Link Resource + endpoint: + path: /sg/tls/spid_cfg2 + method: CONFIGURE + data_selector: Rules + params: {} +- name: SSL Configuration + endpoint: + path: /decrypting-siptls-packets-using-wireshark + method: GET + data_selector: configuration + params: {} +- name: resource + endpoint: + path: /SSConfig/webresources/update/resource + method: POST +- name: subscriber + endpoint: + path: /SSConfig/webresources/update/subscriber + method: POST +- name: delete_resource + endpoint: + path: /SSConfig/webresources/delete/resource + method: DELETE +- name: delete_subscriber + endpoint: + path: /SSConfig/webresources/delete/subscriber + method: DELETE +- name: routetable + endpoint: + path: /SSConfig/webresources/update/routetable + method: POST +- name: delete_routetable + endpoint: + path: /SSConfig/webresources/delete/routetable + method: POST +- name: digit_mapping_index + endpoint: + path: /SSConfig/webresources/update/digit_mapping_index + method: POST +- name: delete_digit_mapping_index + endpoint: + path: /SSConfig/webresources/delete/digit_mapping_index + method: DELETE +- name: APIBAN + endpoint: + path: /api/get + method: POST +- name: SMC Profile + endpoint: + path: /api/smc/profile + method: GET + data_selector: profiles + params: {} +- name: SMC Rule + endpoint: + path: /api/smc/rule + method: GET + data_selector: rules + params: {} +- name: route + endpoint: + path: /ROME/webresources/hrs/download/route + method: GET +- name: jurisdiction + endpoint: + path: /ROME/webresources/hrs/download/jurisdiction + method: GET +- name: switchProxy + endpoint: + path: /ROME/webresources/hrs/download/switchProxy + method: GET +- name: carrier + endpoint: + path: /ROME/webresources/hrs/download/carrier + method: GET +- name: jurisdictionProfile + endpoint: + path: /ROME/webresources/hrs/download/jurisdictionProfile + method: GET +- name: systemConfiguration + endpoint: + path: /ROME/webresources/hrs/download/systemConfiguration + method: GET +- name: StoredVariables + endpoint: + path: /StoredVariables + method: GET + data_selector: variables +- name: RejectCall + endpoint: + path: /RejectCall + method: GET + data_selector: reject_calls +- name: RemoteIP + endpoint: + path: /RemoteIP + method: GET + data_selector: remote_ip +- name: Date + endpoint: + path: /Date + method: GET + data_selector: date_header +- name: ISUP + endpoint: + path: /ISUP + method: GET + data_selector: isup_variables +- name: Randomizer + endpoint: + path: /Randomizer + method: GET + data_selector: random_numbers +- name: Radius Authorization + endpoint: + path: /radius/authorization + method: POST + data_selector: AccessRequest + params: {} +- name: Radius Accounting Start + endpoint: + path: /radius/accounting/start + method: POST + data_selector: AccountingRequestStart + params: {} +- name: Radius Accounting Stop + endpoint: + path: /radius/accounting/stop + method: POST + data_selector: AccountingRequestStop + params: {} +- name: Google SIP Link Service Port + endpoint: + path: /sg/tls/spid_cfg2 + method: SET + data_selector: SPID=X Version=v1.2only ECDHE=X25519:P-256 CipherList=HIGH + params: {} +- name: Google SIP Link Authentication Token + endpoint: + path: /sg/tls/tls_CN + method: SET + data_selector: IP=216.239.36.145 CN=telephony.goog + params: {} +- name: DMT to JD conversion + endpoint: + path: /convert-dmt + method: POST + data_selector: result + params: {} +- name: specific Route Tables conversion + endpoint: + path: /convert-routes-specificRT + method: POST + data_selector: result + params: {} +- name: Routes conversion + endpoint: + path: /convert-routes + method: POST + data_selector: result + params: {} +- name: Trunk to carriers conversion + endpoint: + path: /convert-trunk-to-carrier + method: POST + data_selector: result + params: {} +- name: VSXi resources to ROME trunks conversion + endpoint: + path: /convert-vsxiresource-to-trunk + method: POST + data_selector: result + params: {} +- name: resource + endpoint: + path: /SSConfig/webresources/update/resource + method: POST +- name: subscriber + endpoint: + path: /SSConfig/webresources/update/subscriber + method: POST +- name: route_table + endpoint: + path: /SSConfig/webresources/update/routetable + method: POST +- name: route + endpoint: + path: /SSConfig/webresources/update/route + method: POST +- name: digit_mapping_index + endpoint: + path: /SSConfig/webresources/update/digit_mapping_index + method: POST +- name: digit_mapping + endpoint: + path: /SSConfig/webresources/update/digit_mapping + method: POST +- name: update + endpoint: + path: /update + method: POST +- name: delete + endpoint: + path: /delete + method: POST +- name: replace + endpoint: + path: /replace + method: POST +- name: download + endpoint: + path: /download + method: POST +- name: getTableList + endpoint: + path: /getTableList + method: POST +- name: createTable + endpoint: + path: /createTable + method: POST +- name: copyTable + endpoint: + path: /copyTable + method: POST +- name: deleteTable + endpoint: + path: /deleteTable + method: POST +- name: activateTable + endpoint: + path: /activateTable + method: POST +- name: routeLookup + endpoint: + path: /routeLookup + method: POST +- name: stats + endpoint: + path: /stats + method: POST +- name: pushVSXiClusterConfig + endpoint: + path: /pushVSXiClusterConfig + method: POST +- name: route + endpoint: + path: /hrs/download/route + method: GET +- name: jurisdiction + endpoint: + path: /hrs/download/jurisdiction + method: GET +- name: blockedRoutes + endpoint: + path: /hrs/download/blockedRoutes + method: GET +- name: trunk + endpoint: + path: /hrs/download/trunk + method: GET +- name: switchProxy + endpoint: + path: /hrs/download/switchProxy + method: GET +- name: carrier + endpoint: + path: /hrs/download/carrier + method: GET +- name: jurisdictionProfile + endpoint: + path: /hrs/download/jurisdictionProfile + method: GET +- name: resource + endpoint: + path: /hrs/query/resource + method: GET +- name: subscriber + endpoint: + path: /hrs/query/subscriber + method: GET +- name: digit_mapping + endpoint: + path: /hrs/query/digit_mapping + method: GET +- name: Radius Authorization + endpoint: + path: /radius/authorization + method: POST + data_selector: response +- name: Radius Accounting + endpoint: + path: /radius/accounting + method: POST + data_selector: response +- name: convert_dmt_to_jd + endpoint: + path: /convert-dmt-to-jd + method: POST + data_selector: result + params: {} +- name: convert_specific_route_tables + endpoint: + path: /convert-specific-routes + method: POST + data_selector: result + params: {} +- name: convert_routes + endpoint: + path: /convert-routes + method: POST + data_selector: result + params: {} +- name: convert_trunk_to_carriers + endpoint: + path: /convert-trunk-to-carrier + method: POST + data_selector: result + params: {} +- name: convert_vsxiresource_to_trunk + endpoint: + path: /convert-vsxiresource-to-trunk + method: POST + data_selector: result + params: {} +- name: available_memory + endpoint: + path: /api/available_memory + method: GET + data_selector: records + params: {} +- name: disk_storage_usage + endpoint: + path: /api/disk_storage_usage + method: GET + data_selector: records + params: {} +- name: average_cpu_load + endpoint: + path: /api/average_cpu_load + method: GET + data_selector: records + params: {} +- name: network_interface_throughput + endpoint: + path: /api/network_interface_throughput + method: GET + data_selector: records + params: {} +- name: authenticated_endpoints + endpoint: + path: /api/authenticated_endpoints + method: GET + data_selector: records + params: {} +- name: ha_redundancy_status + endpoint: + path: /api/ha_redundancy_status + method: GET + data_selector: records + params: {} +- name: switch_over_restart_indicator + endpoint: + path: /api/switch_over_restart_indicator + method: GET + data_selector: records + params: {} +- name: sip_latency_response + endpoint: + path: /api/sip_latency_response + method: GET + data_selector: records + params: {} +- name: concurrent_calls + endpoint: + path: /api/concurrent_calls + method: GET + data_selector: records + params: {} +- name: average_registers_per_second + endpoint: + path: /api/average_registers_per_second + method: GET + data_selector: records + params: {} +- name: raid_redundancy_status + endpoint: + path: /api/raid_redundancy_status + method: GET + data_selector: records + params: {} +- name: power_supply_redundancy_status + endpoint: + path: /api/power_supply_redundancy_status + method: GET + data_selector: records + params: {} +- name: media_server_status + endpoint: + path: /api/media_server_status + method: GET + data_selector: records + params: {} +- name: web_api_response + endpoint: + path: /api/web_api_response + method: GET + data_selector: records + params: {} +- name: system_uptime + endpoint: + path: /api/system_uptime + method: GET + data_selector: records + params: {} +- name: total_running_processes + endpoint: + path: /api/total_running_processes + method: GET + data_selector: records + params: {} +- name: system_license_usage + endpoint: + path: /api/system_license_usage + method: GET + data_selector: records + params: {} +- name: route + endpoint: + path: /route + method: POST + data_selector: result + params: {} +- name: jurisdiction + endpoint: + path: /jurisdiction + method: POST + data_selector: result + params: {} +- name: route + endpoint: + path: /route + method: download + data_selector: XML + params: {} +- name: routegroup + endpoint: + path: /routegroup + method: download + data_selector: XML + params: {} +- name: routetable + endpoint: + path: /routetable + method: download + data_selector: XML + params: {} +- name: resource + endpoint: + path: /resource + method: download + data_selector: XML + params: {} +- name: subscriber + endpoint: + path: /subscriber + method: download + data_selector: XML + params: {} +- name: media_server + endpoint: + path: /media_server + method: download + data_selector: XML + params: {} +- name: cdr + endpoint: + path: /CDR + method: POST + data_selector: records +- name: authenticated_endpoints + endpoint: + path: /api/authenticated_endpoints + method: GET + data_selector: records +- name: ha_redundancy_status + endpoint: + path: /api/ha_redundancy_status + method: GET + data_selector: records +- name: sip_latency_response + endpoint: + path: /api/sip_latency_response + method: GET + data_selector: records +- name: web_api_response + endpoint: + path: /api/web_api_response + method: GET + data_selector: records +- name: route + endpoint: + path: /route + method: download + data_selector: XML + params: {} +- name: routegroup + endpoint: + path: /routegroup + method: download + data_selector: XML + params: {} +- name: routetable + endpoint: + path: /routetable + method: download + data_selector: XML + params: {} +- name: resource + endpoint: + path: /resource + method: download + data_selector: XML + params: {} +- name: subscriber + endpoint: + path: /subscriber + method: download + data_selector: XML + params: {} +- name: media_server + endpoint: + path: /media_server + method: download + data_selector: XML + params: {} +- name: cdr + endpoint: + path: /CDR/ + method: GET + data_selector: records +- name: cdr_records + endpoint: + path: /cdr_records + method: GET + data_selector: records + params: {} +- name: route + endpoint: + path: /Routes/Routes + method: GET +- name: routegroup + endpoint: + path: /Routes/RouteGroups + method: GET +- name: routetable + endpoint: + path: /Routes/RouteTables + method: GET +- name: resource + endpoint: + path: /Resources/Resources + method: GET +- name: resourceblock + endpoint: + path: /Resources/BlockedResources + method: GET +- name: subscriber + endpoint: + path: /Resources/Registrar + method: GET +- name: digit_mapping + endpoint: + path: /DigitMapping/DigitMappings + method: GET +- name: digit_mapping_index + endpoint: + path: /DigitMapping/DigitMappingTables + method: GET +- name: serviceport + endpoint: + path: /ServicePorts/ServicePorts + method: GET +- name: virtualip + endpoint: + path: /ServicePorts/VirtualIP + method: GET +- name: cdr_trace + endpoint: + path: /LOG/cdr_trace.log + method: GET + data_selector: records + params: {} +- name: Carrier Tenant + endpoint: + path: /CarrierTenant + method: GET +- name: Customer Tenant + endpoint: + path: /CustomerTenant + method: GET +- name: route + endpoint: + path: /routes + method: GET +- name: routegroup + endpoint: + path: /routegroups + method: GET +- name: routetable + endpoint: + path: /routetables + method: GET +- name: resource + endpoint: + path: /resources + method: GET +- name: resourceblock + endpoint: + path: /blockedresources + method: GET +- name: subscriber + endpoint: + path: /registrar + method: GET +- name: digit_mapping + endpoint: + path: /digitmappings + method: GET +- name: digit_mapping_index + endpoint: + path: /digitmappingtables + method: GET +- name: serviceport + endpoint: + path: /serviceports + method: GET +- name: virtualip + endpoint: + path: /virtualip + method: GET +- name: route + endpoint: + path: /route + method: GET + data_selector: records +- name: routegroup + endpoint: + path: /routegroup + method: GET + data_selector: records +- name: routetable + endpoint: + path: /routetable + method: GET + data_selector: records +- name: resource + endpoint: + path: /resource + method: GET + data_selector: records +- name: subscriber + endpoint: + path: /subscriber + method: GET + data_selector: records +- name: Carrier Tenant + endpoint: + path: /api/carrierTenant + method: GET + data_selector: data +- name: Customer Tenant + endpoint: + path: /api/customerTenant + method: GET + data_selector: data +- name: route + endpoint: + path: /download/route + method: POST + data_selector: data + params: {} +- name: routegroup + endpoint: + path: /download/routegroup + method: POST + data_selector: data + params: {} +- name: subscriber + endpoint: + path: /download/subscriber + method: POST + data_selector: data + params: {} +- name: QDR + endpoint: + path: /query/detail/records + method: GET + data_selector: records + params: {} +- name: authorizedANI + endpoint: + path: /ROME/webresources/nss/download/authorizedANI + method: GET + params: + format: json +- name: authorizedANI + endpoint: + path: /ROME/webresources/nss/update/authorizedANI + method: POST + params: + format: csv +- name: authorizedANI + endpoint: + path: /ROME/webresources/nss/delete/authorizedANI + method: DELETE + params: + format: csv +- name: query_detail_records + endpoint: + path: /query/detail/records + method: GET + data_selector: records +- name: authorizedANI + endpoint: + path: /download/authorizedANI + method: GET + data_selector: response + params: {} +- name: authorizedANI + endpoint: + path: /update/authorizedANI + method: POST + data_selector: response + params: {} +- name: authorizedANI + endpoint: + path: /delete/authorizedANI + method: DELETE + data_selector: response + params: {} +- name: RCD PASSPorT + endpoint: + path: /api/rcd + method: GET + data_selector: records +- name: signing + endpoint: + path: /stir/v1/signing + method: POST + data_selector: signingResponse +- name: signing + endpoint: + path: /stir/v1/signing + method: POST + data_selector: signingResponse + params: {} +- name: verification + endpoint: + path: /stir/v1/verification + method: POST + data_selector: verificationResponse + params: {} +- name: rcd_passport + endpoint: + path: /api/rcd_passport + method: GET + data_selector: records +- name: signing + endpoint: + path: /stir/v1/signing + method: POST + data_selector: signingResponse +- name: signing + endpoint: + path: /stir/v1/signing + method: POST + data_selector: signingResponse +- name: verification + endpoint: + path: /stir/v1/verification + method: POST + data_selector: verificationResponse +- name: STI-PA Enrollment + endpoint: + path: /participate/tsps/ + method: GET +- name: certificate_monitor + endpoint: + path: /api/v1/monitor + method: POST + data_selector: data +- name: VM Sizing + endpoint: + path: /vm/sizing + method: GET + data_selector: records +- name: Deploying the EC2 Instance + endpoint: + path: /ec2/deploy + method: GET + data_selector: records +- name: BCID Confirmation + endpoint: + path: /stir/v1/signing + method: POST + data_selector: signingRequest +- name: certificate + endpoint: + path: /api/v1/certificate + method: POST + data_selector: data + params: {} +- name: csr + endpoint: + path: /api/v1/csr + method: POST + data_selector: data + params: {} +- name: SANSAY_STI_AS + endpoint: + path: /stir/v1/signing + method: POST + data_selector: signingResponse + params: {} +- name: Configuration Backups + endpoint: + path: /webresources/nss/download/systemConfiguration + method: GET + data_selector: systemConfiguration + params: {} +- name: Table Backup + endpoint: + path: /webresources/nss/replace/$table + method: POST + data_selector: tableBackup + params: + format: $filecontent +- name: SHAKEN Standards + endpoint: + path: /shaken/standards + method: GET + data_selector: standards + params: {} +- name: 3GPP Standards + endpoint: + path: /3gpp/standards + method: GET + data_selector: standards + params: {} +- name: IETF STIR RFCs + endpoint: + path: /ietf/stir/rfcs + method: GET + data_selector: rfcs + params: {} +- name: update_dno + endpoint: + path: /ROME/webresources/nss/update/authorizedANI + method: POST + data_selector: response + params: + format: csv +- name: certificate_monitor + endpoint: + path: /certificate/monitor + method: GET + data_selector: records +- name: heartbeat_monitor + endpoint: + path: /cronitor/heartbeat + method: POST + data_selector: records +- name: signing + endpoint: + path: /stir/v1/signing + method: POST + data_selector: signingResponse.identity +- name: signing + endpoint: + path: /stir/v1/signing + method: POST + data_selector: signingResponse.identity +- name: Dial Translation Plan + endpoint: + path: /DialTranslationPlan + method: POST + data_selector: results + params: {} +- name: Call Routing + endpoint: + path: /CallRouting + method: POST + data_selector: results + params: {} +- name: NSS Management API + endpoint: + path: /t/y4hls8d/nss-management-via-rest-api#examples + method: GET + data_selector: '' + params: {} +- name: STI-AS + endpoint: + path: /stir/v1/signing + method: POST + data_selector: signingResponse + params: {} +- name: SHAKEN Echo Number + endpoint: + path: /test-shaken.sansay.cloud/ + method: GET +- name: authorizedANI + endpoint: + path: /replace/authorizedANI + method: POST + data_selector: entries +- name: switchProxy + endpoint: + path: /replace/switchProxy + method: POST + data_selector: entries +- name: smcDataFile + endpoint: + path: /replace/smcDataFile + method: POST + data_selector: entries +- name: stiKeystore + endpoint: + path: /replace/stiKeystore + method: POST + data_selector: entries +- name: stiSwitchKeyMap + endpoint: + path: /replace/stiSwitchKeyMap + method: POST + data_selector: entries +- name: verifyDNIS + endpoint: + path: /replace/verifyDNIS + method: POST + data_selector: entries +- name: dno_update + endpoint: + path: /webresources/nss/update/authorizedANI + method: POST + data_selector: '' + params: + format: csv +- name: signingRequest + endpoint: + path: /stir/v1/signing + method: POST + data_selector: signingResponse.identity +- name: acme_client + endpoint: + path: /test + method: POST + data_selector: certificate + params: {} +- name: signing + endpoint: + path: /stir/v1/signing + method: POST + data_selector: signingResponse.identity +- name: STI + endpoint: + path: /sti + method: GET + data_selector: records + params: {} +- name: QDR + endpoint: + path: /qdr + method: GET + data_selector: records + params: {} +- name: verstat_results + endpoint: + path: /api/verstat/results + method: GET + data_selector: results +- name: STI-AS + endpoint: + path: /sti-as + method: INVITE + data_selector: SIP/2.0 302 Moved Temporarily + params: {} +- name: STI-VS + endpoint: + path: /sti-vs + method: INVITE + data_selector: SIP/2.0 302 Moved Temporarily + params: {} +- name: STI Record + endpoint: + path: /sti + method: GET + data_selector: records +- name: QDR Record + endpoint: + path: /qdr + method: GET + data_selector: records +- name: STI Certificate + endpoint: + path: /services/data/vXX.X/sobjects/STICertificate + method: POST + data_selector: records +- name: verification + endpoint: + path: /stir/v1/verification + method: POST + data_selector: verificationResponse + params: {} +- name: SHAKEN Echo Number Test + endpoint: + path: /test-shaken.sansay.cloud/ + method: GET + data_selector: results + params: {} +- name: verification + endpoint: + path: /stir/v1/verification + method: POST + data_selector: result + params: {} +- name: certificate_renewal + endpoint: + path: /order + method: POST + data_selector: certificates +- name: STI + endpoint: + path: /sti + method: GET + data_selector: records +- name: QDR + endpoint: + path: /qdr + method: GET + data_selector: records +- name: STI-AS + endpoint: + path: /sti-as + method: INVITE + data_selector: '' + params: {} +- name: STI-VS + endpoint: + path: /sti-vs + method: INVITE + data_selector: '' + params: {} +- name: STI Record + endpoint: + path: /sti/record + method: GET + data_selector: records +- name: QDR Record + endpoint: + path: /qdr/record + method: GET + data_selector: records +- name: verification + endpoint: + path: /stir/v1/verification + method: POST + data_selector: verificationResponse +- name: verification + endpoint: + path: /stir/v1/verification + method: POST + data_selector: result + params: {} +notes: +- API authentication is done on each request using basic authentication. +- API authentication is done on each request using basic authentication. User has + to input a valid GUI/API username/password and embed that in HTTPS basic authentication + header. +- The VSXi REST API is an evolution of the VSXi legacy SOAP/Web Services API. +- Downloads hashed (XXXX) password for security purposes. +- Numerous trouble tickets leading to session timeouts or disconnections often stem + from SIP routing errors. +- Version 10.7.1.x introduced support for SSLKeyLog. +- Faxing is an application that relies on a variety of parameters and can sometimes + become tricky to troubleshoot. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Requires a valid SHAKEN certificate for authentication. +- NSS supports the automation of certificate renewals as defined in ATIS-1000080. +- NTP synchronization issues may affect data integrity +- Syntax issues can lead to invalid signatures +- This document provides general guidelines to troubleshoot calls rejected with 'Not + Authorized' release cause. +- The Certificate Revocation List and Trusted CA List are dynamic systems that protect + the integrity of the ecosystem. +- While RFC3325 became a standard in 2003, to this date it is not uncommon to see + INVITEs with a Remote-Party-ID SIP header (RPID). +- One more thing is that RFC3325 suggests, it is recommended the the P-Asserted-Identity + header fields SHOULT NOT be removed unless local private policies prevent it. +- The implementation obligation applies to all providers that originate calls and + have control over the network infrastructure necessary to implement STIR/SHAKEN. +- All Originating Service Providers need to obtain a STIR/SHAKEN certificate. +- 'Always remember CRaVe: Contact, Record-Route, and Via headers.' +- SSLKeylog allows you to log encryption keys used in TLS connections, making it easier + to troubleshoot encrypted traffic. +- The keys can then be used to decrypt the encrypted data captured in tools like Wireshark. +- Support for sngrep has been added in version VSXi-10.5.1.357+ +- Session Timers are a useful feature, however, a significant amount of devices do + not support it or are non-conforming with respect to the RFC. If session timer is + enabled towards non-conforming devices calls will get disconnected around the negotiated + session refresh interval. VSXi CDRs will print a 'Refresh Failure' release cause + when a call is disconnected due to a session refresh failure. +- Some objects may return nulls in deeply nested fields +- CDRs provide comprehensive information about the outcome of a call. +- Faxes are transmitted over IP using T.38 or G.711-pass-through. +- Around 8% failure rate or below is considered normal for faxing over SIP trunks. +- The VSXi has several call state timeouts that can be configured on a per-resource + basis. +- Despite the Protocol Release Cause Code not being a 200 OK, this call is considered + a billable call. +- The internal Release Cause Code (0001) should be used to track all completed calls. +- 'Exceptions: The following scenarios will fail trace decryption with sslkey_sip.log: + TLS handshake messages happened before the sslkey_sip.log entries.' +- The SIP Stats page reloads data every 15 minutes. +- Data older than 24 hours can be accessed by choosing a date from the 'Specific Date' + field. +- This is an advanced document for advanced users able to compile open source software + in a Linux operating system and knowledge of packet capture analysis, SIP/SDP and + SRTP. +- Sansay Support does not support any issues setting up this kind of environment or + problems following this procedure. +- The VSXi SIP Session Timers setting is available at the SIP Profile level. +- The provided procedure is specific to Wireshark. Other appliances are also able + to import the certificate key and decrypt SIP messages in a similar way. +- It is recommended to be as specific as possible in the pattern to reduce the total + log printed. +- The T.38 protocol is sensitive to network performance factors such as latency, jitter + and packet loss. +- API parameters include set and ID for fetching IPs. +- CSV file can be updated via REST API. +- No Ring Timeout default value is 30 seconds. +- Ring No Answer Timeout typically set between 30 and 60 seconds. +- INVITE response timeout typically 4 seconds. +- Due to its extensive capabilities, it is important to exercise caution when utilizing + SMC. +- Thorough debugging and testing should be conducted before implementing SMC in a + production environment. +- Unauthorized calls are generated by unknown sources sending traffic, or known sources + sending traffic but failing due to a configuration error. +- Data older than 24 hours can be accessed by choosing a date from the Specific Date + field. +- This is an advanced document for advanced users able to compile open source software + in a Linux operating system and knowledge of packet capture analysis, SIP/SDP and + SRTP. Sansay Support does not support any issues setting up this kind of environment + or problems following this procedure. +- TLS certificates must contain the fully qualified domain name (FQDN) of the SBC + as the common name (CN), be 2,048 bits in size, and use RSA or ECDSA encryption. +- Wildcard certificates are not supported. +- An encrypted certificate containing the certificate and private key is provided + in .p12 format. +- Your system must be running VSXi-9.5.3.89 or later. +- Requires setup of customer-specific Trunk ID with SIP credentials +- The BADIPS.csv SMC Data File can be updated via VSXi's REST API. +- Uses TLS for encryption. +- DNIS must be sent in E164 format. +- SIP registration is required if a customer's PBX IP address is not static. +- It is best practice to keep Trunk/Resource, Route Tables and Digit Mapping Table + IDs the same. +- API requires basic authentication with username and password. +- Each resource can enable or disable Radius Authorization or Radius Accounting independently. +- These scripts are written in Node.js. +- These scripts are supported as-is and provided as a reference if you want to make + modifications. +- Basic authentication is used with username and password. +- Don't do anything if DB connection failed +- The GUI (and API) will only provide web access (not SSH/SNMP/SFTP and Web). +- Use Push to Stand-by button for HA systems when you are done adding trusted hosts. +- CDR files will be kept on the system for at least 360 hours. +- CDR files older than 360 hours will be deleted automatically. +- Format version number of records to follow +- All CDR files will be kept on the system for at least 360 hours. +- CDR files which are older than 360 hours will be deleted by the system automatically + in order to save disk space. +- The CDR file is generated in a configured time interval. +- The time interval can be configured from 60 seconds to 99,999 seconds. +- Minimal sanity check implemented in the script. +- Minimal sanity check for command line arguments. +- 'TLS Certificate to support this multitenant implementation has: CN: *.teams.sansay.support + SAN: *.teams.sansay.support, teams.sansay.support' +- 'You can make a test call from your mobile or desk phone to: +18582056242.' +- Data can be uploaded or downloaded in XML format. +- Maximum size of uploaded files is limited to 5000 entries for some tables. +- Most current ROME SOAP / Web Services API client +- Supports Microsoft's Teams Direct Routing for SIP Trunking services. +- 'TLS Certificate must have CN: *.teams.sansay.support and SAN: *.teams.sansay.support, + teams.sansay.support.' +- NSS is managed via a web UI and through APIs. +- Uses user/password authentication for access. +- Automated certificate renewals are recommended when the customer prefers shorter + lifetime certificate renewals. +- The recommended version for ACME certificate renewals is NSS-5.3.592.47. +- Both web and API access is done through user / password authentication. +- Automated certificates are recommended for renewals under 60 days. +- The Express Proxy is an optional software component. +- Call signing happens on any 'outbound call' made by your subscriber(s). +- Service Providers must deploy the STIR/SHAKEN framework for compliance with the + TRACED Act. +- Sansay is an iconectiv approved vendor which means Service Providers using Sansay's + STI solutions can get directly on-boarded to the STI-PA's production environment + bypassing the staging environment. +- Uses OAuth2 with refresh token for authentication. +- Example response contains identity information in the signingResponse object. +- New diversion parameter has been added for STI-AS requests. +- STI-VS support Identity array. +- Uses API credentials to access STI-CA portal. +- RCD is delivered as an additional Identity header +- SHAKEN PASSPorTs can be extended to support rich call data by adding an 'rcd claim' + within the passport +- Obtain your SHAKEN certificate from Sansay STI-CA. +- Install your SHAKEN key to start signing calls. +- AWS AMI in your AMI Private images repository, which will be shared with you by + Sansay Support. +- The AMI will only show up in regions Sansay shared the AMI with you. +- The DIV PASSporT is an adaptation of the SIP Diversion header to the STIR/SHAKEN + framework. +- Approval from STI-PA required. +- STI-PA API User creation needed for SPC token acquisition. +- The vCPU count will depend on the system CPU single thread performance. +- Storage requirements will vary based on record retention policies and needs. +- Creating an API user is time sensitive and requires 2FA (Two Factor Authentication) + approval. +- Users will receive an introductory e-mail to reset their passwords. +- Cronitor integration requires setup of monitor for tracking days remaining. +- Obtaining a certificate via Sansay's CA web portal takes less than five minutes + and it is done in three easy steps. +- Every STIR/SHAKEN certificate requires obtaining an SPC token which serves as a + proof that your organization is eligible to obtain a certificate and it is in good + standing with the STIR/SHAKEN ecosystem. +- The enablement configuration is completed by Sansay Support to ensure connectivity + to the STI-PA, STI-CA in addition to verifying API login for the certificate order + to be successful. +- This document assumes that you are already familiar with AWS and that your AWS account + has already been created. +- NSS integrates with BCID Call Delivery Platform that helps correlate call signing + and call delivery activity amongst participating Service Providers. +- Core Module must be v41.2.2 or higher. +- Automated certificate renewal is accomplished by whitelisting the Service Provider's + STI-AS infrastructure. +- A certificate is hosted by Sansay's geo-redundant and highly available STI-CR. +- If using TLS, ensure the necessary configuration is done. +- 'This configuration works for ANI/DNIS formatted as: ''+1NXXNXXXXXX'', ''1NXXNXXXXXX'' + or ''NXXNXXXXXX''.' +- Using the SP Admin User ID created on the registration form as login ID and the + password provided in the email, fill in the login fields and click the Log In button. +- Currently, full backup restoration is only supported via the GUI. +- The 'replace' action is recommended when restoring a table backup file. +- DNO entries follow the same structure of STI-AS policies. +- Monitor the days remaining for your STIR/SHAKEN certificate using Cronitor. +- Replace your-nss.sansay.com with your actual NSS URL. +- Every STIR/SHAKEN certificate requires obtaining an SPC token which serves as a + proof that your organization is eligible to obtain a certificate. +- The enablement configuration is completed by Sansay Support to ensure connectivity + to the STI-PA, STI-CA. +- Script arguments are orig_tn and dest_tn as follows 'get_shaken.sh 8587542200 8587542211' +- Requires setup of NSS URL +- NSS checks if the caller matches vetted data in BCID. +- NSS integrates with BCID Call Delivery Platform. +- Import the Dial Translation Plan file FIRST and then the Dial Rules file next. +- Import the route skeleton file FIRST and then the route connections file next. +- Uses SBC (originating switch/IP), OTG (originating trunk group), and ANI as the + elements that determine the attestation level of a call. +- '''any'' is a valid wildcard when there''s no specific, SBC, OTG, or ANI to match.' +- Partial ANI matching (e.g. 85875422 will cover 8587542200 through 2299) is supported + in addition to full digit match (8587542200). +- If using TLS, ensure correct SSL configuration is set. +- 'ANI/DNIS must be formatted as: ''+1NXXNXXXXXX'', ''1NXXNXXXXXX'' or ''NXXNXXXXXX''.' +- Manual certificates issuance is only recommended for longer duration certificates + (45-365 days). +- STIR/SHAKEN is sensitive to the specific path a call takes. +- Transit providers may drop STIR/SHAKEN signatures and re-sign it. +- The 'replace' action deletes existing entries and inserts entries from the uploaded + file. +- User-friendly SHAKEN PASSporT presentation. +- Automatic header and payload validation. +- Certificate details, such as expiry date and service provider code. +- Automatic conversion of iat to an easy-to-read date timestamp. +- Extraction of certificate URL. +- Raw token output. +- Ability to share decoded results via PNG export. +- Signature and certificate validation. +- Please be extra cautious when using the Replace operation. +- An effective approach is to verify how is your call is being handled outside of + your network. +- The SIP Identity header adds approximately 500 bytes to the initial INVITE at call + setup time. +- Test in STAGING mode before sending queries to production. +- QDRs can be downloaded via SSH, SCP and SFTP. +- Only whitelisted IPs will be able to establish a SSH/SFTP connection. +- The REST implementation is described in another article. +- Devices that support verstat only need to receive it without any additional treatment. +- The From otg and qtype are optional parameters. +- For STI-VS, From ttg stands for terminating trunk group. +- Uses SBC, OTG, and ANI as the elements that determine the attestation level of a + call. +- QDRs are accessed using the 'qdr' username. +- Obtaining a certificate via Sansay's CA web portal takes less than five minutes. +- Manual certificates issuance is recommended for longer duration certificates (45-365 + days). +- If Content-Type is not application/json, requests will be rejected with 415 Unsupported + Media type +- If Accept is not specified, will be default handled as application/json +- The Sansay Identity Header Decoder simplifies the analysis of STIR/SHAKEN encoded + Identity headers. +- This article covers general problem troubleshooting related to STIR/SHAKEN signatures. +- Make sure to test in STAGING mode before sending queries to production. +- 'NSS generates two different files per record: STI and QDR.' +- QDRs can be downloaded via SSH, SCP or SFTP. +- Unauthorized calls are generated by unknown sources sending traffic +- NSS supports standard SIP INVITE/302 redirect in addition to REST. +- QDRs can be downloaded via SSH, SCP, and SFTP. +- It is straightforward to add support for STIR/SHAKEN in Asterisk using Sansay's + NSS. +- No recent posts +errors: +- Omitting fields will result in an error. +- 200 OK +- 300 Finished With Errors +- '400 fail - invalid table specified: + requested table name.' +- '401 Fail - User Not Authorized: Invalid username or no read/write permissions.' +- 402 Fail - This action is not allowed while system is in Load-Balance Slave mode +- 400 fail - invalid table specified +- '401 Fail - User Not Authorized: Invalid username or no read/write permissions' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Check credentials or token expiration.' +- 'INVALID_SIGNATURE: Check private key and certificate mismatch' +- 'PACKET_FRAGMENTATION: Ensure packets are not fragmented' +- 'DNS_RESOLUTION: Verify DNS settings' +- 'Not Authorized: Recheck OAuth scopes or token expiration' +- '504 INVITE Response Timeout: Termination Stack Cause = 504, INVITE Response Timeout' +- '504 SIP Resend Timeout: Origination Stack Cause = 504, SIP Resend Timeout' +- '408 Refresh Failure: Origination Stack Cause = 408, Refresh Failure' +- '503 Service Unavailable: No Ring Timeout' +- '408 Request Timeout: Ring No Answer Timeout' +- '504 Server Timeout: INVITE Response Timeout' +- Maximum Duration Exceeded +- '999: Unauthorized call due to unknown sources or configuration error' +- 'Dialog Match Error: These are triggered when requests or responses do not match + existing SIP dialogs.' +- 'Protocol Error: If an IP address always shows these errors it means that the far-end + device may be misconfigured or have an interoperability issue.' +- '408: Refresh Failure' +- '422: Session Timer too small' +- '504: INVITE Response Timeout' +- '999: EAM Routing Timeout' +- No T.38 re-Invite initiated +- Negotiation/training issues +- Failures in image transmission +- No IP addresses found in the response. +- Less than max entries, ending loop. +- SIP/2.0 503 Service Unavailable +- SIP/2.0 408 Request Timeout +- SIP/2.0 504 Server Timeout +- '999: The system will ignore the attempt(s) when the request does not arrive at + a valid Service Port.' +- 'Dialog Match Error: Triggered when requests or responses do not match existing + SIP dialogs.' +- 'Protocol Error: Indicates far-end device misconfiguration or interoperability issues.' +- '401 Unauthorized: Check user credentials' +- '401 Fail - User Not Authorized: invalid user password' +- '401 Unauthorized: Check username and password.' +- '400 Bad Request: Validate command syntax and parameters.' +- '401 Fail - User Not Authorized: invalid user password.' +- '401 Unauthorized: Recheck username or password' +- '404 Not Found: Ensure the endpoint path is correct' +- '500 Internal Server Error: Check API service status' +- I need one argument +- I don't know what to do with more than 3 arguments +- '404 Not Found: Check the monitor ID and URL.' +- '403 Forbidden: Ensure API key is valid.' +- '429 Too Many Requests: Throttle API calls or reduce frequency' +- '200: Successful request' +- '400: Bad request — check the request format' +- '500: Internal server error — contact support' +- Any variables starting with $ will need to be replaced. +- '200: Successful Response' +- '4xx: Client Error' +- '5xx: Server Error' +- 'SIP 437 Unsupported Credential: Check for DNS resolution issues.' +- '401 Unauthorized: Check API credentials.' +- '400 Bad Request: Check request parameters.' +- '400 with service exception: Missing mandatory parameters in the verification request' +- '400 with service exception: Received invalid parameters' +- '403: Stale Date' +- Validation Pass +- Validation Failed +- No Validation +- '438: Invalid Identity Header' +- '436: Bad identity info' +- 'SIP 437 Unsupported Credential: Check DNS resolution issues.' +- '401 Unauthorized: Recheck API user or password.' +- '401 Unauthorized: Recheck SSH username or password' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity.' +- '400 with service exception: Missing mandatory parameters in the verification request + (“from”, “to”, “time”, “identity”).' +- '400 with service exception: Received invalid parameters (invalid “from”/“to” tn + format, “time” value).' +- '400 with service exception: Missing mandatory parameters in the verification request + (from, to, time, identity)' +- '400 with service exception: Received invalid parameters (invalid from/to tn format, + time value)' +- '200: Received ‘iat’ value is not fresh.' +- '200: Identity header in compact form instead of required by SHAKEN spec full form.' +- '200: Identity header is received with ‘ppt’ parameter value that is not ‘shaken’.' +- '200: Missing ‘info’ parameter in the ‘identity’.' +- '200: Invalid ‘info’ URI.' +- '200: Failed to dereference ‘info’ URI.' +- '200: Missing ‘%1’ claim in the PASSporT header.' +- '200: ‘x5u’ from PASSporT header doesn’t match the ‘info’ parameter of identity + header value.' +- '200: ‘typ’ from PASSporT header is not ‘passport’.' +- '200: ‘alg‘ from PASSporT header is not ‘ES256’.' +- '200: ‘ppt‘ from PASSporT header is not ‘shaken’.' +- '200: Missing ‘%1’ mandatory claim in PASSporT payload.' +- '200: ‘iat’ from PASSporT payload is not fresh.' +- '200: ‘%1’ claim from PASSporT payload doesn’t match the received in the verification + request claim.' +- '200: Failed to authenticate CA.' +- '200: Signature validation failed.' +- '200: ‘attest’ claim in PASSporT payload is not valid.' +auth_info: + mentioned_objects: + - RCD PASSPorT + - SHAKEN PASSPorT +client: + base_url: https://nss.sansay.com:3334 + headers: + Content-Type: application/json + Accept: application/json + X-RequestID: '12345678' +source_metadata: null diff --git a/scinote/scinote-docs.md b/scinote/scinote-docs.md new file mode 100644 index 00000000..5cbb0f16 --- /dev/null +++ b/scinote/scinote-docs.md @@ -0,0 +1,154 @@ +In this guide, we'll set up a complete SciNote data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def scinote_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https:///api/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + users,,items,,tasks + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='scinote_migrations_pipeline', + destination='duckdb', + dataset_name='scinote_migrations_data', + ) + # Load the data + load_info = pipeline.run(scinote_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from scinote_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Users: Manage user accounts and their roles. +- Items: Operations related to inventory items. +- Tasks: Manage tasks and their assignments. +- Teams: Operations related to teams and their members. +- Workflows: Manage workflows for experiments and tasks. +- Tables: Manage tables related to experimental data. + +You will then debug the SciNote pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with SciNote support. + ```shell + dlt init dlthub:scinote_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for SciNote API, as specified in @scinote_migrations-docs.yaml + Start with endpoints users and and skip incremental loading for now. + Place the code in scinote_migrations_pipeline.py and name the pipeline scinote_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python scinote_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The SciNote API requires authentication using OAuth2 protocol. It utilizes Bearer tokens for authorization, which must be included in the header of all API requests. + + To get the appropriate API keys, please visit the original source at https://www.scinote.net/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python scinote_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline scinote_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset scinote_migrations_data + The duckdb destination used duckdb:/scinote_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline scinote_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("scinote_migrations_pipeline").dataset() + # get ser table as Pandas frame + data.ser.df().head() + ``` + +## Running into errors? + +API key authentication must be enabled on your instance. Bearer tokens expire and must be refreshed periodically. Ensure that all required IDs are provided in the URL for proper API operation. Some endpoints may have deprecated versions, so always refer to the latest documentation for usage. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/scinote/scinote-docs.yaml b/scinote/scinote-docs.yaml new file mode 100644 index 00000000..cecc7f62 --- /dev/null +++ b/scinote/scinote-docs.yaml @@ -0,0 +1,187240 @@ +resources: +- name: all_teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /api/v1/teams/{id} + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results + method: GET + data_selector: data + params: {} +- name: all_teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /api/v1/teams/1 + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: team + endpoint: + path: /teams + method: GET + params: + ID: The ID of the team to retrieve +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: team + endpoint: + path: /teams/{ID} + method: GET + data_selector: team + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET +- name: inventories + endpoint: + path: //inventories + method: GET +- name: columns + endpoint: + path: //inventories//columns + method: GET +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: + filter[archived]: +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: team + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data.attributes + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: specific_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: Inventory Item Child Relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: Inventory Item Parent Relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH +- name: delete_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items/1 + method: DELETE +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: create_user_identity + endpoint: + path: /users//identities + method: POST + data_selector: data + params: {} +- name: update_user_identity + endpoint: + path: /users//identities/ + method: PATCH + data_selector: data + params: {} +- name: delete_user_identity + endpoint: + path: /users//identities/ + method: DELETE + data_selector: '' + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: get_attachments_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_attachments_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: create_user_identity + endpoint: + path: /users//identities + method: POST + data_selector: data + params: {} +- name: update_user_identity + endpoint: + path: /users//identities/ + method: PATCH + data_selector: data + params: {} +- name: delete_user_identity + endpoint: + path: /users//identities/ + method: DELETE + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /api/v1/users//identities + method: GET + data_selector: data +- name: specific_user_identity + endpoint: + path: /api/v1/users//identities/ + method: GET + data_selector: data +- name: create_user_identity + endpoint: + path: /api/v1/users//identities + method: POST + data_selector: data +- name: update_user_identity + endpoint: + path: /api/v1/users//identities/ + method: PATCH + data_selector: data +- name: delete_user_identity + endpoint: + path: /api/v1/users//identities/ + method: DELETE +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: {} +- name: create_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE + data_selector: null + params: {} +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: create_user_identity + endpoint: + path: /users//identities + method: POST + data_selector: data + params: {} +- name: update_user_identity + endpoint: + path: /users//identities/ + method: PATCH + data_selector: data + params: {} +- name: delete_user_identity + endpoint: + path: /users//identities/ + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/form_responses + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: step_form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: step_form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: Inventory Item Child Relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET +- name: Inventory Item Parent Relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET +- name: Cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: create_user_identity + endpoint: + path: /users//identities + method: POST + data_selector: data + params: {} +- name: update_user_identity + endpoint: + path: /users//identities/ + method: PATCH + data_selector: data + params: {} +- name: delete_user_identity + endpoint: + path: /users//identities/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data +- name: create_user_identity + endpoint: + path: /users//identities + method: POST + data_selector: data +- name: update_user_identity + endpoint: + path: /users//identities/ + method: PATCH + data_selector: data +- name: delete_user_identity + endpoint: + path: /users//identities/ + method: DELETE + data_selector: null +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts/{ID} + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: step_texts + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts/{ID} + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data +- name: create_list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data +- name: update_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: PATCH + data_selector: data +- name: delete_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: DELETE +- name: get_status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: create_status_item + endpoint: + path: /teams//inventories//columns//status_items + method: POST + data_selector: data +- name: update_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: PATCH + data_selector: data +- name: delete_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: DELETE +- name: stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: specific_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: get_result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities/ + method: PATCH + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data + params: {} +- name: user_identity + endpoint: + path: /users/{USER_ID}/identities/{ID} + method: GET + data_selector: data + params: {} +- name: create_user_identity + endpoint: + path: /users/{USER_ID}/identities + method: POST + data_selector: data + params: {} +- name: update_user_identity + endpoint: + path: /users/{USER_ID}/identities/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_user_identity + endpoint: + path: /users/{USER_ID}/identities/{ID} + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /api/v1/users//identities/ + method: PATCH +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data +- name: create_user_identity + endpoint: + path: /users//identities + method: POST + data_selector: data +- name: update_user_identity + endpoint: + path: /users//identities/ + method: PATCH + data_selector: data +- name: delete_user_identity + endpoint: + path: /users//identities/ + method: DELETE + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_items + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: DELETE + data_selector: '' + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: data + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: create_user_identity + endpoint: + path: /users//identities + method: POST + data_selector: data + params: {} +- name: update_user_identity + endpoint: + path: /users//identities/ + method: PATCH + data_selector: data + params: {} +- name: delete_user_identity + endpoint: + path: /users//identities/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: delete_inventory_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: delete_user_identity + endpoint: + path: /api/v1/users//identities/ + method: DELETE +- name: reorder_step_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET +- name: create_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data +- name: create_user_identity + endpoint: + path: /users//identities + method: POST + data_selector: data +- name: update_user_identity + endpoint: + path: /users//identities/ + method: PATCH + data_selector: data +- name: delete_user_identity + endpoint: + path: /users//identities/ + method: DELETE + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: create_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: get_specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: get_specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: delete_user_identity + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE +- name: get_step_texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts + method: GET +- name: get_step_text + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts/{ID} + method: GET +- name: create_step_text + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts + method: POST +- name: update_step_text + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts/{ID} + method: PATCH +- name: delete_step_text + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts/{ID} + method: DELETE +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: '' + params: {} +- name: get_reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: tasks_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET +- name: inventories + endpoint: + path: /teams//inventories + method: GET +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: get_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + params: + include: + filter[archived]: +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: create_project + endpoint: + path: /teams//projects + method: POST + data_selector: data + params: {} +- name: update_project + endpoint: + path: /teams//projects/ + method: PATCH + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/users/{USER_ID} + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignment/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activity + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: get_attachments_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: POST + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: step_text + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: result_texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: workflow_statuses + endpoint: + path: /workflows/WORKFLOW_ID/statuses + method: GET +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: tables_get + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table_get + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: table_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables + method: POST + data_selector: data + params: {} +- name: table_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: table_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams/{TEAM_ID}/users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /api/v1/teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /{TEAM_ID}/protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /{TEAM_ID}/inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_cells + endpoint: + path: /v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data +- name: project_user_assignment + endpoint: + path: /api/v1/teams//projects//users/ + method: GET + data_selector: data +- name: create_project_user_assignment + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data +- name: update_project_user_assignment + endpoint: + path: /api/v1/teams//projects//users/ + method: PATCH + data_selector: data +- name: delete_project_user_assignment + endpoint: + path: /api/v1/teams//projects//users/ + method: DELETE + data_selector: data +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: data + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data + params: {} +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: Inventory Item Child Relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET +- name: Inventory Item Parent Relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: + filter[metadata][status]: processing +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: get_task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_user_assignment + endpoint: + path: /api/v1/teams//projects//users/ + method: GET + data_selector: data + params: {} +- name: create_project_user_assignment + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: update_project_user_assignment + endpoint: + path: /api/v1/teams//projects//users/ + method: PATCH + data_selector: data + params: {} +- name: delete_project_user_assignment + endpoint: + path: /api/v1/teams//projects//users/ + method: DELETE + data_selector: data + params: {} +- name: get_project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: get_project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: get_project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users/{USER_ASSIGNMENT_ID} + method: GET + data_selector: data +- name: create_project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data +- name: update_project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users/{USER_ASSIGNMENT_ID} + method: PATCH + data_selector: data +- name: delete_project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users/{USER_ASSIGNMENT_ID} + method: DELETE + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data +- name: update_task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data +- name: get_task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: create_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data +- name: remove_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: data +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET +- name: get_step_text_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET +- name: create_step_text_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: POST +- name: update_step_text_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: PATCH +- name: delete_step_text_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: DELETE +- name: get_step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET +- name: inventories + endpoint: + path: /inventories + method: GET +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET +- name: users + endpoint: + path: /users + method: GET +- name: user_identities + endpoint: + path: /users//identities + method: GET +- name: user_roles + endpoint: + path: /user_roles + method: GET +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data +- name: connections + endpoint: + path: /connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /tasks + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: Reorder Step Elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data +- name: Reorder Steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data +- name: Get Steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data +- name: Get Step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data +- name: Create Step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data +- name: Update Step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data +- name: Delete Step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: get_project_user + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data +- name: create_list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data +- name: update_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: PATCH + data_selector: data +- name: delete_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: DELETE + data_selector: data +- name: get_status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: create_status_item + endpoint: + path: /teams//inventories//columns//status_items + method: POST + data_selector: data +- name: update_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: PATCH + data_selector: data +- name: delete_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: DELETE + data_selector: data +- name: get_checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: DELETE + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /teams//projects//users/ + method: PATCH + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users/{USER_ASSIGMENT_ID} + method: GET +- name: create_project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST +- name: update_project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users/{USER_ASSIGMENT_ID} + method: PATCH +- name: delete_project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users/{USER_ASSIGMENT_ID} + method: DELETE +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: user_assignment + endpoint: + path: /teams//projects//users/ + method: PATCH + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: retrieve_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: stock_unit_items + endpoint: + path: /inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /inventories//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: checklists_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: '' + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: delete_inventory_stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: delete_user_assignment + endpoint: + path: /teams//projects//users/ + method: DELETE +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: users_in_team + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects_in_team + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_user_assignment + endpoint: + path: /teams//projects//users/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: Delete Project User Assignment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: Get step texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: Get step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: Create step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: Update step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: Delete step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: delete_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_project_activities + endpoint: + path: /api/v1/teams//inventories//columns//list_items/ + method: GET + data_selector: data + params: {} +- name: create_list_item + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: POST + data_selector: data + params: {} +- name: update_list_item + endpoint: + path: /api/v1/teams//inventories//columns//list_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_list_item + endpoint: + path: /api/v1/teams//inventories//columns//list_items/ + method: DELETE + data_selector: null + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_comment + endpoint: + path: /api/v1/teams//projects//comments/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /api/v1/users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_comment + endpoint: + path: /api/v1/teams//projects//comments/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- endpoint: + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve comment from + COMMENT_ID: The ID of the comment to retrieve +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_comment + endpoint: + path: /api/v1/teams//projects//comments/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + TASK_ID: The ID of the task to retrieve protocol from +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders/ + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: get_project_comment + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments/{COMMENT_ID} + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /{TEAM_ID}/protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /{TEAM_ID}/inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + params: + TEAM_ID: The ID of the team to retrieve project folders from + ID: The ID of the project folder to retrieve +- name: team + endpoint: + path: /teams + method: GET + data_selector: data +- name: user + endpoint: + path: /users + method: GET + data_selector: data +- name: user_identity + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data +- name: user_role + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiment + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: retrieve_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: get_list_items + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data +- name: create_list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data +- name: update_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: PATCH + data_selector: data +- name: delete_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: DELETE + data_selector: data +- name: get_status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: create_status_item + endpoint: + path: /teams//inventories//columns//status_items + method: POST + data_selector: data +- name: update_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: PATCH + data_selector: data +- name: delete_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: DELETE + data_selector: data +- name: get_checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: DELETE + data_selector: data +- name: project_folder + endpoint: + params: + TEAM_ID: The ID of the team to retrieve project folders from + ID: The ID of the project folder to retrieve +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: project_folder + endpoint: + path: /teams//project_folders/ + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /tables + method: POST + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: experiments + endpoint: + path: /teams/{TEAM_ID}/projects/{ID}/experiments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders/ + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: experiment_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: + include: comments +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + TASK_ID: The ID of the task to retrieve protocol from +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve step from + STEP_ID: The ID of the step to retrieve checklists from +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: get_results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: + include: comments +- name: get_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: + include: comments +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: + filter[archived]: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: experiments + endpoint: + path: /teams/1/projects/1/experiments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams//steps//reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams//protocols//reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: get_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: get_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: null + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: get_result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: get_specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: null + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: '' + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: '' + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: Inventory Item Child Relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: Inventory Item Parent Relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: Get Inventory Cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: 'null' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: tasks_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: tasks_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/users + method: GET +- name: task_user + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/users/{USER_ID} + method: GET +- name: task_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/activities + method: GET +- name: task_tags + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/tags + method: GET +- name: task_inventory_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/items + method: GET +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: experiments + endpoint: + params: + filter[metadata]: JSON object encoded in the query string +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{TASK_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories/{inventory_id}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{inventory_id}/columns/{column_id}/list_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: delete_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams/1/projects + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments/ + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: task_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: specific_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments/ + method: PATCH + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE +- name: result_texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: Get Experiment User Assignments + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: Get Cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: Create Cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: Update Cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: Delete Cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: Get Workflows + endpoint: + path: /workflows + method: GET +- name: Get Workflow + endpoint: + path: /workflows/ + method: GET +- name: Get Workflow statuses + endpoint: + path: /workflows//statuses + method: GET +- name: cells + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/items/{ITEM_ID}/cells + method: GET + data_selector: data + params: {} +- name: experiment_users_assignments + endpoint: + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve user from + EXPERIMENT_ID: The ID of the experiment to retrieve user from + USER_ASSIGNMENT_ID: The ID of the user assignment to retrieve + INCLUDES: can include `user`, `user_roles`, and `assignable` (on this endpoint + assignable is an experiment) +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: experiment_users_assignments + endpoint: + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve user assignment from + EXPERIMENT_ID: The ID of the experiment to retrieve user from + USER_ASSIGNMENT_ID: The ID of the user assignment +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data +- name: user_assignment + endpoint: + path: /teams//projects//experiments//user_assignments/ + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: update_task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data +- name: create_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data +- name: remove_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: '' +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships/ + method: DELETE + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams/1/projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /connections + method: GET +- name: connection + endpoint: + path: /connections/ + method: GET +- name: create_connection + endpoint: + path: /connections + method: POST +- name: delete_connection + endpoint: + path: /connections/ + method: DELETE +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: Inventory Item Child Relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET +- name: Inventory Item Parent Relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET +- name: team_users + endpoint: + path: /teams//users + method: GET +- name: user_identities + endpoint: + path: /users//identities + method: GET +- name: user_roles + endpoint: + path: /user_roles + method: GET +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: experiment_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: connection + endpoint: + path: /api/v1/teams//projects//experiments//connections/ + method: GET + data_selector: data + params: {} +- name: create_connection + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: POST + data_selector: data + params: {} +- name: delete_connection + endpoint: + path: /api/v1/teams//projects//experiments//connections/1 + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /connections + method: POST + data_selector: data.attributes + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /connections + method: GET +- name: task_groups + endpoint: + path: /task_groups + method: GET +- name: tasks + endpoint: + path: /tasks + method: GET +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: get_attachments_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_attachments_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /api/v1/users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connection + endpoint: + path: /connections + method: GET +- name: task_groups + endpoint: + path: /task_groups + method: GET +- name: tasks + endpoint: + path: /tasks + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: users_in_team + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: connections + endpoint: + path: /connections + method: GET + data_selector: data + params: {} +- name: connection + endpoint: + path: /connections/ + method: GET + data_selector: data + params: {} +- name: create_connection + endpoint: + path: /connections + method: POST + data_selector: data + params: {} +- name: delete_connection + endpoint: + path: /connections/1 + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve step from + STEP_ID: The ID of the step to retrieve checklists from +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: get_result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: get_specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: get_result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: get_specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: delete_connection + endpoint: + path: /teams//projects//experiments//connections/1 + method: DELETE +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: connection + endpoint: + path: /api/v1/teams//projects//experiments//connections/ + method: GET + data_selector: data + params: {} +- name: create_connection + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: POST + data_selector: data + params: {} +- name: delete_connection + endpoint: + path: /api/v1/teams//projects//experiments//connections/1 + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data.attributes + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE +- name: project + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_comment + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_activity + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_user_assignment + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data.attributes + params: + text: Item 3 + checked: false + position: 2 +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data.attributes + params: + text: Item 2 + checked: true +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: '' + params: {} +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: Get Results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: Get Result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: Create Result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: Update Result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: Delete Result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: single_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: project + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignment + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activity + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comment + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' + STEP_ID: '1' +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' + STEP_ID: '1' +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: connection + endpoint: + path: /api/v1/teams//projects//experiments//connections/ + method: GET + data_selector: data +- name: create_connection + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: POST + data_selector: data +- name: delete_connection + endpoint: + path: /api/v1/teams//projects//experiments//connections/1 + method: DELETE +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_attachments_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_attachments_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: connections + endpoint: + path: /connections + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: project_folder + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiment + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET +- name: inventories + endpoint: + path: /inventories + method: GET +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /connections + method: GET + data_selector: data + params: {} +- name: connection + endpoint: + path: /connections/ + method: GET + data_selector: data + params: {} +- name: create_connection + endpoint: + path: /connections + method: POST + data_selector: data + params: {} +- name: delete_connection + endpoint: + path: /connections/ + method: DELETE + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: tasks + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: filter_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: + filter[metadata]: status=processing +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: tasks + endpoint: + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from. + TASK_ID: The ID of the task to retrieve + INCLUDES: if set to `comments`, task comments are also included +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + params: + TEAM_ID: '' + PROJECT_ID: '' + EXPERIMENT_ID: '' + TASK_ID: '' + INCLUDES: '' +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: get_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: task_results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: tasks_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: null + params: + include: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: null + params: {} +- name: steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: table_update + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: table_delete + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams/{TEAM_ID}/protocol_templates + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: POST + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: + stock_consumption: '100.0' +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: get_task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: get_task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: get_task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: get_task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: get_task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: inventory_list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: protocol_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: users + endpoint: + path: /api/v1/users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /api/v1/users/{USER_ID}/identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: project + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: get_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: protocol_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: project_users + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: delete_inventory_stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: delete_protocol_steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: project_user_assignment + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: project_activity + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: project_comment + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: project_folder + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: get_results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET +- name: get_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: inventory_stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: protocol_steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET +- name: create_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: POST +- name: update_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: DELETE +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/items/{ITEM_ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data + params: {} +- name: get_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET +- name: inventories + endpoint: + path: /inventories + method: GET +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: inventory_stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: + TEAM_ID: team_id + PROJECT_ID: project_id + EXPERIMENT_ID: experiment_id + TASK_ID: task_id + PROTOCOL_ID: protocol_id +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /api/v1/users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{ID} + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /api/service/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: reorder_steps + endpoint: + path: /api/service/teams//protocols//reorder_steps + method: POST + data_selector: data +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET +- name: create_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: POST +- name: update_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: DELETE +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET +- name: inventories + endpoint: + path: /inventories + method: GET +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: protocol_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: records + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET +- name: delete_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: DELETE +- name: get_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_attachments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: protocol_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: records + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data +- name: delete_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: create_checklist_item + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: protocol_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: get_result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: get_specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: get_specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: update_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: POST + data_selector: data.attributes + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: none + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: protocol_steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/tables + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: null + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: null + params: {} +- name: get_reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: get_protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: null + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: get_specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: specific_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: + PROTOCOL_ID: protocol_id +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: connections + endpoint: + path: /connections + method: GET +- name: task_groups + endpoint: + path: /task_groups + method: GET +- name: tasks + endpoint: + path: /tasks + method: GET +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /protocols/{protocol_id}/steps + method: POST + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v2 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: checklists + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data.attributes + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: create_task + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /tables + method: POST + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data +- name: create_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data +- name: update_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data +- name: delete_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: checklists + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /api/v1/teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /api/v1/teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /api/v1/users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /api/v1/users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /api/v1/teams//projects/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: get_specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: get_specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data.attributes + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_protocol_steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: specific_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: get_result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: team + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: user + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_identity + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_role + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data.attributes + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: {} + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE +- name: get_tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET +- name: get_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET +- name: create_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data +- name: delete_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: create_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: create_task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: POST + data_selector: data + params: + include: +- name: update_task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: POST + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: null + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data.attributes + params: {} +- name: update_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: checklists + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: get_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts/{ID} + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: + include: form_field_values +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: delete_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//items/ + method: DELETE +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: none + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: none + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: get_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: get_result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: results + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/tables/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: users_of_team + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects_of_team + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /api/v1/teams//projects + method: GET +- name: project_user_assignment + endpoint: + path: /api/v1/teams//projects//users + method: POST +- name: project_activity + endpoint: + path: /api/v1/teams//projects//activities + method: GET +- name: project_comment + endpoint: + path: /api/v1/teams//projects//comments + method: GET +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET +- name: create_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: + include: comments +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: inventory_stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + TASK_ID: The ID of the task to retrieve protocol from +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: null + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: '' +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//items + method: GET + data_selector: items + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: activities + endpoint: + path: /teams//projects//activities + method: GET +- name: comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: + include: assets,checklists,checklists.checklist_items,comments,form_responses,tables +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: get_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: Get Tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: Get Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: Create Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: Update Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: empty body + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: empty body + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: data + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: data + params: {} +- name: get_reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: get_protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /{TEAM_ID}/protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /{TEAM_ID}/inventories + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//items + method: GET + data_selector: items + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: team + endpoint: + path: /teams + method: GET + data_selector: data +- name: user + endpoint: + path: /users + method: GET + data_selector: data +- name: user_identity + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data +- name: user_role + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//items/ + method: DELETE + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET +- name: inventories + endpoint: + path: /teams//inventories + method: GET +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: get_workflows + endpoint: + path: /workflows + method: GET +- name: get_workflow + endpoint: + path: /workflows/ + method: GET +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: retrieve_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_create + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: checklist_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /api/v1/teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: get_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: get_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET +- name: table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST +- name: update_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET +- name: inventories + endpoint: + path: /inventories + method: GET +- name: columns + endpoint: + path: /inventories//columns + method: GET +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: checklist_items + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: POST + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: activities + endpoint: + path: /teams//projects//activities + method: GET +- name: comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: get_results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: get_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: Inventory Item Child Relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: Inventory Item Parent Relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: records + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: POST + data_selector: data +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams//protocols//reorder_steps + method: POST + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams//steps//reorder_elements + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: activities + endpoint: + path: /teams//projects//activities + method: GET +- name: comments + endpoint: + path: /teams//projects//comments + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: specific_connection + endpoint: + path: /api/v1/teams//projects//experiments//connections/ + method: GET +- name: create_connection + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: POST +- name: delete_connection + endpoint: + path: /api/v1/teams//projects//experiments//connections/1 + method: DELETE +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: specific_task_group + endpoint: + path: /api/v1/teams//projects//experiments//task_groups/ + method: GET +- name: task_connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: specific_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: get_result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data +- name: create_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data +- name: update_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data +- name: delete_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: get_step_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: get_step_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET +- name: create_step_checklist_item + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: get_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments/{USER_ASSIGMENT_ID} + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: POST + data_selector: data + params: {} +- name: delete_task_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments/{USER_ID} + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: inventory_stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /api/v1/users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: null + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET +- name: specific_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: single_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_item_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: inventory_stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: step_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activity + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//items/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: '' + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: + created_at[from]: + created_at[to]: + updated_at[from]: + updated_at[to]: +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /{TEAM_ID}/protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /{TEAM_ID}/inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: step_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: records + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: team + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: user + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_identity + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_role + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /connections + method: GET +- name: task_groups + endpoint: + path: /task_groups + method: GET +- name: tasks + endpoint: + path: /tasks + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: single_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: + include: form_field_values +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: get_specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: get_specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: '' + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/attachments/{ID} + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/tables + method: POST + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/items/{ITEM_ID} + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data +- name: delete_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: single_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: Delete Result Table + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/tables/1 + method: DELETE +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: results + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments/{USER_ASSIGMENT_ID} + method: PATCH + data_selector: data + params: {} +- name: delete_task_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments/{USER_ID} + method: DELETE + data_selector: null + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: step_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: POST + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/1/projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{TASK_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: update_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: get_tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: get_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: delete_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: POST + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: get_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Project Activities + endpoint: + path: /teams//projects//activities + method: GET +- name: Project Comments + endpoint: + path: /teams//projects//comments + method: GET +- name: Project Folders + endpoint: + path: /teams//project_folders + method: GET +- name: project_folder + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiment + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: delete_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: get_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: get_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: get_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: delete_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/{id} + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams/{team_id}/users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/{id} + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users/{user_id}/identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{team_id}/projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams/{team_id}/projects/{project_id} + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: 'null' + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: 'null' + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: get_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: Checklist Items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: Status Items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: List Items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: Inventory Item Child Relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: Inventory Item Parent Relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: Cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: delete_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_protocol_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: delete_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: data.attributes + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/attachments/{ID} + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/tables + method: POST + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: DELETE +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: create_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST +- name: update_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH +- name: delete_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE +- name: get_reports + endpoint: + path: /teams//projects//reports + method: GET +- name: get_report + endpoint: + path: /teams//projects//reports/ + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: task_connections + endpoint: + path: /connections + method: GET + data_selector: data + params: {} +- name: specific_task_connection + endpoint: + path: /connections/ + method: GET + data_selector: data + params: {} +- name: create_task_connection + endpoint: + path: /connections + method: POST + data_selector: data + params: {} +- name: delete_task_connection + endpoint: + path: /connections/1 + method: DELETE + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: Get Inventory Item Child Relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: Get Inventory Item Parent Relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: create_task + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: data +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data +- name: get_results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: get_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: get_result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: null + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: get_attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: team_inventories + endpoint: + path: /v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: project_experiments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: Inventory Item Child Relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: Inventory Item Parent Relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: null + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /{TEAM_ID}/protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /{TEAM_ID}/inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: get_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: get_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data +- name: create_list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data +- name: update_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: PATCH + data_selector: data +- name: delete_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: DELETE +- name: get_status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: create_status_item + endpoint: + path: /teams//inventories//columns//status_items + method: POST + data_selector: data +- name: update_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: PATCH + data_selector: data +- name: delete_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: DELETE +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: Inventory Item Child Relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: Inventory Item Parent Relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: Create Inventory Item Child Relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST +- name: Create Inventory Item Parent Relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST +- name: Delete Inventory Item Child Relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE +- name: Delete Inventory Item Parent Relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: get_attachments_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_attachments_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: tasks_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve step from + STEP_ID: The ID of the step to retrieve checklists from +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: '' + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: null + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_create + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: checklist_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /{TEAM_ID}/protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /{TEAM_ID}/inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/users/{USER_ID} + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: records + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: '' + params: {} +- name: get_task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data + params: {} +- name: get_task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET +- name: cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: Checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: Create Checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: Update Checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: Delete Checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: records + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: null + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: null + params: {} +- name: get_reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: get_protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: '' + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET +- name: get_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: POST +- name: update_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data.attributes + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_cells + endpoint: + path: /v1/teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: null + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: null + params: {} +- name: get_reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: get_protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: null + params: {} +- name: Get Tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /{TEAM_ID}/protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /{TEAM_ID}/inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: specific_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: checklists + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables_get + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table_get + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: table_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables + method: POST + data_selector: data + params: {} +- name: table_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: table_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: None + params: {} +- name: get_step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: DELETE + data_selector: None + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: get_results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: get_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/1/tables + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: attachments +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: project + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: get_inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: create_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: POST + data_selector: data +- name: create_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: delete_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null +- name: delete_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null +- name: Get Cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: Create Cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: Update Cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: Delete Cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: Get Workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: Get Workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: Get Workflow statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/1/tables + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: reorder_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data.attributes + params: {} +- name: checklist_creation + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data.attributes + params: {} +- name: checklist_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data.attributes + params: {} +- name: checklist_deletion + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: get_result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: get_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: '' + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: create_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: Get Attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: Get Result Attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: Create Result Attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: Get Result Tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: Get Result Table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: Create Result Table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: users_from_team + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects_from_team + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results/1/tables + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: get_result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: get_specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: get_specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: get_inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_specific_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /{TEAM_ID}/protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /{TEAM_ID}/inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: create_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST +- name: delete_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE +- name: create_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST +- name: delete_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: '' + params: + created_at: + from: + to: + updated_at: + from: + to: +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data +- name: get_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: records + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users/{USER_ASSIGMENT_ID} + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET +- name: inventories + endpoint: + path: /teams//inventories + method: GET +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: specific_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: '' + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_updates + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: get_specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_activity + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: tags + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: + filter: + created_at: + from: + to: + updated_at: + from: + to: +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: + filter: + created_at: + from: + to: + updated_at: + from: + to: +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: users_from_team + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /{TEAM_ID}/protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /{TEAM_ID}/inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /{TEAM_ID}/inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: attachments_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachments_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: delete_item + endpoint: + path: /teams/1/inventories/1/items/1 + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders + method: POST + data_selector: data +- name: experiment + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data +- name: user_assignment + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: delete_item + endpoint: + path: /teams/1/inventories/1/items/1 + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: delete_item + endpoint: + path: /teams/1/inventories/1/items/1 + method: DELETE + data_selector: empty + params: {} +- name: reorder_step_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: {} +- name: create_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v2 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: users_in_team + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects_in_team + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: GET +- name: create_task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items + method: POST +- name: update_task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: POST +- name: steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: data + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: get_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: data + params: {} +- name: get_reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: get_protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data +- name: create_list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data +- name: update_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: PATCH + data_selector: data +- name: delete_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: DELETE +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET +- name: create_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: experiment_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: experiment_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: retrieve_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignment + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments/{USER_ASSIGMENT_ID} + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignment/{USER_ASSIGMENT_ID} + method: PATCH + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments/{USER_ID} + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data +- name: activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data +- name: comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET +- name: inventories + endpoint: + path: /teams//inventories + method: GET +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignment/ + method: PATCH + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignment/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignment/ + method: PATCH + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: null + params: {} +- name: Inventory Item Child Relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: Inventory Item Parent Relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: Create Inventory Item Child Relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST +- name: Delete Inventory Item Child Relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE +- name: Create Inventory Item Parent Relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST +- name: Delete Inventory Item Parent Relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: get_task_user_assignment + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data +- name: create_list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data +- name: update_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: PATCH + data_selector: data +- name: delete_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: DELETE + data_selector: null +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID} + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: checklist_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignment/ + method: PATCH + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve user assignment from + EXPERIMENT_ID: The ID of the experiment to retrieve user from + TASK_ID: The ID of the task to retrieve +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignment + method: POST + data_selector: data +- name: delete_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' +- name: result_texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' + STEP_ID: '1' +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET +- name: inventories + endpoint: + path: /inventories + method: GET +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: delete_inventory_stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: delete_task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments/ + method: DELETE +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: filter_tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: get_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: get_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + params: + include: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: + include: comments +- name: update_result + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results/ + method: POST + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//items/ + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: connection + endpoint: + path: /api/v1/teams//projects//experiments//connections/ + method: GET + data_selector: data + params: {} +- name: create_connection + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: POST + data_selector: data + params: {} +- name: delete_connection + endpoint: + path: /api/v1/teams//projects//experiments//connections/1 + method: DELETE + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: get_steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: '' + params: {} +- name: update_result + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results/ + method: POST + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: task_results + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: Get Tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: specific_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: get_cells + endpoint: + path: /v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/items/{ITEM_ID}/cells + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: '' + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET +- name: inventories + endpoint: + path: /teams//inventories + method: GET +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET +- name: columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: task_results + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: '' + params: {} +- name: get_task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_assignment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /tables + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: inventory_column_stock_unit_items + endpoint: + path: /v1/teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: experiment_task_results + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: DELETE +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: '' + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results/{RESULT_ID}/texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET +- name: get_inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: reorder_steps + endpoint: + path: /api/service/teams//protocols//reorder_steps + method: POST + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams//steps//reorder_elements + method: POST + data_selector: data +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: reorder_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: get_checklist_v2 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data + params: {} +- name: create_list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data + params: {} +- name: update_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: DELETE + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: data + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: create_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: POST + data_selector: data +- name: create_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: delete_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships/ + method: DELETE +- name: delete_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships/ + method: DELETE +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist_v1 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: Get Task Users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: Get Task Activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: Get Task Tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: Get Task Inventory Items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: project_folder + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: checklist_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: checklist_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiment + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: delete_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /tables + method: POST + data_selector: data + params: {} +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: delete_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: DELETE +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: team + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: get_task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: get_tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /tables + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: delete_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: results_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: filter_tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: + filter[metadata]: +- name: get_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: delete_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks + method: GET +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET +- name: inventories + endpoint: + path: /inventories + method: GET +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell_detail + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: results_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: specific_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: null + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: create_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data +- name: update_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data +- name: delete_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: results_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data +- name: create_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data +- name: update_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data +- name: delete_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: specific_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: '' + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams/{team_id}/projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: single_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: specific_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: get_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: get_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: users + endpoint: + path: /api/v1/teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /api/v1/users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: attachments_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: attachments_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: '' +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data +- name: activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{ID}/reorder_elements + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: table_update + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: table_delete + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: specific_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: records + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data.attributes +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignment/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: protocol_template + endpoint: + params: + TEAM_ID: The ID of the team to retrieve project from + ID: The ID of the protocol template +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: null +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist_v1 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: get_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//items/ + method: DELETE + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: protocol_template + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: get_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory + endpoint: + path: /inventories/ + method: GET + data_selector: data +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: column + endpoint: + path: /inventories//columns/ + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory + endpoint: + params: + TEAM_ID: '' + ID: '' +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: protocol_template + endpoint: + path: /protocol_templates + method: GET +- name: inventory + endpoint: + path: /inventories + method: GET +- name: checklists + endpoint: + path: /api/service/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/service/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /api/service/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /api/service/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /api/service/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE + data_selector: null + params: {} +- name: get_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data + params: {} +- name: create_list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data + params: {} +- name: update_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: DELETE + data_selector: data + params: {} +- name: get_status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: get_checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: get_stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: protocol_template + endpoint: + params: + TEAM_ID: The ID of the team to retrieve project from + ID: The ID of the protocol template +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{team_id}/projects + method: GET + data_selector: data +- name: experiments + endpoint: + path: /teams/{team_id}/projects/{project_id}/experiments + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: team + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: checklists_v1 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklists_v2 + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: inventories + endpoint: + path: /teams//inventories + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: get_attachments_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_attachments_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET +- name: get_inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET +- name: create_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: POST +- name: delete_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships/ + method: DELETE +- name: create_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: POST +- name: delete_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships/ + method: DELETE +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: inventories + endpoint: + path: /api/v1/teams//inventories/ + method: DELETE + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data.attributes + params: {} +- name: update_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: '' + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams//inventories//items//cells + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: Get Inventory Item Child Relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: Get Inventory Item Parent Relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: Create Inventory Item Child Relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: Delete Inventory Item Child Relationship + endpoint: + path: /api/v2/teams//inventories//items//child_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: Create Inventory Item Parent Relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: Delete Inventory Item Parent Relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: delete_inventory + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: results + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: inventory_stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: inventory + endpoint: + path: /teams//inventories/ + method: DELETE +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET +- name: inventories + endpoint: + path: /inventories + method: GET +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: list_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + params: + TEAM_ID: '' + INVENTORY_ID: '' + ID: '' +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: inventory_columns_stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories/ + method: DELETE + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: delete_inventory + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: project + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users_in_team + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects_in_team + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories/1/columns + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: delete_column + endpoint: + path: /teams//inventories//columns/ + method: DELETE +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activity + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: get_inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_specific_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: delete_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: delete_column + endpoint: + path: /api/v1/teams//inventories//columns/ + method: DELETE +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: get_attachments_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_attachments_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: '' + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories/1/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: activities + endpoint: + path: /teams//projects//activities + method: GET +- name: comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_protocol_steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: '' + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + TASK_ID: The ID of the task to retrieve protocol from +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve step from + STEP_ID: The ID of the step to retrieve checklists from +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: delete_column + endpoint: + path: /api/v1/teams//inventories//columns/ + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams/1/inventories/1/columns/1/list_items + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /api/v1/teams//inventories//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: get_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklist_item_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_attachments_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_attachments_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: Get Inventory Item Child Relationships + endpoint: + path: /v2/teams//inventories//items//child_relationships + method: GET +- name: Get Inventory Item Parent Relationships + endpoint: + path: /v2/teams//inventories//items//parent_relationships + method: GET +- name: Get Cells + endpoint: + path: /v1/teams/1/inventories/1/items/1/cells + method: GET +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: delete_column + endpoint: + path: /api/v1/teams//inventories//columns/ + method: DELETE +- name: list_items + endpoint: + path: /list_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams/1/projects + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE + data_selector: data +- name: get_checklist_items + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: reorder_elements + endpoint: + path: /teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/results + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET +- name: inventories + endpoint: + path: /inventories + method: GET +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: list_items + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/1/columns/1/list_items + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data +- name: create_list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data +- name: update_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: PATCH + data_selector: data +- name: delete_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: DELETE + data_selector: null +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams//steps//reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams//protocols//reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: inventory_list_items + endpoint: + path: /api/v1/teams/1/inventories/1/columns/1/list_items + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: get_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: update_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: get_result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: delete_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: protocol_steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: inventory_column_list_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: specific_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: tasks_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams/1/projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: inventory_list_items + endpoint: + path: /columns/1/list_items + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items/ + method: GET + data_selector: data + params: {} +- name: create_list_item + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: POST + data_selector: data + params: {} +- name: update_list_item + endpoint: + path: /api/v1/teams//inventories//columns//list_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_list_item + endpoint: + path: /api/v1/teams//inventories//columns//list_items/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + TASK_ID: The ID of the task to retrieve protocol from +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: get_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: create_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/1/columns/1/list_items + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: + include: comments +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_task + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: status_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/checklist_items + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: get_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: step_orderable_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: attachments_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachments_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: Get Cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: Create Cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: Update Cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: Delete Cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: Get Workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: Get Workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: Get Workflow statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: + include: comments +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: GET + data_selector: data + params: {} +- name: create_status_item + endpoint: + path: /teams//inventories//columns//status_items + method: POST + data_selector: data + params: {} +- name: update_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: DELETE + data_selector: '' + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: data + params: {} +- name: cells + endpoint: + path: /api/v1/teams//inventories//items//cells + method: GET + data_selector: data +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: reports + endpoint: + path: /teams//projects//reports + method: GET +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: GET + data_selector: data +- name: create_list_item + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data +- name: update_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: PATCH + data_selector: data +- name: delete_list_item + endpoint: + path: /teams//inventories//columns//list_items/ + method: DELETE +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data.attributes + params: {} +- name: update_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data +- name: columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /api/v1/teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /api/v1/teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /api/v1/users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /api/v1/users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data +- name: status_item + endpoint: + path: /api/v1/teams//inventories//columns//status_items/ + method: GET + data_selector: data +- name: create_status_item + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: POST + data_selector: data +- name: update_status_item + endpoint: + path: /api/v1/teams//inventories//columns//status_items/ + method: PATCH + data_selector: data +- name: delete_status_item + endpoint: + path: /api/v1/teams//inventories//columns//status_items/ + method: DELETE +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{TASK_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: project + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: delete_table + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: data + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/texts/{ID} + method: DELETE + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data.attributes + params: {} +- name: update_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: '' + params: {} +- name: get_reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data.attributes + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: GET + data_selector: data + params: {} +- name: create_status_item + endpoint: + path: /teams//inventories//columns//status_items + method: POST + data_selector: data + params: {} +- name: update_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_item_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: update_status_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: GET + data_selector: data + params: {} +- name: create_status_item + endpoint: + path: /teams//inventories//columns//status_items + method: POST + data_selector: data + params: {} +- name: update_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: DELETE + data_selector: data + params: {} +- name: project + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//items/ + method: DELETE +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data.attributes + params: {} +- name: get_report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data.attributes + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: data + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: get_specific_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: data + params: {} +- name: get_reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: get_specific_report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: get_protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: GET + data_selector: data + params: {} +- name: create_status_item + endpoint: + path: /teams//inventories//columns//status_items + method: POST + data_selector: data + params: {} +- name: update_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: DELETE + data_selector: null + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: checklist_items + params: {} +- name: steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET +- name: create_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: POST +- name: update_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: DELETE +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /service/teams/{TEAM_ID}/checklists + method: GET + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: get_specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: get_result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: get_specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: specific_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: checklist_items + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: inventory_column_checklist_items + endpoint: + params: + TEAM_ID: The ID of the team to retrieve inventory from + INVENTORY_ID: The ID of the inventory to retrieve column from + COLUMN_ID: The ID of the column(with checklist data type) in specified inventory + to retrieve checklist items from + ID: The ID of the checklist item +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{TASK_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: null + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET +- name: get_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: update_status_item + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: delete_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: get_status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data +- name: get_status_item + endpoint: + path: /api/v1/teams//inventories//columns//status_items/ + method: GET + data_selector: data +- name: create_status_item + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: POST + data_selector: data +- name: update_status_item + endpoint: + path: /api/v1/teams//inventories//columns//status_items/ + method: PATCH + data_selector: data +- name: delete_status_item + endpoint: + path: /api/v1/teams//inventories//columns//status_items/ + method: DELETE + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: create_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: checklist_items_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_items_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_items_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: delete_status_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: create_task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: POST + data_selector: data + params: + include: form_field_values +- name: update_task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: POST + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: null + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data.attributes + params: {} +- name: update_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: GET + data_selector: data + params: {} +- name: create_status_item + endpoint: + path: /teams//inventories//columns//status_items + method: POST + data_selector: data + params: {} +- name: update_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_status_item + endpoint: + path: /teams//inventories//columns//status_items/ + method: DELETE + data_selector: '' + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: task_users + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/users/{USER_ID} + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: checklist_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: checklist_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: checklist_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: checklist_item_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: checklist_item_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: Update Checklist Item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: Delete Task Inventory Item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: data + params: {} +- name: Get Task User Assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: Get Task User Assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: Update Task User Assignment attributes + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data + params: {} +- name: Get Task Assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: Create Task Assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: Remove Task Assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: get_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams/{TEAM_ID}/users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: reorder_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET +- name: create_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: '' + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: attachments_v1 + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: attachment_v1 + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET +- name: create_attachment_v1 + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST +- name: attachments_v2 + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: attachment_v2 + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET +- name: create_attachment_v2 + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_inventory_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: Get Inventory Item Child Relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: Get Inventory Item Parent Relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: Get Cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH +- name: delete_task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET +- name: get_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: null + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: delete_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: specific_protocol_template + endpoint: + path: /protocol_templates/{ID} + method: GET + data_selector: data + params: {} +- name: specific_inventory + endpoint: + path: /inventories/{ID} + method: GET + data_selector: data + params: {} +- name: specific_column + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{ID} + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items/ + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data.attributes + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_attachments_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_attachments_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: stock_unit_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: null + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items/ + method: GET + data_selector: data +- name: create_checklist_item + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items/ + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items/ + method: DELETE +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: get_stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: Get Cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: Create Cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: Update Cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: Delete Cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: Get Workflows + endpoint: + path: /workflows + method: GET +- name: Get Workflow + endpoint: + path: /workflows/ + method: GET +- name: Get Workflow statuses + endpoint: + path: /workflows//statuses + method: GET +- name: stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: get_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' +- name: get_checklists + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' + STEP_ID: '1' +- name: get_checklist + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' + STEP_ID: '1' + ID: '1' +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data + params: {} +- name: step_text_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data + params: {} +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: attachments_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: attachments_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: '' + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: Update Stock Unit Item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH +- name: Get texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET +- name: Create result text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST +- name: cell + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: POST + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: {} +- name: create_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_v1 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE + data_selector: '' + params: {} +- name: get_checklists_v2 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist_v2 + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: get_result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: get_specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /api/v1/teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: cell + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/items/{ITEM_ID}/cells + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: inventory_cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: retrieve_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data.attributes + params: + id: +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{TASK_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: Update Stock Unit Item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: Delete Task Inventory Item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: data + params: {} +- name: Get Task User Assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: Get Task User Assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: Update Task User Assignment attributes + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data + params: {} +- name: Get Task Assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: Create Task Assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: Remove Task Assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: get_results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: get_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: POST + data_selector: data.attributes + params: {} +- name: delete_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: '' + params: {} +- name: get_reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data.attributes + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignment + endpoint: + path: /teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activity + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comment + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: task_users + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/users/{USER_ID} + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/items/{ITEM_ID} + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET +- name: report + endpoint: + path: /api/v1/teams//projects//reports + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null +- name: Get Results + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: Create Result + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: Update Result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: Delete Result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + params: + include: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: + filter[archived]: +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET +- name: users + endpoint: + path: /users + method: GET +- name: user_roles + endpoint: + path: /user_roles + method: GET +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams/1/inventories/1/items/1 + method: DELETE + data_selector: '' + params: {} +- name: delete_cell + endpoint: + path: /teams/1/inventories/1/items/1/cells/1 + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: null + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /api/v1/teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET +- name: get_cells + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/items/{ITEM_ID}/cells + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: delete_item + endpoint: + path: /api/v1/teams/1/inventories/1/items/1 + method: DELETE +- name: delete_cell + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells/1 + method: DELETE +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{TASK_ID}/reorder_steps + method: POST +- name: checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: POST +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET +- name: workflow + endpoint: + path: /workflows/ + method: GET +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams/1/projects + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: '' + params: {} +- name: project_folder + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: tasks_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: POST + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: delete_item + endpoint: + path: /teams/1/inventories/1/items/1 + method: DELETE + data_selector: '' + params: {} +- name: delete_cell + endpoint: + path: /teams/1/inventories/1/items/1/cells/1 + method: DELETE + data_selector: '' + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: + include: comments +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: + include: comments +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data +- name: task_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: update_item + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data.attributes + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: delete_item + endpoint: + path: /teams/1/inventories/1/items/1 + method: DELETE +- name: delete_cell + endpoint: + path: /teams/1/inventories/1/items/1/cells/1 + method: DELETE +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: get_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: GET +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + params: + TEAM_ID: The ID of the team + INVENTORY_ID: The ID of the inventory containing the item + ITEM_ID: The ID of the item for which to create the relationship +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: tasks_update + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: form_response + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from + ID: The ID of the step +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: data + params: {} +- name: results + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: create_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_result_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET +- name: columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET +- name: inventories + endpoint: + path: //inventories + method: GET +- name: inventory_columns + endpoint: + path: //inventories//columns + method: GET +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items/{ID} + method: GET + data_selector: data +- name: status_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: specific_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: GET +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiment + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignment + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: empty + params: {} +- name: get_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: Inventory Item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: Task User Assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data.attributes + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: '' + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data.attributes + params: {} +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: '' + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: get_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: GET +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET +- name: reorder_step_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: GET +- name: get_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: GET +- name: create_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps + method: POST +- name: update_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: PATCH +- name: delete_step + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: inventory_item_child_relationship + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: GET + data_selector: data +- name: create_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: delete_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: null +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' + STEP_ID: '1' +- name: get_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET + data_selector: data + params: + TEAM_ID: '1' + PROJECT_ID: '1' + EXPERIMENT_ID: '1' + TASK_ID: '1' + PROTOCOL_ID: '1' + STEP_ID: '1' + ID: '1' +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: + include: comments +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: + include: comments +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /api/v1/teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships/ + method: DELETE + data_selector: null + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: none +- name: get_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /api/v1/users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: delete_inventory_item_child_relationship + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: get_result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: get_specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: specific_user_identity + endpoint: + path: /users//identities/ + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: get_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: GET +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: cells + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/items/{ITEM_ID}/cells + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activity + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comment + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folder + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//items + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: delete_inventory_item_parent_relationship + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: null + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: GET + data_selector: data +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: delete_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships/ + method: DELETE + data_selector: '' +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: get_specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /api/v1/users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /api/v1/users/{USER_ID}/identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: '' + params: {} +- name: get_reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: get_protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET +- name: inventories + endpoint: + path: /teams//inventories + method: GET +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET +- name: connections + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project + endpoint: + path: /teams//projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/items/{ITEM_ID} + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: attachments_v1 + endpoint: + path: /v1/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: attachments_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses_v2 + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data.attributes + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams/{TEAM_ID}/protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: POST +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_users + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data.attributes + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data.attributes + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: report + endpoint: + path: /teams//projects//reports + method: GET +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: attachments + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: specific_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/items/{ITEM_ID}/cells + method: GET + data_selector: data +- name: delete_parent_relationship + endpoint: + path: /v2/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/items/{ITEM_ID}/parent_relationships/{ID} + method: DELETE + data_selector: status +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /api/v1/teams/{TEAM_ID}/inventories/{INVENTORY_ID}/items/{ITEM_ID}/cells + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: '' + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: data + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data + params: {} +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data + params: {} +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: data + params: {} +- name: get_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: create_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: POST + data_selector: data + params: {} +- name: update_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts/ + method: DELETE + data_selector: data + params: {} +- name: get_reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /api/v1/teams//projects//reports/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET +- name: inventories + endpoint: + path: /teams//inventories + method: GET +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: Get Result Attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: Create Result Attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: Get Result Tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: Create Result Table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: get_workflows + endpoint: + path: /workflows + method: GET +- name: get_workflow + endpoint: + path: /workflows/ + method: GET +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /api/v1/teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /api/v1/teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v1/teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: '' + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve steps from +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: + TEAM_ID: The ID of the team to retrieve project from + PROJECT_ID: The ID of the project to retrieve experiment from + EXPERIMENT_ID: The ID of the experiment to retrieve task from + TASK_ID: The ID of the task to retrieve protocol from + PROTOCOL_ID: The ID of the protocol to retrieve step from + STEP_ID: The ID of the step to retrieve checklists from +- name: get_cells + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: get_tables + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: get_tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET +- name: table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: DELETE + data_selector: '' + params: {} +- name: get_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: get_report + endpoint: + path: /teams//projects//reports/ + method: GET + data_selector: data.attributes + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: update_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: DELETE + data_selector: '' + params: {} +- name: get_task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: get_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: GET + data_selector: data + params: {} +- name: update_task_user_assignment + endpoint: + path: /teams//projects//experiments//tasks//user_assignments/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: create_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: POST + data_selector: data.attributes + params: {} +- name: remove_task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments/ + method: DELETE + data_selector: '' + params: {} +- name: cells + endpoint: + path: /teams/{TEAM_ID}/inventories/{INVENTORY_ID}/items/{ITEM_ID}/cells + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: update_cell + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: get_result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /api/v1/teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: checklist_create + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST +- name: checklist_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: checklist_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data.attributes + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data.attributes + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: reorder_step_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: create_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: PATCH +- name: delete_checklist_v1 + endpoint: + path: /v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: DELETE +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: get_checklist_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 + method: GET +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: specific_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: create_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: get_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: report + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//tables/ + method: DELETE + data_selector: null + params: {} +- name: get_step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: get_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: //protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: //inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: //inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: //inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /api/v1/teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: workflows + endpoint: + path: /api/v1/workflows + method: GET + data_selector: data + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: specific_workflow + endpoint: + path: /api/v1/workflows/1 + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: checklist_items_create + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_items_update + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: checklist_items_delete + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists_v1 + endpoint: + path: /v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklists_v2 + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: create_inventory_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_inventory_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: team_projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /{TEAM_ID}/protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /{TEAM_ID}/inventories + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: '' + params: {} +- name: get_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: get_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: '' + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists_v1 + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklists_v2 + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: workflow + endpoint: + path: /workflows + method: GET + params: + WORKFLOW_ID: workflow_id +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: get_tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: get_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_table + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: '' + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET +- name: project_activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: update_result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: get_result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: '' +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/teams/1/projects + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: result_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: result_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data.attributes + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: project + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /teams//inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: stock_unit_item + endpoint: + path: /stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_updates + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: workflow_statuses + endpoint: + path: /api/v1/workflows/WORKFLOW_ID/statuses + method: GET + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: + TEAM_ID: TEAM_ID + TASK_ID: TASK_ID +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: + TEAM_ID: TEAM_ID + PROTOCOL_ID: PROTOCOL_ID +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: + TEAM_ID: TEAM_ID + PROJECT_ID: PROJECT_ID + EXPERIMENT_ID: EXPERIMENT_ID + TASK_ID: TASK_ID + PROTOCOL_ID: PROTOCOL_ID + STEP_ID: STEP_ID +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: + TEAM_ID: TEAM_ID + PROJECT_ID: PROJECT_ID + EXPERIMENT_ID: EXPERIMENT_ID + TASK_ID: TASK_ID + PROTOCOL_ID: PROTOCOL_ID + STEP_ID: STEP_ID + ID: ID +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: create_checklist + endpoint: + path: /api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: activities + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/activities + method: GET + data_selector: data + params: {} +- name: comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: Get Tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: Get Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: Create Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: Update Table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: create_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: POST + data_selector: data + params: {} +- name: update_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: PATCH + data_selector: data + params: {} +- name: delete_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: DELETE + data_selector: null + params: {} +- name: reorder_step_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_checklists + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET + data_selector: data + params: {} +- name: get_checklist + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: report + endpoint: + path: /teams//projects//reports + method: GET +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET +- name: result_text + endpoint: + path: /teams//projects//experiments//tasks//results//texts/ + method: GET +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: columns + endpoint: + path: /api/v1/teams//inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /api/v1/teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: get_inventory_item_child_relationships + endpoint: + path: /v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: get_inventory_item_child_relationship + endpoint: + path: /v2/teams//inventories//items//child_relationships/ + method: GET + data_selector: data +- name: create_inventory_item_child_relationship + endpoint: + path: /v2/teams//inventories//items//child_relationships + method: POST + data_selector: data +- name: delete_inventory_item_child_relationship + endpoint: + path: /v2/teams//inventories//items//child_relationships/ + method: DELETE +- name: get_inventory_item_parent_relationships + endpoint: + path: /v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: get_inventory_item_parent_relationship + endpoint: + path: /v2/teams//inventories//items//parent_relationships/ + method: GET + data_selector: data +- name: create_inventory_item_parent_relationship + endpoint: + path: /v2/teams//inventories//items//parent_relationships + method: POST + data_selector: data +- name: delete_inventory_item_parent_relationship + endpoint: + path: /v2/teams//inventories//items//parent_relationships/ + method: DELETE +- name: get_cells + endpoint: + path: /v1/teams/1/inventories/1/items/1/cells + method: GET +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +- name: get_workflow + endpoint: + path: /api/v1/workflows/1 + method: GET + data_selector: data +- name: list_workflows + endpoint: + path: /api/v1/workflows + method: GET + data_selector: data + params: + filter: + created_at: + from: + to: + updated_at: + from: + to: +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET +- name: inventories + endpoint: + path: /inventories + method: GET +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /api/v1/workflows/1/statuses + method: GET + data_selector: data + params: {} +- name: webhook + endpoint: + path: /users/settings/webhooks + method: GET +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: change_user_role_on_experiment + endpoint: + path: /change_user_role_on_experiment + method: POST + data_selector: message_items + params: {} +- name: change_user_role_on_my_module + endpoint: + path: /change_user_role_on_my_module + method: POST + data_selector: message_items + params: {} +- name: edit_image_on_step + endpoint: + path: /edit_image_on_step + method: POST + data_selector: message_items + params: {} +- name: archive_module + endpoint: + path: /archive_module + method: POST + data_selector: message_items + params: {} +- name: move_task + endpoint: + path: /move_task + method: POST + data_selector: message_items + params: {} +- name: designate_user_to_my_module + endpoint: + path: /designate_user_to_my_module + method: POST + data_selector: message_items + params: {} +- name: rename_task + endpoint: + path: /rename_task + method: POST + data_selector: message_items + params: {} +- name: create_module + endpoint: + path: /create_module + method: POST + data_selector: message_items + params: {} +- name: clone_module + endpoint: + path: /clone_module + method: POST + data_selector: message_items + params: {} +- name: create_experiment + endpoint: + path: /create_experiment + method: POST + data_selector: message_items + params: {} +- name: edit_experiment + endpoint: + path: /edit_experiment + method: POST + data_selector: message_items + params: {} +- name: restore_experiment + endpoint: + path: /restore_experiment + method: POST + data_selector: message_items + params: {} +- name: archive_experiment + endpoint: + path: /archive_experiment + method: POST + data_selector: message_items + params: {} +- name: invite_user_to_team + endpoint: + path: /invite_user_to_team + method: POST + data_selector: message_items + params: {} +- name: add_task_tag + endpoint: + path: /add_task_tag + method: POST + data_selector: message_items + params: {} +- name: remove_task_tag + endpoint: + path: /remove_task_tag + method: POST + data_selector: message_items + params: {} +- name: change_module_description + endpoint: + path: /change_module_description + method: POST + data_selector: message_items + params: {} +- name: set_task_due_date + endpoint: + path: /set_task_due_date + method: POST + data_selector: message_items + params: {} +- name: remove_task_due_date + endpoint: + path: /remove_task_due_date + method: POST + data_selector: message_items + params: {} +- name: change_task_due_date + endpoint: + path: /change_task_due_date + method: POST + data_selector: message_items + params: {} +- name: change_status_on_task_flow + endpoint: + path: /change_status_on_task_flow + method: POST + data_selector: message_items + params: {} +- name: restore_module + endpoint: + path: /restore_module + method: POST + data_selector: message_items + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: reorder_step_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: get_checklist + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{ID} + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: add_comment_to_project + endpoint: + path: /api/webhooks/add_comment_to_project + method: POST +- name: edit_project_comment + endpoint: + path: /api/webhooks/edit_project_comment + method: POST +- name: delete_project_comment + endpoint: + path: /api/webhooks/delete_project_comment + method: DELETE +- name: move_project + endpoint: + path: /api/webhooks/move_project + method: POST +- name: move_project_folder + endpoint: + path: /api/webhooks/move_project_folder + method: POST +- name: create_project_folder + endpoint: + path: /api/webhooks/create_project_folder + method: POST +- name: rename_project_folder + endpoint: + path: /api/webhooks/rename_project_folder + method: POST +- name: create_project + endpoint: + path: /api/webhooks/create_project + method: POST +- name: archive_project + endpoint: + path: /api/webhooks/archive_project + method: POST +- name: create_protocol_in_repository + endpoint: + path: /api/webhooks/create_protocol_in_repository + method: POST +- name: export_protocol_in_repository + endpoint: + path: /api/webhooks/export_protocol_in_repository + method: POST +- name: export_protocol_from_task + endpoint: + path: /api/webhooks/export_protocol_from_task + method: POST +- name: import_protocol_in_repository + endpoint: + path: /api/webhooks/import_protocol_in_repository + method: POST +- name: edit_description_in_protocol_repository + endpoint: + path: /api/webhooks/edit_description_in_protocol_repository + method: POST +- name: edit_keywords_in_protocol_repository + endpoint: + path: /api/webhooks/edit_keywords_in_protocol_repository + method: POST +- name: update_protocol_in_task_from_repository + endpoint: + path: /api/webhooks/update_protocol_in_task_from_repository + method: POST +- name: update_protocol_in_repository_from_task + endpoint: + path: /api/webhooks/update_protocol_in_repository_from_task + method: POST +- name: load_protocol_to_task_from_repository + endpoint: + path: /api/webhooks/load_protocol_to_task_from_repository + method: POST +- name: load_protocol_to_task_from_file + endpoint: + path: /api/webhooks/load_protocol_to_task_from_file + method: POST +- name: create_report + endpoint: + path: /api/webhooks/create_report + method: POST +- name: generate_pdf_report + endpoint: + path: /api/webhooks/generate_pdf_report + method: POST +- name: edit_report + endpoint: + path: /api/webhooks/edit_report + method: POST +- name: delete_report + endpoint: + path: /api/webhooks/delete_report + method: DELETE +- name: create_inventory + endpoint: + path: /api/webhooks/create_inventory + method: POST +- name: delete_inventory + endpoint: + path: /api/webhooks/delete_inventory + method: DELETE +- name: checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: rename_inventory + endpoint: + path: /rename_inventory + method: POST + data_selector: message_items + params: {} +- name: export_inventory_items + endpoint: + path: /export_inventory_items + method: POST + data_selector: message_items + params: {} +- name: import_inventory_items + endpoint: + path: /import_inventory_items + method: POST + data_selector: message_items + params: {} +- name: copy_inventory_item + endpoint: + path: /copy_inventory_item + method: POST + data_selector: message_items + params: {} +- name: create_item_inventory + endpoint: + path: /create_item_inventory + method: POST + data_selector: message_items + params: {} +- name: edit_item_inventory + endpoint: + path: /edit_item_inventory + method: POST + data_selector: message_items + params: {} +- name: delete_item_inventory + endpoint: + path: /delete_item_inventory + method: POST + data_selector: message_items + params: {} +- name: archive_inventory_item + endpoint: + path: /archive_inventory_item + method: POST + data_selector: message_items + params: {} +- name: restore_inventory_item + endpoint: + path: /restore_inventory_item + method: POST + data_selector: message_items + params: {} +- name: edit_result + endpoint: + path: /edit_result + method: POST + data_selector: message_items + params: {} +- name: add_comment_to_result + endpoint: + path: /add_comment_to_result + method: POST + data_selector: message_items + params: {} +- name: edit_result_comment + endpoint: + path: /edit_result_comment + method: POST + data_selector: message_items + params: {} +- name: delete_result_comment + endpoint: + path: /delete_result_comment + method: POST + data_selector: message_items + params: {} +- name: add_result + endpoint: + path: /add_result + method: POST + data_selector: message_items + params: {} +- name: archive_result + endpoint: + path: /archive_result + method: POST + data_selector: message_items + params: {} +- name: destroy_result + endpoint: + path: /destroy_result + method: POST + data_selector: message_items + params: {} +- name: add_comment_to_step + endpoint: + path: /add_comment_to_step + method: POST + data_selector: message_items + params: {} +- name: edit_step_comment + endpoint: + path: /edit_step_comment + method: POST + data_selector: message_items + params: {} +- name: delete_step_comment + endpoint: + path: /delete_step_comment + method: POST + data_selector: message_items + params: {} +- name: add_step_to_protocol_repository + endpoint: + path: /add_step_to_protocol_repository + method: POST + data_selector: message_items + params: {} +- name: create_step + endpoint: + path: /create_step + method: POST + data_selector: message_items + params: {} +- name: edit_step_in_protocol_repository + endpoint: + path: /edit_step_in_protocol_repository + method: POST + data_selector: message_items + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: edit_step + endpoint: + path: /webhooks/edit_step + method: POST + data_selector: message_items + params: {} +- name: delete_step_in_protocol_repository + endpoint: + path: /webhooks/delete_step_in_protocol_repository + method: POST + data_selector: message_items + params: {} +- name: destroy_step + endpoint: + path: /webhooks/destroy_step + method: POST + data_selector: message_items + params: {} +- name: check_step_checklist_item + endpoint: + path: /webhooks/check_step_checklist_item + method: POST + data_selector: message_items + params: {} +- name: uncheck_step_checklist_item + endpoint: + path: /webhooks/uncheck_step_checklist_item + method: POST + data_selector: message_items + params: {} +- name: complete_step + endpoint: + path: /webhooks/complete_step + method: POST + data_selector: message_items + params: {} +- name: uncomplete_step + endpoint: + path: /webhooks/uncomplete_step + method: POST + data_selector: message_items + params: {} +- name: create_tag + endpoint: + path: /webhooks/create_tag + method: POST + data_selector: message_items + params: {} +- name: edit_tag + endpoint: + path: /webhooks/edit_tag + method: POST + data_selector: message_items + params: {} +- name: delete_tag + endpoint: + path: /webhooks/delete_tag + method: POST + data_selector: message_items + params: {} +- name: unshare_inventory + endpoint: + path: /webhooks/unshare_inventory + method: POST + data_selector: message_items + params: {} +- name: export_projects + endpoint: + path: /webhooks/export_projects + method: POST + data_selector: message_items + params: {} +- name: undesignate_user_from_my_module + endpoint: + path: /webhooks/undesignate_user_from_my_module + method: POST + data_selector: message_items + params: {} +- name: remove_user_from_team + endpoint: + path: /webhooks/remove_user_from_team + method: POST + data_selector: message_items + params: {} +- name: user_leave_team + endpoint: + path: /webhooks/user_leave_team + method: POST + data_selector: message_items + params: {} +- name: change_users_role_on_team + endpoint: + path: /webhooks/change_users_role_on_team + method: POST + data_selector: message_items + params: {} +- name: edit_wopi_file_on_result + endpoint: + path: /webhooks/edit_wopi_file_on_result + method: POST + data_selector: message_items + params: {} +- name: edit_wopi_file_on_step + endpoint: + path: /webhooks/edit_wopi_file_on_step + method: POST + data_selector: message_items + params: {} +- name: edit_wopi_file_on_step_in_repository + endpoint: + path: /webhooks/edit_wopi_file_on_step_in_repository + method: POST + data_selector: message_items + params: {} +- name: add_comment_to_module + endpoint: + path: /webhooks/add_comment_to_module + method: POST + data_selector: message_items + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: unassign_user_from_project + endpoint: + path: /unassign_user_from_project + method: POST + data_selector: message_items + params: {} +- name: archive_protocol_in_repository + endpoint: + path: /archive_protocol_in_repository + method: POST + data_selector: message_items + params: {} +- name: restore_protocol_in_repository + endpoint: + path: /restore_protocol_in_repository + method: POST + data_selector: message_items + params: {} +- name: move_protocol_in_repository + endpoint: + path: /move_protocol_in_repository + method: POST + data_selector: message_items + params: {} +- name: copy_protocol_in_repository + endpoint: + path: /copy_protocol_in_repository + method: POST + data_selector: message_items + params: {} +- name: copy_inventory + endpoint: + path: /copy_inventory + method: POST + data_selector: message_items + params: {} +- name: archive_inventory + endpoint: + path: /archive_inventory + method: POST + data_selector: message_items + params: {} +- name: share_inventory + endpoint: + path: /share_inventory + method: POST + data_selector: message_items + params: {} +- name: update_share_inventory + endpoint: + path: /update_share_inventory + method: POST + data_selector: message_items + params: {} +- name: share_inventory_with_all + endpoint: + path: /share_inventory_with_all + method: POST + data_selector: message_items + params: {} +- name: restore_inventory + endpoint: + path: /restore_inventory + method: POST + data_selector: message_items + params: {} +- name: create_column_inventory + endpoint: + path: /create_column_inventory + method: POST + data_selector: message_items + params: {} +- name: edit_column_inventory + endpoint: + path: /edit_column_inventory + method: POST + data_selector: message_items + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: item + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: workflow + endpoint: + path: /workflows + method: GET + params: + WORKFLOW_ID: '' +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_updates + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/users + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams/{TEAM_ID}/project_folders + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET +- name: create_checklist_item + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items + method: POST +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: task_update + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: task_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/{TEAM_ID}/steps/{STEP_ID}/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST +- name: get_checklists + endpoint: + path: /v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists + method: GET +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: checklist_item_update + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: checklist_item_delete + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: '' + params: {} +- name: tables + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: GET + data_selector: data + params: {} +- name: table_create + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables + method: POST + data_selector: data + params: {} +- name: table_update + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: PATCH + data_selector: data + params: {} +- name: table_delete + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/tables/{ID} + method: DELETE + data_selector: '' + params: {} +- name: task_inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /api/v1/teams//protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /api/v1/teams//inventories + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_item_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: result_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams//users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /api/v2/teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /api/v2/teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /api/v1/teams/1/inventories/1/items/1/cells + method: GET + data_selector: data +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: get_protocols + endpoint: + path: /teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: null + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /workflows/WORKFLOW_ID/statuses + method: GET + data_selector: '' + params: + filter[created_at][from]: + filter[created_at][to]: + filter[updated_at][from]: + filter[updated_at][to]: +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: '' + params: {} +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /service/teams/1/steps/1/reorder_elements + method: POST +- name: reorder_steps + endpoint: + path: /service/teams/1/protocols/1/reorder_steps + method: POST +- name: get_checklists_v2 + endpoint: + path: /v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: GET +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: users + endpoint: + path: /api/v1/users + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /api/v1/user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /api/v1/teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /api/v1/teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /api/v1/teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /api/v1/teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /api/v1/teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /api/v1/teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /api/v1/teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET + data_selector: data + params: {} +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: reorder_elements + endpoint: + path: /api/service/teams/{TEAM_ID}/steps/{TASK_ID}/reorder_elements + method: POST + data_selector: data + params: {} +- name: reorder_steps + endpoint: + path: /api/service/teams/{TEAM_ID}/protocols/{PROTOCOL_ID}/reorder_steps + method: POST + data_selector: data + params: {} +- name: get_steps + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: GET + data_selector: data + params: {} +- name: get_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{ID} + method: DELETE + data_selector: data + params: {} +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items/ + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: null + params: {} +- name: step_texts_v1 + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data +- name: step_texts_v2 + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data +- name: attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: '' + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: inventory_cells + endpoint: + path: /teams/1/inventories/1/items/1/cells + method: GET + data_selector: data + params: {} +- name: attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: result_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /api/v1/teams//projects//reports + method: GET + data_selector: data +- name: get_cells + endpoint: + path: /teams//inventories//items//cells + method: GET +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: get_workflows + endpoint: + path: /workflows + method: GET +- name: get_workflow + endpoint: + path: /workflows/ + method: GET +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data +- name: inventory_columns + endpoint: + path: /inventories/{INVENTORY_ID}/columns + method: GET + data_selector: data +- name: list_items + endpoint: + path: /inventories/{INVENTORY_ID}/columns/{COLUMN_ID}/list_items + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: specific_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: GET + data_selector: data + params: {} +- name: create_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: POST + data_selector: data + params: {} +- name: update_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: PATCH + data_selector: data + params: {} +- name: delete_stock_unit_item + endpoint: + path: /teams//inventories//columns//stock_unit_items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: specific_item + endpoint: + path: /teams//inventories//items/ + method: GET + data_selector: data + params: {} +- name: create_item + endpoint: + path: /teams//inventories//items + method: POST + data_selector: data + params: {} +- name: update_item + endpoint: + path: /teams//inventories//items/ + method: PATCH + data_selector: data + params: {} +- name: delete_item + endpoint: + path: /teams//inventories//items/ + method: DELETE + data_selector: null + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: create_inventory_item_child_relationship + endpoint: + path: /teams//inventories//items//child_relationships + method: POST + data_selector: data + params: {} +- name: create_inventory_item_parent_relationship + endpoint: + path: /teams//inventories//items//parent_relationships + method: POST + data_selector: data + params: {} +- name: workflow_statuses + endpoint: + path: /api/v1/workflows/1/statuses + method: GET + data_selector: data +- name: change_user_role_on_experiment + endpoint: + path: /webhooks/change_user_role_on_experiment + method: POST + data_selector: message_items + params: {} +- name: change_user_role_on_my_module + endpoint: + path: /webhooks/change_user_role_on_my_module + method: POST + data_selector: message_items + params: {} +- name: edit_image_on_step + endpoint: + path: /webhooks/edit_image_on_step + method: POST + data_selector: message_items + params: {} +- name: archive_module + endpoint: + path: /webhooks/archive_module + method: POST + data_selector: message_items + params: {} +- name: move_task + endpoint: + path: /webhooks/move_task + method: POST + data_selector: message_items + params: {} +- name: designate_user_to_my_module + endpoint: + path: /webhooks/designate_user_to_my_module + method: POST + data_selector: message_items + params: {} +- name: rename_task + endpoint: + path: /webhooks/rename_task + method: POST + data_selector: message_items + params: {} +- name: create_module + endpoint: + path: /webhooks/create_module + method: POST + data_selector: message_items + params: {} +- name: clone_module + endpoint: + path: /webhooks/clone_module + method: POST + data_selector: message_items + params: {} +- name: create_experiment + endpoint: + path: /webhooks/create_experiment + method: POST + data_selector: message_items + params: {} +- name: edit_experiment + endpoint: + path: /webhooks/edit_experiment + method: POST + data_selector: message_items + params: {} +- name: restore_experiment + endpoint: + path: /webhooks/restore_experiment + method: POST + data_selector: message_items + params: {} +- name: archive_experiment + endpoint: + path: /webhooks/archive_experiment + method: POST + data_selector: message_items + params: {} +- name: invite_user_to_team + endpoint: + path: /webhooks/invite_user_to_team + method: POST + data_selector: message_items + params: {} +- name: add_task_tag + endpoint: + path: /webhooks/add_task_tag + method: POST + data_selector: message_items + params: {} +- name: remove_task_tag + endpoint: + path: /webhooks/remove_task_tag + method: POST + data_selector: message_items + params: {} +- name: change_module_description + endpoint: + path: /webhooks/change_module_description + method: POST + data_selector: message_items + params: {} +- name: set_task_due_date + endpoint: + path: /webhooks/set_task_due_date + method: POST + data_selector: message_items + params: {} +- name: remove_task_due_date + endpoint: + path: /webhooks/remove_task_due_date + method: POST + data_selector: message_items + params: {} +- name: change_task_due_date + endpoint: + path: /webhooks/change_task_due_date + method: POST + data_selector: message_items + params: {} +- name: change_status_on_task_flow + endpoint: + path: /webhooks/change_status_on_task_flow + method: POST + data_selector: message_items + params: {} +- name: restore_module + endpoint: + path: /webhooks/restore_module + method: POST + data_selector: message_items + params: {} +- name: create_project_folder + endpoint: + path: /create_project_folder + method: POST + data_selector: message_items + params: {} +- name: edit_project_comment + endpoint: + path: /edit_project_comment + method: POST + data_selector: message_items + params: {} +- name: delete_project_comment + endpoint: + path: /delete_project_comment + method: DELETE + data_selector: message_items + params: {} +- name: move_project + endpoint: + path: /move_project + method: POST + data_selector: message_items + params: {} +- name: rename_project_folder + endpoint: + path: /rename_project_folder + method: POST + data_selector: message_items + params: {} +- name: create_report + endpoint: + path: /create_report + method: POST + data_selector: message_items + params: {} +- name: edit_report + endpoint: + path: /edit_report + method: PUT + data_selector: message_items + params: {} +- name: delete_report + endpoint: + path: /delete_report + method: DELETE + data_selector: message_items + params: {} +- name: create_inventory + endpoint: + path: /create_inventory + method: POST + data_selector: message_items + params: {} +- name: delete_inventory + endpoint: + path: /delete_inventory + method: DELETE + data_selector: message_items + params: {} +- name: rename_inventory + endpoint: + path: /rename_inventory + method: POST + data_selector: message_items + params: {} +- name: export_inventory_items + endpoint: + path: /export_inventory_items + method: POST + data_selector: message_items + params: {} +- name: import_inventory_items + endpoint: + path: /import_inventory_items + method: POST + data_selector: message_items + params: {} +- name: copy_inventory_item + endpoint: + path: /copy_inventory_item + method: POST + data_selector: message_items + params: {} +- name: create_item_inventory + endpoint: + path: /create_item_inventory + method: POST + data_selector: message_items + params: {} +- name: edit_item_inventory + endpoint: + path: /edit_item_inventory + method: POST + data_selector: message_items + params: {} +- name: delete_item_inventory + endpoint: + path: /delete_item_inventory + method: POST + data_selector: message_items + params: {} +- name: archive_inventory_item + endpoint: + path: /archive_inventory_item + method: POST + data_selector: message_items + params: {} +- name: restore_inventory_item + endpoint: + path: /restore_inventory_item + method: POST + data_selector: message_items + params: {} +- name: edit_result + endpoint: + path: /edit_result + method: POST + data_selector: message_items + params: {} +- name: add_comment_to_result + endpoint: + path: /add_comment_to_result + method: POST + data_selector: message_items + params: {} +- name: edit_result_comment + endpoint: + path: /edit_result_comment + method: POST + data_selector: message_items + params: {} +- name: delete_result_comment + endpoint: + path: /delete_result_comment + method: POST + data_selector: message_items + params: {} +- name: add_result + endpoint: + path: /add_result + method: POST + data_selector: message_items + params: {} +- name: archive_result + endpoint: + path: /archive_result + method: POST + data_selector: message_items + params: {} +- name: destroy_result + endpoint: + path: /destroy_result + method: POST + data_selector: message_items + params: {} +- name: add_comment_to_step + endpoint: + path: /add_comment_to_step + method: POST + data_selector: message_items + params: {} +- name: edit_step_comment + endpoint: + path: /edit_step_comment + method: POST + data_selector: message_items + params: {} +- name: delete_step_comment + endpoint: + path: /delete_step_comment + method: POST + data_selector: message_items + params: {} +- name: add_step_to_protocol_repository + endpoint: + path: /add_step_to_protocol_repository + method: POST + data_selector: message_items + params: {} +- name: create_step + endpoint: + path: /create_step + method: POST + data_selector: message_items + params: {} +- name: edit_step_in_protocol_repository + endpoint: + path: /edit_step_in_protocol_repository + method: POST + data_selector: message_items + params: {} +- name: edit_step + endpoint: + path: /webhooks/edit_step + method: POST + data_selector: message_items + params: {} +- name: delete_step + endpoint: + path: /webhooks/delete_step + method: POST + data_selector: message_items + params: {} +- name: destroy_step + endpoint: + path: /webhooks/destroy_step + method: POST + data_selector: message_items + params: {} +- name: check_step_checklist_item + endpoint: + path: /webhooks/check_step_checklist_item + method: POST + data_selector: message_items + params: {} +- name: uncheck_step_checklist_item + endpoint: + path: /webhooks/uncheck_step_checklist_item + method: POST + data_selector: message_items + params: {} +- name: complete_step + endpoint: + path: /webhooks/complete_step + method: POST + data_selector: message_items + params: {} +- name: uncomplete_step + endpoint: + path: /webhooks/uncomplete_step + method: POST + data_selector: message_items + params: {} +- name: create_tag + endpoint: + path: /webhooks/create_tag + method: POST + data_selector: message_items + params: {} +- name: edit_tag + endpoint: + path: /webhooks/edit_tag + method: POST + data_selector: message_items + params: {} +- name: delete_tag + endpoint: + path: /webhooks/delete_tag + method: POST + data_selector: message_items + params: {} +- name: unshare_inventory + endpoint: + path: /webhooks/unshare_inventory + method: POST + data_selector: message_items + params: {} +- name: export_projects + endpoint: + path: /webhooks/export_projects + method: POST + data_selector: message_items + params: {} +- name: undesignate_user_from_my_module + endpoint: + path: /webhooks/undesignate_user_from_my_module + method: POST + data_selector: message_items + params: {} +- name: remove_user_from_team + endpoint: + path: /webhooks/remove_user_from_team + method: POST + data_selector: message_items + params: {} +- name: user_leave_team + endpoint: + path: /webhooks/user_leave_team + method: POST + data_selector: message_items + params: {} +- name: change_users_role_on_team + endpoint: + path: /webhooks/change_users_role_on_team + method: POST + data_selector: message_items + params: {} +- name: edit_wopi_file_on_result + endpoint: + path: /webhooks/edit_wopi_file_on_result + method: POST + data_selector: message_items + params: {} +- name: edit_wopi_file_on_step + endpoint: + path: /webhooks/edit_wopi_file_on_step + method: POST + data_selector: message_items + params: {} +- name: edit_wopi_file_on_step_in_repository + endpoint: + path: /webhooks/edit_wopi_file_on_step_in_repository + method: POST + data_selector: message_items + params: {} +- name: add_comment_to_module + endpoint: + path: /webhooks/add_comment_to_module + method: POST + data_selector: message_items + params: {} +- name: unassign_user_from_project + endpoint: + path: /unassign_user_from_project + method: POST + data_selector: message_items + params: {} +- name: archive_protocol_in_repository + endpoint: + path: /archive_protocol_in_repository + method: POST + data_selector: message_items + params: {} +- name: restore_protocol_in_repository + endpoint: + path: /restore_protocol_in_repository + method: POST + data_selector: message_items + params: {} +- name: move_protocol_in_repository + endpoint: + path: /move_protocol_in_repository + method: POST + data_selector: message_items + params: {} +- name: copy_protocol_in_repository + endpoint: + path: /copy_protocol_in_repository + method: POST + data_selector: message_items + params: {} +- name: copy_inventory + endpoint: + path: /copy_inventory + method: POST + data_selector: message_items + params: {} +- name: archive_inventory + endpoint: + path: /archive_inventory + method: POST + data_selector: message_items + params: {} +- name: share_inventory + endpoint: + path: /share_inventory + method: POST + data_selector: message_items + params: {} +- name: update_share_inventory + endpoint: + path: /update_share_inventory + method: POST + data_selector: message_items + params: {} +- name: share_inventory_with_all + endpoint: + path: /share_inventory_with_all + method: POST + data_selector: message_items + params: {} +- name: restore_inventory + endpoint: + path: /restore_inventory + method: POST + data_selector: message_items + params: {} +- name: create_column_inventory + endpoint: + path: /create_column_inventory + method: POST + data_selector: message_items + params: {} +- name: edit_column_inventory + endpoint: + path: /edit_column_inventory + method: POST + data_selector: message_items + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data + params: {} +- name: specific_team + endpoint: + path: /teams/ + method: GET + data_selector: data + params: {} +- name: team_users + endpoint: + path: /teams//users + method: GET + data_selector: data + params: {} +- name: specific_user + endpoint: + path: /users/ + method: GET + data_selector: data + params: {} +- name: user_identities + endpoint: + path: /users//identities + method: GET + data_selector: data + params: {} +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: specific_project + endpoint: + path: /teams//projects/ + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /teams//projects + method: GET + data_selector: data + params: {} +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: GET + data_selector: data + params: {} +- name: project_activities + endpoint: + path: /teams//projects//activities + method: GET + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: data + params: {} +- name: checklists + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET +- name: checklist + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET +- name: checklists + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data +- name: checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: POST + data_selector: data + params: {} +- name: update_table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: PATCH + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts + method: GET + data_selector: data + params: {} +- name: specific_step_text + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//texts/ + method: GET + data_selector: data + params: {} +- name: get_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /teams//projects//experiments//tasks//users + method: GET + data_selector: data + params: {} +- name: task_user + endpoint: + path: /teams//projects//experiments//tasks//users/ + method: GET + data_selector: data + params: {} +- name: task_activities + endpoint: + path: /teams//projects//experiments//tasks//activities + method: GET + data_selector: data + params: {} +- name: task_tags + endpoint: + path: /teams//projects//experiments//tasks//tags + method: GET + data_selector: data + params: {} +- name: task_inventory_items + endpoint: + path: /teams//projects//experiments//tasks//items + method: GET + data_selector: data + params: {} +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignments + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: result_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST +- name: result_texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data +- name: list_items + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_items + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_items + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data + params: {} +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data + params: {} +- name: get_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE +- name: get_workflows + endpoint: + path: /workflows + method: GET + data_selector: data +- name: get_workflow + endpoint: + path: /workflows/ + method: GET + data_selector: data +- name: get_workflow_statuses + endpoint: + path: /workflows//statuses + method: GET + data_selector: data +- name: teams + endpoint: + path: /api/v1/teams + method: GET + data_selector: data +- name: teams + endpoint: + path: /teams + method: GET + data_selector: data +- name: users + endpoint: + path: /teams/{TEAM_ID}/users + method: GET + data_selector: data +- name: user_identities + endpoint: + path: /users/{USER_ID}/identities + method: GET + data_selector: data +- name: user_roles + endpoint: + path: /user_roles + method: GET + data_selector: data +- name: projects + endpoint: + path: /teams/{TEAM_ID}/projects + method: GET + data_selector: data +- name: project_user_assignments + endpoint: + path: /teams//projects//users + method: POST + data_selector: data + params: {} +- name: project_comments + endpoint: + path: /teams//projects//comments + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: GET + data_selector: data + params: {} +- name: project_folders + endpoint: + path: /teams//project_folders + method: POST + data_selector: data.attributes + params: {} +- name: experiments + endpoint: + path: /teams//projects//experiments + method: GET + data_selector: data + params: {} +- name: user_assignments + endpoint: + path: /teams//projects//experiments//user_assignments + method: GET + data_selector: data + params: {} +- name: connections + endpoint: + path: /api/v1/teams//projects//experiments//connections + method: GET +- name: task_groups + endpoint: + path: /api/v1/teams//projects//experiments//task_groups + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: GET +- name: tasks + endpoint: + path: /api/v1/teams//projects//experiments//tasks + method: POST + data_selector: data + params: {} +- name: update_task + endpoint: + path: /api/v1/teams//projects//experiments//tasks/ + method: PATCH + data_selector: data + params: {} +- name: protocols + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols + method: GET + data_selector: data + params: {} +- name: steps + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: GET + data_selector: data + params: {} +- name: create_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps + method: POST + data_selector: data + params: {} +- name: update_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: PATCH + data_selector: data + params: {} +- name: delete_step + endpoint: + path: /v2/teams//projects//experiments//tasks//protocols//steps/ + method: DELETE + data_selector: null + params: {} +- name: checklists + endpoint: + path: /api/v2/teams//projects//experiments//tasks//protocols//steps//checklists + method: GET + data_selector: data + params: {} +- name: checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: GET + data_selector: data + params: {} +- name: create_checklist + endpoint: + path: /teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists + method: POST + data_selector: data + params: {} +- name: update_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: PATCH + data_selector: data + params: {} +- name: delete_checklist + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists/ + method: DELETE + data_selector: null + params: {} +- name: get_checklist_items + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//checklists//checklist_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items + method: POST + data_selector: data + params: {} +- name: update_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: PATCH + data_selector: data + params: {} +- name: delete_checklist_item + endpoint: + path: /teams/{TEAM_ID}/projects/{PROJECT_ID}/experiments/{EXPERIMENT_ID}/tasks/{TASK_ID}/protocols/{PROTOCOL_ID}/steps/{STEP_ID}/checklists/{CHECKLIST_ID}/checklist_items/{ID} + method: DELETE + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables + method: GET + data_selector: data + params: {} +- name: table + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//tables/ + method: GET + data_selector: data + params: {} +- name: step_texts + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts + method: GET + data_selector: data +- name: step_text + endpoint: + path: /api/v1/teams//projects//experiments//tasks//protocols//steps//step_texts/ + method: GET + data_selector: data +- name: get_attachments + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: GET + data_selector: data + params: {} +- name: get_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//attachments + method: POST + data_selector: data + params: {} +- name: get_step_form_responses + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses + method: GET + data_selector: data + params: {} +- name: get_step_form_response + endpoint: + path: /teams//projects//experiments//tasks//protocols//steps//form_responses/ + method: GET + data_selector: data + params: {} +- name: task_users + endpoint: + path: /api/v1/teams//projects//experiments//tasks//users + method: GET + data_selector: data +- name: task_activities + endpoint: + path: /api/v1/teams//projects//experiments//tasks//activities + method: GET + data_selector: data +- name: task_tags + endpoint: + path: /api/v1/teams//projects//experiments//tasks//tags + method: GET + data_selector: data +- name: task_inventory_items + endpoint: + path: /api/v1/teams//projects//experiments//tasks//items + method: GET + data_selector: data +- name: inventory_item + endpoint: + path: /teams//projects//experiments//tasks//items/ + method: PATCH + data_selector: data + params: {} +- name: task_user_assignments + endpoint: + path: /teams//projects//experiments//tasks//user_assignments + method: GET + data_selector: data + params: {} +- name: task_assignment + endpoint: + path: /teams//projects//experiments//tasks//task_assignments + method: GET + data_selector: data + params: {} +- name: results + endpoint: + path: /teams//projects//experiments//tasks//results + method: GET + data_selector: data + params: {} +- name: result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: GET + data_selector: data + params: {} +- name: create_result + endpoint: + path: /teams//projects//experiments//tasks//results + method: POST + data_selector: data + params: {} +- name: update_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: PATCH + data_selector: data + params: {} +- name: delete_result + endpoint: + path: /teams//projects//experiments//tasks//results/ + method: DELETE + data_selector: data + params: {} +- name: result_attachments + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: GET + data_selector: data + params: {} +- name: specific_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments/ + method: GET + data_selector: data + params: {} +- name: create_attachment + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//attachments + method: POST + data_selector: data + params: {} +- name: result_tables + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: GET + data_selector: data + params: {} +- name: specific_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables/ + method: GET + data_selector: data + params: {} +- name: create_table + endpoint: + path: /api/v2/teams//projects//experiments//tasks//results//tables + method: POST + data_selector: data + params: {} +- name: tables + endpoint: + path: /teams//projects//experiments//tasks//results//tables/ + method: PATCH + data_selector: data + params: {} +- name: texts + endpoint: + path: /teams//projects//experiments//tasks//results//texts + method: GET + data_selector: data + params: {} +- name: reports + endpoint: + path: /teams//projects//reports + method: GET + data_selector: data + params: {} +- name: protocol_templates + endpoint: + path: /protocol_templates + method: GET + data_selector: data + params: {} +- name: inventories + endpoint: + path: /inventories + method: GET + data_selector: data + params: {} +- name: inventory_columns + endpoint: + path: /inventories//columns + method: GET + data_selector: data + params: {} +- name: list_items + endpoint: + path: /inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: list_item + endpoint: + path: /teams//inventories//columns//list_items + method: GET + data_selector: data + params: {} +- name: status_item + endpoint: + path: /teams//inventories//columns//status_items + method: GET + data_selector: data + params: {} +- name: checklist_item + endpoint: + path: /teams//inventories//columns//checklist_items + method: GET + data_selector: data + params: {} +- name: stock_unit_items + endpoint: + path: /teams//inventories//columns//stock_unit_items + method: GET + data_selector: data + params: {} +- name: inventory_items + endpoint: + path: /teams//inventories//items + method: GET + data_selector: data + params: {} +- name: inventory_item_child_relationships + endpoint: + path: /teams//inventories//items//child_relationships + method: GET + data_selector: data +- name: inventory_item_parent_relationships + endpoint: + path: /teams//inventories//items//parent_relationships + method: GET + data_selector: data +- name: inventory_cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data +- name: cells + endpoint: + path: /teams//inventories//items//cells + method: GET + data_selector: data + params: {} +- name: specific_cell + endpoint: + path: /teams//inventories//items//cells/ + method: GET + data_selector: data + params: {} +- name: create_cell + endpoint: + path: /teams//inventories//items//cells + method: POST + data_selector: data + params: {} +- name: update_cell + endpoint: + path: /teams//inventories//items//cells/ + method: PATCH + data_selector: data + params: {} +- name: delete_cell + endpoint: + path: /teams//inventories//items//cells/ + method: DELETE + data_selector: data + params: {} +notes: +- API key expires after one year. +- OAuth2 access token must be included in all API requests. +- Request body for updating task user assignment must include 'user_role_id'. +- Deleting a task assignment returns an empty body with status code 200. +- SciNote uses JWT tokens to allow access to the API and OAuth 2 protocol for token + generation using authorization code flow. +- Supports inclusion of tables, result_texts, assets, comments in GET requests. +- This API requires a Bearer token for authorization. +- Replace , , , , , and + with actual values. +- API key authentication needs to be enabled on your instance to use this option. +- This API supports advanced filtering using metadata fields embedded in each task + record. +- The API requires a valid team, project, experiment, and task ID to function. +- Supports inclusion of comments, tables, result_texts, and assets. +- Uses Bearer token for authorization. +- Replace server_name, TEAM_ID, INVENTORY_ID, ITEM_ID, CHILD_ID, and ID with actual + values. +- Deprecated endpoints for Attachments V1. +- API key authentication feature needs to be enabled on your instance to use API key +- API key expires after one year +- If you would like to enable them in a local install, add ENABLE_WEBHOOKS=true to + your environment variables. +- The API requires the team ID, project ID, experiment ID, task ID, protocol ID, step + ID, checklist ID, and checklist item ID for endpoint paths. +- API key authentication feature needs to be enabled on your instance to use this + option. +- The API key expires after one year. +- If `?include=comments` PATH parameter is provided, the project comments are also + included. +- The endpoint for step_texts has been updated to v2. +- This API supports filtering by created_at and updated_at timestamps +- If `?include=comments` PATH parameter is provided, result comments are also included. +- The API retrieves tables from specific steps. +- Ensure the correct IDs are provided for team, project, experiment, task, protocol, + and step. +- You must replace with your API access token. +- Various endpoints require the ID parameters to retrieve specific resources. +- SciNote uses JWT tokens for authentication and OAuth 2 protocol for token generation. +- The endpoint to get attachments is deprecated. +- The endpoints require proper URL parameters for team, project, experiment, and task + IDs. +- Authorization header must be included in all requests. +- If submitted attributes are the same and no changes are made for the text, server + returns empty body with response code 204. +- 'Cells can have such types: text, list, file.' +- SciNote uses JWT tokens for API access. +- 'Supports inclusion of elements: tables, result_texts, assets, comments' +- Uses OAuth2 — requires setup of connected app in api +- This endpoint retrieves reports from specific project. PDF and DOCX attributes will + be included only if files are generated. +- This endpoint retrieves stock unit items from specific inventory column, only valid + for columns with 'stock' data type. +- Replace *server_name*, *TEAM_ID*, *INVENTORY_ID*, *ITEM_ID*, *CHILD_ID*, and *ID* + with actual values. +- SciNote uses JWT tokens for access and OAuth 2 protocol for token generation using + authorization code flow. +- 'The above commands return JSON structured like this: ...' +- This API supports advanced filtering using metadata fields embedded in each experiment + record. +- Only valid for columns with 'stock' data type. +- Replace , , , and with actual values. +- Replace , , , , , , + and with actual values in requests. +- The API requires specific IDs for team, project, experiment, and task in the URL. +- PDF and DOCX attributes will be included only if files are generated. +- The endpoint retrieves tables from specific step. +- The endpoint creates new table in the step. +- If submitted attributes are the same and no changes are made for the table, server + returns empty body with response code 204. +- Requires valid user ID and identity mapping ID for specific user identity operations. +- Includes filtering options based on timestamps for user and task assignments. +- Only valid for columns with 'list' data type +- Only valid for columns with 'status' data type +- Only valid for columns with 'checklist' data type +- URLs require specific team, project, experiment, and task IDs. +- API response includes the 'links' sections to check for next page. +- Optional URL parameter 'render_rte=true' can be added in order to request rendering + of RTE fields. +- If ?include=comments PATH parameter is provided, task comments are also included. +- The API key authentication feature needs to be enabled on your instance. +- Uses Bearer token for authentication +- Various endpoints provided for managing result texts and reports. +- Request body for updating user assignment includes user_role_id. +- Requires setup of connected app in api +- The API requires valid team, project, experiment, task, protocol, step, and table + IDs to be specified in the URLs. +- Server returns empty body with response code 204 if no changes are made. +- Requires setup of OAuth2 authentication +- Uses OAuth2 for authentication. +- Endpoints for checklist, list, and status items only valid for specific data types. +- Uses OAuth2 with authorization code flow for token generation +- 'Supports inclusion of elements: tables, result_texts, assets, comments.' +- Linked tasks are visible in the response only for a specific version of a protocol + template. +- The endpoint for results is deprecated. +- This endpoint deletes specific text from the result. +- You must include the access token in all API requests. +- Uses Bearer token for authentication. +- Requires setup of authorization token for API access. +- The API requires authentication with Bearer token. +- This API supports inclusion of tables, result_texts, assets, and comments. +- Requires setup of connected app +- Authorization code is required for token generation. +- Supports advanced filtering using metadata fields embedded in each project record. +- The table attributes include optional fields such as name and contents. +- The reports may include PDF and DOCX attributes only if files are generated. +- Requires team, project, experiment, task, protocol, and step IDs in the URL. +- API key authentication feature needs to be enabled on your instance. +- The API requires authorization with a Bearer token. +- The API supports pagination but requires parameters for filtering results. +- Optional URL parameter 'render_rte=true' can be added to request rendering of RTE + fields. +- If '?include=comments' is provided, step comments are also included. +- The endpoints support URL parameters for filtering and retrieving specific items. +- Only valid for columns with 'list', 'status', or 'checklist' data types +- Use appropriate TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, and USER_ID in the + URLs. +- All endpoints require proper team, project, experiment, and task IDs. +- Supports various operations on checklists such as creating, updating, and deleting. +- Replace server_name, TEAM_ID, INVENTORY_ID, ITEM_ID with actual values. +- Endpoints for creating, updating, and deleting checklist items are available. +- API key authentication requires enabling on instance. +- If `?include=form_field_values` PATH parameter is provided, form field values are + also included. +- Supports advanced filtering using metadata fields embedded in project records. +- Metadata can be included in responses by using the query parameter with-metadata=true. +- Requires team ID and project ID for most endpoints +- Filtering capabilities based on inventory column values. +- JWT tokens are used for API access. +- API key authentication is available if enabled in the instance. +- Supports advanced filtering using metadata fields. +- Bearer token required for authentication with endpoints. +- Supports inclusion of comments, result_texts, assets, tables. +- Uses Bearer token for authorization +- The API uses OAuth2 for authentication +- API key authentication requires enabling functionality on your instance. +- If ?include=comments PATH parameter is provided, project comments are also included. +- Result comments can be included by providing ?include=comments in the request. +- This endpoint supports pagination for results. +- The user assignments for tasks are created asynchronously. +- This API requires a valid OAuth2 Bearer token for authentication. +- The API requires specific IDs for team, project, experiment, task, protocol, step, + and table. +- Requests must include an Authorization header with a Bearer token. +- API key functionality needs to be enabled on your instance +- Deprecated endpoints for step_texts exist in V1. +- Ensure to replace placeholders in URLs with actual IDs. +- Supports creation, update, and deletion of checklists and checklist items. +- Only valid for columns with 'list', 'status', or 'checklist' data types. +- If ?include=comments PATH parameter is provided, the project comments are also included. +- The requests require an Authorization header with a Bearer token. +- Advanced filtering supported using metadata fields. +- Metadata keys and values must be strings. +- Supports inclusion of comments, result_texts, assets, and tables based on query + parameters. +- If '?include=comments' is provided, task comments are also included. +- The API uses Bearer token for authentication. +- Use appropriate TEAM_ID, PROJECT_ID, EXPERIMENT_ID, and TASK_ID in the requests. +- This endpoint retrieves all users who are members of the specified project. +- This endpoint retrieves a specific user who is a member of the specified project. +- User assignments for tasks are created asynchronously. +- If submitted attributes are the same and no changes are made, server returns empty + body with response code 204. +- Requires authentication via Bearer token. +- Filtering is available for created_at and updated_at timestamps. +- Requires valid team, project, experiment, task, protocol, and step IDs. +- Deprecated endpoints should not be used. +- Ensure to replace placeholders with actual values when making requests. +- All metadata keys and values must be strings. +- SciNote uses JWT tokens for authentication. +- API key authentication requires enabling on the instance. +- The API requires a valid bearer token for authentication. +- Optional URL parameter 'render_rte=true' can be added in order to request rendering + of RTE fields(embedded images, smart annotations). +- Requires valid team ID and project ID for requests. +- The endpoint for attachments is deprecated. +- The endpoint for getting form responses supports filtering based on timestamps. +- SciNote uses JWT tokens for authentication and OAuth 2 protocol for token generation + using authorization code flow. +- API key authentication needs to be enabled on your instance. +- Optional URL parameters can filter results based on timestamps +- Supports inclusion of various elements like tables and comments +- Replace *server_name*, *TEAM_ID*, *INVENTORY_ID*, *ITEM_ID*, and *ID* with actual + values. +- Requires valid team, project, experiment, task, protocol, step, and checklist IDs + in the URL. +- Activity and comment retrieval support filtering by created_at and updated_at timestamps. +- User assignments require user_id and user_role_id in the request body. +- Supports filtering experiments using custom metadata key-value pairs. +- Use of Bearer token for authorization. +- Requires team ID, project ID, experiment ID, task ID, and result ID in the URL. +- ID parameters are required for accessing specific resources. +- API key functionality needs to be enabled on instance +- Requests may be asynchronous for user assignments. +- If submitted attributes are the same and no changes are made for the project, server + returns empty body with response code 204. +- If `?include=comments` PATH parameter is provided, step comments are also included. +- Some endpoints require URL parameters for team, project, experiment, and task IDs. +- Ensure to replace , , , , , + , and with actual values. +- Connection to/from can be included as relationships. +- Tasks can be created and updated asynchronously. +- The API supports creating, updating, and deleting checklists and checklist items. +- API key functionality needs to be enabled on your instance to use API key authentication. +- The endpoints require the authorization token to be included in the header. +- This API supports inclusion of comments if ?include=comments is provided in the + request. +- API key authentication is available if enabled on the instance. +- Endpoints for retrieving and creating attachments are deprecated in V1 but available + in V2. +- Project user assignments are created and managed asynchronously. +- Valid for columns with 'list', 'status', and 'checklist' data types. +- Requires setup of connected app in API +- You must replace 'qwerty123456...' with your API access token. +- Uses OAuth2 with Bearer token for authentication. +- The API requires a Bearer token for authentication. +- If ?include=comments PATH parameter is provided, result comments are also included. +- This API includes endpoints for creating, updating, and deleting checklist items. +- Requires parameters TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, STEP_ID, + and ID for specific requests. +- Endpoints only valid for specified data types of the inventory columns. +- Replace , , , with actual values. +- The API uses Bearer token for authorization. +- The API supports pagination for retrieving results and reports. +- API key functionality needs to be enabled on your instance. +- Asynchronous creation of user assignments for tasks. +- Request body for updating inventory items requires stock_consumption. +- Server returns empty body with response code 204 if submitted attributes are the + same and no changes are made. +- Endpoints are only valid for specific data types in columns. +- 'Supports inclusion of elements: tables, step_texts, assets, checklists, comments.' +- Optional URL parameters available for filtering and including related data. +- Includes metadata in the response using with-metadata=true query parameter. +- Use appropriate TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, STEP_ID, + and CHECKLIST_ID in the requests. +- Uses OAuth2 — requires setup of Bearer token for authorization. +- Endpoints for managing list, status, and checklist items. +- Response may vary based on parameters provided. +- Only valid for columns with 'stock' data type +- This API supports advanced filtering using metadata fields embedded in each project + record. +- Requires setup of API key for authorization +- Endpoint requires team, project, experiment, and task IDs in the URL. +- The API key expires after one year and can be revoked anytime. +- This endpoint retrieves all project folders from the specified team. +- The API supports advanced filtering using metadata fields embedded in each task + record. +- The API supports CRUD operations for checklists and checklist items. +- The DELETE request for step_texts returns an empty body with status code 200. +- Endpoints for creating, retrieving, and listing attachments. +- Ensure to replace , , and with actual values + in requests +- 'Tokens include claims: iss, exp, sub' +- If '?include=comments' PATH parameter is provided, task comments are also included. +- Optional URL parameter 'render_rte=true' can be added for rendering of RTE fields. +- Use '?include=comments' to include step comments. +- If `?include=comments` PATH parameter is provided, task comments are also included. +- This API version is v2. +- Deprecated endpoints are available in V1. +- SciNote uses JWT tokens for API access +- API key authentication can be enabled on your instance +- The API supports creation, updating, and deletion of checklists and checklist items. +- The API has deprecated V1 endpoints in favor of V2. +- Endpoints require specific team, project, experiment, and task IDs +- This API supports filtering and inclusion of elements such as comments. +- Requires OAuth2 authentication +- Filtered queries can be applied using URL parameters +- Server returns empty body with response code 204 if no changes are made for the + project folder. +- API key authentication requires enabling on the instance +- Asynchronous user assignments for tasks. +- Uses OAuth2 with Bearer token for authorization. +- If `?include=comments` parameter is provided, task comments are also included. +- Deprecated API version +- Empty body with response code 204 if no changes are made during updates. +- The API requires valid team, project, experiment, task IDs to access resources. +- Request body for inventory item updates must include stock_consumption +- User assignments require correct user and task IDs +- Deprecated endpoints may still be accessible but are not recommended for use. +- The server returns 204 if no changes are made when updating a checklist item. +- Ensure to replace placeholders like , , , + in the endpoints. +- This API requires proper setup of team, inventory, and column IDs. +- The URL parameters must be replaced with actual ID values. +- Ensure that the Authorization header is correctly set with a Bearer token. +- SciNote uses JWT tokens for API access and OAuth 2 protocol for token generation + using authorization code flow. +- API key authentication feature needs to be enabled on your instance to use API key. +- The endpoint for getting results is deprecated. +- Ensure to replace placeholders in the URLs with actual IDs. +- Requires setup of OAuth2 credentials for API access +- Requires setup of connected app for OAuth2 authentication. +- Ensure to replace placeholders such as , , and + with actual values. +- Checklists can be created, updated, and deleted through the API. +- Checklist items are associated with specific checklists and can also be managed + via the API. +- The API requires a valid team, project, experiment, task, protocol, and step ID + to retrieve or manipulate tables. +- Use specific IDs for TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, and + STEP_ID. +- Some attributes are mandatory, such as stock_consumption and user_id. +- The API requires specific IDs for team, project, experiment, task, and result in + the endpoints. +- If with-metadata is not set to true, metadata fields will not be shown in the response, + even if data exists. +- Default page size is 10. +- The API uses Bearer token authentication for all requests. +- If submitted attributes are the same and no changes are made for the user assignment, + server returns empty body with response code 204. +- Supports inclusion of elements such as tables, result_texts, assets, comments. +- The API requires valid team, project, experiment, and task IDs. +- Requires setup of authorization token for access +- Supports filtering and inclusion parameters for comments. +- The endpoints require specific IDs to be provided in the path +- Uploads require a base64 encoded file_data +- All metadata keys and values must be strings +- If with-metadata is not set to true, metadata fields will not be shown in the response +- API key authentication can be enabled on your instance. +- API key expires after one year and can be revoked at any time. +- The API requires a team ID, project ID, experiment ID, task ID, protocol ID, step + ID, and checklist ID for requests. +- Ensure correct authentication token is provided. +- Supports inclusion of tables, result_texts, assets, comments. +- Uses OAuth2 with Bearer token for authorization +- Authorization code needs to be retrieved via GET /oauth/authorize. +- The API returns different responses depending on the request type and parameters. +- API supports advanced filtering using metadata fields. +- Including 'with-metadata=true' in request returns metadata in response. +- Uses OAuth2 for authentication +- Supports inclusion of results, assets, tables, result_texts, comments. +- This API requires a valid Bearer token for authorization. +- The API supports filtering based on timestamps for various endpoints. +- Requires Bearer token for authorization. +- This API supports advanced filtering using metadata fields. +- Supports creation, retrieval, updating, and deletion of checklists and checklist + items. +- 'Cells can have types: text, list, file.' +- If submitted attributes are the same and no changes are made for the task, server + returns empty body with response code 204. +- Endpoint for updating specific inventory item. +- Request body requires attributes for stock consumption. +- Supports inclusion of comments in results retrieval. +- Some endpoints require specific IDs for team, project, experiment, task, and result. +- Endpoints require TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID as URL parameters. +- API key expires after one year and can be revoked in user profile settings. +- Checklist items can be created, retrieved, updated, and deleted. +- Endpoints may be deprecated in the future. +- Replace , , , , , and + with actual values. +- This endpoint retrieves cells from specific inventory. +- This endpoint creates new task in the experiment. User assignments for this task + are created asynchronously. +- Returns JSON structured data for tables and specific table attributes. +- The API requires the team, project, experiment, and task IDs to be replaced in the + endpoints. +- If ?include=comments parameter is provided, step comments are included. +- This API supports various endpoints for managing tasks and user assignments. +- API key authentication available if enabled in user profile settings. +- This API requires an authorization token in the header. +- Requires Bearer token for authentication +- This API supports CRUD operations for checklists and checklist items. +- Endpoints for creating, updating, and deleting checklist items and tables are provided. +- API calls require specific team, project, experiment, task, protocol, step, checklist, + and table IDs. +- Including Metadata in the Response requires using the query parameter with-metadata=true. +- Result comments can be included by setting the 'include' parameter to 'comments'. +- SciNote uses JWT tokens and OAuth 2 protocol for token generation using authorization + code flow. +- API key authentication needs to be enabled on the instance. +- Requires setup of Bearer token for authorization. +- Endpoint requires valid TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, + STEP_ID, CHECKLIST_ID and ID in the URL. +- The API supports filtering by created_at and updated_at timestamps. +- 'This endpoint retrieves checklists from specific step. It also supports inclusion + of these elements: checklist_items.' +- Use of Bearer token for authorization +- Handles various task-related operations including user assignments and inventory + item management. +- Endpoints may require specific IDs for team, project, experiment, and task in the + URL. +- To authenticate via API key, add the Api-Key header to all requests. +- The checklist endpoints require team, project, experiment, task, protocol, step, + and checklist IDs to function. +- Request body for updating inventory item must include stock_consumption. +- User assignments can be retrieved and updated for specific tasks. +- Supports CRUD operations for checklists and checklist items. +- Requires setup of team, project, experiment, task, and result IDs in the request. +- The API requires an authorization token. +- Only valid for columns with 'list', 'status', or 'checklist' data type. +- Replace *server_name*, *TEAM_ID*, *INVENTORY_ID*, and *ITEM_ID* with actual values. +- JWT tokens are used for authentication and require an authorization code to be retrieved. +- API key authentication is available but needs to be enabled on the instance. +- 'This endpoint retrieves results from specific task. It also supports inclusion + of these elements: tables, result_texts, assets, comments.' +- Requires specific IDs for team, project, experiment, task, and result in the URL. +- SciNote expects for the API access token to be included in all API requests. +- The API requires specifying team, project, experiment, task, protocol, step, and + table IDs in the URL. +- The API requires an Authorization token. +- Advanced filtering is supported using metadata fields in project records. +- Authorization requires Bearer token. +- Supports including comments and other elements in results retrieval +- The endpoints support various URL parameters for team, project, experiment, task, + protocol, step, and checklist IDs. +- Replace , , , , and other placeholder + values with actual values. +- SciNote uses JWT tokens for API access and OAuth 2 protocol for token generation. +- If `?include=comments` PATH parameter is provided, project comments are also included. +- Empty body with status code 204 if no changes are made. +- This endpoint creates new task in the experiment. +- Update endpoint returns empty body with response code 204 if no changes are made. +- If '?include=comments' PATH parameter is provided, step comments are also included. +- The ID parameters are required for all requests. +- This API supports CRUD operations for checklist items. +- Filters can be applied to the table retrieval endpoints using URL parameters. +- The checklist item attributes include text (mandatory), checked (optional), and + position (optional). +- Filtering capabilities based on inventory column values are supported. +- The API supports retrieval, creation, and updating of tables within a specific step. +- Deprecated endpoints for V1 exist but should not be used. +- The API requires a valid Authorization token for access. +- 'This endpoint supports inclusion of elements: tables, result_texts, assets, comments.' +- Advanced filtering can be done using metadata fields. +- This API supports filtering step tables based on timestamps. +- If no changes are made to the table during an update, a 204 response is returned. +- Use the appropriate TEAM_ID, PROJECT_ID, and EXPERIMENT_ID in the requests. +- Deprecated endpoints are available for previous versions. +- Ensure to replace placeholders like , , , and + with actual values. +- Endpoints require specific IDs for team, project, experiment, task, and result. +- Step description is fetched from the first step_text element of the protocol step. +- The API requires authentication via Bearer token. +- The API requires a Bearer token for authorization. +- Endpoint returns empty body with status code 204 if no changes are made. +- All dates and datetimes must be in ISO 8601 format. +- API key authentication requires enabling the feature in user profile settings. +- Including Metadata in the Response can be done using the query parameter with-metadata=true. +- This API is deprecated. +- Requires user authentication via Bearer token +- If ?include=comments PATH parameter is provided, step comments are also included. +- JWT tokens are used for access to the API. +- API key authentication can be enabled on the instance. +- The endpoint supports inclusion of checklist_items +- Ensure to replace placeholders with actual IDs in the requests +- API key authentication requires enabling the feature in your instance. +- Replace server-name, TEAM_ID, INVENTORY_ID, and ITEM_ID with actual values. +- API requires authorization with Bearer token. +- Requires team, project, experiment, and task IDs in the URL +- Authorization requires a Bearer token. +- API key authentication requires enabling the feature on your instance. +- The API supports advanced filtering using metadata fields embedded in each project + record. +- Deprecated version 1 of the API +- Valid for columns with 'stock' data type +- Checklists and checklist items can be created, updated, and deleted using the respective + endpoints. +- Use appropriate URLs with actual values for , , , + , , and . +- 'Use ''Authorization: Bearer '' for API requests.' +- Metadata fields can be used as dynamic filters via the filter[metadata] parameter + in the query string. +- Ensure to replace placeholders like {TEAM_ID}, {PROJECT_ID}, etc. with actual values + in endpoint URLs. +- Supports inclusion of comments, tables, and result texts. +- The API requires the use of a Bearer token for authentication. +- Requires team, project, experiment, task, and result IDs in the URL. +- The server returns an empty body with status code 204 when submitted attributes + are the same. +- Replace server_name, TEAM_ID, INVENTORY_ID, ITEM_ID, PARENT_ID, and ID with actual + values. +- This API supports filtering and inclusion of related resources. +- API key authentication expires after one year. +- API response includes 'links' section for pagination. +- Requires setup of OAuth2 authorization. +- Metadata fields can be used as dynamic filters via the filter[metadata] parameter. +- JWT tokens are used for authentication. +- The API requires IDs for team, project, experiment, task, protocol, step, and checklist + in the URL. +- The API requires authorization via Bearer token. +- Use correct IDs for TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, and USER_ID. +- SciNote uses JWT tokens for access to the API and OAuth 2 protocol for token generation. +- Uses OAuth2 for authentication, requires bearer token. +- The API requires the TEAM_ID and PROJECT_ID as part of the URL. +- All endpoints require the appropriate team, project, and experiment IDs to function. +- The API requires team, project, experiment, task, and item IDs in the URL. +- Optional URL parameter 'render_rte=true' can be added for rendering RTE fields. +- If '?include=comments' PATH parameter is provided, step comments are included. +- Endpoints for attachments and form responses have both V1 and V2. +- Result comments can be included using the ?include=comments parameter. +- This endpoint retrieves specific checklist from the step. +- The endpoint supports inclusion of checklist_items. +- Supports inclusion of elements like tables, result_texts, assets, comments. +- Requires OAuth2 authentication. +- Requires proper setup of team, project, experiment, and task IDs in the URL. +- All endpoints require a valid Authorization token. +- The API requires team, project, experiment, and task IDs in the URL. +- For pagination, check 'links' section in the response. +- This endpoint retrieves attachments from specific step. +- The API requires team, project, experiment, task, and result IDs for endpoint calls +- Ensure proper authorization headers are set. +- Use appropriate TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, and STEP_ID + for API requests. +- Endpoints may vary by version. +- API key authentication can be enabled for the instance. +- Request body for updating inventory items requires stock_consumption attribute. +- The ID parameters represent unique identifiers for the respective entities. +- The API requires a valid Bearer token for authentication. +- Endpoints in this API support creation, updating, retrieval, and deletion of checklists + and checklist items. +- Authorization code needs to be retrieved before accessing the API. +- The ID parameters (TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID) must be replaced + with actual values. +- Some API calls may require additional parameters for filtering. +- Ensure to replace , , and with actual values. +- Responses may include pagination links for large datasets. +- This endpoint retrieves tables from specific step. +- This endpoint retrieves specific table from the step. +- This endpoint creates new table in the step. +- This endpoint updates existing table in the selected step. +- Connection input/output tasks can be included as relationships. +- Results can be created, updated, or deleted in the context of a task. +- Comments can be included in the results retrieval if specified. +- To authenticate via API key, add the 'Api-Key' header to all requests. +- API responses may vary based on the specified task ID and user ID. +- User assignments and task assignments are managed through separate endpoints. +- Requires valid TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, STEP_ID, + and ID for respective requests. +- Request body for updating inventory item includes mandatory stock_consumption and + optional stock_consumption_comment +- Authorization token needs to be included in the header for all API requests +- All endpoints require TEAM_ID and PROJECT_ID as parameters. +- Asynchronous task assignment creation. +- 'Retrieves checklists from specific step. It also supports inclusion of these elements: + checklist_items.' +- Supports various CRUD operations for results and reports. +- Supports inclusion of comments, result_texts, assets, and tables. +- Uses OAuth 2 protocol for token generation using authorization code flow +- API key authentication feature needs to be enabled on your instance +- If `?include=comments` parameter is provided, step comments are also included. +- Requires Authorization Bearer token with each request +- Authorization token needs to be provided in the header. +- All endpoints require team, project, experiment, and task IDs. +- This API includes endpoints for managing inventory items, user assignments, and + task assignments. +- Supports inclusion of tables, result_texts, assets, comments +- API key expires after one year and can be revoked at any time in user profile settings. +- The API requires a valid Authorization token to access endpoints. +- Endpoint requires specific IDs for team, project, experiment, task, protocol, step, + and table. +- This endpoint retrieves specific result from the task. +- API requires Bearer token for authentication. +- Team and user management is restricted to authorized users only. +- Uses OAuth2 with Bearer token for authentication +- To include the metadata field in the JSON response, use the query parameter with-metadata=true. +- Supports inclusion of tables, step_texts, assets, checklists, checklist_items, comments. +- Server returns empty body with response code 204 if no changes are made for the + item. +- Server returns empty body with status code 200 on successful deletion of checklist + item. +- Request body for updating inventory items requires `stock_consumption`. +- User assignments and task assignments are retrieved with specific team, project, + and experiment IDs. +- Request body for updating inventory items requires 'stock_consumption' attribute +- 'Endpoint supports inclusion of elements: tables, result_texts, assets, comments.' +- This API only supports columns with 'stock' data type. +- Endpoints support URL parameters for TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, + PROTOCOL_ID, STEP_ID, and ID. +- If ?include=form_field_values PATH parameter is provided, form field values are + also included. +- URL parameters such as TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, and RESULT_ID + are required for requests. +- API key authentication is available but needs to be enabled. +- You must include the access token in the header for all API requests. +- Supports inclusion of comments, tables, and result_texts. +- API key authentication requires enabling on your instance. +- Metadata can be included in API responses by using the query parameter with-metadata=true. +- Includes metadata can be explicitly returned in API responses by using the query + parameter with-metadata=true. +- The ID of the team to retrieve project from is required for all endpoints. +- Returns JSON structured with data array containing step_texts. +- Authorization is required for all endpoints. +- Supports inclusion of assets, tables, result_texts, comments. +- This endpoint retrieves specific result attachments. +- API key authentication feature needs to be enabled on your instance to use API key + option. +- Requires valid TEAM_ID, INVENTORY_ID, ITEM_ID in the URL. +- Token expiration time is included in the response +- This API supports checklist creation, updating, and deletion. +- Authorization token must be included in the header for each request. +- Endpoints include user assignments and task assignments. +- Replace server_name, TEAM_ID, INVENTORY_ID, ITEM_ID, and ID with actual values. +- If ?include=form_field_values is provided, form field values are included in response. +- Requires setup of connected app for authorization. +- This endpoint retrieves all latest protocol templates versions from the specified + team. +- This endpoint retrieves all active inventories from the specified team. +- API key authentication can be enabled in user profile settings +- Uses OAuth2 with Bearer token +- This endpoint retrieves specific report from specific project. +- API key authentication needs to be enabled on your instance +- The server returns an empty body with response code 204 if no changes are made when + updating a task. +- This API supports CRUD operations for checklists. +- Authorization token is required for all endpoints. +- This API requires authentication via OAuth2. +- This endpoint retrieves results from specific task. +- Supports inclusion of comments in GET requests. +- URL parameters are required for specific team, project, experiment, task, and result + IDs. +- All filter values must match the expected type (string, number, dates, arrays). +- The API requires an Authorization header with a Bearer token. +- This API is valid for columns with 'list', 'status', and 'checklist' data types. +- Data includes step texts with attributes like title and text. +- The API requires providing TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, + STEP_ID, and ID as URL parameters. +- Deprecated endpoints are available in V1 but not recommended for use. +- The API requires a valid team ID, project ID, experiment ID, and task ID for most + endpoints. +- Requires a valid team, project, experiment, task, and item ID in the URL. +- This endpoint requires team, project, experiment, task, and result IDs. +- SciNote uses JWT tokens for access +- API key authentication feature needs to be enabled +- If '?include=comments' is provided, step comments will be included. +- 'The request body must include data with attributes: text (mandatory), checked (optional), + position (optional).' +- Request body for updating inventory item requires stock_consumption attribute +- Some endpoints may return an empty body with status code 200 +- Supports inclusion of tables, result_texts, assets, and comments. +- Endpoint responses may include nested relationships. +- The endpoint retrieves tables from a specific step. +- Endpoint supports filtering by timestamps. +- This endpoint retrieves columns from specific inventory. +- Endpoints require team ID, inventory ID, and column ID as parameters. +- JWT tokens are used for access and OAuth 2 protocol for token generation +- API key authentication requires enabling the feature in user profile settings +- Uses OAuth2 — requires Bearer token for authorization +- The API requires a valid Authorization token to access the endpoints. +- Some attributes in checklist items are optional. +- This API has deprecated versions for tables. +- This endpoint retrieves texts from specific result. +- Uses OAuth2 with Bearer token in the header. +- If files are generated, PDF and DOCX attributes will be included. +- Advanced filtering using metadata fields is supported. +- Some endpoints require specific ID parameters to function properly. +- API Key authentication feature needs to be enabled on your instance to use this + option. +- API key authentication is also available but needs to be enabled. +- All endpoints require TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, + STEP_ID, and CHECKLIST_ID as URL parameters. +- Endpoints for creating, updating, and deleting checklist items and tables. +- Deprecated API versions may not be supported. +- Endpoints may require specific team, project, experiment, and task IDs. +- Some objects may return nulls in deeply nested fields. +- URL parameters are required for team, project, experiment, task, and result IDs. +- This API supports filtering and inclusion of comments. +- Only archived results can be deleted. +- JWT tokens used for access, with OAuth 2.0 for token generation. +- User assignments and task assignments are managed separately. +- Endpoints for list, status, and checklist items are only valid for their respective + data types. +- Replace , , , , , , + and with actual values. +- This endpoint retrieves step_texts from specific step. +- Checklists are related to steps in protocols. +- Authorization header must include a valid Bearer token. +- Some endpoints may return empty body with status code 200 +- The API supports retrieving and creating attachments associated with steps. +- URL parameters must be replaced with actual IDs. +- Use the correct HTTP method as specified. +- Use the appropriate TEAM_ID, INVENTORY_ID, ITEM_ID in the endpoints. +- Requires OAuth2 authentication with Bearer token. +- Authorization requires a Bearer token +- API key authentication requires enabling feature on instance +- All endpoints require team, project, experiment, task, protocol, and step IDs as + parameters. +- Endpoints require team, project, experiment, and task IDs to be specified. +- SciNote uses JWT tokens for API access and OAuth 2 for token generation. +- SciNote expects for the API access token to be included in all API requests to the + server in a header. +- Deprecated version +- Bearer token is required for authentication. +- The above command returns empty body with status code 200 +- API key expires after one year and can be revoked at any time +- This API supports creating, updating, and deleting checklists and checklist items. +- Use Bearer token for authorization. +- Use correct TEAM_ID, PROJECT_ID, EXPERIMENT_ID, and TASK_ID in the endpoint URL. +- Use appropriate TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID when making requests. +- The API requires an authorization token in the header. +- This API is used to manage attachments related to steps. +- Ensure API key functionality is enabled on your instance to use API key authentication. +- Ensure to replace placeholders in the URL with actual IDs +- Some endpoints require specific IDs to be provided in the URL. +- This API supports various actions for checklists and checklist items. +- Project creation requires a user_project record to access the created project. +- This API supports pagination for retrieving attachments and tables. +- Tokens include claims for issuer, expiration, and authenticated user ID. +- API key authentication must be enabled on your instance. +- Ensure to replace placeholders like , , , + with actual values. +- This endpoint retrieves checklists from specific step. +- 'This endpoint retrieves cells from specific inventory. Cells can have such types: + text, list, file.' +- Endpoints require team, project, experiment, task, and user IDs for proper operation. +- Result comments can be included by using ?include=comments in the request. +- The API requires the corresponding IDs to be provided in the URL. +- Authorization token must be included in the header. +- Inventory items can be updated, deleted, and retrieved for each task. +- User assignments and task assignments can be managed through respective endpoints. +- This API supports the inclusion of comments in results. +- Attributes for inventory items include stock_consumption and optional stock_consumption_comment. +- User assignment requires the user_role_id attribute. +- If `?include=comments` is provided, result comments are also included. +- File name, file type, and file data are mandatory for attachments. +- Supports advanced filtering using metadata fields in project records. +- Includes filtering capabilities for metadata. +- Include 'with-metadata=true' to return metadata in responses. +- The API uses a Bearer token for authentication. +- Endpoints for managing step texts include create, update, retrieve, and delete operations. +- The endpoints require proper TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, and ITEM_ID + as URL parameters. +- Use the appropriate TEAM_ID, INVENTORY_ID, ITEM_ID, and other IDs in the endpoints. +- API key authentication can be used if enabled on the instance. +- Requires Bearer token for authorization +- The API supports CRUD operations on checklists. +- Checklist attributes include name and position. +- The API requires team, project, experiment, task, and result IDs as URL parameters. +- Endpoint requires valid TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, + STEP_ID, and ID parameters. +- The API requires a valid team ID, inventory ID, and item ID for requests. +- Authorization is required for all requests +- The ID parameters in the URL need to be replaced with actual values. +- The checklist items endpoints are deprecated in v1. +- Use the v2 endpoints for checklist items. +- The 'Authorization' header must include a valid Bearer token. +- Requires authentication with a Bearer token. +- Filters can be applied to inventory items based on column values. +- The API requires authorization using a Bearer token. +- The API requires dynamic URL parameters for accessing specific resources. +- Deprecated version of the API. +- Ensure to replace placeholders in the URLs with actual values. +- Uses OAuth2 with Bearer token. +- You must include the API access token in a header. +- Endpoints are deprecated. +- Some endpoints are deprecated. +- Use URL parameters for filtering results based on timestamps. +- Endpoints require proper URL parameters for TEAM_ID, PROJECT_ID, EXPERIMENT_ID, + and TASK_ID. +- If '?include=comments' is provided, step comments are included. +- URL parameters are required for retrieving specific resources +- This endpoint retrieves all results from the task. Texts, files and tables are included + by default. +- The API supports retrieving, creating, and accessing attachments for results. +- This endpoint updates existing table in the selected result. +- This endpoint deletes specific table from the result. +- You can revoke the API key at any time in your user profile settings. +- The API supports creating, updating, and retrieving project folders and experiments. +- User assignments can be retrieved and updated as well. +- This API has multiple endpoints for retrieving and creating attachments and tables. +- This API includes various endpoints for managing tables and texts related to experimental + results. +- The API supports URL parameters such as TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, + PROTOCOL_ID, and STEP_ID. +- The API requires specific IDs for the team, project, experiment, task, protocol, + step, and table. +- The attributes for tables include name, contents, and metadata. +- Requires OAuth2 authorization. +- The API requires a valid authorization token to access data. +- Tokens include claims such as issuer, expiration time, and user ID. +- The API supports filtering by timestamps using FROM and TO parameters. +- All endpoints require valid TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, + STEP_ID, and CHECKLIST_ID parameters. +- The API requires specific IDs for team, project, experiment, task, and result. +- Relationships can be created, retrieved, updated, and deleted using the respective + endpoints. +- Ensure to check for next_page in API response links. +- OAuth2 tokens include a set of claims such as issuer and expiration time. +- The API supports advanced filtering using metadata fields. +- This API supports creating, updating, and deleting checklists. +- The API supports creation, retrieval, updating, and deletion of checklists and checklist + items. +- Ensure to replace placeholders with actual IDs. +- Requires specific IDs for team, project, experiment, task, protocol, step, and table. +- Some objects may return nulls in nested fields +- This endpoint retrieves specific result. Text, file or table is included by default. +- Only valid for columns with 'list', 'status', and 'checklist' data types. +- Support for advanced filtering using metadata fields. +- Uses JSON API format for requests and responses +- The API supports various operations for tasks including users, activities, tags, + and inventory items. +- Requires setup of authorization token in header for each request +- 'Use API key in the header as ''Api-Key: qwerty123456...''.' +- Advanced filtering is supported using metadata fields. +- Ensure to include the correct TEAM_ID and PROJECT_ID in the requests. +- Ensure to replace placeholder values in the URL with actual IDs. +- The API supports various filters for retrieving step texts based on timestamps. +- The API supports version 2 for attachments. +- Requires authentication with Bearer token. +- Use the respective ID placeholders in the URL parameters. +- Use appropriate TEAM_ID, PROJECT_ID, EXPERIMENT_ID, and TASK_ID in the endpoints +- Request body for updating inventory item requires stock_consumption. +- The endpoints require the team, project, experiment, task, result, and table IDs + to function. +- Supports inclusion of various elements like tables, step_texts, assets, checklists, + comments. +- Requires specific IDs for team, project, experiment, task, protocol, step, checklist, + and checklist item. +- Authorization token must be valid. +- This API supports fetching, creating, updating, and deleting items in inventories. +- Ensure to replace placeholders with actual IDs when making requests. +- Checklists can include checklist items. +- 'HTTP methods supported: GET, POST, PATCH' +- These endpoints are deprecated. +- Use the v2 endpoints for the latest functionality. +- Request body for creating or updating resources must adhere to JSON API standards. +- JWT tokens include claims for token issuer, expiration time, and user ID. +- API requires authentication via Bearer token +- All requests require an authorization token in the header. +- Filters can be applied on various endpoints for created_at and updated_at +- If submitted attributes are the same and no changes are made, server returns empty + body. +- API key authentication feature needs to be enabled on your instance to use API Key + option. +- Endpoint for updating specific inventory item assigned to a task. +- Endpoint for retrieving user assignments related to a task. +- Endpoint for retrieving task assignments. +- Advanced filtering is supported using metadata fields embedded in each project record. +- If 'with-metadata' is not set to true, metadata fields will not be shown in the + response. +- This endpoint updates existing task in the selected experiment. +- User assignments and task assignments can be retrieved with specific filters. +- Requires an OAuth2 token to authorize requests. +- Replace , , , , and with + actual IDs. +- If '?include=comments' parameter is provided, task comments are also included. +- API key authentication requires enabling the feature on your instance +- Supports inclusion of assets, checklists, checklists.checklist_items, comments, + and form_responses. +- If no changes are made for the user assignment, server returns empty body with response + code 204. +- Supports inclusion of comments, tables, result_texts, assets. +- Use PATCH to update existing tables or texts. +- Use DELETE to remove specific tables or texts. +- Filtering options based on inventory column values are available. +- Access token must be included in the Authorization header. +- The API key expires after one year and can be revoked at any time. +- Metadata filtering is supported via filter[metadata] query parameter. +- Use with-metadata=true to include metadata in responses. +- Update to existing user assignment may return empty body with response code 204 + if no changes are made. +- The API supports inclusion of checklist_items. +- 'This API supports inclusion of elements: tables, result_texts, assets, comments.' +- The API requires specific IDs for teams, projects, experiments, tasks, and results. +- Use Bearer token for authorization +- Some endpoints and attributes are deprecated. +- All dates and datetimes must be in ISO 8601 format (e.g., 2024-01-01 or 2024-06-05T14:00:00Z). +- SciNote uses JWT tokens for access and OAuth 2 protocol for token generation. +- The API uses Bearer token for authentication +- URL parameters include TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, RESULT_ID. +- Each request requires specific IDs for team, project, experiment, task, protocol, + step, checklist. +- Requires team, project, experiment, task, protocol, and step IDs in the URL +- The endpoint retrieves all users who are assigned to the specified task. +- The endpoint assigns a user to the task. +- Deprecated V1 endpoints are available but should not be used. +- URL parameters TEAM_ID, PROJECT_ID, EXPERIMENT_ID, and TASK_ID are required for + all requests. +- If ?include=comments PATH parameter is provided, project comments are included. +- API key authentication can be used if enabled for your instance. +- Supports filtering experiments by metadata using query parameters. +- Endpoints for creating, updating, and deleting checklist items. +- Deprecated endpoints for Attachments V1 are not recommended for use. +- Requires team, project, experiment, task, protocol, step, and table IDs in the request + URLs. +- Only valid for columns with specified data types. +- Ensure that API key functionality is enabled in your instance. +- Use the appropriate HTTP method for each action (GET, POST, DELETE). +- Metadata must be string key-value pairs. +- Requires authentication using Bearer token +- Tasks are created asynchronously. +- V1 of step checklists is deprecated. +- Endpoints require team, project, and experiment IDs. +- The endpoints for creating and updating tasks are asynchronous. +- Endpoints are deprecated and may be removed in future versions. +- The task creation and update endpoints are used for managing tasks within experiments. +- If ?include=form_field_values is provided, form field values are also included. +- 'Supports inclusion of elements: tables, step_texts, assets, checklists, checklist_items, + comments.' +- This API supports bearer token authentication. +- Supports inclusion of assets, tables, result_texts, and comments. +- Valid only for columns with specific data types. +- Replace , , , , , , and + with actual values. +- Uses OAuth2 for authorization +- Result file can be added inside 'included' section in the same request. +- You must replace the access token with your API access token. +- The API requires an authorization token to access. +- Some endpoints support filtering by timestamps. +- The API requires specific IDs to retrieve data. +- Ensure to handle pagination when fetching lists of users, activities, tags, and + inventory items. +- This endpoint retrieves all results from the task. +- Texts, files and tables are included by default. +- Supports inclusion of comments if ?include=comments is provided. +- This API supports both v1 and v2 endpoints for checklists. +- Use appropriate TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, STEP_ID, + CHECKLIST_ID in the URL. +- Use the correct TEAM_ID, INVENTORY_ID, ITEM_ID, CHILD_ID, and ID parameters. +- The API uses Bearer tokens for authentication. +- This API endpoint only works with columns that have 'stock' data type. +- The endpoint updates existing table in the selected step. +- Supports inclusion of comments when requested. +- The GET Tables endpoint retrieves tables from a specific step. +- API key functionality needs to be enabled to use API key authentication +- API key expires after one year and can be revoked in user profile +- The API requires specific IDs to access resources. +- Checklist item APIs are deprecated in v1. +- Supports inclusion of comments if ?include=comments is provided +- Checklist and checklist items operations are supported. +- Uses OAuth2 with bearer token for authentication +- Replace server_name, TEAM_ID, INVENTORY_ID, and ITEM_ID with actual values. +- API key authentication requires enabling API key functionality on your instance +- Authorization code flow is used for obtaining access tokens. +- API key authentication can be enabled on instances. +- Task attributes must include 'name', 'x', and 'y'. +- The API supports various endpoints for managing inventory items, user assignments, + and task assignments. +- Tokens include claims like iss, exp, and sub. +- If with-metadata is not set to true, metadata fields will not be shown in the response. +- Uses API key for authorization in the header +- All endpoints require team, project, experiment, task, protocol, and step IDs. +- Table metadata attributes include sheet_name, rows_size, columns_size, etc. +- Results endpoint is deprecated. +- Authorization token format should be Bearer token. +- Tokens include claims like iss, exp, sub. +- API key authentication is optional and needs to be enabled. +- Requires valid team, project, experiment, and task IDs in the URL. +- Requires authorization with Bearer token. +- The API requires team, project, experiment, task, protocol, step, and table IDs + as URL parameters. +- This API uses Bearer token for authentication. +- The ID parameters must be replaced with actual values. +- API key authentication can be enabled in user profile settings. +- Supports inclusion of comments if `?include=comments` is specified +- The API supports both V1 and V2 checklists endpoints. +- Requires the IDs for team, project, experiment, and task to access resources. +- API key authentication can be enabled on the instance +- URLs contain placeholders that must be replaced with actual IDs +- The requests require the team, project, experiment, task, protocol, step, and table + IDs. +- The response for updates may return an empty body with a 204 status if no changes + were made. +- Filters can be applied to project queries using timestamps. +- Metadata fields can be used for advanced filtering. +- Tokens include claims such as 'iss', 'exp', and 'sub'. +- Use the appropriate TEAM_ID, PROJECT_ID, EXPERIMENT_ID, and TASK_ID in the URL. +- Supports filtering projects using metadata fields. +- Requests must include the required team and project IDs. +- API requires authentication through Bearer token. +- The API requires specific IDs for teams, projects, experiments, tasks, protocols, + steps, and tables. +- All endpoints require valid team, project, experiment, task, protocol, step, and + checklist IDs. +- 'Cells can have types: text, list, file' +- The API supports filtering based on timestamps for checklists. +- The DELETE endpoint returns an empty body with status code 200. +- The API requires the Authorization header to be set with a Bearer token. +- Dynamic filters can be used via the filter[metadata] parameter. +- Metadata fields need to be included in the request to be returned in the response. +- SciNote uses JWT tokens for access and OAuth 2 for token generation. +- This API supports pagination through links. +- The API requires a Bearer token in the Authorization header. +- Returns empty body with status code 204 if no changes are made. +- To return only archived items, set the ?filter[archived]=true PATH parameter. +- API key needs to be enabled in user profile. +- You can filter projects using custom metadata key-value pairs. +- The endpoint retrieves specific table from the step. +- Supports pagination and filtering by date. +- Result comments can be included with the correct URL parameter. +- Authorization header is required for all requests. +- Requires setup of connected app in the API +- JSON representations for contents and metadata must be correctly formatted +- Authorization token is required for all requests. +- This API only valid for columns with 'stock' data type. +- Endpoints for creating and retrieving attachments are deprecated. +- The API requires an authorization token to access any endpoint. +- Ensure to replace placeholders , , , , + , with actual values. +- 'Note: Replace *server_name*, *TEAM_ID*, *INVENTORY_ID*, *ITEM_ID*, *CHILD_ID*, + and *ID* with actual values.' +- This API requires a valid OAuth2 token for authentication. +- Task creation is asynchronous. +- URL parameters must be replaced with actual values. +- User roles are mandatory for task assignments +- Results endpoint is deprecated +- Metadata filtering supported via filter[metadata] parameter. +- This API requires the user to provide specific IDs for team, project, experiment, + and task. +- 'Supports inclusion of results elements: tables, result_texts, assets, comments.' +- Supports retrieval, creation, updating, and deletion of checklists and checklist + items. +- The API supports operations for managing checklists and checklist items. +- SciNote uses JWT tokens for API access and requires token in Authorization header. +- The API requires setup of the authorization token as a Bearer token in the header. +- The API supports filtering tasks by metadata fields. +- Requests for tasks should include the relevant team, project, and experiment IDs. +- Authorization code needs to be retrieved at GET /oauth/authorize +- Attachments can be retrieved, created, or updated for specific results. +- Endpoints valid only for columns with 'stock' data type. +- Cells are included by default in item retrieval. +- Authorization header must contain a valid Bearer token. +- The DELETE method returns an empty body with status code 200. +- The request body for updating inventory items must include stock_consumption. +- The endpoint supports filtering capabilities based on inventory column values. +- Endpoint to create project folder and update project folder +- Endpoint to retrieve experiments from specified project +- Ensure to replace placeholders in the URL with actual values. +- Ensure to replace placeholders with actual IDs in the URL. +- This endpoint retrieves active items from specific inventory. +- Request body for updating inventory items requires 'stock_consumption' as mandatory. +- Ensure to replace placeholders with actual values in the URL. +- Endpoints for both V1 and V2 of Attachments are deprecated. +- This API requires OAuth2 authentication. +- Request body requires 'data' key with 'type' and 'attributes'. +- API key authentication is also available if enabled. +- The API supports metadata filtering +- Ensure to include the API access token in all API requests. +- Deprecated endpoints for step_texts v1. +- Request body requires stock_consumption and optionally stock_consumption_comment. +- The API requires a valid Authorization token for all requests. +- Requires valid team_id, project_id, experiment_id, task_id, and result_id in the + URL. +- API requires bearer token for authentication. +- The endpoints require the specified TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, + and ITEM_ID. +- Uses OAuth2 with bearer token for authorization. +- The API requires an Authorization header with Bearer token. +- Uses OAuth2 — requires setup of authorization in the API +- API requires bearer token for authorization. +- API key authentication must be enabled on your instance +- Authorization required for all endpoints. +- Supports inclusion of comments if ?include=comments is set in the request. +- Includes user assignments, activities, comments, and folder management. +- Token expiration time is specified in the response. +- Endpoints require proper team, project, experiment, task, and item IDs. +- This API requires the use of Bearer token for authentication. +- Only valid for columns with 'list', 'status', or 'checklist' data type +- Endpoints are deprecated; consider using the appropriate version. +- Supports inclusion of checklist_items in responses +- Use the appropriate URL parameters to specify team, project, experiment, and task + IDs. +- Supports inclusion of comments if parameter is provided. +- Only valid for columns with 'list' data type. +- The API supports asynchronous user assignments for tasks. +- Request body includes stock_consumption and optional stock_consumption_comment. +- Request body for updating inventory item includes stock_consumption and optional + stock_consumption_comment. +- For deleting an inventory item, the request returns an empty body with status code + 200. +- Only valid for columns with 'status' data type. +- Only valid for columns with 'checklist' data type. +- API key expiration is one year and can be revoked in user profile settings. +- Includes support for pagination and filtering of results based on created_at and + updated_at timestamps. +- The `TEAM_ID`, `PROJECT_ID`, `EXPERIMENT_ID`, `TASK_ID`, `PROTOCOL_ID`, and `STEP_ID` + are required parameters in the URL. +- Endpoints may require URL parameters for team, project, experiment, task, and result + IDs +- Advanced filtering is supported using metadata fields embedded in project records. +- Request body for updating inventory item must include stock_consumption +- User assignments and task assignments can be filtered by created_at and updated_at + timestamps +- Authorization required for accessing endpoints +- If submitted attributes are the same and no changes are made, the server returns + an empty body with response code 204. +- SciNote uses JWT tokens for authentication. API key authentication is also available + if enabled. +- Metadata fields must be strings. +- The endpoints require team, project, experiment, task IDs as parameters. +- Requires authorization via Bearer token. +- 'Request body for creating tasks requires attributes: name, x, y.' +- For updating tasks, if no changes are made, server returns 204. +- These endpoints support pagination and filtering based on timestamps. +- It also supports inclusion of tables, result_texts, assets, comments. +- Replace , , , , and with actual + values. +- Metadata fields must be strings and can be filtered in the query string. +- Uses OAuth2 with bearer token for authentication. +- Request body for updating inventory item includes stock consumption. +- User assignment requires user role ID. +- Can filter by created_at and updated_at timestamps for users, activities, tags, + and inventory items. +- Server returns empty body with response code 204 if no changes are made for the + table. +- SciNote uses JWT tokens for access to the API. +- Replace server_name, TEAM_ID, INVENTORY_ID, ITEM_ID with actual values +- Endpoints for step_texts and step_text are deprecated in V1. Use V2 instead. +- Deprecated endpoints for Attachments V1 are no longer supported. +- The ID of the team, project, experiment, task, protocol, step must be provided in + the endpoint URL. +- The API does not require authentication. +- The request body for inventory item updates must include attributes like stock_consumption. +- User assignment attributes must include user_role_id. +- Task assignment attributes must include user_id. +- The API requires authentication using a Bearer token. +- This endpoint retrieves specific list item from inventory column, only valid for + columns with 'list' data type. +- This endpoint creates new checklist item in selected inventory column, only valid + for columns with 'checklist' data type. +- Includes metadata filtering for project queries. +- Requires setup of connected app for authentication +- Supports filtering using query parameters +- Requires valid TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, STEP_ID, + and ID for operations. +- User role ID is mandatory for user assignments. +- Replace , , , , , and + with actual values. +- Tokens include claims such as iss, exp, and sub. +- Request body for updating inventory item must include 'stock_consumption' +- User assignments and task assignments can be retrieved using the respective endpoints +- API requires OAuth2 authentication with Bearer token +- The API supports CRUD operations for checklists and their items. +- Endpoints require team, project, experiment, task, and item IDs as URL parameters. +- Use appropriate path parameters for team, project, experiment, task, and result + IDs. +- The API requires the use of Bearer token for authorization. +- Responses may vary based on the state of the checklist items being requested. +- Requires OAuth2 authentication with a Bearer token. +- Includes advanced filtering using metadata fields. +- Use filter parameters for advanced querying. +- The API supports multiple endpoints for checklist management. +- API Key authentication option needs to be enabled on your instance. +- API requires team, project, experiment, task, protocol, step, and table IDs in the + URL. +- Requires setup of connected app for OAuth2. +- URL parameters are required for team and project IDs. +- The API requires specific parameters like TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, + PROTOCOL_ID, and STEP_ID for endpoint calls. +- API key authentication feature needs to be enabled on your instance to use API key + authentication. +- All endpoints require team, project, experiment, task, protocol, step, and checklist + IDs to be specified. +- This API retrieves stock unit items from specific inventory columns, only valid + for columns with 'stock' data type. +- Deprecated endpoints are still accessible but may be removed in future versions. +- The API key authentication feature needs to be enabled on your instance to use this + option. +- Asynchronous user assignment creation for tasks. +- API response includes the 'links' section to check for the next page. +- This endpoint retrieves stock unit items from specific inventory column. +- The endpoints require a valid Bearer token for authorization. +- Authorization code needed to get access token. +- API key authentication can be enabled on instance. +- SciNote uses JWT tokens to allow access to the API. +- Authentication required for all endpoints. +- The API requires user IDs, team IDs, project IDs, experiment IDs, and task IDs as + parameters. +- The checklist includes attributes such as name and position. +- The endpoints support filtering for specific timestamps. +- The request body for updating an inventory item requires stock_consumption. +- Supports filtering projects by metadata using filter[metadata] query parameter. +- Endpoint supports both retrieval and management of checklists and checklist items. +- The API requires valid team, project, experiment, task, protocol, and step IDs in + the URL. +- Checklist attributes include mandatory name field. +- API access token must be included in all API requests in the Authorization header. +- The 'text' attribute is mandatory for checklist items. +- The API requires specific TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, and ITEM_ID + for requests. +- Requires user authentication for all endpoints. +- API key authentication can be enabled through user profile settings. +- Requires specific IDs for team, project, experiment, task, protocol, and step. +- Endpoints for managing attachments in protocols and steps. +- Supports inclusion of comments if `?include=comments` parameter is provided. +- This endpoint retrieves stock unit items only valid for columns with 'stock' data + type. +- Endpoint only valid for columns with 'stock' data type. +- If '?include=comments' is provided, task comments are included. +- The ID of the team, project, experiment, task, protocol, step, and checklist must + be provided in the URL. +- Requires setup of OAuth2 authentication. +- Ensure to replace placeholders in the URL with actual IDs. +- The endpoints require the appropriate team, project, experiment, and task IDs. +- Returns JSON structured with tables and their attributes +- API key authentication feature needs to be enabled to use API key authentication. +- Ensure to replace , , , and with + actual values. +- Uses OAuth2 for authentication — setup required. +- Endpoints support URL parameters for IDs of team, project, experiment, task, protocol, + step, checklist. +- The API requires TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, STEP_ID, + and ID parameters. +- Replace *server_name*, *TEAM_ID*, *INVENTORY_ID*, *ITEM_ID*, *PARENT_ID*, and *ID* + with actual values. +- Created project has no automatically assigned users, therefore in order to access + this project it is needed to create user_projects record for it. +- Ensure to replace URL parameters with actual values +- The ID of the checklist is mandatory for certain operations. +- This endpoint retrieves specific results from a task. +- Supports inclusion of comments if provided in the query parameters. +- Uses OAuth2 with authorization code — requires setup of client ID and secret +- API key authentication can be enabled but is optional +- Requires setup of OAuth2 authentication with Bearer token. +- If submitted attributes are the same and no changes are made for the item, server + returns empty body with response code 204. +- Checklist and checklist items endpoints require IDs for team, project, experiment, + task, protocol, step, and checklist. +- User must have manage permission to create or delete relationships. +- API key authentication feature needs to be enabled on your instance to use API key + method. +- Includes metadata filter options for projects. +- Authentication requires a valid bearer token. +- 'Cells can have such types: text, list, file' +- This API requires specific IDs for teams, projects, experiments, tasks, protocols, + and steps. +- Supports CRUD operations for checklists and checklist items +- Endpoints for retrieving attachments and form responses. +- Endpoints for attachments are deprecated in V1 and V2. +- Supports inclusion of checklist_items. +- Supports inclusion of result texts, assets, tables, and comments. +- The API requires an authorization token to be included in the header. +- Requires valid TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, STEP_ID, + and ID for requests. +- The endpoints require TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID as URL parameters. +- Valid for columns with 'stock' data type. +- Access token must be included in all API requests in the Authorization header. +- This API requires specific IDs for requests to be formatted correctly. +- Support inclusion of tables, result_texts, assets, comments. +- Use appropriate team, project, experiment, task, protocol, and step IDs for API + requests. +- Endpoints for attachments and form responses are available in version 2. +- The API requires specific task IDs for operations. +- Requires valid TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, STEP_ID + for endpoints. +- API key functionality needs to be enabled to use API key authentication. +- The API supports URL parameters for team, project, experiment, task, protocol, step, + and checklist IDs. +- Endpoints for Attachments are deprecated. +- Requires appropriate team, project, experiment, task, protocol, and step IDs. +- This API allows for creating, updating, and deleting checklist items in a specified + checklist. +- Ensure to replace placeholder values in the URLs with actual IDs. +- The endpoints require proper authentication to access. +- Ensure to replace placeholder values with actual IDs. +- The API supports pagination and filtering for checklists. +- 'URL parameters: TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, RESULT_ID are required + for accessing endpoints.' +- You must replace the access token in the Authorization header. +- The ID parameters must be replaced with actual values to retrieve data. +- Requires valid team ID and project ID for most endpoints. +- Use appropriate query parameters for filtering. +- API key authentication requires enabling on instance +- The API supports checklist items retrieval. +- This API includes deprecated endpoints for Attachments V1. +- Server returns empty body with response code 204 if no changes are made for the + table or text. +- Token includes claims for issuer, expiration, and user ID +- Uses Bearer token authorization. +- API key authentication requires enabling API key functionality. +errors: +- '400: Bad Request -- Your request is invalid.' +- '401: Unauthorized -- Your API key is wrong.' +- '403: Forbidden -- You don''t have permission to access it.' +- '404: Not Found -- The specified entity could not be found.' +- '500: Internal Server Error -- We had a problem with our server. Try again later.' +- '503: Service Unavailable -- We''re temporarily offline for maintenance. Please + try again later.' +- '401 Unauthorized: Check the authorization token.' +- '404 Not Found: Ensure the provided IDs are correct.' +- '401 Unauthorized: Check your API access token.' +- '400 Bad Request: Invalid or mutually exclusive parameters provided.' +- '403 Forbidden: User does not have manage permission.' +- '404 Not Found: Specified inventory item not found.' +- '401 Unauthorized: Check your API key or access token.' +- '401 Unauthorized: Recheck OAuth token.' +- '401 Unauthorized: Check token expiration or API key validity' +- '404 Not Found: Check if the IDs provided are correct.' +- '403 Forbidden: Ensure you have the right permissions.' +- '400 Bad Request: Validate the request body format.' +- '401 Unauthorized: Check authorization token.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Check authorization token' +- 'Unauthorized: Check your authentication credentials.' +- 'Unauthorized: Check your API key or token.' +- '401 Unauthorized: Recheck OAuth token or permissions' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '404 Not Found: Check if the provided IDs are correct.' +- '401 Unauthorized: Check if the token is valid.' +- '204 No Content: If submitted attributes are the same and no changes are made.' +- '401 Unauthorized: Check the Authorization header or token validity' +- '404 Not Found: Check if the IDs are correct.' +- '401 Unauthorized: Check your authorization token.' +- 'Unauthorized: Check your API access token.' +- '401 Unauthorized: Check if the Bearer token is valid.' +- '200 OK: Successful deletion.' +- '201 Created: Relationship successfully created.' +- 'Unauthorized: Check your authentication token' +- 'Not Found: Verify the IDs provided in the URL' +- '401 Unauthorized: Check the Authorization header.' +- '401 Unauthorized: Check if the token is valid or if it has expired.' +- '204 No Content: No changes made' +- '401 Unauthorized: Check your authentication credentials' +- '403 Forbidden: API key may be invalid or expired' +- '404 Not Found: Ensure the IDs provided are correct.' +- '401 Unauthorized: Check token validity or permissions' +- '204 No Content: Indicates no changes made.' +- '401 Unauthorized: Check token validity.' +- '401 Unauthorized: Check your API access token' +- 'Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Recheck authorization token' +- '403 Forbidden: Ensure you have the required permissions.' +- '401 Unauthorized: Recheck Authorization token.' +- '200: Successful request' +- '204: No content' +- '401: Unauthorized access' +- '401 Unauthorized: Recheck OAuth token or scopes' +- '204 No Content: No changes made to the resource.' +- '200 OK: Successful deletion of the resource.' +- '404 Not Found: Check if the resource IDs are correct' +- '404 Not Found: Check if the specified ID exists' +- '401 Unauthorized: Recheck authorization token.' +- '404 Not Found: Check if the TEAM_ID, INVENTORY_ID, or COLUMN_ID are correct.' +- '401 Unauthorized: Ensure the Authorization header is valid.' +- '400 Bad Request: Ensure the request body is formatted correctly.' +- '401 Unauthorized: Check your API key or token.' +- '401 Unauthorized: Check your OAuth scopes or token expiration' +- '401 Unauthorized: Recheck Bearer token' +- 'Unauthorized: Recheck OAuth token.' +- 'Not Found: Check the IDs for team, inventory, or column.' +- '401 Unauthorized: Recheck Bearer token expiration' +- '404 Not Found: Check if the resource exists.' +- 'Not Found: Verify the resource ID you provided.' +- '401 Unauthorized: Recheck OAuth token expiration or scopes' +- '404 Not Found: Ensure the correct IDs are provided.' +- 'Invalid request: Check your parameters and body.' +- 'Unauthorized: Verify your authentication token.' +- '401 Unauthorized: Recheck authentication credentials' +- 'Authorization failed: Check if the token is valid' +- '404 Not Found: Check TEAM_ID and PROJECT_ID' +- '204 No Content: No changes made to the result.' +- '200 OK: Successfully deleted the result.' +- '401 Unauthorized: Check your authentication token.' +- '404 Not Found: The specified resource does not exist.' +- '401 Unauthorized: Check your access token.' +- '401 Unauthorized: Recheck authorization.' +- 'Unauthorized: Verify your token.' +- '404 Not Found: The requested resource does not exist.' +- 'Unauthorized: Recheck the Bearer token or scopes.' +- '401 Unauthorized: Ensure the authorization token is valid.' +- '401 Unauthorized: Check the provided Bearer token.' +- '404 Not Found: Verify the TEAM_ID, PROJECT_ID, or EXPERIMENT_ID.' +- '401 Unauthorized: Recheck the authorization token.' +- '404 Not Found: Verify TEAM_ID, INVENTORY_ID, or COLUMN_ID.' +- 'Unauthorized: Recheck API key or OAuth token' +- '404 Not Found: Check if the resource ID is correct.' +- 'Unauthorized: Ensure the Authorization token is valid.' +- '401 Unauthorized: Recheck OAuth token validity.' +- '401 Unauthorized: Check if the API key is valid or if the token has expired.' +- '404 Not Found: Check if the specified IDs are correct' +- '401 Unauthorized: Check if the API token is correct.' +- '204 No Content: No changes made to the task.' +- '200 OK: Successful deletion of step.' +- '404 Not Found: Verify the IDs provided in the URL.' +- '401 Unauthorized: Recheck OAuth token' +- '404 Not Found: Check if the resource ID is correct' +- '422 Unprocessable Entity: Check required fields in request body' +- '401 Unauthorized: Check token validity or permissions.' +- '404 Not Found: Verify the TEAM_ID, PROJECT_ID or USER_ASSIGMENT_ID.' +- '204 No Content: No changes made.' +- '401 Unauthorized: Check your authentication credentials.' +- 'Unauthorized: Check your Bearer token.' +- 'Not Found: Verify the IDs used in the request.' +- 'Not Found: Check if the resource ID exists.' +- '401 Unauthorized: Check your token.' +- '204 No Content: No changes made for the task.' +- '401 Unauthorized: Invalid authorization token.' +- '401 Unauthorized: Invalid authorization token' +- '404 Not Found: Resource does not exist' +- '404 Not Found: Check if the resource exists' +- '404 Not Found: Check the specified TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, + RESULT_ID, or ID.' +- '401 Unauthorized: Recheck Authorization token' +- '404 Not Found: Check the IDs for team, inventory, or column' +- 'Not Found: Check IDs for team, inventory, column, or item.' +- '401 Unauthorized: Replace API access token in the authorization header.' +- '403 Forbidden: Check if the result is archived.' +- '404 Not Found: Ensure the ID is correct.' +- '404 Not Found: Check if the ID exists.' +- '401 Unauthorized: Check API key or token expiration.' +- '401 Unauthorized: Check your token and permissions' +- '404 Not Found: Verify the resource exists and the ID is correct' +- 'Unauthorized: Recheck OAuth token or permissions.' +- '403 Forbidden: Access denied to the requested resource' +- '401 Unauthorized: Check the provided token and permissions.' +- '403 Forbidden: Check authorization token and permissions' +- '404 Not Found: Verify the provided IDs for team, project, experiment, task, or + item' +- 'Not Found: Check the endpoint path.' +- '404 Not Found: Ensure that the specified IDs are correct.' +- '401 Unauthorized: Recheck API key or Bearer token.' +- '500 Internal Server Error: Try again later.' +- 'Unauthorized: Check the provided token' +- 'Not Found: Verify TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, ITEM_ID' +- 'Invalid Input: Ensure required fields are present in the request' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth token or authorization.' +- '404 Not Found: Check the provided IDs for accuracy.' +- '400 Bad Request: Verify the request format and parameters.' +- 'HTTP 401: Unauthorized - Check your authentication token.' +- 'HTTP 404: Not Found - Ensure the resource ID is correct.' +- '404 Not Found: Ensure that the IDs used in the request are correct' +- '400 Bad Request: Check the request body for missing or incorrect fields' +- '404 Not Found: Check if the IDs are correct' +- '401 Unauthorized: Check the authorization token' +- '401 Unauthorized: Recheck OAuth token expiration' +- '404 Not Found: Check if the specified resource exists' +- '204 No Content: No changes made to the resource' +- '200 OK: Successfully deleted the resource' +- '401 Unauthorized: Recheck OAuth token and scopes' +- '404 Not Found: Ensure correct TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, RESULT_ID' +- '401 Unauthorized: Check token or API key.' +- 'Not Found: Check if the specified TEAM_ID, PROJECT_ID, or EXPERIMENT_ID is correct.' +- 'Unauthorized: Recheck your authorization token.' +- '404 Not Found: Check the resource path and parameters' +- '401 Unauthorized: Invalid or expired token.' +- '401 Unauthorized: Check your API access token or API key.' +- '404 Not Found: Check if the IDs provided in the URL are correct.' +- '401 Unauthorized: Recheck OAuth token or permissions.' +- '401 Unauthorized: Invalid or expired token' +- '500 Internal Server Error: Unexpected error occurred' +- 'Unauthorized: Check your token or permissions.' +- '404 Not Found: Ensure you are using valid identifiers.' +- 'Unauthorized: Recheck authorization header' +- '401 Unauthorized: Recheck Bearer token validity.' +- '404 Not Found: Ensure the TEAM_ID and PROJECT_ID are correct.' +- '400 Bad Request: Validate the request payload.' +- '401 Unauthorized: Ensure valid authorization token.' +- '404 Not Found: Check the URL and parameters for correctness.' +- '404 Not Found: Check if the identifiers in the URL are correct.' +- '401 Unauthorized: Ensure that the authorization token is valid.' +- '200 OK: Successful request.' +- No value found for specified TEAM_ID, INVENTORY_ID, or ITEM_ID. +- '401 Unauthorized: Check if the authorization token is valid.' +- '404 Not Found: Check if the IDs provided are correct' +- '204 No Content: No changes made to the cell' +- '401 Unauthorized: Check your access token or API key.' +- '400 Bad Request: Check for invalid parameters' +- '404 Not Found: Verify TEAM_ID, INVENTORY_ID, or COLUMN_ID' +- '401 Unauthorized: Invalid token or expired.' +- '204 No Content: No changes made to the item.' +- '200 Success: Item successfully deleted.' +- '204: No Content - If submitted attributes are the same and no changes are made + for the task.' +- '200: Success - For successful delete requests.' +- '401 Unauthorized: Check API key or token expiration' +- '401 Unauthorized: Recheck authorization token and ensure it is valid.' +- '404 Not Found: Check if the resource IDs are correct.' +- '404 Not Found: Check TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, PROTOCOL_ID, + STEP_ID, or ID.' +- '404 Not Found: Check if the specified IDs exist' +- '401 Unauthorized: Ensure the provided token is valid' +- '401 Unauthorized: Recheck API key or token expiration' +- '204 No Content: Indicates that the request was successful but there''s no content + to return.' +- '401 Unauthorized: Recheck OAuth token or credentials' +- '404 Not Found: Ensure IDs are correct for teams, projects, experiments, tasks, + protocols, steps, or checklists' +- '401 Unauthorized: Check the authentication credentials.' +- '401 Unauthorized: Recheck OAuth token or authorization setup.' +- '404 Not Found: Verify the provided IDs for team, project, experiment, or task.' +- '401 Unauthorized: Invalid access token' +- '401 Unauthorized: Check the token provided.' +- '401 Unauthorized: Ensure valid Bearer token is provided' +- 'Unauthorized: Recheck token or permissions' +- 'Not Found: Check the IDs provided in the URL' +- '404 Not Found: Check the endpoint parameters and ensure the resource exists.' +- '401 Unauthorized: Check your token or API key.' +- '400 Bad Request: Ensure that the request body and parameters are valid.' +- '401 Unauthorized: Recheck your authorization token and permissions.' +- '404 Not Found: Ensure that the IDs provided are correct and exist.' +- '401 Unauthorized: Check your token or client credentials.' +- '401 Unauthorized: Check your Authorization token.' +- '400 Bad Request: Check request parameters and body structure.' +- '404 Not Found: Verify IDs for team, project, experiment, task, or protocol.' +- '401 Unauthorized: Ensure the API key is valid.' +- '401 Unauthorized: Check your JWT token or API key.' +- '400 Bad Request: Ensure the request body is correctly formatted.' +- '404 Not Found: Check if the specified TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, + PROTOCOL_ID, or ID is correct.' +- '401 Unauthorized: Ensure valid access token.' +- '404 Not Found: Check IDs' +- '404 Not Found: Ensure the resource ID is correct.' +- '401 Unauthorized: Check the authorization credentials.' +- '401 Unauthorized: Recheck token' +- 'Unauthorized: Recheck OAuth token expiration' +- '401 Unauthorized: Check your credentials or access token.' +- '404 Not Found: Ensure the correct IDs are being used' +- '401 Unauthorized: Check the Authorization header' +- '403 Forbidden: Insufficient permissions.' +- '404 Not Found: Check if the IDs provided in the URL are correct' +- '401 Unauthorized: Check the authorization header for valid token' +- '401 Unauthorized: Check your API key or bearer token.' +- 'Unauthorized: Check token validity.' +- '401 Unauthorized: Ensure correct authorization credentials are provided.' +- '401 Unauthorized: Check the access token and its expiration.' +- '401 Unauthorized: Check the Authorization token.' +- '204 No Content: Indicates no changes were made.' +- '404 Not Found: Check if the TEAM_ID or PROJECT_ID is correct' +- '401 Unauthorized: Recheck OAuth token and permissions' +- '404 Not Found: Ensure IDs are correct' +- '401 Unauthorized: Recheck OAuth token or credentials.' +- '404 Not Found: Check provided IDs are correct' +- 'Unauthorized: Check the provided access token or API key.' +- '401 Unauthorized: Recheck Bearer token validity' +- '401 Unauthorized: Ensure valid Bearer token is provided.' +- '204 No Content: No changes made for the checklist.' +- '200 OK: Successfully deleted checklist or checklist item.' +- '401 Unauthorized: Check if the access token is valid.' +- '404 Not Found: Check the endpoint and parameters' +- '204 No Content: No changes were made to the result.' +- 'Unauthorized: Recheck OAuth token' +- 'Not Found: Check ID parameters' +- 'Bad Request: Validate request body format' +- '404 Not Found: Verify IDs for team, project, experiment, task, or result' +- '401 Unauthorized: Recheck OAuth token or scopes.' +- '404 Not Found: Verify IDs for team, project, experiment, task, result, or text.' +- '401 Unauthorized: Recheck Authorization Bearer token' +- '401 Unauthorized: Check OAuth token validity.' +- '401 Unauthorized: Invalid authentication credentials.' +- '404 Not Found: The specified resource could not be found.' +- '401 Unauthorized: Check API access token.' +- '403 Forbidden: API key may not be enabled.' +- 'Unauthorized: Check API key or Bearer token.' +- 'Not Found: Check the endpoint URL or resource ID.' +- '404 Not Found: Check the resource ID.' +- 'Unauthorized: Check your Bearer token' +- 'Not Found: Verify the TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, and PROTOCOL_ID' +- '404 Not Found: Check if the resource exists or the ID is correct.' +- 'Unauthorized: Recheck OAuth token or expiration' +- 'Not Found: Verify IDs for team, project, experiment, task, or result' +- '404 Not Found: Check the provided IDs for team, project, experiment, task, or item' +- 'Unauthorized: Check the access token or client credentials.' +- '401 Unauthorized: Ensure the Authorization token is valid.' +- '404 Not Found: Check if the TEAM_ID or PROJECT_ID is correct.' +- '404 Not Found: Ensure the resource exists.' +- 'Unauthorized: Recheck API key or token' +- 'Not Found: Check endpoint URL or resource ID' +- '404 Not Found: Relationship with provided ID does not exist.' +- '401 Unauthorized: Check token expiration.' +- '404 Not Found: Verify that the resource IDs are correct.' +- '404 Not Found: Check if the requested resource exists' +- '404 Not Found: Ensure the IDs are correct.' +- 'Unauthorized: Check your authentication credentials' +- 'Not Found: Verify the ID parameters provided' +- '204 No Content: No changes made to the result' +- '401 Unauthorized: Check your authentication token' +- '204: No content, no changes made' +- '401: Unauthorized, check your token' +- '401 Unauthorized: Verify token or API key validity.' +- '401 Unauthorized: Invalid or expired authorization token.' +- '401 Unauthorized: Ensure the Bearer token is valid.' +- '404 Not Found: Check the resource identifiers (TEAM_ID, PROJECT_ID, EXPERIMENT_ID, + TASK_ID).' +- '401 Unauthorized: Ensure the provided token is valid.' +- '403 Forbidden: You do not have permission to delete this result.' +- '404 Not Found: Ensure that the team ID and project ID are correct.' +- '500 Internal Server Error: An unexpected error occurred.' +- 'Authorization Error: Check provided token.' +- '404 Not Found: Verify IDs in the URL.' +- '404 Not Found: Resource not found.' +- '401 Unauthorized: Check OAuth token.' +- '404 Not Found: Verify resource ID.' +- '401 Unauthorized: Recheck authentication token.' +- '404 Not Found: Ensure that the specified ID is valid.' +- '401 Unauthorized: Check the Authorization header for valid token.' +- '404 Not Found: Ensure the resource exists and the IDs are correct.' +- '401 Unauthorized: Recheck API key or token.' +- 'Unauthorized: Check token or permissions.' +- 'Not Found: Verify resource identifiers.' +- '401 Unauthorized: Check token validity' +- 'Unauthorized: Check the provided token.' +- 'Not Found: Verify the IDs in the URL.' +- '200 OK: Successfully retrieved the specified resource.' +- '404 Not Found: Check the provided IDs for team, project, experiment, task, or item.' +- '401 Unauthorized: Check authentication token validity.' +- '404 Not Found: Ensure correct IDs are provided.' +- 'Invalid client: Ensure client_id and client_secret are correct.' +- '401 Unauthorized: Check if the token is valid or expired.' +- '404 Not Found: Ensure the TEAM_ID, PROJECT_ID, EXPERIMENT_ID, and TASK_ID are correct.' +- '204 No Content: If submitted attributes are the same, no changes are made' +- '200 OK: Request processed successfully' +- 'Unauthorized: Check the authorization token.' +- 'Not Found: Verify the resource ID.' +- '401 Unauthorized: Invalid or missing authentication token.' +- '404 Not Found: Resource does not exist.' +- '403 Forbidden: Verify if you have the right permissions.' +- '401 Unauthorized: Verify access token or API key' +- '403 Forbidden: Check API key permissions' +- '401 Unauthorized: Check token expiration or scopes.' +- 'Unauthorized: Invalid or missing token' +- '401 Unauthorized: Check your API token or permissions.' +- '500 Internal Server Error: Retry the request later.' +- '401 Unauthorized: Invalid access token or expired token' +- '403 Forbidden: API key is revoked or invalid' +- '404 Not Found: Ensure the specified ID and parameters are correct.' +- '404 Not Found: Check the resource IDs.' +- '401 Unauthorized: Ensure the authentication header is correctly set.' +- '401 Unauthorized: Check access token or API key validity.' +- '404 Not Found: Ensure the specified IDs are correct.' +- '404 Not Found: Check resource IDs' +- '200 OK: If the delete operation is successful.' +- '401 Unauthorized: Check token or permissions' +- '404 Not Found: Check the URL and parameters.' +- '401 Unauthorized: Check authorization credentials.' +- '404 Not Found: Check the IDs of the team, project, experiment, or task.' +- '404 Not Found: Check the IDs provided in the URL parameters.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- '401 Unauthorized: Recheck token validity' +- '401 Unauthorized: Check authorization.' +- '404 Not Found: Check if the team, inventory, or column IDs are correct.' +- '401 Unauthorized: Recheck your API token.' +- '404: Resource not found' +- '500 Internal Server Error: Retry the request later' +- '204 No Content: Indicates no changes made to the resource.' +- '401 Unauthorized: Check your credentials or token expiration.' +- '404 Not Found: Ensure the provided IDs are correct' +- '401 Unauthorized: Check token or API key validity.' +- '404 Not Found: Verify resource IDs are correct' +- '404 Not Found: Check if the provided IDs are correct' +- '401 Unauthorized: Check authorization code or token.' +- 'Unauthorized: Check API access token.' +- 'Not Found: Ensure the resource exists.' +- 'Internal Server Error: Retry the request or contact support.' +- '404 Not Found: Check the provided IDs for correctness.' +- '400 Bad Request: Ensure required attributes are included in the request body.' +- '400 Bad Request: Ensure correct parameters are provided' +- 'Unauthorized: Check API key or token validity' +- '404 Not Found: Ensure the specified resource exists.' +- '400 Bad Request: Check the request parameters.' +- '401 Unauthorized: Recheck API token or permissions' +- '404 Not Found: Check the resource ID and URL' +- '400 Bad Request: Ensure required fields are included in the request body' +- '404 Not Found: Verify IDs for team, project, experiment, task, protocol, and step' +- '401 Unauthorized: Ensure that the Authorization token is valid.' +- '400 Bad Request: Validate the request body for checklist attributes.' +- '401 Unauthorized: Recheck the provided Bearer token.' +- '404 Not Found: Check the provided IDs for team, project, experiment, task.' +- '404 Not Found: Check if the specified TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, + or USER_ID exists' +- '401 Unauthorized: Check your API key or OAuth token.' +- 'Unauthorized: Check your authentication details.' +- 'Not Found: Verify the TEAM_ID, INVENTORY_ID, and COLUMN_ID.' +- 'Unauthorized: Recheck OAuth token or permissions' +- '401 Unauthorized: Check your access token' +- '401 Unauthorized: Check authorization or API key.' +- '404 Not Found: Check the endpoint URL.' +- '404 Not Found: Verify that the provided IDs are correct.' +- '200 OK: Successful operation.' +- '401 Unauthorized: Check API access token or API key.' +- '401 Unauthorized: Invalid token' +- 'Not Found: Ensure the IDs provided are correct.' +- 'Bad Request: Check the data structure in the request body.' +- '404 Not Found: Check if the specified resource exists.' +- '403 Forbidden: Check permissions for accessing the resource.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity.' +- '401 Unauthorized: Check Authorization header for valid token.' +- '403 Forbidden: Ensure you have correct permissions.' +- '404 Not Found: Check the IDs being used.' +- '400 Bad Request: Validate request body format.' +- '404 Not Found: Check if the provided IDs are valid.' +- 'Unauthorized: Check your API key or JWT token.' +- '400 Bad Request: Check the request format and parameters.' +- '404 Not Found: Verify the TEAM_ID and PROJECT_ID.' +- 'Not Found: Verify the TEAM_ID, PROJECT_ID, or EXPERIMENT_ID' +- '400 Bad Request: Invalid request format.' +- '404 Not Found: Ensure the resource ID is correct' +- '404 Not Found: Check TEAM_ID, INVENTORY_ID or COLUMN_ID' +- '404 Not Found: Check if the specified IDs are correct.' +- 'Unauthorized: Recheck OAuth token or scopes' +- '204 No Content: No changes made to the item' +- '404 Not Found: Ensure the ID parameters are correct.' +- 'Unauthorized: Recheck your access token' +- '200 OK: Resource deleted successfully' +- '200: Empty body returned on successful delete' +- '204 No content: No changes made to the requested data.' +- '200 OK: Successfully deleted the specified resource.' +- '401 Unauthorized: Check authorization and API token' +- '401 Unauthorized: Token may be invalid or expired.' +- '404 Not Found: Check the provided IDs.' +- '500 Internal Server Error: Check server status.' +- '401 Unauthorized: Check your authorization token' +- '404 Not Found: Verify the resource IDs' +- '404 Not Found: Check that the team ID and project ID are correct.' +- 'Unauthorized: Check API Key or OAuth token.' +- '401 Unauthorized: Recheck the Authorization token.' +- '200: Success' +- '401: Unauthorized' +- 'Unauthorized: Check the API key or token.' +- 'Not Found: Verify the IDs provided for team, project, experiment, task, or item.' +- '404 Not Found: Verify the resource ID' +- '400 Bad Request: Check request parameters' +- '404 Not Found: Ensure the IDs provided in the URL parameters are correct.' +- '403 Forbidden: Ensure you have the necessary permissions' +- '404 Not Found: Check the IDs provided in the URL.' +- '401 Unauthorized: Verify the authentication token.' +- '404 Not Found: Verify the resource IDs and endpoint paths.' +- 'Unauthorized: Check your API key or token' +- 'Not Found: Ensure the endpoint is correct' +- '404 Not Found: Ensure IDs are correct.' +- '500 Internal Server Error: Check server logs.' +- '404 Not Found: Check if the specified ID exists.' +- '401 Unauthorized: Verify authentication details.' +- '404 Not Found: Verify provided TEAM_ID, INVENTORY_ID or COLUMN_ID.' +- 'Not Found: Check the IDs provided.' +- '401 Unauthorized: Check your OAuth token or permissions.' +- 'Unauthorized: Recheck OAuth token or scopes.' +- 'Not Found: Check resource identifiers.' +- '400 Bad Request: Verify the request body format' +- '200: Successful operation' +- 'Unauthorized: Check if the token is valid.' +- 'Not Found: The requested resource does not exist.' +- '204 No Content: No changes were made to the task.' +- '404 Not Found: Verify the IDs provided for team, project, experiment, task, protocol, + step, or checklist.' +- 'Unauthorized: Check your API token' +- 'Not Found: Verify your IDs are correct' +- '404 Not Found: Verify the provided IDs.' +- '401 Unauthorized: Check the provided OAuth token.' +- '401 Unauthorized: Invalid or missing authentication.' +- '401 Unauthorized: Check authentication credentials.' +- '400 Bad Request: Check request parameters.' +- '404 Not Found: Verify the TEAM_ID or PROJECT_ID.' +- '404 Not Found: Check if the TEAM_ID, PROJECT_ID, EXPERIMENT_ID, or TASK_ID is correct.' +- '404 Not Found: Verify the IDs provided in the URL' +- '404 Not Found: Check your TEAM_ID, INVENTORY_ID, or COLUMN_ID' +- '401 Unauthorized: Recheck token expiration' +- '404 Not Found: Endpoint does not exist.' +- '401 Unauthorized: Check if the API key or access token is valid' +- '401 Unauthorized: Recheck your authorization token.' +- '204 No Content: If no changes are made for the table or text.' +- '204 No Content: No changes were made.' +- '401 Unauthorized: Check your API key or authorization token.' +- '404 Not Found: Check TEAM_ID, INVENTORY_ID, or ITEM_ID.' +- '404 Not Found: Verify the resource exists' +- '401 Unauthorized: Check API access token' +- '404 Not Found: Verify TEAM_ID, PROJECT_ID, EXPERIMENT_ID, and TASK_ID.' +- '401 Unauthorized: Check your API key or token' +- '404 Not Found: Result not found.' +- '400 Bad Request: Check request body for required fields' +- '401 Unauthorized: Recheck client_id or client_secret.' +- '403 Forbidden: Check API key or permissions' +- '404 Not Found: Verify resource exists' +- '400 Bad Request: Check request formatting' +- '403 Forbidden: Check your permissions or token validity' +- '404 Not Found: Verify the provided IDs' +- '400 Bad Request: Check the request format and required fields' +- '200 OK: Successful request' +- '404 Not Found: Item or resource does not exist' +- '401 Unauthorized: Ensure valid token is provided.' +- '403 Forbidden: Check permissions for the requested resource.' +- '404 Not Found: Ensure the requested resource exists.' +- '403 Forbidden: You do not have permission to access this resource.' +- '204 No Content: If submitted attributes are the same and no changes are made for + the task.' +- '200 OK: If the operation is successful.' +- '404 Not Found: Ensure resource ID is correct' +- '404 Not Found: Check if the TEAM_ID, INVENTORY_ID, COLUMN_ID are correct.' +- '401 Unauthorized: Check your access token or API key' +- '403 Forbidden: You do not have permission to access this resource' +- '404 Not Found: Check if the ID exists' +- '401 Unauthorized: Check if the Bearer token is valid' +- '404 Not Found: Ensure the resource IDs are correct' +- '204 No Content: No changes were made' +- '401 Unauthorized: Recheck authentication token or permissions' +- '204: No content - no changes made' +- '401: Unauthorized access - check the token' +- '401 Unauthorized: Recheck API Key or OAuth token.' +- '404 Not Found: Ensure the specified TEAM_ID and PROJECT_ID are correct.' +- '204 No Content: No changes made to the table.' +- '401 Unauthorized: Invalid authentication token.' +- '500 Internal Server Error: Try again later' +- '204 No Content: No changes made to the entity.' +- '400 Bad Request: Verify your request parameters.' +- '403 Forbidden: Check your authorization token and permissions.' +- '404 Not Found: Check if the correct IDs are provided' +- '204: No content - No changes made' +- '401: Unauthorized - Invalid token' +- '204 No Content: Indicates no changes made to the resource' +- '404 Not Found: Check the IDs provided in the URL' +- '401 Unauthorized: Recheck authorization token or permissions' +- '404 Not Found: Check if the TEAM_ID, PROJECT_ID, EXPERIMENT_ID, TASK_ID, or ITEM_ID + are correct.' +- '404 Not Found: Verify the IDs are correct' +- '401 Unauthorized: Authentication token may be invalid.' +- '404 Not Found: Check if the report exists.' +- '401 Unauthorized: Check your API token or credentials.' +- 'Not Found: Verify the resource IDs provided' +- '404 Not Found: Verify the IDs for team, inventory, or column.' +- '403 Forbidden: Insufficient privileges for the requested operation' +- '401 Unauthorized: Check authentication credentials' +- '429 Too Many Requests: Rate limit exceeded.' +- '404 Not Found: Check that the specified ID exists.' +- '401 Unauthorized: Check the authorization header.' +- '200 OK: Successfully retrieved.' +- '204 No Content: Indicates no changes made for the user assignment.' +- '200 OK: Indicates successful deletion or update.' +- The API key expires after one year. +- You can revoke the API key at any time in your user profile settings. +- '404 Not Found: Check the resource IDs and request path.' +- '204: No content returned' +- '400 Bad Request: Check your request parameters and body.' +- '404 Not Found: Ensure the specified team, project, experiment, task, protocol, + step, or checklist ID exists.' +- '404 Not Found: Verify the IDs used in the URL.' +- 'Not Found: Ensure the specified IDs are correct.' +- '401 Unauthorized: Check token validity or authorization.' +- 'Unauthorized: Check your authorization token' +- 'Not Found: The requested resource could not be found' +- '404 Not Found: Check if the TEAM_ID and PROJECT_ID are correct.' +- '404 Not Found: Check the IDs provided.' +- '404 Not Found: Ensure the correct IDs are used for team, project, experiment, task, + and result.' +- 'Invalid credentials: Check your client_id and client_secret.' +- '401 Unauthorized: Check your token and permissions.' +- '401 Unauthorized: Ensure that the Bearer token is valid.' +- '404 Not Found: Check the IDs for the team, inventory, or column.' +- '401 Unauthorized: Ensure the provided authorization token is valid.' +- 'Not Found: Verify the IDs provided in the URL parameters.' +- '401 Unauthorized: Recheck the Authorization header.' +- '401 Unauthorized: Check your Bearer token.' +- '404 Not Found: Ensure the specified team, project, experiment, task, or result + ID is correct.' +- '500 Internal Server Error: Retry the request' +- '401 Unauthorized: Check authentication details' +- '400 Bad Request: Check the request format or required fields' +- '403 Forbidden: Check permissions for the requested resource' +- '401 Unauthorized: Recheck authorization token or scope.' +- '404 Not Found: Check TEAM_ID or PROJECT_ID.' +- '400 Bad Request: Validate request parameters.' +- '403 Forbidden: Check your permissions' +- '404 Not Found: Ensure that the TEAM_ID, PROJECT_ID, EXPERIMENT_ID, or TASK_ID is + correct.' +- '401 Unauthorized: Recheck your credentials' +- '404 Not Found: Ensure the resource exists' +- 'Unauthorized: Check OAuth token' +- 'Not Found: Verify that the specified ID exists' +- '401 Unauthorized: Check if the API key is valid or if the JWT token has expired.' +- 'Not Found: Verify resource IDs.' +- '401 Unauthorized: Check your API token.' +- '404 Not Found: Verify the resource IDs.' +- '401 Unauthorized: Recheck your authentication token.' +- '401 Unauthorized: Ensure the Authorization header is set correctly.' +- '401 Unauthorized: Ensure the access token is valid.' +- '400 Bad Request: Invalid request body.' +- '204 No Content: No changes made during update.' +- '404 Not Found: Check the team or project ID.' +- '401 Unauthorized: Verify the authorization token.' +- 'Not Found: Check the team or project ID' +- '401 Unauthorized: Token may be invalid or expired' +- '404 Not Found: Resource not found for the given team or project ID' +- 'Unauthorized: Check the Bearer token.' +- 'Not Found: Ensure the IDs are correct.' +- '500 Internal Server Error: Unexpected server error.' +- '400 Bad Request: Ensure the request body is formatted correctly' +- '404 Not Found: Ensure the IDs in the URL are correct.' +- '204 No Content: No changes detected in the submitted attributes.' +- 'Not Found: Verify the requested resource exists.' +- '401 Unauthorized: Check if the authentication token is valid.' +- '404 Not Found: Verify the correctness of the IDs provided.' +- '404 Not Found: Check if the specified ID is correct.' +- '401 Unauthorized: Invalid or expired access token.' +- Check the API documentation for common error responses. +- 'Unauthorized: Recheck API key or token expiration' +- '401 Unauthorized: Recheck your Bearer token.' +- '404 Not Found: Ensure the specified ID exists.' +- '401 Unauthorized: Check your authentication details.' +- '401 Unauthorized: Check API key or token validity.' +- '403 Forbidden: Ensure your user has permission for the requested resource.' +- 'Unauthorized: Check your API token.' +- 'Not Found: Verify the IDs provided in the request.' +- 'Unauthorized: Check your authorization token.' +- 'Invalid API key: Check your API key and try again.' +- 'Unauthorized: Ensure your token is valid and not expired.' +- '404 Not Found: Check your IDs.' +- '404 Not Found: Ensure the specified TEAM_ID and PROJECT_ID exist.' +- 'Invalid token: Recheck the provided token and its expiration.' +- '401 Unauthorized: Recheck token validity.' +- '404 Not Found: Ensure the IDs provided in the URL are correct.' +- '401 Unauthorized: Recheck authorization details.' +- '400 Bad Request: Check request parameters and body.' +- '401 Unauthorized: Check OAuth token or API key validity.' +- 'Unauthorized: Recheck token validity' +- '204 No Content: No changes were made to the resource.' +- 'Unauthorized: Check your API key or bearer token.' +- '204 No Content: Indicates that the request was successful but there is no content + to return.' +- '200: Successfully processed request' +- '401 Unauthorized: Check your API token or permissions' +- '404 Not Found: Verify the resource path or identifiers.' +- '404 Not Found: Verify IDs for team, project, experiment, task, protocol, step, + or table' +- '200 OK: Successful deletion of text or report.' +- 'Unauthorized: Check your OAuth token or API key' +- '404 Not Found: Verify the endpoint path and parameters' +- 'Unauthorized: Recheck authorization token' +- 'Not Found: Check the provided IDs' +- '200 OK: Relationship successfully deleted.' +- '200: OK - Successfully deleted step.' +- '403 Forbidden: User does not have access permission.' +- '404 Not Found: Specified item not found.' +- '401 Unauthorized: Check if the access token is valid or if the authorization flow + was correctly followed.' +- '200 OK: Successful deletion of a specific text from the result.' +- '200 OK: Indicates successful deletion.' +- '400 Bad Request: Ensure the request body is correctly formatted' +- '401 Unauthorized: Recheck Authorization Bearer token.' +- 'Invalid Token: Check if the access token is valid and has not expired' +- 'Unauthorized: Ensure the correct authentication methods are being used' +- '401 Unauthorized: Check token validity and permissions' +- 'Not Found: Verify resource IDs' +- '401 Unauthorized: Recheck authentication token' +- '404 Not Found: Check if the team ID or project ID is correct.' +- '401 Unauthorized: Invalid access token or expired' +- '404 Not Found: Check the IDs provided for TEAM_ID, INVENTORY_ID, or COLUMN_ID.' +- 'Not Found: Verify the endpoint URL.' +auth_info: + mentioned_objects: + - Bearer + - Authorization + - Bearer Token + - JWT tokens + - API Key + - OauthToken + - AuthProvider + - NamedCredential + - user + - user_roles + - tasks + - JWT + - JwtToken + - Api-Key + - access_token + - OAuth2 + - OAuth 2 + - Jwt + - authorization_code + - refresh_token + - webhook-secret-key +client: + base_url: https:///api/v1 + auth: + type: oauth2 + location: header + header_name: Authorization +source_metadata: null diff --git a/seven_bridges/seven-bridges-docs.md b/seven_bridges/seven-bridges-docs.md new file mode 100644 index 00000000..3b637ab0 --- /dev/null +++ b/seven_bridges/seven-bridges-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Seven Bridges data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def seven_bridges_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://igor.sbgenomics.com/v2/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + file,,task,,users + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='seven_bridges_migrations_pipeline', + destination='duckdb', + dataset_name='seven_bridges_migrations_data', + ) + # Load the data + load_info = pipeline.run(seven_bridges_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from seven_bridges_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- File Management: Manage files including upload, download, and metadata editing. +- Task Management: Create, update, and monitor tasks related to data processing. +- User Management: Manage user accounts and permissions. +- Application Management: Handle applications and workflows on the platform. + +You will then debug the Seven Bridges pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Seven Bridges support. + ```shell + dlt init dlthub:seven_bridges_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Seven Bridges API, as specified in @seven_bridges_migrations-docs.yaml + Start with endpoints file and and skip incremental loading for now. + Place the code in seven_bridges_migrations_pipeline.py and name the pipeline seven_bridges_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python seven_bridges_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is conducted via OAuth2 using a refresh token. Users need to set up a connected application on the Seven Bridges platform to obtain the necessary credentials (client_id and client_secret). The access token is required for all API requests and must be included in the HTTP header. + + To get the appropriate API keys, please visit the original source at https://www.sevenbridges.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python seven_bridges_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline seven_bridges_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset seven_bridges_migrations_data + The duckdb destination used duckdb:/seven_bridges_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline seven_bridges_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("seven_bridges_migrations_pipeline").dataset() + # get il table as Pandas frame + data.il.df().head() + ``` + +## Running into errors? + +Be mindful of API rate limits, which restrict you to 1000 requests every 5 minutes. Additionally, ensure your OAuth token is valid and refresh tokens are handled correctly to prevent authentication failures. Also, some responses may contain nulls, particularly in deeply nested fields. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/seven_bridges/seven-bridges-docs.yaml b/seven_bridges/seven-bridges-docs.yaml new file mode 100644 index 00000000..62519ed9 --- /dev/null +++ b/seven_bridges/seven-bridges-docs.yaml @@ -0,0 +1,3249 @@ +resources: +- name: list_all_api_paths + endpoint: + path: /v2/ + method: GET +- name: users + endpoint: + path: /reference/users + method: GET +- name: billing + endpoint: + path: /reference/billing + method: GET +- name: projects + endpoint: + path: /reference/projects + method: GET +- name: files + endpoint: + path: /reference/files-folders-and-metadata + method: GET +- name: volumes + endpoint: + path: /reference/volumes-v2 + method: GET +- name: tasks + endpoint: + path: /reference/tasks + method: GET +- name: automations + endpoint: + path: /reference/managing-automations-overview + method: GET +- name: list_all_api_paths + endpoint: + path: /reference/list-all-api-paths + method: GET +- name: list_all_api_paths + endpoint: + path: /v2/ + method: GET +- name: datasets + endpoint: + path: /api/v1/datasets + method: GET + data_selector: results + params: {} +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: results + params: {} +- name: list_markers_available_on_a_file + endpoint: + path: /reference/list-markers-available-on-a-file + method: GET +- name: get_details_for_a_single_marker + endpoint: + path: /reference/get-details-for-a-single-marker + method: GET +- name: create_a_marker + endpoint: + path: /reference/create-a-marker + method: POST +- name: modify_a_single_marker + endpoint: + path: /reference/modify-a-single-marker + method: PATCH +- name: delete_a_single_marker + endpoint: + path: /reference/delete-a-single-marker + method: DELETE +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects + params: {} +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: files + params: {} +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: results +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: results +- name: RNA-seq Alignment - STAR + endpoint: + path: /workflows/rna-seq-alignment-star + method: POST + data_selector: workflow + params: {} +- name: samtools + endpoint: + path: /tools/samtools + method: POST + data_selector: tool + params: {} +- name: docker_image + endpoint: + path: /images + method: GET + data_selector: images + params: {} +- name: samtools-sort + endpoint: + path: /tools/samtools-sort + method: POST + data_selector: output + params: {} +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: data + params: {} +- name: RNA-seq Alignment - STAR + endpoint: + path: /workflows/rna-seq-alignment-star + method: POST + data_selector: workflow + params: {} +- name: samtools-sort + endpoint: + path: /samtools + method: POST + data_selector: output + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: records +- name: tasks + endpoint: + path: /tasks + method: GET + data_selector: records +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects + params: {} +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: files + params: {} +- name: tasks + endpoint: + path: /tasks + method: GET + data_selector: records +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: projects + params: {} +- name: files + endpoint: + path: /api/files + method: GET + data_selector: files + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: files + endpoint: + path: /api/files + method: GET + data_selector: files + params: + limit: 100 +- name: tasks + endpoint: + path: /api/tasks + method: GET + data_selector: tasks + params: + limit: 100 +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: data +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: data +- name: datasets + endpoint: + path: /api/datasets + method: GET + data_selector: results +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: results +- name: datasets + endpoint: + path: /api/v1/datasets + method: GET + data_selector: records +- name: datasets + endpoint: + path: /api/datasets + method: GET + data_selector: datasets + params: {} +- name: files + endpoint: + path: /api/files + method: GET + data_selector: files + params: {} +- name: Project Files + endpoint: + path: /projects/{project_id}/files + method: GET + data_selector: files +- name: Public Files + endpoint: + path: /public/files + method: GET + data_selector: files +- name: upload_status + endpoint: + path: /upload/status + method: GET + data_selector: jobs + params: {} +- name: upload_job + endpoint: + path: /upload/start + method: POST + data_selector: job + params: {} +- name: Import from an FTP/HTTP(S) server + endpoint: + path: /upload-from-an-ftp-server + method: GET +- name: import_files + endpoint: + path: /import + method: POST + data_selector: files + params: {} +- name: Volumes + endpoint: + path: /api/volumes + method: GET + data_selector: records +- name: import_files + endpoint: + path: /import/files + method: POST + data_selector: imports + params: {} +- name: check_import_status + endpoint: + path: /import/status + method: GET + data_selector: imports + params: {} +- name: upload + endpoint: + path: /reference/upload-files + method: POST + data_selector: files + params: {} +- name: connect_cloud_storage + endpoint: + path: /docs/connecting-cloud-storage-overview + method: GET + data_selector: cloud_storage + params: {} +- name: http_upload + endpoint: + path: /docs/upload-from-an-ftp-server + method: POST + data_selector: ftp_upload + params: {} +- name: upload_job + endpoint: + path: /upload_jobs + method: POST + data_selector: data + params: {} +- name: upload_status + endpoint: + path: /upload_jobs/status + method: GET + data_selector: status + params: {} +- name: import_files + endpoint: + path: /import/files + method: POST + data_selector: files + params: {} +- name: import_from_volume + endpoint: + path: /api/import/volume + method: POST + data_selector: import_status + params: {} +- name: metadata + endpoint: + path: /metadata + method: POST + data_selector: metadata + params: {} +- name: metadata + endpoint: + path: /api/v1/metadata + method: GET + data_selector: records +- name: import_drs_files + endpoint: + path: /import/drs + method: POST + data_selector: imported_files + params: + max_links: 500 + wait_time: 5 +- name: metadata + endpoint: + path: /api/v1/metadata + method: GET + data_selector: records +- name: files + endpoint: + path: /files + method: GET + data_selector: results +- name: metadata + endpoint: + path: /api/v1/metadata + method: GET + data_selector: records + params: {} +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: results + params: {} +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: projects + params: {} +- name: files + endpoint: + path: /api/files + method: GET + data_selector: files + params: {} +- name: file + endpoint: + path: /api/files + method: GET + data_selector: records +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: projects +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: projects + endpoint: + path: /projects + method: GET +- name: datasets + endpoint: + path: /api/datasets + method: GET + data_selector: records +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects +- name: project + endpoint: + path: /projects + method: GET + data_selector: records +- name: datasets + endpoint: + path: /api/datasets + method: GET + data_selector: records +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: results +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records + params: {} +- name: nextflow_app + endpoint: + path: /nextflow/apps + method: POST + data_selector: app + params: {} +- name: app_configuration + endpoint: + path: /api/v1/apps + method: POST +- name: tasks + endpoint: + path: /tasks + method: POST + data_selector: tasks + params: {} +- name: datasets + endpoint: + path: /api/v1/datasets + method: GET + data_selector: datasets +- name: analysis + endpoint: + path: /api/v1/analyses + method: GET + data_selector: results + params: {} +- name: rnaseq + endpoint: + path: /api/rnaseq + method: POST + data_selector: data + params: {} +- name: nextflow_app + endpoint: + path: /sbpack_nf + method: POST +- name: wdl_app + endpoint: + path: /wdl/apps + method: POST + data_selector: app + params: {} +- name: app_configuration + endpoint: + path: /apps + method: POST + data_selector: app + params: {} +- name: WDL app + endpoint: + path: /sbpack + method: POST +- name: create_task + endpoint: + path: /v2/tasks + method: POST + data_selector: '' + params: {} +- name: datasets + endpoint: + path: /api/v1/datasets + method: GET + data_selector: data + params: {} +- name: datasets + endpoint: + path: /datasets + method: GET + data_selector: records + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: records + params: {} +- name: app + endpoint: + path: /sbpack + method: POST + data_selector: app +- name: base_image + endpoint: + path: /FROM/ubuntu:18.04 + method: GET + data_selector: image + params: {} +- name: docker_image + endpoint: + path: /api/v1/docker_images + method: POST + data_selector: data + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: files + endpoint: + path: /files + method: GET + data_selector: records +- name: projects + endpoint: + path: /projects + method: GET + data_selector: data +- name: files + endpoint: + path: /files + method: GET + data_selector: data +- name: docker_repositories + endpoint: + path: /api/docker/repositories + method: GET + data_selector: repositories + params: {} +- name: base_image + endpoint: + path: /FROM/ubuntu:18.04 + method: GET + data_selector: image + params: {} +- name: maintainer_info + endpoint: + path: /LABEL + method: GET + data_selector: maintainer + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: data + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: data + params: {} +- name: data_analysis + endpoint: + path: /api/v1/data_analysis + method: GET + data_selector: records + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: data + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: records +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: records +- name: datasets + endpoint: + path: /api/v1/datasets + method: GET + data_selector: records + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: records + params: {} +- name: inputs + endpoint: + path: /reference/list-files-primary-method + method: GET + data_selector: sbg:suggestedValue +- name: datasets + endpoint: + path: /api/datasets + method: GET + data_selector: datasets +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: projects +- name: input_file_name + endpoint: + data_selector: inputs..path.split('/').slice(-1)[0] +- name: output_file_name_sample_id + endpoint: + data_selector: 'input_files[0].metadata.sample_id ? input_files[0].metadata.sample_id + : ''sample_unknown''' +- name: output_file_name_based_on_input + endpoint: + data_selector: filebase.concat('') +- name: paired_end_metadata + endpoint: + data_selector: $job.inputs.[i].metadata.paired_end +- name: unpack_tar_archive + endpoint: + data_selector: '''tar -xf '' + index_files_bundle' +- name: suggested_file + endpoint: + path: /reference/list-files-primary-method + method: GET + data_selector: files + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: data +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: data +- name: project + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects + params: {} +- name: samtools-sort + endpoint: + path: /tools/samtools-sort + method: POST +- name: analysis + endpoint: + path: /api/v1/analyses + method: GET + data_selector: results + params: {} +- name: revision_notes + endpoint: + path: /api/revision_notes + method: GET + data_selector: notes + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: files + endpoint: + path: /files + method: GET + data_selector: records +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: files + params: {} +- name: projects + endpoint: + path: /v1/projects + method: GET + data_selector: projects + params: {} +- name: files + endpoint: + path: /v1/files + method: GET + data_selector: files + params: {} +- name: input_file_name + endpoint: + path: /inputs//basename + method: GET + data_selector: file_name + params: {} +- name: input_file_contents + endpoint: + path: /inputs//contents + method: GET + data_selector: file_contents + params: {} +- name: output_file_name + endpoint: + path: /outputs/sample_id + method: GET + data_selector: output_file_name + params: {} +- name: unpack_tar_archive + endpoint: + path: /unpack/tar/archive + method: POST + data_selector: unpack_command + params: {} +- name: projects + endpoint: + path: /v1/projects + method: GET + data_selector: data +- name: files + endpoint: + path: /v1/files + method: GET + data_selector: data +- name: samtools-sort + endpoint: + path: /sort + method: POST + data_selector: output + params: {} +- name: STAR + endpoint: + path: /api/v1/tools/STAR + method: POST +- name: STAR Genome Generate + endpoint: + path: /api/v1/tools/STAR_Genome_Generate + method: POST +- name: SBG FASTQ Quality Detector + endpoint: + path: /api/v1/tools/SBG_FASTQ_Quality_Detector + method: POST +- name: Picard SortSAM + endpoint: + path: /api/v1/tools/Picard_SortSAM + method: POST +- name: project + endpoint: + path: /projects + method: GET + data_selector: records +- name: projects + endpoint: + path: /projects + method: GET + data_selector: data + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: data + params: {} +- name: input_file_name + endpoint: + path: /path/to/input_file + method: GET + data_selector: basename + params: {} +- name: output_file_name_sample_id + endpoint: + path: /path/to/output_file + method: GET + data_selector: sample_id + params: {} +- name: output_file_name_based_on_input + endpoint: + path: /path/to/output_file + method: GET + data_selector: nameroot + params: {} +- name: output_file_paired_end + endpoint: + path: /path/to/output_file + method: GET + data_selector: paired_end + params: {} +- name: input_reads_ordering + endpoint: + path: /path/to/input_reads + method: GET + data_selector: paired_end + params: {} +- name: unpack_tar_archive + endpoint: + path: /path/to/tar_archive + method: GET + data_selector: basename + params: {} +- name: task_execution + endpoint: + path: /api/task_execution + method: GET + data_selector: records + params: {} +- name: workflow + endpoint: + path: /workflows + method: POST + data_selector: workflow + params: {} +- name: scatter_single_input_port + endpoint: + path: /scatter/single/input/port + method: GET + data_selector: output + params: {} +- name: scatter_multiple_input_ports + endpoint: + path: /scatter/multiple/input/ports + method: GET + data_selector: output + params: {} +- name: execution_settings + endpoint: + path: /api/v1/execution_settings + method: POST + data_selector: execution_settings + params: {} +- name: project + endpoint: + path: /reference/create-a-new-project + method: POST + data_selector: use_interruptible_instances + params: {} +- name: task + endpoint: + path: /reference/create-a-new-task + method: POST + data_selector: use_interruptible_instances + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: files +- name: datasets + endpoint: + path: /api/v1/datasets + method: GET + data_selector: data + params: {} +- name: instances + endpoint: + path: /instances + method: GET + data_selector: instances + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: files + endpoint: + path: /files + method: GET + data_selector: records +- name: task + endpoint: + path: /api/v1/tasks + method: GET + data_selector: records + params: {} +- name: task_logs + endpoint: + path: /tasks/logs + method: GET + data_selector: logs + params: {} +- name: projects + endpoint: + path: /projects + method: GET +- name: tasks + endpoint: + path: /tasks + method: GET +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: files + params: {} +- name: instances_with_ephemeral_storage + endpoint: + path: /instances/ephemeral-storage + method: GET + data_selector: instances + params: {} +- name: bam_file + endpoint: + path: /files/bam + method: GET + data_selector: records +- name: gene + endpoint: + path: /genes + method: GET + data_selector: records +- name: vcf + endpoint: + path: /variants + method: GET + data_selector: records +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: files +- name: task_stats + endpoint: + path: /task/stats + method: GET + data_selector: records + params: {} +- name: task_stats + endpoint: + path: /tasks/stats + method: GET + data_selector: tasks + params: {} +- name: FastQC analysis workflow + endpoint: + path: /fastqc/analysis + method: POST + data_selector: report + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: records + params: {} +- name: automations + endpoint: + path: /automations + method: GET + data_selector: automations + params: {} +- name: automation_runs + endpoint: + path: /automations/runs + method: GET + data_selector: runs + params: {} +- name: automation_run + endpoint: + path: /automations/runs + method: GET + data_selector: runs + params: {} +- name: automation_log + endpoint: + path: /automations/log + method: GET + data_selector: log_entries + params: {} +- name: automation_state + endpoint: + path: /automations/state + method: GET + data_selector: state + params: {} +- name: bam_file + endpoint: + path: /files + method: GET + data_selector: records + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: data + params: {} +- name: automations + endpoint: + path: /reference/list-all-automations + method: GET + data_selector: automations +- name: demo_vcf_files + endpoint: + path: /demo/vcf/files + method: GET + data_selector: files + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: analysis + endpoint: + path: /api/v1/analysis + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: files + params: {} +- name: fastqc_report + endpoint: + path: /fastqc/report + method: GET + data_selector: report +- name: alignment_summary_metrics + endpoint: + path: /services/data/vXX.X/sobjects/AlignmentSummaryMetrics + method: GET + data_selector: records +- name: alignment_summary_metrics + endpoint: + path: /alignment_summary_metrics + method: GET + data_selector: metrics + params: {} +- name: datasets + endpoint: + path: /datasets + method: GET + data_selector: records +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: automations + endpoint: + path: /automations + method: GET + data_selector: automations +- name: automation_runs + endpoint: + path: /automations/runs + method: GET + data_selector: runs +- name: automations + endpoint: + path: /reference/list-all-automations + method: GET +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: records + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects + params: {} +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: files + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: files + endpoint: + path: /files + method: GET + data_selector: records +- name: datasets + endpoint: + path: /api/v1/datasets + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: records + params: {} +- name: files + endpoint: + path: /api/files + method: GET + data_selector: records + params: {} +- name: users + endpoint: + path: /users/me + method: GET + data_selector: user + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: data + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: data + params: {} +- name: automation + endpoint: + path: /automations + method: GET + data_selector: automations + params: {} +- name: automation_run + endpoint: + path: /automations/runs + method: POST + data_selector: id + params: {} +- name: code_package + endpoint: + path: /automations/packages + method: POST + data_selector: id + params: {} +- name: automations + endpoint: + path: /automations + method: GET + data_selector: automations + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: data + params: {} +- name: automations + endpoint: + path: /api/automations + method: GET + data_selector: records + params: {} +- name: files + endpoint: + path: /api/files + method: GET + data_selector: records +- name: Automation inputs + endpoint: + path: /api/automation/inputs + method: GET + data_selector: records +- name: FastQC + endpoint: + path: /apps/fastqc + method: POST + data_selector: outputs + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: records + params: {} +- name: file + endpoint: + path: /files + method: GET + data_selector: records + params: {} +- name: String output + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: Boolean output + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: Integer output + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: Float output + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: Single file output + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: Single folder output + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: Single volume file output + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: Single volume folder output + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: Single task output + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: Project output + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: analysis + endpoint: + path: /api/v1/analyses + method: GET + data_selector: results + params: {} +- name: project + endpoint: + path: /api/v1/projects + method: GET + data_selector: results + params: {} +- name: GRAF Germline Variant Detection + endpoint: + path: /graph-genome-apps/graf-germline-variant-detection + method: POST + data_selector: results +- name: automation_run + endpoint: + path: /automations/runs + method: POST + data_selector: id + params: {} +- name: code_package + endpoint: + path: /automations/packages + method: POST + data_selector: id + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: tasks + endpoint: + path: /tasks + method: GET + data_selector: records +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: files +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: data + params: {} +- name: analyses + endpoint: + path: /api/analyses + method: GET + data_selector: data + params: {} +- name: data_studio_analysis + endpoint: + path: /api/data_studio_analysis + method: GET + data_selector: records +- name: String output + endpoint: + path: /string + method: GET + data_selector: output + params: {} +- name: Boolean output + endpoint: + path: /boolean + method: GET + data_selector: output + params: {} +- name: Integer output + endpoint: + path: /integer + method: GET + data_selector: output + params: {} +- name: Float output + endpoint: + path: /float + method: GET + data_selector: output + params: {} +- name: Single file output + endpoint: + path: /file + method: GET + data_selector: output + params: {} +- name: Single folder output + endpoint: + path: /folder + method: GET + data_selector: output + params: {} +- name: Single volume file output + endpoint: + path: /volume_file + method: GET + data_selector: output + params: {} +- name: Single volume folder output + endpoint: + path: /volume_folder + method: GET + data_selector: output + params: {} +- name: Single task output + endpoint: + path: /task + method: GET + data_selector: output + params: {} +- name: Project output + endpoint: + path: /project + method: GET + data_selector: output + params: {} +- name: GRAF Germline Variant Detection + endpoint: + path: /apps/graf-germline-variant-detection + method: POST + data_selector: results +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: files + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: results + endpoint: + path: /download/results + method: GET +- name: datasets + endpoint: + path: /api/v1/datasets + method: GET + data_selector: results +- name: GRAF Germline Variant Detection Workflow + endpoint: + path: /workflows/graf-germline-variant-detection + method: POST + data_selector: results +- name: analysis + endpoint: + path: /api/v1/analyses + method: GET + data_selector: results +- name: Smart Variant Filtering Project + endpoint: + path: /public_projects/smart_variant_filtering + method: GET + data_selector: data + params: {} +- name: workspace + endpoint: + path: /docs/about-files-in-a-data-cruncher-analysis + method: GET + data_selector: files + params: {} +- name: outputs + endpoint: + path: /sbgenomics/output-files + method: GET + data_selector: files + params: {} +- name: VCF Benchmarking Project + endpoint: + path: /vcf-benchmarking + method: GET +- name: Draft Task + endpoint: + path: /draft-task + method: GET + data_selector: results + params: {} +- name: Benchmark Exploration + endpoint: + path: /benchmark-exploration + method: GET + data_selector: results + params: {} +- name: data_studio_analysis + endpoint: + path: /api/data_studio_analysis + method: GET + data_selector: records + params: {} +- name: SGDP dataset + endpoint: + path: /simons-genome-diversity-project-sgdp-dataset + method: GET +- name: SGDP_samples + endpoint: + path: /sgdp/samples + method: GET + data_selector: samples + params: {} +- name: analysis + endpoint: + path: /api/v1/analyses + method: GET + data_selector: items +- name: project + endpoint: + path: /api/v1/projects + method: GET + data_selector: items +- name: data_import + endpoint: + path: /data/import + method: POST + data_selector: files + params: {} +- name: export_results + endpoint: + path: /data/export + method: POST + data_selector: results + params: {} +- name: division + endpoint: + path: /api/divisions + method: GET + data_selector: records + params: {} +- name: billing_information + endpoint: + path: /api/billing + method: GET + data_selector: records + params: {} +- name: public_projects + endpoint: + path: /public/projects + method: GET + data_selector: projects +- name: variant_filtering + endpoint: + path: /api/variant_filtering + method: GET + data_selector: records +- name: division_member + endpoint: + path: /services/data/vXX.X/sobjects/DivisionMember + method: GET + data_selector: records + params: {} +- name: public_project + endpoint: + path: /public/projects/smart_variant_filtering + method: GET + data_selector: data +- name: VCF Benchmarking Project + endpoint: + path: /vcf-benchmarking + method: GET + data_selector: results +- name: Open Access files + endpoint: + path: /ccle/open-access + method: GET + data_selector: files + params: {} +- name: credit_card + endpoint: + path: /api/v1/payment_methods + method: POST + data_selector: data + params: {} +- name: SGDP samples + endpoint: + path: /sgdp/samples + method: GET + data_selector: samples +- name: Census_of_Immune_Cells + endpoint: + path: /path/to/census_of_immune_cells + method: GET + data_selector: datasets + params: {} +- name: Ischaemic_Sensitivity_of_Human_Tissue + endpoint: + path: /path/to/ischaemic_sensitivity_of_human_tissue + method: GET + data_selector: datasets + params: {} +- name: Melanoma_Infiltration_of_Stromal_and_Immune_Cells + endpoint: + path: /path/to/melanoma_infiltration_of_stromal_and_immune_cells + method: GET + data_selector: datasets + params: {} +- name: email_notifications + endpoint: + path: /manage/notifications + method: GET + data_selector: notifications + params: {} +- name: collaborator + endpoint: + path: /api/collaborators + method: GET + data_selector: records + params: {} +- name: collaborator + endpoint: + path: /api/collaborator + method: POST + data_selector: data + params: {} +- name: project + endpoint: + path: /api/v1/projects + method: GET + data_selector: data + params: {} +- name: division + endpoint: + path: /create-division + method: POST + data_selector: data + params: {} +- name: actions + endpoint: + path: /actions + method: GET + data_selector: items +- name: rate_limit + endpoint: + path: /rate_limit + method: GET + data_selector: rate_limit +- name: user + endpoint: + path: /user + method: GET + data_selector: user +- name: users + endpoint: + path: /users + method: GET + data_selector: users +- name: billing + endpoint: + path: /billing + method: GET + data_selector: billing +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects +- name: files + endpoint: + path: /files + method: GET + data_selector: files +- name: upload + endpoint: + path: /upload + method: POST + data_selector: upload +- name: apps + endpoint: + path: /apps + method: GET + data_selector: apps +- name: tasks + endpoint: + path: /tasks + method: GET + data_selector: tasks +- name: storage + endpoint: + path: /storage + method: GET + data_selector: volumes +- name: division_members + endpoint: + path: /api/v1/division/members + method: GET + data_selector: members + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: projects + endpoint: + path: /projects + method: GET + params: + fields: href +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: files + endpoint: + path: /files + method: GET + data_selector: records +- name: billing_groups + endpoint: + path: /v2/billing/groups + method: GET + data_selector: items +- name: create_project + endpoint: + path: /v2/projects + method: POST + data_selector: '' + params: {} +- name: list_files + endpoint: + path: /v2/files + method: GET + data_selector: items + params: + project: admin/sbg-public-data + metadata.experimental_strategy: WXS +- name: copy_files + endpoint: + path: /v2/action/files/copy + method: POST + data_selector: '' + params: {} +- name: modify_file_metadata + endpoint: + path: /v2/files/{file_id}/metadata + method: PATCH + data_selector: '' + params: {} +- name: files + endpoint: + path: /v2/files + method: GET + data_selector: items + params: + project: admin/sbg-public-data +- name: copy_files + endpoint: + path: /v2/action/files/copy + method: POST + data_selector: '' + params: {} +- name: apps + endpoint: + path: /v2/apps + method: GET + data_selector: items + params: + visibility: public + limit: 100 +- name: copy_app + endpoint: + path: /v2/apps/admin/sbg-public-data/whole-exome-sequencing-gatk-2-3-9-lite/56/actions/copy + method: POST + data_selector: '' + params: {} +- name: create_task + endpoint: + path: /v2/tasks + method: POST + data_selector: '' + params: {} +- name: collaborator + endpoint: + path: /add-collaborator + method: GET +- name: task + endpoint: + path: /v2/tasks/{task_id}/actions/run + method: POST + data_selector: tasks + params: {} +- name: task_status + endpoint: + path: /v2/tasks/{task_id}/execution_details + method: GET + data_selector: execution_details + params: {} +- name: task_outputs + endpoint: + path: /v2/tasks/{task_id}?fields=outputs + method: GET + data_selector: outputs + params: {} +- name: billing_groups + endpoint: + path: /v2/billing/groups + method: GET + data_selector: items + params: {} +- name: create_project + endpoint: + path: /v2/projects + method: POST + data_selector: id + params: {} +- name: list_files + endpoint: + path: /v2/files + method: GET + data_selector: items + params: {} +- name: copy_files + endpoint: + path: /v2/action/files/copy + method: POST + data_selector: status + params: {} +- name: copy_files + endpoint: + path: /v2/action/files/copy + method: POST + data_selector: new_file_id + params: {} +- name: list_public_workflows + endpoint: + path: /v2/apps + method: GET + data_selector: items + params: + visibility: public + limit: 100 +- name: copy_workflow + endpoint: + path: /v2/apps/admin/sbg-public-data/rna-seq-alignment-star/16/actions/copy + method: POST + data_selector: id + params: {} +- name: create_draft_task + endpoint: + path: /v2/tasks + method: POST + data_selector: id + params: {} +- name: run_task + endpoint: + path: /v2/tasks/{task_id}/actions/run + method: POST + data_selector: id + params: {} +- name: get_task_outputs + endpoint: + path: /v2/tasks/{task_id} + method: GET + data_selector: outputs + params: {} +- name: tasks + endpoint: + path: /v2/tasks + method: GET + data_selector: items + params: + parent: 1fd125fa-789c-45b6-12b3-2a3ab3bedcba +- name: task_outputs + endpoint: + path: /v2/tasks/{task_id} + method: GET + data_selector: outputs + params: + fields: outputs +- name: tasks + endpoint: + path: /api/tasks + method: POST + data_selector: task + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects +- name: billing_groups + endpoint: + path: /v2/billing/groups + method: GET +- name: create_project + endpoint: + path: /v2/projects + method: POST +- name: list_files + endpoint: + path: /v2/files + method: GET +- name: copy_files + endpoint: + path: /v2/action/files/copy + method: POST +- name: modify_file_metadata + endpoint: + path: /v2/files/{file_id}/metadata + method: PATCH +- name: files + endpoint: + path: /v2/files + method: GET + data_selector: items + params: + project: admin/sbg-public-data +- name: copy_files + endpoint: + path: /v2/action/files/copy + method: POST + data_selector: null + params: {} +- name: apps + endpoint: + path: /v2/apps + method: GET + data_selector: items + params: + visibility: public + limit: 100 +- name: copy_app + endpoint: + path: /v2/apps/admin/sbg-public-data/whole-exome-sequencing-gatk-2-3-9-lite/56/actions/copy + method: POST + data_selector: null + params: {} +- name: tasks + endpoint: + path: /v2/tasks + method: POST + data_selector: null + params: {} +- name: run_task + endpoint: + path: /v2/tasks/{task_id}/actions/run + method: POST +- name: check_task_status + endpoint: + path: /v2/tasks/{task_id}/execution_details + method: GET +- name: get_task_outputs + endpoint: + path: /v2/tasks/{task_id} + method: GET + params: + fields: outputs +- name: files_import + endpoint: + path: /imports + method: POST + data_selector: responses +- name: billing_groups + endpoint: + path: /v2/billing/groups + method: GET + data_selector: items + params: {} +- name: projects + endpoint: + path: /v2/projects + method: POST + data_selector: id + params: {} +- name: files + endpoint: + path: /v2/files + method: GET + data_selector: items + params: {} +- name: copy_files + endpoint: + path: /v2/action/files/copy + method: POST + data_selector: status + params: {} +- name: file_metadata + endpoint: + path: /updating/file/metadata + method: GET + data_selector: records + params: {} +- name: copy_files + endpoint: + path: /v2/action/files/copy + method: POST +- name: list_apps + endpoint: + path: /v2/apps + method: GET +- name: copy_app + endpoint: + path: /v2/apps/admin/sbg-public-data/rna-seq-alignment-star/16/actions/copy + method: POST +- name: create_draft_task + endpoint: + path: /v2/tasks + method: POST +- name: run_task + endpoint: + path: /v2/tasks/{task_id}/actions/run + method: POST +- name: child_tasks + endpoint: + path: /v2/tasks + method: GET + data_selector: items + params: + parent: 1fd125fa-789c-45b6-12b3-2a3ab3bedcba +- name: task_outputs + endpoint: + path: /v2/tasks/{task_id} + method: GET + data_selector: outputs + params: + fields: outputs +- name: file_metadata + endpoint: + path: /api/v1/files + method: GET + data_selector: records + params: {} +- name: file_metadata + endpoint: + path: /api/v1/files + method: GET + data_selector: records +- name: file_metadata + endpoint: + path: /api/v1/files/metadata + method: GET + data_selector: data + params: {} +- name: tasks + endpoint: + path: /tasks + method: POST + data_selector: task + params: {} +- name: project + endpoint: + params: + limit: 100 +- name: import_files + endpoint: + path: /api/import/files + method: GET + data_selector: records + params: {} +- name: finding_project_by_name + endpoint: + path: /finding/project/by/name + method: GET + data_selector: records +- name: project + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects +- name: file_metadata + endpoint: + path: /api/v1/files/{file_id}/metadata + method: GET + data_selector: metadata + params: {} +- name: file_metadata + endpoint: + path: /api/v1/files + method: GET + data_selector: files +- name: projects + endpoint: + path: /projects + method: GET + data_selector: results +- name: files + endpoint: + path: /files + method: GET + data_selector: results +- name: files + endpoint: + path: /api/v1/files + method: DELETE + data_selector: deleted_files + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects + params: {} +- name: files + endpoint: + path: /api/v1/files + method: GET + data_selector: files + params: {} +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: data + params: {} +- name: public_apps + endpoint: + path: /public/apps + method: GET + data_selector: apps + params: {} +- name: copy_app + endpoint: + path: /apps/copy + method: POST + data_selector: copiedApp + params: {} +- name: tasks + endpoint: + path: /tasks + method: GET + data_selector: tasks + params: {} +- name: imports + endpoint: + path: /imports + method: GET + data_selector: imports + params: {} +- name: exports + endpoint: + path: /exports + method: POST + data_selector: exportJob + params: {} +- name: project + endpoint: + path: /projects + method: GET + data_selector: projects + params: + limit: 100 +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects +- name: files + endpoint: + path: /files + method: GET + data_selector: files +- name: billing_groups + endpoint: + path: /billing/list + method: GET +- name: billing_group + endpoint: + path: /billing/get/{group_id} + method: GET +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: projects + params: {} +- name: members + endpoint: + path: /api/v1/members + method: GET + data_selector: members + params: {} +- name: projects + endpoint: + path: /projects + method: GET + data_selector: projects + params: {} +- name: members + endpoint: + path: /members + method: GET + data_selector: members + params: {} +- name: files + endpoint: + path: /files + method: GET + data_selector: records +- name: metadata + endpoint: + path: /files/metadata + method: GET + data_selector: records +- name: project + endpoint: + path: /api/v1/projects + method: GET + data_selector: records + params: {} +- name: file + endpoint: + path: /api/v1/files + method: GET + data_selector: records + params: {} +- name: apps_list + endpoint: + path: /apps/list + method: GET + data_selector: apps + params: {} +- name: apps_get + endpoint: + path: /apps/get + method: GET + data_selector: app_details + params: {} +- name: apps_import + endpoint: + path: /apps/import + method: POST + data_selector: import_response + params: {} +- name: apps_copy + endpoint: + path: /apps/copy + method: POST + data_selector: copy_response + params: {} +- name: tasks + endpoint: + path: /tasks + method: GET + data_selector: tasks + params: {} +- name: volumes + endpoint: + path: /volumes + method: GET + data_selector: volumes + params: {} +- name: exports + endpoint: + path: /exports + method: GET + data_selector: exports + params: {} +- name: imports + endpoint: + path: /imports + method: GET + data_selector: imports + params: {} +- name: volumes + endpoint: + path: /volumes + method: GET + data_selector: records + params: {} +- name: files + endpoint: + path: /api/files + method: GET + data_selector: data + params: {} +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: data + params: {} +- name: create_volume + endpoint: + path: /reference/create-a-volume-v2 + method: POST +- name: list_volumes + endpoint: + path: /reference/list-volumes-v2 + method: GET +- name: get_details_of_volume + endpoint: + path: /reference/get-details-of-a-volume-v2 + method: GET +- name: update_volume + endpoint: + path: /reference/update-a-volume-v2 + method: PUT +- name: delete_volume + endpoint: + path: /reference/delete-a-volume-v2 + method: DELETE +- name: start_import_job + endpoint: + path: /reference/start-an-import-job-v2 + method: POST +- name: get_details_of_import_job + endpoint: + path: /reference/get-details-of-an-import-job-v2 + method: GET +- name: start_export_job + endpoint: + path: /reference/start-an-export-job-v2 + method: POST +- name: list_export_jobs + endpoint: + path: /reference/list-export-jobs-v2 + method: GET +- name: list_import_jobs + endpoint: + path: /reference/list-import-jobs + method: GET +- name: projects + endpoint: + path: /api/projects + method: GET + data_selector: data + params: {} +- name: files + endpoint: + path: /api/files + method: GET + data_selector: data + params: {} +- name: billing_list + endpoint: + path: /billing/list + method: GET +- name: billing_get + endpoint: + path: /billing/get + method: GET +- name: projects + endpoint: + path: /api/v1/projects + method: GET + data_selector: records +- name: members + endpoint: + path: /api/v1/members + method: GET + data_selector: records +- name: projects + endpoint: + path: /projects + method: POST + data_selector: projects +- name: members + endpoint: + path: /members + method: POST + data_selector: members +- name: files + endpoint: + path: /files + method: GET + data_selector: files + params: {} +- name: files_metadata + endpoint: + path: /files/metadata + method: GET + data_selector: metadata + params: {} +- name: apps_list + endpoint: + path: /apps/list + method: GET +- name: apps_get + endpoint: + path: /apps/get + method: GET +- name: apps_import + endpoint: + path: /apps/import + method: POST +- name: apps_copy + endpoint: + path: /apps/copy + method: POST +- name: tasks + endpoint: + path: /tasks + method: GET +- name: volumes + endpoint: + path: /volumes + method: GET + data_selector: volumes + params: {} +- name: exports + endpoint: + path: /exports + method: GET + data_selector: exports + params: {} +- name: imports + endpoint: + path: /imports + method: GET + data_selector: imports + params: {} +- name: create_volume + endpoint: + path: /reference/create-a-volume-v2 + method: POST +- name: list_volumes + endpoint: + path: /reference/list-volumes-v2 + method: GET +- name: get_details_of_a_volume + endpoint: + path: /reference/get-details-of-a-volume-v2 + method: GET +- name: update_volume + endpoint: + path: /reference/update-a-volume-v2 + method: PUT +- name: delete_volume + endpoint: + path: /reference/delete-a-volume-v2 + method: DELETE +- name: start_import_job + endpoint: + path: /reference/start-an-import-job-v2 + method: POST +- name: get_details_of_an_import_job + endpoint: + path: /reference/get-details-of-an-import-job-v2 + method: GET +- name: start_export_job + endpoint: + path: /reference/start-an-export-job-v2 + method: POST +- name: list_export_jobs + endpoint: + path: /reference/list-export-jobs-v2 + method: GET +- name: list_import_jobs + endpoint: + path: /reference/list-import-jobs + method: GET +notes: +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Requires setup of connected app in api +- Requires setup of connected app in Seven Bridges Platform +- Ensure to use proper authentication token +- Requires setup of connected app in Seven Bridges +- Some responses may have nulls in deeply nested fields +- User experience is largely identical across cloud providers +- Uses OAuth2 with refresh token — requires setup of connected app in Seven Bridges +- Some objects may return nulls in deeply nested fields +- If you haven't logged in to the Platform in 90 days, your account will be temporarily + disabled due to inactivity. +- AWS charges for the use of their compute instances on a per second basis, but the + rate depends on the AWS pricing model. +- 'The Platform uses two AWS pricing models: On-Demand and Spot.' +- If there aren't enough funds in the billing group that is associated to a project, + a task that is executed within the project will fail to start. +- Data transfer costs are charged by AWS as the underlying cloud provider and are + passed through by Seven Bridges. +- Ensure project location matches the location of your files to avoid data transfer + costs. +- Seven Bridges passes through EBS storage costs. +- You are not charged for storing public files from our Public reference files repository + or from our public datasets when you copy them into your project. +- Ensure input files are compatible with STAR tool +- Make sure Docker is running before creating the Docker image. +- Ensure Docker is running before executing commands. +- Login to the Seven Bridges image registry may time out after a while. +- You should enter your authentication token in response to the password prompt, not + your Seven Bridges password. +- Some tools may complete runs successfully even though we provide incompatible pairs + on the input. +- As a newcomer to bioinformatics, you might need to revisit the alignment step to + address incompatible alignment coordinates. +- Invalid command lines tend to produce misleading error messages. +- Comprehensive tips for reliable and efficient analysis set-up +- Ensure to set appropriate app parameters before running the workflow +- Common issues can arise if certain inputs are configured incorrectly. +- Batch analysis allows independent execution of tasks. +- Users can connect their own cloud storage buckets to the Platform using Volumes. +- This API is used for integrating with the Seven Bridges Platform. +- Ensure that the API keys have the correct permissions. +- The API may have rate limits. +- This analysis will take around 75 minutes to run with a typical BAM file. +- Users are not charged for files that are part of the hosted datasets on Seven Bridges + Platform. +- Files that are produced on the Platform are stored in the Platform storage. +- Limit of 1,000 requests in 5 minutes +- If you are using the Seven Bridges Platform on AWS EU, please use eu-images.sbgenomics.com + as the image registry instead of images.sbgenomics.com. +- If you signed up for the Seven Bridges Platform by explicitly selecting Google Cloud + Platform as the cloud service provider, you will need to use Docker Hub to store + your images, instead of the Seven Bridges image registry. +- For any questions or if help with using API is needed, please contact support. +- Bulk methods are available to reduce the number of requests +- Users may need to check error messages for troubleshooting. +- For STAR aligner, the user does not need to provide transcriptome reference explicitly. +- Uses OAuth2 with refresh token — requires setup of connected app in Seven Bridges + API +- The API allows you to interact with the Seven Bridges Platform as you would via + the visual interface. +- Users can connect their cloud storage buckets to the Platform using the Volume feature. +- Some tools may require specific input configurations to work properly. +- Check on their files after each project phase is completed and discard any files + which are not needed for the future analysis. +- Some objects like Contact may return nulls in deeply nested fields +- Common issues may arise if input parameters are configured incorrectly. +- Testing workflows on a small scale is recommended to minimize costs. +- Files from these hosted datasets are referenced in the project, while the physical + file remains in the corresponding cloud bucket. +- Requires setup of connected app in Seven Bridges API +- Requires setup of connected app in API +- Set up two-factor authentication +- API rate limits apply — ensure to manage your requests effectively. +- Before you start using the API, ensure you have your authentication token. +- Download restrictions disable file download and preview within the project space. +- Some API calls may have limitations on requests +- Maximum number of characters per tag is 36. +- Maximum number of tags per project is 15. +- Requires setup of connected app in sbgenomics +- Add a collaborator to a project +- Manage your subscription +- Only existing users of the Seven Bridges Platform can be added as project members. +- Multi-factor authentication has to be enabled on both Seven Bridges Platform and + CGC. +- Project Files can be viewed, edited, and copied by the project administrator and + by project members with copy permissions. +- Maximum number of files you can submit for upload is 250,000. +- Uses OAuth2 with refresh token — requires setup of connected app in API +- The maximum number of files you can submit for upload is 250,000. +- You must register with eRA Commons credentials to access Controlled Data. +- This upload method can also be used with (pre)signed URLs from cloud storage services + such as AWS S3 and Google Cloud Storage. +- It is not possible to import files from an FTP/HTTP link which has a redirection. +- You can only edit metadata for files in the current project. +- Upload jobs can be paused and resumed as needed. +- A maximum of 250,000 files can be submitted for upload at once. +- Updated about 2 months ago +- Allowed characters in file names are all alphanumerics and special characters except + slash (`/`). File names can’t be longer than 255 characters. +- Allowed characters in folder names are `a-z`, `A-Z`, `0-9`, and special characters + (`_`), (`-`), and (`.`). Folder names can’t be longer than 255 characters. +- Supplementary files do not need to be included for upload in order for their metadata + to be applied to the files being uploaded. +- Edit metadata using the API +- The maximum number of links you can put inside the text area is 500. +- To import again, you will have to wait for 5 minutes. +- Use OAuth2 for authentication. +- Some API calls may have rate limits. +- Authentication token expires after 1 hour. +- Maximum number of metadata key-value pairs per file is 1000. +- Maximum length of a metadata key is 100 bytes (UTF-8 encoding). +- Metadata key must not contain characters . and $ . +- Maximum length of a metadata value is 300 bytes (UTF-8 encoding). +- It's not possible to update any metadata value belonging to metadata schema for + a Dataset file. +- Metadata and tags can only be set for files. Folders aren't supported. +- Metadata keys and values are treated as case sensitive. +- Maximum size for the metadata manifest file is 5 GiB. +- Maximum number of key-value pairs per file is 1000, including null-value keys. +- This feature can be used to edit metadata schema and custom metadata fields. However, + editing the system metadata fields (e.g. file name, id, size, extension, etc.) is + not allowed. +- The tag(s) which are currently applied as a filter will be highlighted in the list + of files. +- The maximum file size for the manifest is 5 GiB. +- The exported manifest file contains metadata for files only, metadata for folders + is not supported. +- Keys and values are case sensitive unless explicitly treated differently by a tool + or a part of the Platform. +- You can combine filters for file actions. +- The maximum size for the metadata manifest file is 5 GiB. +- Requires setup of Seven Bridges client applications +- Restored files are available for 7 days. +- Restoring files from Amazon Glacier may be costly. +- Some operations may have limitations on file types +- Requires setup of OAuth2 credentials. +- API limits on the number of requests per minute. +- OAuth2 with refresh token is required. +- Seven Bridges currently offers Amazon Glacier as the archiving back-end. +- SBFS is still a beta tool. +- Configure SBFS credentials +- Access via the API requires authentication. +- List all projects available to you by using the list command to determine which + project you want to mount. +- Recommended method for managing files is via the command line interface. +- Some operations may have limitations based on user permissions +- Some actions are not available in read-only mode. +- Removing files or directories is irreversible. +- Unmount command is executed as an OS unmount command. +- On Linux OS this command has to be executed with root privileges. +- SBFS allows you to use profiles for the credentials allowing you to access multiple + user accounts. +- API rate limits may apply. +- A file system cannot normally be unmounted when it is busy, such as when there are + open files or when the working directory of a process is on the mounted file system. +- Using the --force option can cause data loss for open files. +- Ensure to set up your OAuth application in the Seven Bridges platform. +- Allowed characters in directory names are `a-z`, `A-Z`, `0-9`, and special characters + (`_`), (`-`), and (`.`). Directory names can’t be longer than 255 characters. +- Some endpoints may require specific permissions based on user roles. +- Minimum suspend time is 15 minutes. +- Please note that once published, you will be responsible for maintaining the app + or workflow and any in-depth troubleshooting or questions will be directed to you. +- Use the `sbpack_nf` command to publish Nextflow apps. +- Ensure the app follows Nextflow community best practices. +- Requires OAuth2 authentication setup on the Seven Bridges Platform. +- Requires setup of connected app in the platform +- Requires setup of credentials in unified configuration file +- Conditional execution allows for steps to be skipped if a specified condition is + met. +- Run Condition can be set through an expression in the workflow editor. +- Ensure that the project specified with `--projectid` exists and contains the referenced + files. +- Use descriptive tags when uploading sample sheets to organize files effectively. +- Validate sample sheets before uploading to catch missing files early in the process. +- Always back up your original sample sheet to avoid data loss during remapping or + validation. +- Uses OAuth2 for authentication — requires setup of credentials in the Seven Bridges + credentials file. +- Uses OAuth2 with refresh token — requires setup of connected app in Seven Bridges + API. +- Profile contains the Platform API endpoint and authentication token. +- Workflows are executed in Local mode. +- Use of Docker is required. +- Storing your images in the Seven Bridges Image Registry rather than in Docker Hub + will speed up processing time on the Platform +- Nextflow app copies made through standard visual interface or API methods instead + of using sbcopy will still point to the originally pushed code package and the original + project where it is located. +- Nextflow execution mode can be set at app level or task level. +- If execution mode isn't explicitly set, multi-instance mode is used as the default. +- Requires setup of connected app in the Seven Bridges Platform +- Ensure that the project specified with --projectid exists and contains the referenced + files. +- To get access to this feature, please contact our Support Team. +- Workflows are executed in Local mode. Make sure your workflow can run in Local mode + before porting it to the Seven Bridges Platform. +- The first instruction must be FROM to specify the base image. +- Requires setup of authentication via OAuth2. +- Some endpoints may have rate limits +- Requires setup of OAuth2 for client applications +- Be aware of API rate limits +- Do not use the root directory of your file system as the build context. +- API requires authentication via OAuth2. +- 'Username: /, and Password: Authentication Token' +- The instruction FROM must be the first non-comment line in a Dockerfile. +- LABEL is not mandatory but highly suggested for adding metadata. +- Docker commands are commonly used for managing Docker images and containers. +- Seven Bridges currently utilises ubuntu:18.04 as the base image. +- It is advisable to add a revision note in the Changelog file. +- Docker repository names can include only lowercase and uppercase letters of the + English alphabet, numbers from 0 to 9, dash (-) and underscore (_), while use of + dots is not allowed. +- Ensure proper OAuth2 setup for token retrieval. +- Do not use the root directory of your file system (`/`) as the build context. +- The account used to authenticate with your Shared Drives needs to be the same as + the one used to run docker commands. +- 'Every instruction should be described by using comments (comments start with #).' +- The Docker image maintainer should be set using LABEL. +- Dynamic expressions in tool descriptions are supported. +- Some responses may have nested fields with null values +- The API has rate limits that may affect performance. +- Requires setup of connected app in Seven Bridges Platform. +- Some API responses may have varying structures +- A tool cannot, in general, write to its input files since they are not in the tool's + working directory. +- A tool cannot in general report one of its input files as an output file. +- The file paths of a tool's input files must be given relative to the tool's working + directory. +- Some data may return nulls in deeply nested fields +- Ensure you have the correct OAuth scopes set up for data access +- Logs are produced and kept for each job executed on the Platform. +- Make files available in your tool's working directory +- To set a file as suggested for an app's input port, upload it to the Platform first. +- Some endpoints may require specific permissions. +- All endpoints require authentication via OAuth2. +- Ensure that the API key has the necessary permissions to access the resources. +- You need copy permissions to be able to copy an app. +- Requires authentication and connected app setup. +- Login times out after a while. +- Use the authentication token for login, not the platform password. +- Suggested files can currently be defined only for sbg:draft-2 workflows. +- Make sure you don't copy your apps from versions with the label if you want to receive + update notifications when the original app changes. +- API rate limits may apply depending on your subscription plan. +- Requires setup of OAuth2 credentials in the application console. +- Requires setup of OAuth2 application for API access +- To ensure optimal consistency and functioning of your workflows, it is not recommended + to mix CWL v1.0 and sbg:draft-2 apps in the same workflow. +- Requires setup of connected app in platform +- Login times out after a while +- Workflow created using RNA-seq Alignment - STAR +- Requires setting up input and output nodes properly +- Some tools may have specific input handling requirements +- Requires setup of OAuth2 for API access +- Secondary (index) files need to be added to the same project where the files they + accompany are located. +- Secondary (index) files usually don't have to be set explicitly as task inputs. +- The current default instance the Scheduling Algorithm will attempt to use for execution + is c4.2xlarge, which has 8vCPUs and 15 GB RAM. +- The default value for sbg:maxNumberOfParallelInstances is 1. +- Some workflows may require specific input files to function properly +- Scattering may increase overall cost if used with certain settings. +- Separate jobs are generated and executed to process input values in parallel. +- Memoization will not work if a task has folders set up as its inputs or outputs. +- Be careful with non-deterministic tools. If you need stochastic results for a non-deterministic + tool with the same inputs, you should turn off memoization. +- If your tool dynamically pulls inputs and pushes outputs from/to an external source, + you should turn off memoization. +- The selected location is the location for analysis (task or Data Studio) execution, + e.g. the exact region where computation resources (virtual instances and accompanying + attached disks) will be spun up. +- Secondary (index) files need to be added to the same project where the files they + accompany are located and where tasks are being executed. +- Secondary (index) files usually don't have to be set explicitly as task inputs. + Instead, they are pulled automatically when the task starts. +- Beware of mismatches between tool resource requirements and the resources available + on the provisioned computation instance. Your task will fail if a tool requires + more resources than the provisioned computation instance. +- Scattering allows for parallel processing of input values. +- Ensure the same number of input values on all scattered input ports when using the + dot product scatter method. +- Some responses may return nulls in deeply nested fields +- OAuth2 authentication is required for API access. +- If you do not specify resource requirements for the tools you upload to the Platform, + default tool resource requirements will be used. +- Instances labelled with Yes in the auto-scheduling column are the instances that + can be selected for task execution automatically based on the defined CPU and memory + requirements. +- Creating Docker images containing tools that are run on GPU instances is similar + to the process of creating Docker images with tools that are designed for CPU instances. +- Older binaries are usually built for older GPU architectures and might not work + on newer GPUs. +- Files that belong to the ICGC dataset can only be used in projects whose location + is us-east-1 (N. Virginia) +- Logs can be used to troubleshoot failed tasks. +- Spot Instances can be activated at the project and task level, with task settings + overriding project settings. +- Some responses may vary based on user permissions +- The default attached storage size is 1 TB, but it can be changed to anything between + 2GB and 4 TB. +- It is recommended to use one of Docker images provided by NVIDIA as the base image. +- Storage size can be changed to anything between 2GB and 4 TB. +- Supports visualizing multiple indexed BAM files. +- Only indexed BAM files can be visualized. +- Ensure you have permissions to access the projects and files. +- This page documents the BETA version of the Variant Browser app with features that + are limited in scope. +- Outputs a report file whose name ends fastqc.b64html that can be viewed directly + in your internet browser. +- API requires OAuth2 authentication. +- Real-time job monitoring available +- API access requires login +- The most common reasons for failed tasks are missing input files, missing or incorrect + metadata, and missing or incorrect parameters for a tool. +- The parallel automation runs limit can be increased if there is a need for more + capacity. +- Use the CLI to manage automations and automation runs. +- Only the run name can be changed, all other attributes are currently read-only. +- Run state information supports streaming. +- Only indexed BAM files can be visualized using the Seven Bridges Browser. +- The Seven Bridges Browser currently supports 20 indexed BAM files to be visualized + at a time. +- Uses OAuth2 with refresh token — requires setup of connected app in sbgenomics +- During the BETA stage, you are able to interpret demo VCF files which are readily + available inside the app. +- This feature is available as an add-on. +- Some API endpoints may have rate limits +- The workflow outputs a report file whose name ends fastqc.b64html that can be viewed + directly in your internet browser. +- An Alignment Summary Metrics report is available for all files with the extension + .summary_metrics.txt. +- Make sure to include advance_access option in your profile inside ~/.sevenbridges/credentials. +- Automation execution infrastructure can scale automatically for increased workloads. +- The limit for parallel automation runs is 30 runs per Division. +- The default memory limit for rerunning an automation is 500MB, while the maximum + allowed is 4000MB. +- Print statements can cause execution blocks and prevent parallelization. +- Automations must be flagged as 'project-based' by the automation developer if you + want to be able to start them directly from within any of your projects. +- Dynamic conditionals tend to be less common than static conditionals. +- When put in its own step, each conditional will evaluate in its own thread, and + therefore does not block the loop of the parent step. +- Whenever your automation script does not parallelize as expected, watch out for + execution blocks and remember this simple trick as one possibility to resolve them. +- Token expiration is handled via refresh tokens. +- Make sure to include advance_access option in your profile inside ~/.sevenbridges/credentials +- Automation is currently advance access (think early access or beta), which means + the Automation API might still be subject to change. +- Requires setup of OAuth2 credentials +- Ensure to handle rate limiting in the API +- Requires setup of connected app in the Seven Bridges API +- Requires WRITE permission on the automation parent entity for package creation +- Automation run can be started using either command line or file +- Execution blocks may cause unwanted delays in automation scripts. +- Some responses may include null values for optional fields +- Ensure you have the correct credentials for API access +- Before continuing with this part of the tutorial, please make sure you have `advance_access` + enabled for the Seven Bridges API. +- Ensure to handle API rate limits appropriately. +- Requires setup of connected app in the API +- You need a Seven Bridges Platform account to be able to access Graph Genome apps. +- Running the GRAF Germline Variant Detection Workflow should cost between $4-6 depending + on quality of the sample. +- Uses OAuth2 for authentication. +- GRAF Germline Variant Detection Workflow is only available through the Platform + running on the AWS cloud infrastructure. +- Minimum suspend time is 15 minutes +- Selection of multiple projects is currently not supported within standard automation + inputs. +- Any input can be defined as optional, meaning that it will be possible to run the + automation without providing a value for the specific input. +- To make an input optional, first make sure that the `Optional` class is imported + from Freyja at the beginning of your automation code. +- If the automation code contains an input type that is valid but does not have an + adequate UI component, it will be rendered as a text box. +- Separate domain (sb-cruncher.com) is used for serving Data Studio editors, which + provides better security isolation and privacy control. +- API rate limit may affect data retrieval +- Users can modify attached storage (GB) which defaults to 1024 +- 'Users can select Suspend Time: On or Off' +- Access Token obtained through the OAuth2 flow should be used for the authorization + with the Seven Bridges public API. +- All Seven Bridges Platform users automatically have copy permissions for this project. +- The VCF Benchmarking Workflow requires several inputs to work properly. +- The default input files provided with the VCF Benchmarking Workflow are intended + for benchmarking against the Genome in a Bottle NA12878 sample, processed with the + GRCh37 reference genome. +- The CCLE public project is not available for AWS EU. +- You don't need special access or authorization status to use the data in this project. +- The SGDP public project is not available for AWS EU. +- Each dataset in this Preview Data Release is licensed under a Creative Commons Attribution + 4.0 International License. +- Enterprise accounts are granted to users through their organization. +- Run full-featured 3D Slicer in the cloud with GUI access for advanced medical imaging + visualization and analysis. +- Maintain persistent workspaces so settings, data, and tools remain available across + sessions. +- Manage two-factor authentication +- Project files in the published project do not appear in the Public Reference Files + repository +- Published apps are tagged to indicate the publisher +- The expiration time of the authorization code is 10 minutes. +- The access token lifetime is 1800 seconds (30 minutes). +- The refresh token lifetime is 86400 seconds (24 hours). +- As an Enterprise administrator you can review billing information for all of your + Divisions +- You only have read permissions for public projects. +- Smart Variant Filtering API allows users to filter genomic variants based on various + parameters. +- Can only access projects they were added to +- Is given permissions for a project +- Can only be a project member (not allowed to become a project administrator) +- Cannot be added to a Team within a Division +- Review billing information for your Division +- Some API responses may vary based on user permissions +- Precautionary measures when downloading Excel files +- Set credit card as payment method +- This data is ideal for interrogating the genomic landscape of cancer cell lines. +- Datasets available under the project's Files tab. +- Authentication via OAuth2 with refresh token is required. +- Enterprise accounts can only be added to the Platform by Division administrator. +- Anyone you add as a Division administrator will be invited to register for an account + on the Platform after which they will become a Division administrator. +- If the user already has an account on the Platform, they will be immediately added + to the Division and granted administrator privileges. +- Single sign-on (SSO) setup +- Is single logout (SLO) supported? Yes, both SP-initiated and IdP initiated logout + flows are supported, as defined by SAML protocol. +- Precautionary measures when downloading Excel files suggest opening in a simple + text viewer first. +- All API requests need to have the HTTP header X-SBG-Auth-Token. +- Ensure to have the correct OAuth scopes for accessing division members +- Almost all API requests will require your Seven Bridges authentication token. +- Some responses may contain nulls in deeply nested fields +- The authentication token must be included in every API request. +- Ensure to have a billing group ID when creating a project. +- Use 'project' parameter to specify the target project for file operations. +- If you are an Enterprise administrator or a Division administrator, you can manage + email notifications for the entire Division. +- Ensure proper permissions are set for collaborators +- Requires authentication token for all API requests +- Requires setting up an API key for authentication +- The API rate limit is a limit to the number of calls you can send to the Seven Bridges + public API within a predefined time frame. That limit is 1000 requests within 5 + minutes. +- Users need to be invited to a division by the division admin. +- Unique ID is configurable and not case sensitive. +- Batch tasks are recommended for submitting multiple tasks. +- All API requests need to have the HTTP header X-SBG-Auth-Token which you should + set to your authentication token. +- Not optimized for rate limit +- Using a bulk API call you can copy up to 100 files +- The Seven Bridges API allows you to import files from a volume in bulk rather than + one by one. Using the bulk API feature, you can import up to 100 files per call. +- Using the bulk API feature, you will first query all files that need to be imported + and then use one API to import up to 100 files. +- Max legal bulk size for import is 100 items. +- 'Importing individual files requires two API calls for each file: one to find the + file by name, and another one to import it. We recommend using the bulk API call + instead.' +- The max legal bulk size for import is 100 items. +- Use 'visibility=public' to filter for public workflows. +- Maximum allowable limit per page is 100. +- Ensure to set up the client correctly for OAuth2 authentication. +- Recommended to use batch tasks for efficiency. +- Optimal way to delete multiple files is via bulk API call which can delete up to + 100 files. +- 'Not optimized for rate limit: Fetch and delete files one by one using a loop.' +- 'Optimized for rate limit: Fetch all files at once and then use a bulk API call + to delete them in batches of 100 files or less.' +- Exporting files to a volume +- Use bulk API calls to copy up to 100 files with a single API call. +- 'Not optimized for rate limit: Copying individual files requires two API calls for + each file.' +- 'Optimized for rate limit: Using a bulk API call you can copy up to 100 files.' +- Seven Bridges bulk API calls should be used to reduce the overall number of API + calls. +- Max legal bulk size for export is 100 items. +- Export to a volume is available only via the API, including API client libraries, + and through the Seven Bridges CLI. +- Using the bulk API feature, you can import up to 100 files per call. +- 'Importing individual files requires two API calls for each file: one to find the + file by name, and another one to import it.' +- Changing the default pagination limit (50) to its allowed maximum value (100) cuts + the number of required API calls in half when iterating over the entire result set + of a query. +- Optimized for rate limit +- API requires authentication for access to data. +- API calls require authentication +- Operations on volumes are handled by the Seven Bridges API. +- Metadata for multiple files can be set using a bulk API call instead of one call + per file. +- Requires user to be authenticated to access file metadata. +- An optimal way to update metadata for multiple files is to use a bulk API call and + update metadata for up to 100 files per call. +- Using a unified configuration file to store credentials is preferred. +- Use OAuth2 with refresh token for authentication. +- Deleting multiple files requires proper authorization. +- Export to a volume is available only via the API and through the Seven Bridges CLI. +- Setting maximum pagination limit in queries +- Keep your authentication token safe! It encodes all your credentials on the Platform. + Generally, we recommend storing the token in a configuration file, which will then + be stored in your home folder rather than in the code itself. +- Setting maximum pagination limit in queries is recommended. +- Ensure to handle the 409 conflict error when copying apps that already exist in + the project. +- Polling for task status should not be done in quick succession. +- Prior to using the Seven Bridges Command Line Interface, you must enter your credentials + to authenticate with the Platform. +- 'Not optimized for rate limit: Iterate over all projects and compare names.' +- 'Optimized for rate limit: Use ''name'' query parameter in search to restrict results.' +- Requires setup of user credentials for accessing a project. +- Once such a connection is established, files and objects from your cloud account + are available for computation on the Seven Bridges Platform. +- Uses OAuth2 with refresh token — requires setup of connected app in platform +- Store credentials to access Seven Bridges client applications and libraries +- Unified configuration file is the preferred method for storing credentials. +- Each profile must have exactly one api_endpoint and one auth_token key. +- Some users may have varying permissions across different projects. +- Use the correct file_id to access file details. +- Ensure proper permissions to manage files in projects. +- Uses OAuth2 with refresh token — requires setup of connected app in api. +- Requires OAuth2 with refresh token setup. +- Keep your authentication token safe! It encodes all your credentials on the Platform. +- Generally, we recommend storing the token in a configuration file, which will then + be stored in your home folder rather than in the code itself. +- Ensure to check API rate limits. +- Access to cloud storage repositories from the Platform is mediated by volumes. +- Aliases do not count towards your storage costs. +- The Platform cannot track changes to the file an alias points to. +- API requires authentication using user credentials. +- The ID of a file is a hexadecimal string automatically assigned to a file in a project. +- Volumes authorize the Platform to access and query objects on a specified cloud + storage on your behalf. +- Bioinformatics data is commonly stored on compliant cloud storage services, such + as Amazon Web Services (AWS) and Google Cloud Platform (GCP). +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Check your authentication credentials' +- '404 Not Found: Resource does not exist' +- '404 Not Found: Verify endpoint URL or resource availability' +- FATAL INPUT FILE error, no valid exon lines in the GTF file +- 'Warning: The SAM/BAM file declares less reference sequences (287) than RSEM knows + (228028)! Please make sure that you aligned your reads against transcript sequences + instead of genome.' +- 'Exception: Quality scale for range (0, 255) not found.' +- 'A USER ERROR has occurred: Read SRR316957.2380012 chr9:41008959-41009037 is malformed: + The input .bam file contains reads with no platform information.' +- '404 Not Found: Ensure the endpoint path is correct' +- '429 Too Many Requests: Throttle API calls or reduce frequency' +- '403 Forbidden: Check your API key permissions.' +- '404 Not Found: Verify the endpoint path.' +- '500 Internal Server Error: Try again later.' +- 'API rate limits: The maximum number of API requests is 1000 requests in 5 minutes.' +- 'Rate limit exceeded: Throttle API calls' +- 'Docker image not found: Check for typos in the Docker image name.' +- 'Insufficient disk space: Ensure adequate disk space is available.' +- 'Scatter over a non-list input: Provide an array instead of a single file.' +- 'Warning: The SAM/BAM file declares less reference sequences than RSEM knows. Make + sure that you aligned your reads against transcript sequences instead of genome.' +- 'tar: This does not look like a tar archive.' +- 'A USER ERROR has occurred: Read is malformed: The input .bam file contains reads + with no platform information.' +- '2024-07-17T13:20:30.298601490Z Exception in thread "main" java.awt.HeadlessException: + No X11 DISPLAY variable was set, but this program performed an operation which requires + it.' +- 'ValueError: NOT_FOUND: could not load fasta and/or fai for fasta.' +- '401 Unauthorized: Check your authentication credentials.' +- '404 Not Found: The requested resource could not be found.' +- 'Error Code: Connection Failed - Ensure the server is reachable.' +- 'Error Code: Authentication Failed - Check your username and password.' +- '401 Unauthorized: Check your authentication details.' +- '429 Too Many Requests: Rate limit exceeded.' +- '429 Too Many Requests: Reduce API call frequency' +- '401 Unauthorized: Check OAuth token validity' +- '403 Forbidden: Check permissions.' +- '404 Not Found: Ensure endpoint is correct.' +- '401 Unauthorized: Recheck OAuth token validity.' +- '403 Forbidden: Insufficient permissions for the requested operation.' +- '401 Unauthorized: Check your credentials and permissions.' +- '401 Unauthorized: Check your API credentials.' +- '404 Not Found: The specified app ID does not exist.' +- '403 Forbidden: You do not have permission to access this resource.' +- '400 Bad Request: Check request parameters' +- '403 Forbidden: Access denied for the requested resource' +- '404 Not Found: Check endpoint URL' +- '403 Forbidden: Check permissions' +- '500 Internal Server Error: Try again later' +- '401 Unauthorized: Check your credentials.' +- '404 Not Found: Verify the endpoint URL.' +- '403 Forbidden: Check permissions for the requested resource.' +- '404 Not Found: Ensure the endpoint is correct.' +- '500 Internal Server Error: Retry the request after some time.' +- '400 Bad Request: Check the request parameters.' +- '401 Unauthorized: Verify the OAuth token.' +- 'INVALID_CREDENTIALS: Check your client ID and secret' +- 'ACCESS_DENIED: Ensure you have the correct permissions' +- '404 Not Found: Verify the endpoint URL' +- '403 Forbidden: Check your permissions' +- '404 Not Found: Verify the endpoint or resource' +- '403 Forbidden: Check your permissions for this endpoint.' +- '404 Not Found: The requested resource does not exist.' +- '401 Unauthorized: Invalid credentials or token expired.' +- '429 Too Many Requests: Rate limit exceeded. Try again later.' +- '401 Unauthorized: Check OAuth token or scopes.' +- '403 Forbidden: Check your permissions.' +- '404 Not Found: Verify the requested resource.' +- '401 Unauthorized: Check client credentials and token validity.' +- '401 Unauthorized: Recheck OAuth token and scopes' +- '404 Not Found: Ensure the endpoint is correct' +- '403 Forbidden: Check API permissions.' +- '404 Not Found: Verify endpoint URL.' +- '500 Internal Server Error: Retry the request.' +- '429 Too Many Requests: Reduce request frequency' +- '401 Unauthorized: Recheck OAuth credentials' +- '403 Forbidden: Access denied to the requested resource' +- '404 Not Found: Ensure the endpoint URL is correct' +- '500 Internal Server Error: Retry the request after some time' +- 'Insufficient resources: Your task will fail if a tool requires more resources than + the provisioned computation instance.' +- '401 Unauthorized: Check your API token.' +- '400 Bad Request: Check the request parameters for accuracy.' +- '404 Not Found: Ensure the endpoint exists and is accessible.' +- '404 Not Found: Check the endpoint path.' +- '401 Unauthorized: Check your credentials or token expiration.' +- '403 Forbidden: Check permissions for the requested resource' +- '404 Not Found: Verify the endpoint and resource' +- '401 Unauthorized: Check your authentication token.' +- '401 Unauthorized: Recheck OAuth token expiration' +- '401 Unauthorized: Recheck authentication token' +- '404 Not Found: Check the endpoint URL' +- '401 Unauthorized: Verify your access token' +- '400 Bad Request: Review your request parameters' +- '401 Unauthorized: Check your authentication token' +- '403 Forbidden: You do not have permission to access this resource' +- '403 Forbidden: Check API permissions' +- '404 Not Found: Verify endpoint URL' +- '401 Unauthorized: Check client_id and client_secret.' +- '400 Bad Request: Check the query parameters for correctness.' +- '401 Unauthorized: Verify your authentication credentials.' +- '403 Forbidden: Insufficient permissions to access the resource' +- '404 Not Found: Check the endpoint and resource identifier' +- '401 Unauthorized: Check your credentials and permissions' +- '403 Forbidden: Access to the resource is denied' +- '401 Unauthorized: Check your API key and permissions.' +- '401 Unauthorized: Recheck authentication token.' +- '404 Not Found: Ensure the endpoint and project ID are correct.' +- '401 Unauthorized: Recheck API key validity.' +- '401 Unauthorized: Check API key and permissions' +- '404 Not Found: Check the resource path and IDs' +- 'REQUEST_LIMIT_EXCEEDED: No further calls are accepted by the API server, until + the 5 minute interval ends.' +- There were errors with bulk exporting. +- There were errors with bulk submission. +- '401 Unauthorized: Recheck auth token.' +- '404 Not Found: Ensure the endpoint path is correct.' +- '401 Unauthorized: Check your credentials and OAuth token.' +- '401 Unauthorized: Check authentication credentials.' +- '404 Not Found: Verify the file ID.' +- '404 Not Found: Check if the file ID is correct.' +- '403 Forbidden: Ensure you have permission to delete the file.' +- '409 Conflict: App with same ID already exists in project.' +- Error while waiting for imports to finish. +- Error while waiting for export to finish. +- '401 Unauthorized: Check your token or permissions.' +- '403 Forbidden: User does not have permission for the requested action.' +- '404 Not Found: The specified project or member does not exist.' +- 'FILE_NOT_FOUND: Check if the file_id is correct.' +- 'UNAUTHORIZED: Ensure proper authentication and permissions.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- 'upload failed: Exception' +- 'part upload failed: Exception' +- '404 Not Found: Check if the file_id is correct' +- '403 Forbidden: Ensure you have permission for the project' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential + - OAuthToken + - OAuth2 + - sevenbridges-python + - credentials + - App + - Project + - Token + - Config + - client_id + - client_secret + - identity management system + - identity provider + - X-SBG-Auth-Token +client: + base_url: https://igor.sbgenomics.com + auth: + type: oauth2 + flow: refresh_token + token_url: https://login.api.com/services/oauth2/token + client_id: '{{ dlt.secrets[''api_client_id''] }}' + client_secret: '{{ dlt.secrets[''api_client_secret''] }}' + refresh_token: '{{ dlt.secrets[''api_refresh_token''] }}' + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/skills_engine/skills-engine-docs.md b/skills_engine/skills-engine-docs.md new file mode 100644 index 00000000..62165660 --- /dev/null +++ b/skills_engine/skills-engine-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete SkillsEngine data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def skillsengine_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.skillsengine.com/se/api/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + translate,,search_skills,,job-post-generator + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='skillsengine_migration_pipeline', + destination='duckdb', + dataset_name='skillsengine_migration_data', + ) + # Load the data + load_info = pipeline.run(skillsengine_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from skillsengine_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- API Resources: Contains endpoints for translating skills, searching skills, and generating job posts and interview assistance. +- Recruiter Information: Provides information related to recruiters. +- Career Mapping: Endpoints for career map generation and skill profile retrieval. + +You will then debug the SkillsEngine pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with SkillsEngine support. + ```shell + dlt init dlthub:skillsengine_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for SkillsEngine API, as specified in @skillsengine_migration-docs.yaml + Start with endpoints translate and and skip incremental loading for now. + Place the code in skillsengine_migration_pipeline.py and name the pipeline skillsengine_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python skillsengine_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + SkillsEngine uses OAuth2 for authentication, requiring a setup of a connected app. + + To get the appropriate API keys, please visit the original source at https://www.skillsengine.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python skillsengine_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline skillsengine_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset skillsengine_migration_data + The duckdb destination used duckdb:/skillsengine_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline skillsengine_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("skillsengine_migration_pipeline").dataset() + # get ranslat table as Pandas frame + data.ranslat.df().head() + ``` + +## Running into errors? + +SkillsEngine APIs are available under paid subscription tiers, and user feedback is encouraged for feature enhancements. Users must also ensure they take reasonable efforts to prevent unauthorized access to the platform. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/skills_engine/skills-engine-docs.yaml b/skills_engine/skills-engine-docs.yaml new file mode 100644 index 00000000..0335da7a --- /dev/null +++ b/skills_engine/skills-engine-docs.yaml @@ -0,0 +1,132 @@ +resources: +- name: Translate + endpoint: + path: /api/translate + method: POST +- name: Search skills + endpoint: + path: /api/search-skills + method: GET +- name: Search skill sets + endpoint: + path: /api/search-skill-sets + method: GET +- name: Search job profile templates + endpoint: + path: /api/search-job-profile-templates + method: GET +- name: Get skills from a job profile + endpoint: + path: /api/get-skills-from-job-profile + method: GET +- name: Get custom skill profiles from organization + endpoint: + path: /api/get-custom-skill-profiles + method: GET +- name: Translate + endpoint: + path: /api/translate + method: POST + data_selector: skills_profiles + params: {} +- name: Search skills + endpoint: + path: /api/search_skills + method: GET + data_selector: skills + params: {} +- name: Search skill sets + endpoint: + path: /api/search_skill_sets + method: GET + data_selector: skill_sets + params: {} +- name: Search job profile templates + endpoint: + path: /api/search_job_profile_templates + method: GET + data_selector: job_profile_templates + params: {} +- name: Get skills from a job profile + endpoint: + path: /api/get_skills_from_job_profile + method: GET + data_selector: skills_metadata + params: {} +- name: Get custom skill profiles from organization + endpoint: + path: /api/get_custom_skill_profiles + method: GET + data_selector: custom_skill_profiles + params: {} +- name: recruiters + endpoint: + path: /se/recruiters/ + method: GET +- name: Job Post Generator + endpoint: + path: /api/job-post-generator + method: GET + data_selector: results +- name: Interview Assistant + endpoint: + path: /api/interview-assistant + method: GET + data_selector: results +- name: Career Map Generator + endpoint: + path: /api/career-map-generator + method: GET + data_selector: results +- name: Job Post Generator + endpoint: + path: /api/job-post-generator + method: GET + data_selector: results + params: {} +- name: Interview Assistant + endpoint: + path: /api/interview-assistant + method: GET + data_selector: results + params: {} +- name: Career Map Generator + endpoint: + path: /api/career-map-generator + method: GET + data_selector: results + params: {} +notes: +- SkillsEngine provides skills-based workforce analysis and labor market insights. +- This page is a new feature. We're eager to gather your feedback and observations + as you use this tool. Your input is invaluable in helping us refine and enhance + this feature for a seamless experience. +- SkillsEngine APIs are available with both paid subscription tiers. +- Get involved with SkillsEngine now. The team is super flexible, offers an open ear, + and is ready to work closely with you to understand your envisioned use case and + how the technology can support you in achieving your goals. +- This is an experimental application using OpenAI's GPT-4o. +- Uses OAuth2 with refresh token — requires setup of connected app in SkillsEngine +- Some objects may return nulls in deeply nested fields +- The SkillsEngine technology is visual and intuitive. +- Encouragement for smaller communities to start using the technology. +- SkillsEngine can help us take our community-level campaigns to new heights. +- Customer must use commercially reasonable efforts to prevent unauthorized access + to or use of the Platform or Services. +- Get started for FREE today and harness the power of skills data to unify your work + and learning communities +- Aims to maintain access to the Services 24/7, with an availability standard of 99% + per calendar month. +- TSTC may apply updates to the Services. +- TSTC does not modify Customer Information and therefore is not responsible for the + accuracy of any Customer Information. +- TSTC aims to maintain access to the Services 24/7, with an availability standard + of 99% per calendar month. +errors: [] +auth_info: + mentioned_objects: [] +client: + base_url: https://www.skillsengine.com/se/api/ + auth: + type: oauth2 +source_metadata: null diff --git a/slideshare_api_pro/slideshare-api-pro-docs.md b/slideshare_api_pro/slideshare-api-pro-docs.md new file mode 100644 index 00000000..ac01b31b --- /dev/null +++ b/slideshare_api_pro/slideshare-api-pro-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete SlideShare data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def slideshare_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.slideshare.net/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + ipms,,jnpt,,slides + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='slideshare_migration_pipeline', + destination='duckdb', + dataset_name='slideshare_migration_data', + ) + # Load the data + load_info = pipeline.run(slideshare_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from slideshare_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- General Information: Access various presentations and document types. +- User Management: Manage user accounts and profiles. +- Analytics: Retrieve statistics related to presentations and usage. + +You will then debug the SlideShare pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with SlideShare support. + ```shell + dlt init dlthub:slideshare_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for SlideShare API, as specified in @slideshare_migration-docs.yaml + Start with endpoints ipms and and skip incremental loading for now. + Place the code in slideshare_migration_pipeline.py and name the pipeline slideshare_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python slideshare_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication requires OAuth2 with a connected app setup in SlideShare. + + To get the appropriate API keys, please visit the original source at https://www.slideshare.net/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python slideshare_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline slideshare_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset slideshare_migration_data + The duckdb destination used duckdb:/slideshare_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline slideshare_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("slideshare_migration_pipeline").dataset() + # get pm table as Pandas frame + data.pm.df().head() + ``` + +## Running into errors? + +Ensure to set up a connected app in SlideShare for OAuth2 authentication. Rate limits apply on API calls, and some endpoints may return nulls for deeply nested fields. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/slideshare_api_pro/slideshare-api-pro-docs.yaml b/slideshare_api_pro/slideshare-api-pro-docs.yaml new file mode 100644 index 00000000..4efd4f07 --- /dev/null +++ b/slideshare_api_pro/slideshare-api-pro-docs.yaml @@ -0,0 +1,5028 @@ +resources: +- name: work_order + endpoint: + path: /api/v1/work_orders + method: GET + data_selector: work_orders +- name: education_presentations + endpoint: + path: /api/v1/education_presentations + method: GET + data_selector: results +- name: services_presentations + endpoint: + path: /services/presentations + method: GET + data_selector: presentations +- name: spiritual_presentations + endpoint: + path: /spiritual/presentations + method: GET + data_selector: presentations +- name: engineering_presentations + endpoint: + path: /engineering/presentations + method: GET + data_selector: presentations + params: {} +- name: geopolitical_risks + endpoint: + path: /api/v1/geopolitical_risks + method: GET + data_selector: risks + params: {} +- name: Illinois_Creek_Project + endpoint: + path: /services/data/vXX.X/sobjects/Illinois_Creek_Project + method: GET + data_selector: records + params: {} +- name: Waterpump_Creek + endpoint: + path: /services/data/vXX.X/sobjects/Waterpump_Creek + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: risks_impact_to_businesses + endpoint: + path: /risks/impact + method: GET + data_selector: risks + params: {} +- name: Illinois Creek Project + endpoint: + path: /services/data/vXX.X/sobjects/IllinoisCreekProject + method: GET + data_selector: records + params: {} +- name: Waterpump Creek + endpoint: + path: /services/data/vXX.X/sobjects/WaterpumpCreek + method: GET + data_selector: records + params: {} +- name: Illinois_Creek_Project + endpoint: + path: /services/data/vXX.X/sobjects/IllinoisCreekProject + method: GET + data_selector: records + params: {} +- name: Waterpump_Creek + endpoint: + path: /services/data/vXX.X/sobjects/WaterpumpCreek + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: recently_uploaded + endpoint: + path: /api/recently_uploaded + method: GET + data_selector: documents + params: {} +- name: recent_uploads + endpoint: + path: /recent/uploads + method: GET + data_selector: documents + params: {} +- name: recently_uploaded + endpoint: + path: /recently_uploaded + method: GET + data_selector: documents + params: {} +- name: recent_uploads + endpoint: + path: /api/recent_uploads + method: GET + data_selector: uploads +- name: financials + endpoint: + path: /financials + method: GET + data_selector: records + params: {} +- name: ownership + endpoint: + path: /ownership + method: GET + data_selector: records + params: {} +- name: investment_highlights + endpoint: + path: /investment_highlights + method: GET + data_selector: records + params: {} +- name: financials + endpoint: + path: /financials + method: GET + data_selector: records + params: {} +- name: ownership + endpoint: + path: /ownership + method: GET + data_selector: records + params: {} +- name: investment_highlights + endpoint: + path: /investment_highlights + method: GET + data_selector: records + params: {} +- name: recent_uploads + endpoint: + path: /api/recent_uploads + method: GET + data_selector: uploads + params: {} +- name: copper_gold_project + endpoint: + path: /services/data/vXX.X/sobjects/CopperGoldProject + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: economic_impact + endpoint: + path: /economic_impact + method: GET + data_selector: impact_data +- name: feasibility_study + endpoint: + path: /feasibility_study + method: GET + data_selector: study_data +- name: business_update + endpoint: + path: /slideshow/ctg-1q2025-business-update-website-pdf + method: GET + data_selector: contents +- name: financials + endpoint: + path: /services/data/vXX.X/sobjects/Financials + method: GET + data_selector: records + params: {} +- name: ownership + endpoint: + path: /services/data/vXX.X/sobjects/Ownership + method: GET + data_selector: records + params: {} +- name: investment_highlights + endpoint: + path: /services/data/vXX.X/sobjects/InvestmentHighlights + method: GET + data_selector: records + params: {} +- name: Investor Presentation + endpoint: + path: /slideshare/wrn_investor_presentation_august-2025-pdf + method: GET + data_selector: slides + params: {} +- name: wire_transfers + endpoint: + path: /api/wire_transfers + method: GET + data_selector: records + params: {} +- name: investor_testimonials + endpoint: + path: /api/investor_testimonials + method: GET + data_selector: records + params: {} +- name: wire_fraud_complaint + endpoint: + path: /wire_fraud_complaint + method: GET + data_selector: records + params: {} +- name: company_presentation + endpoint: + path: /services/data/vXX.X/sobjects/CompanyPresentation + method: GET + data_selector: records + params: {} +- name: presentation + endpoint: + path: /api/presentations + method: GET + data_selector: records +- name: investigation_details + endpoint: + path: /investigation/details + method: GET + data_selector: records +- name: fraud_scheme_description + endpoint: + path: /fraud/scheme + method: GET + data_selector: records +- name: transactions_analysis + endpoint: + path: /transactions/analysis + method: GET + data_selector: records +- name: documents + endpoint: + path: /documents + method: GET + data_selector: documents + params: {} +- name: company_presentation + endpoint: + path: /services/data/vXX.X/sobjects/CompanyPresentation + method: GET + data_selector: records +- name: Los Azules Project + endpoint: + path: /projects/los-azules + method: GET + data_selector: data +- name: Los Azules Copper Project + endpoint: + path: /services/data/vXX.X/sobjects/LosAzulesCopperProject + method: GET + data_selector: records + params: {} +- name: documents + endpoint: + path: /documents + method: GET + data_selector: documents + params: {} +- name: presentations + endpoint: + path: /presentations + method: GET + data_selector: presentations + params: {} +- name: Los Azules Project Updates + endpoint: + path: /project/updates + method: GET + data_selector: updates +- name: Los Azules + endpoint: + path: /losazules + method: GET + data_selector: data + params: {} +- name: Los Azules Copper Project + endpoint: + path: /api/v1/losazules + method: GET + data_selector: data + params: {} +- name: Los Azules + endpoint: + path: /services/data/vXX.X/sobjects/LosAzules + method: GET + data_selector: records + params: {} +- name: Los Azules Copper Project + endpoint: + path: /services/data/vXX.X/sobjects/LosAzulesCopperProject + method: GET + data_selector: records + params: {} +- name: Los Azules Copper Project + endpoint: + path: /services/data/vXX.X/sobjects/LosAzules + method: GET + data_selector: records + params: {} +- name: Los Azules Project + endpoint: + path: /projects/los-azules + method: GET + data_selector: data + params: {} +- name: financial_results + endpoint: + path: /financial_results + method: GET + data_selector: results + params: {} +- name: property_assets + endpoint: + path: /property_assets + method: GET + data_selector: assets + params: {} +- name: Los Azules Project + endpoint: + path: /api/losazules + method: GET + data_selector: project_data +- name: documents + endpoint: + path: /documents + method: GET + data_selector: documents + params: {} +- name: recently_uploaded + endpoint: + path: /recently_uploaded + method: GET + data_selector: records +- name: Infrastructure + endpoint: + path: /infrastructure + method: GET + data_selector: data + params: {} +- name: Real Estate + endpoint: + path: /real-estate + method: GET + data_selector: data + params: {} +- name: Connectivity + endpoint: + path: /connectivity + method: GET + data_selector: data + params: {} +- name: residential_landbank_singapore + endpoint: + path: /residential_landbank/singapore + method: GET +- name: residential_landbank_china + endpoint: + path: /residential_landbank/china + method: GET +- name: residential_landbank_other_overseas + endpoint: + path: /residential_landbank/other_overseas + method: GET +- name: residential_launch_readiness + endpoint: + path: /residential_launch/readiness + method: GET +- name: expected_completion_launched_projects + endpoint: + path: /expected_completion/launched_projects + method: GET +- name: expected_completion_upcoming_projects + endpoint: + path: /expected_completion/upcoming_projects + method: GET +- name: commercial_projects_under_development + endpoint: + path: /commercial_projects/under_development + method: GET +- name: commercial_projects_completed + endpoint: + path: /commercial_projects/completed + method: GET +- name: non_core_portfolio_divestment + endpoint: + path: /non-core-portfolio-divestment + method: GET + data_selector: records +- name: net_profit_by_segment + endpoint: + path: /net-profit-by-segment + method: GET + data_selector: records +- name: free_cash_flow + endpoint: + path: /free-cash-flow + method: GET + data_selector: records +- name: residential_landbank + endpoint: + path: /residential-landbank + method: GET + data_selector: records +- name: presentations + endpoint: + path: /services/presentations + method: GET + data_selector: slideshows + params: {} +- name: employee_perks + endpoint: + path: /slideshare/the-abcs-of-lowcost-employee-perks + method: GET + data_selector: slides + params: {} +- name: employee_perks + endpoint: + path: /services/data/v1/employee_perks + method: GET + data_selector: perks + params: {} +- name: recently_uploaded + endpoint: + path: /api/v1/documents/recently_uploaded + method: GET + data_selector: documents +- name: business_loan_options + endpoint: + path: /how-to-get-a-business-loan-for-your-manufacturing-company + method: GET + data_selector: content + params: {} +- name: storage_house_security + endpoint: + path: /services/data/vXX.X/sobjects/StorageHouseSecurity + method: GET + data_selector: records + params: {} +- name: warehouse_security + endpoint: + path: /services/data/vXX.X/sobjects/WarehouseSecurity + method: GET + data_selector: records + params: {} +- name: security_services + endpoint: + path: /services/data/vXX.X/sobjects/SecurityServices + method: GET + data_selector: records +- name: similar_titles + endpoint: + path: /titles/similar + method: GET + data_selector: titles + params: {} +- name: building_a_digital_lending_business + endpoint: + path: /slideshow/pollen-vc-building-a-digital-lending-business/58415889 + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: coaching_support + endpoint: + path: /coaching/support + method: GET + data_selector: resources + params: {} +- name: 'The shift: UX Designers as Business Consultants' + endpoint: + path: https://www.slideshare.net/folletto + method: GET +- name: Project Charter template + endpoint: + path: https://www.slideshare.net/stilliegeorgiana + method: GET +- name: module + endpoint: + path: https://www.slideshare.net/lanceaxel + method: GET +- name: 'How to Make a Business Case for #Socialmedia Gain Social Media ROI' + endpoint: + path: https://www.slideshare.net/docisin777 + method: GET +- name: Business Cases And Benefits Management + endpoint: + path: https://www.slideshare.net/alanmcsweeney + method: GET +- name: Project Management in Advertising + endpoint: + path: https://www.slideshare.net/KayeISmithPMP + method: GET +- name: Six Sigma Green Belt Training Part 4 + endpoint: + path: https://www.slideshare.net/Skillogic + method: GET +- name: 9Project Benefits ROI Contributors and Value Enablers + endpoint: + path: https://www.slideshare.net/ransayo + method: GET +- name: Why Do So Many Software Projects Fail? + endpoint: + path: https://www.slideshare.net/PhilComelio + method: GET +- name: Appendix ABusiness Plan Assignment + endpoint: + path: https://www.slideshare.net/justine1simpson78276 + method: GET +- name: PM_lecture + endpoint: + path: https://www.slideshare.net/AmitBhatt206160 + method: GET +- name: Developing A Strategic Plan + endpoint: + path: https://www.slideshare.net/bearing21 + method: GET +- name: Pm lecture + endpoint: + path: https://www.slideshare.net/Nasirwattoo + method: GET +- name: Project Manager Primer + endpoint: + path: https://www.slideshare.net/TomCremins + method: GET +- name: 62 Carmen Nastase Business Plan + endpoint: + path: https://www.slideshare.net/manpreet04 + method: GET +- name: Bsc how to fill initiatives templates-14 june10 + endpoint: + path: https://www.slideshare.net/Ajoyjauhar + method: GET +- name: Project Management as an Art Form + endpoint: + path: https://www.slideshare.net/treehouseagency + method: GET +- name: Project Management Overview + endpoint: + path: https://www.slideshare.net/cford1973 + method: GET +- name: Mobile Marketing Business Case + endpoint: + path: https://www.slideshare.net/demandmetric + method: GET +- name: Task_TableNameDurationPredecessorsResourcesNotesMobile app plan34 + endpoint: + path: https://www.slideshare.net/erlindaw + method: GET +- name: health_benefits + endpoint: + path: /api/v1/health_benefits + method: GET + data_selector: benefits + params: {} +- name: related_content + endpoint: + path: /related/content + method: GET + data_selector: records +- name: employee_perks + endpoint: + path: /services/data/vXX.X/sobjects/EmployeePerk + method: GET + data_selector: records +- name: business_loans + endpoint: + path: /slideshow/how-to-get-a-business-loan-for-your-manufacturing-company + method: GET + data_selector: content + params: {} +- name: security_services + endpoint: + path: /services/security + method: GET + data_selector: services + params: {} +- name: warehouse_security + endpoint: + path: /services/data/vXX.X/sobjects/WarehouseSecurity + method: GET + data_selector: records + params: {} +- name: access_control + endpoint: + path: /services/data/vXX.X/sobjects/AccessControl + method: GET + data_selector: records + params: {} +- name: presentation + endpoint: + path: /slideshow/daniel-e-kaplan-a-distinguished-financial-professional/283724770 + method: GET + data_selector: slides + params: {} +- name: presentation + endpoint: + path: /slideshow/daniel-e-kaplan-a-distinguished-financial-professional + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: email_provisioning + endpoint: + path: /product/buy-old-gmail-accounts/ + method: GET +- name: comics_trends + endpoint: + path: /api/v1/comics/trends + method: GET + data_selector: trends + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: comic_sales + endpoint: + path: /comic_sales + method: GET + data_selector: sales_data +- name: trends + endpoint: + path: /trends + method: GET + data_selector: trend_data +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: health_benefits + endpoint: + path: /api/health_benefits + method: GET + data_selector: benefits + params: {} +- name: Media Treatment + endpoint: + path: /media-treatment + method: GET + data_selector: records +- name: related_content + endpoint: + path: /related-content + method: GET + data_selector: documents + params: {} +- name: media_treatment + endpoint: + path: /slideshow/marvin-s-bark-and-co-media-treatment-for-commercial + method: GET + data_selector: treatment_details +- name: recently_uploaded_slideshows + endpoint: + path: /slideshows/recently_uploaded + method: GET + data_selector: slideshows +- name: health_benefits + endpoint: + path: /health/benefits + method: GET + data_selector: benefits + params: {} +- name: cultural_engagement + endpoint: + path: /cultural/engagement + method: GET + data_selector: culturalActivities + params: {} +- name: Hibrit Turbo Yazılımı + endpoint: + path: /services/data/vXX.X/sobjects/HibritTurboYazılımı + method: GET + data_selector: records +- name: recent_uploads + endpoint: + path: /slideshow/recently-uploaded + method: GET + data_selector: items + params: {} +- name: presentation + endpoint: + path: /slideshow + method: GET + data_selector: items + params: {} +- name: Storage House Security Services and Warehouse Security + endpoint: + path: /services/data/vXX.X/sobjects/StorageHouseSecurityServices + method: GET + data_selector: records + params: {} +- name: How to Get a Business Loan for Your Farm (Bank Alternatives) + endpoint: + path: /services/data/vXX.X/sobjects/HowToGetBusinessLoan + method: GET + data_selector: records + params: {} +- name: Public Speaking + endpoint: + path: /slideshow/boris-fx-mocha-pro-crack-with-free-download/276763711 + method: GET + data_selector: slides + params: {} +- name: document + endpoint: + path: /documents/have-humans-passed-their-peak-brain-power + method: GET + data_selector: content + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: recent_uploads + endpoint: + path: /recent/uploads + method: GET + data_selector: uploads + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Agenda + endpoint: + path: /agenda + method: GET +- name: Threats Overview + endpoint: + path: /threats-overview + method: GET +- name: Password Safety + endpoint: + path: /password-safety + method: GET +- name: Web Protection + endpoint: + path: /web-protection + method: GET +- name: Email Protection + endpoint: + path: /email-protection + method: GET +- name: Preventive Measures + endpoint: + path: /preventive-measures + method: GET +- name: video_analysis + endpoint: + path: /video_analysis + method: GET + data_selector: analysis_records +- name: public_reactions + endpoint: + path: /public_reactions + method: GET + data_selector: reaction_records +- name: media_response + endpoint: + path: /media_response + method: GET + data_selector: response_records +- name: legal_considerations + endpoint: + path: /legal_considerations + method: GET + data_selector: legal_records +- name: verified_email_accounts + endpoint: + path: /api/v1/verified_emails + method: GET + data_selector: data + params: {} +- name: bulk_email_accounts + endpoint: + path: /api/v1/bulk_emails + method: GET + data_selector: data + params: {} +- name: media_treatment + endpoint: + path: /media/treatment + method: GET + data_selector: records +- name: social_media_uptake_kenya + endpoint: + path: /services/data/vXX.X/sobjects/SocialMediaUptakeKenya + method: GET + data_selector: records + params: {} +- name: creator_economy + endpoint: + path: /services/data/vXX.X/sobjects/CreatorEconomy + method: GET + data_selector: records + params: {} +- name: media_treatment + endpoint: + path: /slideshow/marvin-s-bark-and-co-media-treatment-for-commercial/283781273 + method: GET + data_selector: content + params: {} +- name: recently_uploaded_slideshows + endpoint: + path: /recently_uploaded_slideshows + method: GET + data_selector: slideshows +- name: recent_uploads + endpoint: + path: /slideshow/recently_uploaded_slideshows + method: GET + data_selector: item +- name: spelling_results + endpoint: + path: /api/v1/spelling_results + method: GET + data_selector: results + params: {} +- name: curso_matpel_iii_gisq_cip_2025_parte2 + endpoint: + path: /slideshow/curso-matpel-iii-gisq-cip-2025_parte2-pdf/283840135 + method: GET + data_selector: content +- name: oral_com_diagnostic_test_autosaved + endpoint: + path: /slideshow/oral-com-diagnostic-test-autosaved-pptx/283840120 + method: GET + data_selector: content +- name: 7pile_a_combustible1 + endpoint: + path: /slideshow/7pile_a_combustible1-pptx/283840119 + method: GET + data_selector: content +- name: vag_grubu_icin_hibrit_turbo_yazilimi + endpoint: + path: /slideshow/vag-grubu-icin-hibrit-turbo-yazilimi-ile-yakit-tasarrufu/283840118 + method: GET + data_selector: content +- name: proof_reading + endpoint: + path: /slideshow/creative-nonfiction-lesson-10-about-revising/272203717#1 + method: GET + data_selector: content + params: {} +- name: evaluating_draft + endpoint: + path: /slideshow/creative-nonfiction-lesson-10-about-revising/272203717#3 + method: GET + data_selector: content + params: {} +- name: revising_draft + endpoint: + path: /slideshow/creative-nonfiction-lesson-10-about-revising/272203717#4 + method: GET + data_selector: content + params: {} +- name: proofreading_final_draft + endpoint: + path: /slideshow/creative-nonfiction-lesson-10-about-revising/272203717#11 + method: GET + data_selector: content + params: {} +- name: video_editing_tools + endpoint: + path: /video/editing/tools + method: GET + data_selector: tools + params: {} +- name: Have humans passed their peak brain power + endpoint: + path: /slideshow/have-humans-passed-their-peak-brain-power + method: GET +- name: recent_uploads + endpoint: + path: /recent_uploads + method: GET + data_selector: uploads + params: {} +- name: game_highlights + endpoint: + path: /highlights + method: GET + data_selector: highlights + params: {} +- name: player_stats + endpoint: + path: /stats/player + method: GET + data_selector: stats + params: {} +- name: sports_data + endpoint: + path: /sports/data + method: GET + data_selector: records +- name: Threats Overview + endpoint: + path: /threats/overview + method: GET +- name: Password Safety + endpoint: + path: /password/safety + method: GET +- name: Web Protection + endpoint: + path: /web/protection + method: GET +- name: Email Protection + endpoint: + path: /email/protection + method: GET +- name: Preventive Measures + endpoint: + path: /preventive/measures + method: GET +- name: Cyber Security Training Module 2025 + endpoint: + path: /slideshare/CyberSecurityTrainingModule2025 + method: GET + data_selector: records + params: {} +- name: Cybersecurity Awareness Training Presentation v2025.09 + endpoint: + path: /slideshare/CyberSecurityAwarenessTrainingPresentationv2025.09 + method: GET + data_selector: records + params: {} +- name: Cybersecurity Awareness Training Presentation v1.3 + endpoint: + path: /slideshare/CyberSecurityAwarenessTrainingPresentationv1.3 + method: GET + data_selector: records + params: {} +- name: marketing_sins + endpoint: + path: /api/marketing_sins + method: GET + data_selector: records +- name: great_brand + endpoint: + path: /api/great_brand + method: GET + data_selector: records +- name: digital_marketing + endpoint: + path: /api/digital_marketing + method: GET + data_selector: records +- name: Agenda + endpoint: + path: /agenda + method: GET + data_selector: items + params: {} +- name: Threats Overview + endpoint: + path: /threats_overview + method: GET + data_selector: items + params: {} +- name: Password Safety + endpoint: + path: /password_safety + method: GET + data_selector: items + params: {} +- name: Web Protection + endpoint: + path: /web_protection + method: GET + data_selector: items + params: {} +- name: Email Protection + endpoint: + path: /email_protection + method: GET + data_selector: items + params: {} +- name: Preventive Measures + endpoint: + path: /preventive_measures + method: GET + data_selector: items + params: {} +- name: presentation + endpoint: + path: /api/presentations + method: GET + data_selector: presentations + params: {} +- name: Social Media Training + endpoint: + path: /social-media-training + method: GET + data_selector: records +- name: Digital Marketing Masterclass + endpoint: + path: /digital-marketing-masterclass + method: GET + data_selector: records +- name: session_insights + endpoint: + path: /sessions/insights + method: GET + data_selector: sessions + params: {} +- name: creator_economy + endpoint: + path: /economy/creator + method: GET + data_selector: economy_data + params: {} +- name: fan_growth + endpoint: + path: /fan_growth + method: GET + data_selector: data + params: {} +- name: engagement_score + endpoint: + path: /engagement_score + method: GET + data_selector: data + params: {} +- name: community_analysis + endpoint: + path: /community_analysis + method: GET + data_selector: data + params: {} +- name: recent_uploads + endpoint: + path: /recently_uploaded + method: GET + data_selector: uploads +- name: brand_overview + endpoint: + path: /services/data/v1.0/brand_overview + method: GET + data_selector: records +- name: engagement_score + endpoint: + path: /services/data/v1.0/engagement_score + method: GET + data_selector: records +- name: spelling_test_results + endpoint: + path: /spelling_test/results + method: GET + data_selector: results +- name: presentations + endpoint: + path: /api/v1/presentations + method: GET + data_selector: results +- name: coffee_commodity + endpoint: + path: /api/v1/coffee_commodity + method: GET + data_selector: records +- name: cultural_preservation_sites + endpoint: + path: /api/v1/cultural_preservation_sites + method: GET + data_selector: records +- name: community_based_tourism + endpoint: + path: /community_based_tourism + method: GET + data_selector: records + params: {} +- name: cultural_preservation + endpoint: + path: /cultural_preservation + method: GET + data_selector: records + params: {} +- name: proof_reading + endpoint: + path: /slideshow/creative-nonfiction-lesson-10-about-revising/272203717#1 + method: GET + data_selector: records +- name: evaluate_your_draft + endpoint: + path: /slideshow/creative-nonfiction-lesson-10-about-revising/272203717#3 + method: GET + data_selector: records +- name: revise_the_draft + endpoint: + path: /slideshow/creative-nonfiction-lesson-10-about-revising/272203717#4 + method: GET + data_selector: records +- name: revise_for_style + endpoint: + path: /slideshow/creative-nonfiction-lesson-10-about-revising/272203717#10 + method: GET + data_selector: records +- name: proofread_final_draft + endpoint: + path: /slideshow/creative-nonfiction-lesson-10-about-revising/272203717#11 + method: GET + data_selector: records +- name: 'Creative Nonfiction: Revising and Critiquing' + endpoint: + path: /creative_nonfiction/revising_and_critiquing + method: GET + data_selector: content + params: {} +- name: Characteristics of a good editorial + endpoint: + path: /characteristics_of_good_editorial + method: GET + data_selector: content + params: {} +- name: 'Journalism: Guidelines and Steps in Page Designing' + endpoint: + path: /journalism/guidelines_and_steps_in_page_designing + method: GET + data_selector: content + params: {} +- name: COPY READING + endpoint: + path: /copy_reading + method: GET + data_selector: content + params: {} +- name: Managers not labourers + endpoint: + path: /ss_thumbnails/managersnotlabourersfeswordbank15may20241-240701041640-dc574049-thumbnail.jpg + method: GET +- name: Edu Ecotoursm Teluk Buo + endpoint: + path: /ss_thumbnails/p24806165170-240723040436-81c07ce8-thumbnail.jpg + method: GET +- name: The Local Wisdom to Sustainable Forest Management + endpoint: + path: /ss_thumbnails/i0606016972-170622095524-thumbnail.jpg + method: GET +- name: Mangrove Ecotourism article + endpoint: + path: /ss_thumbnails/mangroveecotourismarticle-230318115543-5f690767-thumbnail.jpg + method: GET +- name: ecotourism mangrove + endpoint: + path: /ss_thumbnails/ecotourismmangrove-230318115737-25fc8c1c-thumbnail.jpg + method: GET +- name: Perancangan Sistem Pendukung Keputusan + endpoint: + path: /ss_thumbnails/gedesuryamahendra-ahpvikorekowisatapedesaanfix-210803145359-thumbnail.jpg + method: GET +- name: Policy brief-csf-unmul-english + endpoint: + path: /ss_thumbnails/policy-brief-csf-unmul-english-161011072415-thumbnail.jpg + method: GET +- name: Jovens guerreiros da floresta + endpoint: + path: /ss_thumbnails/posterguerreiros-150130133401-conversion-gate01-thumbnail.jpg + method: GET +- name: Participatory Action Research for Sustainable Tribal Livelihood + endpoint: + path: /ss_thumbnails/par-211003193131-thumbnail.jpg + method: GET +- name: A Future for Social Forestry + endpoint: + path: /ss_thumbnails/6mrwiratnoasfnsecchairperson05may2014-140518235436-phpapp01-thumbnail.jpg + method: GET +- name: Ethnographic Communication of Paddy Field + endpoint: + path: /ss_thumbnails/e193103742-191102055943-thumbnail.jpg + method: GET +- name: Culture in Development + endpoint: + path: /ss_thumbnails/cultureindevelopmentdoesitapplytoenvironmentalconservation-aligumaahabyonaakiiki-220818153542-7bf0a849-thumbnail.jpg + method: GET +- name: Symbolic participation in community-based tourism + endpoint: + path: /ss_thumbnails/c1901071520-170710082352-thumbnail.jpg + method: GET +- name: Socio-Ecological Approaches to Integrated Landscape Management + endpoint: + path: /ss_thumbnails/socioecologpublishedinintjrofecoresvol17-211003190739-thumbnail.jpg + method: GET +- name: Development of Educational Tourism Based on Arabica Coffee Plantations + endpoint: + path: /ss_thumbnails/x22601262267-220410070129-thumbnail.jpg + method: GET +- name: episode_snippets + endpoint: + path: /api/episode_snippets + method: GET + data_selector: snippets + params: {} +- name: content + endpoint: + path: /api/contents + method: GET + data_selector: results + params: {} +- name: game_highlights + endpoint: + path: /v1/highlights + method: GET + data_selector: highlights + params: {} +- name: player_stats + endpoint: + path: /v1/stats + method: GET + data_selector: stats + params: {} +- name: coffee + endpoint: + path: /services/data/v1.0/sobjects/Coffee + method: GET + data_selector: records + params: {} +- name: cultural_sites + endpoint: + path: /services/data/v1.0/sobjects/CulturalSites + method: GET + data_selector: records + params: {} +- name: Lesung Gemilang Sejahtera Producer Cooperative + endpoint: + path: /services/data/vXX.X/sobjects/Cooperative + method: GET + data_selector: records + params: {} +- name: NBA Content + endpoint: + path: /api/nba/content + method: GET + data_selector: snippets + params: {} +- name: unity_in_diversity + endpoint: + path: /slideshow/unity-in-diversity-towards-a-synodal-path-in-african-ecclesiology/283765456 + method: GET + data_selector: records +- name: police_chases + endpoint: + path: /police-chases + method: GET + data_selector: chases +- name: unity_in_diversity + endpoint: + path: /unity-in-diversity + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: client + endpoint: + path: /clients + method: GET + data_selector: records +- name: projects + endpoint: + path: /projects + method: GET + data_selector: records +- name: content + endpoint: + path: /api/content + method: GET + data_selector: records + params: {} +- name: recent_uploads + endpoint: + path: /recent_uploads + method: GET + data_selector: uploads + params: {} +- name: inmate_coaching + endpoint: + path: /api/inmate/coaching + method: GET + data_selector: records +- name: inmate_development + endpoint: + path: /api/v1/inmate_development + method: GET + data_selector: data + params: {} +- name: Development and Engagement in the Age of Social Media + endpoint: + path: /development-and-engagement-in-the-age-of-social-media + method: GET + data_selector: records +- name: Coaching Digital Leaders Starts With Your Selfie + endpoint: + path: /coaching-digital-leaders-starts-with-your-selfie + method: GET + data_selector: records +- name: Using Social Smarts to Engage Students on Social Media + endpoint: + path: /using-social-smarts-to-engage-students-on-social-media + method: GET + data_selector: records +- name: Online Development and the College Student + endpoint: + path: /online-development-and-the-college-student + method: GET + data_selector: records +- name: Who is your Social Media Self? + endpoint: + path: /who-is-your-social-media-self + method: GET + data_selector: records +- name: Dr. Josie Ahlquist Dissertation Defense + endpoint: + path: /dr-josie-ahlquist-dissertation-defense + method: GET + data_selector: records +- name: Social Media & Masculinity + endpoint: + path: /social-media-masculinity + method: GET + data_selector: records +- name: Walking the tightrope between online and offline life + endpoint: + path: /walking-the-tightrope-between-online-and-offline-life + method: GET + data_selector: records +- name: 3-D Leadership Resource Guide + endpoint: + path: /3-d-leadership-resource-guide + method: GET + data_selector: records +- name: 3 d model guide ace 2017 + endpoint: + path: /3-d-model-guide-ace-2017 + method: GET + data_selector: records +- name: SRHE_25Sept_Esposito + endpoint: + path: /srhe-25sept-esposito + method: GET + data_selector: records +- name: Reidentity + endpoint: + path: /reidentity + method: GET + data_selector: records +- name: Is that me? Raising undergraduate students awareness of their digital footprint + endpoint: + path: /is-that-me-raising-undergraduate-students-awareness-of-their-digital-footprint + method: GET + data_selector: records +- name: Setting Students Up For Digital Success + endpoint: + path: /setting-students-up-for-digital-success + method: GET + data_selector: records +- name: The Digital Development of College Students + endpoint: + path: /the-digital-development-of-college-students + method: GET + data_selector: records +- name: What's Going On Behind The Screen With College Students + endpoint: + path: /whats-going-on-behind-the-screen-with-college-students + method: GET + data_selector: records +- name: Digitizing the 7 Vectors + endpoint: + path: /digitizing-the-7-vectors + method: GET + data_selector: records +- name: How Social Media Affects Our Self-Perception + endpoint: + path: /how-social-media-affects-our-self-perception + method: GET + data_selector: records +- name: Digital Tattoo for Teacher Candidates at UBC + endpoint: + path: /digital-tattoo-for-teacher-candidates-at-ubc + method: GET + data_selector: records +- name: '[r]evolution: Educating Social Media' + endpoint: + path: /revolution-educating-social-media + method: GET + data_selector: records +- name: role_stressors + endpoint: + path: /studies/role_stressors + method: GET + data_selector: results +- name: student_identity + endpoint: + path: /api/student_identity + method: GET + data_selector: records + params: {} +- name: social_media_usage + endpoint: + path: /api/social_media_usage + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: recent_uploads + endpoint: + path: /recent-uploads + method: GET + data_selector: records +- name: human_rights_campaign + endpoint: + path: /human_rights_campaign + method: GET + data_selector: records + params: {} +- name: american_heart_association + endpoint: + path: /american_heart_association + method: GET + data_selector: records + params: {} +- name: world_health_organization + endpoint: + path: /world_health_organization + method: GET + data_selector: records + params: {} +- name: SEO Optimization + endpoint: + path: /5-essential-areas-to-optimize-your-website + method: GET + data_selector: content + params: {} +- name: presentations + endpoint: + path: /api/presentations + method: GET + data_selector: results + params: {} +- name: search_results + endpoint: + path: /api/v1/search + method: GET + data_selector: results + params: + incremental: updated_at +- name: snapchat_account + endpoint: + path: /services/data/v1/accounts + method: GET + data_selector: records +- name: search_data + endpoint: + path: /search/data + method: GET + data_selector: results +- name: cooperative_data + endpoint: + path: /services/data/v1/cooperative + method: GET + data_selector: records +- name: cultural_preservation_sites + endpoint: + path: /services/data/v1/cultural_sites + method: GET + data_selector: records +- name: coffee_production_statistics + endpoint: + path: /services/data/v1/coffee_statistics + method: GET + data_selector: records +- name: cultural_tourism + endpoint: + path: /api/cultural_tourism + method: GET + data_selector: data +- name: forest_conservation + endpoint: + path: /api/forest_conservation + method: GET + data_selector: data +- name: recent_uploads + endpoint: + path: /recent_uploads + method: GET + data_selector: uploads + params: {} +- name: Managers not labourers + endpoint: + path: /ss_thumbnails/managersnotlabourersfeswordbank15may20241-240701041640-dc574049 + method: GET +- name: Edu Ecotoursm Teluk Buo + endpoint: + path: /ss_thumbnails/p24806165170-240723040436-81c07ce8 + method: GET +- name: The Local Wisdom to Sustainable Forest Management + endpoint: + path: /ss_thumbnails/i0606016972-170622095524 + method: GET +- name: Mangrove Ecotourism article + endpoint: + path: /ss_thumbnails/mangroveecotourismarticle-230318115543-5f690767 + method: GET +- name: ecotourism mangrove + endpoint: + path: /ss_thumbnails/ecotourismmangrove-230318115737-25fc8c1c + method: GET +- name: Perancangan Sistem Pendukung Keputusan + endpoint: + path: /ss_thumbnails/gedesuryamahendra-ahpvikorekowisatapedesaanfix-210803145359 + method: GET +- name: Policy brief-csf-unmul-english + endpoint: + path: /ss_thumbnails/policy-brief-csf-unmul-english-161011072415 + method: GET +- name: Jovens guerreiros da floresta + endpoint: + path: /ss_thumbnails/posterguerreiros-150130133401-conversion-gate01 + method: GET +- name: Participatory Action Research for Sustainable Tribal Livelihood + endpoint: + path: /ss_thumbnails/par-211003193131 + method: GET +- name: A Future for Social Forestry + endpoint: + path: /ss_thumbnails/6mrwiratnoasfnsecchairperson05may2014-140518235436-phpapp01 + method: GET +- name: Buy Twitter Accounts + endpoint: + path: /buy-twitter-accounts + method: GET + data_selector: records +- name: data_period + endpoint: + path: /data/period + method: GET + data_selector: records + params: + data_period: Oct 1st 2024 - Feb 28 2025 +- name: Participatory Action Research for Sustainable Tribal Livelihood + endpoint: + path: /participatory-action-research-for-sustainable-tribal-livelihood + method: GET + data_selector: records +- name: A Future for Social Forestry in the Indonesia and ASEAN Economic Community + endpoint: + path: /a-future-for-social-forestry-in-the-indonesia-and-asean-economic-community + method: GET + data_selector: records +- name: Ethnographic Communication of Paddy Field Post-Harvesting Celebration + endpoint: + path: /ethnographic-communication-of-paddy-field-post-harvesting-celebration + method: GET + data_selector: records +- name: 'Culture in Development: does it apply to environmental conservation?' + endpoint: + path: /culture-in-development-does-it-apply-to-environmental-conservation + method: GET + data_selector: records +- name: Symbolic participation in community-based tourism in Kelimutu National Park + endpoint: + path: /symbolic-participation-in-community-based-tourism-in-kelimutu-national-park + method: GET + data_selector: records +- name: Socio-Ecological Approaches to Integrated Landscape Management + endpoint: + path: /socio-ecological-approaches-to-integrated-landscape-management + method: GET + data_selector: records +- name: Development of Educational Tourism Based on Arabica Coffee Plantations + endpoint: + path: /development-of-educational-tourism-based-on-arabica-coffee-plantations + method: GET + data_selector: records +- name: Critiques of Community Forestry + endpoint: + path: /critiques-of-community-forestry + method: GET + data_selector: records +- name: Lesung Gemilang Sejahtera Producer Cooperative + endpoint: + path: /cooperative/lesung-gemilang-sejahtera + method: GET + data_selector: data + params: {} +- name: recent_uploads + endpoint: + path: /api/2/get_slideshows + method: GET + data_selector: slideshows + params: {} +- name: Lesung Gemilang Sejahtera Producer Cooperative + endpoint: + path: /social_forestry/management + method: GET + data_selector: community_based_tourism + params: {} +- name: article + endpoint: + path: /api/articles/unity-in-diversity + method: GET + data_selector: content +- name: cultural_fragmentation_and_ethnocentrism + endpoint: + path: /cultural_fragmentation_and_ethnocentrism + method: GET + data_selector: records +- name: clericalism_and_power_structures + endpoint: + path: /clericalism_and_power_structures + method: GET + data_selector: records +- name: gender_and_youth_marginalization + endpoint: + path: /gender_and_youth_marginalization + method: GET + data_selector: records +- name: golden_rule_as_a_remedy + endpoint: + path: /golden_rule_as_a_remedy + method: GET + data_selector: records +- name: presentation + endpoint: + path: /services/data/v1/presentations + method: GET + data_selector: records + params: {} +- name: secularism_youth + endpoint: + path: /secularism_and_youth + method: GET + data_selector: data +- name: presentations + endpoint: + path: /api/presentations + method: GET + data_selector: presentations + params: {} +- name: recent_uploads + endpoint: + path: /recent_uploads + method: GET + data_selector: uploads + params: {} +- name: African Moral Theologians + endpoint: + path: /african-moral-theologians + method: GET + data_selector: records + params: {} +- name: John Mbiti + endpoint: + path: /john-mbiti + method: GET + data_selector: records + params: {} +- name: Bénézet Bujo + endpoint: + path: /benezet-bujo + method: GET + data_selector: records + params: {} +- name: cybercrime_prevention_act + endpoint: + path: /slideshare/cybercrime_prevention_act_presentation + method: GET + data_selector: slides + params: {} +- name: Instagram Post Ideas + endpoint: + path: /api/instagram/post_ideas + method: GET + data_selector: records +- name: Agency Clients + endpoint: + path: /api/agency/clients + method: GET + data_selector: records +- name: Sales Strategies + endpoint: + path: /api/sales/strategies + method: GET + data_selector: records +- name: Design Hacks + endpoint: + path: /api/design/hacks + method: GET + data_selector: records +- name: Bottom Funnel Results + endpoint: + path: /api/blog/bottom_funnel_results + method: GET + data_selector: records +- name: Landing Page Optimization + endpoint: + path: /api/landing_page/optimization + method: GET + data_selector: records +- name: Likes on Instagram + endpoint: + path: /api/instagram/likes + method: GET + data_selector: records +- name: Lead Generation Examples + endpoint: + path: /api/lead_generation/examples + method: GET + data_selector: records +- name: Instagram Performance + endpoint: + path: /api/instagram/performance + method: GET + data_selector: records +- name: Marketing Quotes + endpoint: + path: /api/marketing/quotes + method: GET + data_selector: records +- name: Productivity Tips + endpoint: + path: /api/productivity/tips + method: GET + data_selector: records +- name: LinkedIn Future + endpoint: + path: /api/linkedin/future + method: GET + data_selector: records +- name: Marketing Strategies + endpoint: + path: /api/marketing/strategies + method: GET + data_selector: records +- name: Super Bowl Performance + endpoint: + path: /api/superbowl/performance + method: GET + data_selector: records +- name: Marketing Predictions + endpoint: + path: /api/marketing/predictions + method: GET + data_selector: records +- name: BOS Fund Management + endpoint: + path: /research/bos-fund-management + method: GET + data_selector: results + params: {} +- name: role_stressors_burnout + endpoint: + path: /research/role_stressors_burnout + method: GET + data_selector: results + params: {} +- name: posts + endpoint: + path: /r/{subreddit}/new + method: GET + data_selector: data.children + params: + limit: 100 +- name: marketing_presentations + endpoint: + path: /api/marketing_presentations + method: GET + data_selector: presentations + params: {} +- name: recently_uploaded + endpoint: + path: /recently_uploaded + method: GET + data_selector: uploads + params: {} +- name: documents + endpoint: + path: /api/v1/documents + method: GET + data_selector: documents + params: {} +- name: accounts + endpoint: + path: /api/v1/accounts + method: GET + data_selector: data + params: {} +- name: campaigns + endpoint: + path: /api/v1/campaigns + method: GET + data_selector: data + params: {} +- name: content + endpoint: + path: /api/v1/content + method: GET + data_selector: records + params: {} +- name: campaigns + endpoint: + path: /api/campaigns + method: GET + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaigns + endpoint: + path: /api/v1/campaigns + method: GET + data_selector: records + params: {} +- name: account + endpoint: + path: /v1/accounts + method: GET + data_selector: records +- name: campaign + endpoint: + path: /v1/campaigns + method: GET + data_selector: records +- name: community_engagement + endpoint: + path: /api/community/engagement + method: GET + data_selector: records +- name: deck + endpoint: + path: /slideshow/deck-mastering-account-based-sales-_-virtual-event-pptx + method: GET + data_selector: slides + params: {} +- name: recent_uploads + endpoint: + path: /recent/uploads + method: GET + data_selector: uploads +- name: community_engagement + endpoint: + path: /community/engagement + method: GET + data_selector: records +- name: survey_responses + endpoint: + path: /docs.google.com/forms/d/1r-qykB5vCetJgBR0--IKoKjx9MyQd-uM4u7bF0Ytkmw/edit#responses + method: GET + data_selector: responses + params: {} +- name: presentation + endpoint: + path: /api/presentations + method: GET + data_selector: results + params: {} +- name: community_members + endpoint: + path: /api/v1/community/members + method: GET + data_selector: records + params: {} +- name: events + endpoint: + path: /api/v1/events + method: GET + data_selector: records + params: {} +- name: verified_accounts + endpoint: + path: /api/v3/verifiedAccounts + method: GET + data_selector: data + params: + incremental: updated_at +- name: verified_binance_accounts + endpoint: + path: /api/v1/verified_accounts + method: GET +- name: search_data + endpoint: + path: /data/search + method: GET + data_selector: results +- name: Digital Marketing + endpoint: + path: /slideshow/black-and-cyan-modern-digital-marketing-presentation + method: GET + data_selector: slides + params: {} +- name: influencer_types + endpoint: + path: /influencer/types + method: GET + data_selector: types +- name: influencer_roles + endpoint: + path: /influencer/roles + method: GET + data_selector: roles +- name: presentations + endpoint: + path: /api/presentations + method: GET + data_selector: results + params: {} +- name: recently_uploaded + endpoint: + path: /services/rest/2.0/slideshows + method: GET + data_selector: slideshows + params: {} +- name: twitter_account + endpoint: + path: /accounts + method: GET +- name: ChangeApplicationOption + endpoint: + path: /api/changeApplicationOption + method: POST +- name: GetItineraryList + endpoint: + path: /api/getItineraryList + method: GET +- name: ChangeApplicationOption + endpoint: + path: /api/ChangeApplicationOption + method: POST +- name: GetItineraryList + endpoint: + path: /api/GetItineraryList + method: GET +- name: uploaded_content + endpoint: + path: /content/recently_uploaded + method: GET + data_selector: content + params: {} +- name: slides + endpoint: + path: /api/slides + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: transport_sdn + endpoint: + path: /services/data/vXX.X/sobjects/TransportSDN + method: GET + data_selector: records + params: + incremental: updated_at +- name: Eastern Cape Maritime Summit + endpoint: + path: /EasternCapeMaritimeSummit + method: GET +- name: Readying our ports for an onslaught of trade + endpoint: + path: /ReadyingOurPortsForAnOnslaughtOfTrade + method: GET +- name: African seaports expansion summit + endpoint: + path: /AfricanSeaportsExpansionSummit + method: GET +- name: Our Business Engages Stakeholders + endpoint: + path: /OurBusinessEngagesStakeholders + method: GET +- name: SOLAS - High Value (Telemetry) + endpoint: + path: /SOLASHighValueTelemetry + method: GET +- name: Mailchimp + endpoint: + path: /services/data/vXX.X/sobjects/Mailchimp + method: GET + data_selector: records +- name: Aweber + endpoint: + path: /services/data/vXX.X/sobjects/Aweber + method: GET + data_selector: records +- name: Emma + endpoint: + path: /services/data/vXX.X/sobjects/Emma + method: GET + data_selector: records +- name: Customer.io + endpoint: + path: /services/data/vXX.X/sobjects/CustomerIO + method: GET + data_selector: records +- name: Buffer + endpoint: + path: /services/data/vXX.X/sobjects/Buffer + method: GET + data_selector: records +- name: Pablo + endpoint: + path: /services/data/vXX.X/sobjects/Pablo + method: GET + data_selector: records +- name: RebelMouse + endpoint: + path: /services/data/vXX.X/sobjects/RebelMouse + method: GET + data_selector: records +- name: Nuzzel + endpoint: + path: /services/data/vXX.X/sobjects/Nuzzel + method: GET + data_selector: records +- name: Postplanner + endpoint: + path: /services/data/vXX.X/sobjects/Postplanner + method: GET + data_selector: records +- name: Zapier + endpoint: + path: /services/data/vXX.X/sobjects/Zapier + method: GET + data_selector: records +- name: Segment + endpoint: + path: /services/data/vXX.X/sobjects/Segment + method: GET + data_selector: records +- name: SurveyMonkey + endpoint: + path: /services/data/vXX.X/sobjects/SurveyMonkey + method: GET + data_selector: records +- name: GoToWebinar + endpoint: + path: /services/data/vXX.X/sobjects/GoToWebinar + method: GET + data_selector: records +- name: Slack + endpoint: + path: /services/data/vXX.X/sobjects/Slack + method: GET + data_selector: records +- name: AdobeStock + endpoint: + path: /services/data/vXX.X/sobjects/AdobeStock + method: GET + data_selector: records +- name: BuzzSumo + endpoint: + path: /services/data/vXX.X/sobjects/BuzzSumo + method: GET + data_selector: records +- name: transportation_management_system + endpoint: + path: /services/data/vXX.X/sobjects/TransportationManagementSystem + method: GET + data_selector: records + params: {} +- name: warehouse_management_system + endpoint: + path: /services/data/vXX.X/sobjects/WarehouseManagementSystem + method: GET + data_selector: records + params: {} +- name: express_management_system + endpoint: + path: /services/data/vXX.X/sobjects/ExpressManagementSystem + method: GET + data_selector: records + params: {} +- name: Email Marketing + endpoint: + path: /services/data/vXX.X/sobjects/EmailMarketing + method: GET + data_selector: records + params: {} +- name: Social Media + endpoint: + path: /services/data/vXX.X/sobjects/SocialMedia + method: GET + data_selector: records + params: {} +- name: Marketing Automation + endpoint: + path: /services/data/vXX.X/sobjects/MarketingAutomation + method: GET + data_selector: records + params: {} +- name: Sales Funnel + endpoint: + path: /services/data/vXX.X/sobjects/SalesFunnel + method: GET + data_selector: records + params: {} +- name: terminal_services_division + endpoint: + path: /services/data/vXX.X/sobjects/TerminalServices + method: GET + data_selector: records + params: {} +- name: fleet_management + endpoint: + path: /api/fleet_management + method: GET + data_selector: data +- name: fleet_management + endpoint: + path: /api/fleet_management + method: GET +- name: subreddit + endpoint: + path: /r/{subreddit}/new + method: GET + data_selector: data.children + params: + limit: 100 +- name: user + endpoint: + path: /user/{username}/submitted + method: GET + data_selector: data.children + params: + limit: 100 +- name: Fleet Management + endpoint: + path: /api/fleet_management + method: GET +- name: Route Optimization + endpoint: + path: /api/route_optimization + method: POST +- name: presentation + endpoint: + path: /services/presentations + method: GET + data_selector: results + params: {} +- name: recent_uploads + endpoint: + path: /recent/uploads + method: GET + data_selector: results +- name: presentation + endpoint: + path: /api/presentations + method: GET + data_selector: results +- name: audience_reports + endpoint: + path: /api/audience/reports + method: GET + data_selector: reports + params: {} +- name: VVIP + endpoint: + path: /brochure/agustawestland/aw101vvip + method: GET + data_selector: contents + params: {} +- name: Navya Shuttle + endpoint: + path: /navya/shuttle + method: GET + data_selector: shuttle_data +- name: recent_uploads + endpoint: + path: /services/v1/uploads/recent + method: GET + data_selector: uploads + params: {} +- name: Campaigns + endpoint: + path: /api/v1/campaigns + method: GET + data_selector: data + params: {} +- name: Campaigns + endpoint: + path: /campaigns + method: GET + data_selector: data + params: {} +- name: community_engagement + endpoint: + path: /services/data/vXX.X/sobjects/CommunityEngagement + method: GET + data_selector: records +- name: event_recordings + endpoint: + path: /events/recordings + method: GET + data_selector: recordings +- name: participant_list + endpoint: + path: /events/participants + method: GET + data_selector: participants +- name: Service Design Network Global Conference + endpoint: + path: /events/service-design-network-global-conference + method: GET +- name: trades + endpoint: + path: /api/v3/trades + method: GET + data_selector: data + params: {} +- name: Innovation in Transnet + endpoint: + path: /innovation_in_transnet + method: GET +- name: Transnet freight rail corridor development programme and road to rail strategy + endpoint: + path: /transnet_freight_rail_corridor_development + method: GET +- name: Earnings Write up by Shri Sundar Ram, Member/RCT(Retd) + endpoint: + path: /earnings_write_up + method: GET +- name: Transnet National Ports Authority Strategic Direction + endpoint: + path: /transnet_national_ports_authority_strategic_direction + method: GET +- name: BDE_SC4_WS3_3_Rodrigo Castineira - Transforming Transport Project + endpoint: + path: /bde_sc4_ws3_3_rodrigo_castineira + method: GET +- name: smartport logistik hamburg.pdf + endpoint: + path: /smartport_logistik_hamburg + method: GET +- name: The Future of Passenger Railways + endpoint: + path: /the_future_of_passenger_railways + method: GET +- name: Ports in Global Supply Chains + endpoint: + path: /ports_in_global_supply_chains + method: GET +- name: CASESTUDY.pptx + endpoint: + path: /casestudy + method: GET +- name: Clc presentation jjb 01.29.2014 fv + endpoint: + path: /clc_presentation + method: GET +- name: Supply Chain Optimization with TSC + endpoint: + path: /supply_chain_optimization + method: GET +- name: Sustainable future through innovation + endpoint: + path: /sustainable_future_through_innovation + method: GET +- name: Innovation Solutions + endpoint: + path: /innovation_solutions + method: GET +- name: 'Sam Linke - Session 3: Airport City Design' + endpoint: + path: /sam_linke_airport_city_design + method: GET +- name: 'Collaboration in Shipping: The INLECOM Platform: by Takis Katsoulakos' + endpoint: + path: /collaboration_in_shipping + method: GET +- name: Transporation in scm15 + endpoint: + path: /transportation_in_scm15 + method: GET +- name: Cascade Effects in Container Shipping -Implication for Regional and Feeder + Ports + endpoint: + path: /cascade_effects_container_shipping + method: GET +- name: Case Study by Ramco - Adani Logistics + endpoint: + path: /case_study_ramco_adani_logistics + method: GET +- name: Multimodal Transport in an Indian Perspective + endpoint: + path: /multimodal_transport_indian_perspective + method: GET +- name: uploaded_files + endpoint: + path: /api/2/get_files + method: GET + data_selector: files + params: {} +- name: taxi_data + endpoint: + path: /services/data/vXX.X/sobjects/TaxiData + method: GET + data_selector: records +- name: influencer_types + endpoint: + path: /influencer/types + method: GET + data_selector: types +- name: campaigns + endpoint: + path: /campaigns + method: GET + data_selector: campaigns +- name: taxi_data + endpoint: + path: /services/data/taxi_data + method: GET + data_selector: records + params: {} +- name: documents + endpoint: + path: /api/v1/documents + method: GET + data_selector: documents + params: {} +- name: Berth Allocation + endpoint: + path: /services/data/vXX.X/sobjects/BerthAllocation + method: GET +- name: Tide Level + endpoint: + path: /services/data/vXX.X/sobjects/TideLevel + method: GET +- name: Weather Condition + endpoint: + path: /services/data/vXX.X/sobjects/WeatherCondition + method: GET +- name: Equipment Trouble + endpoint: + path: /services/data/vXX.X/sobjects/EquipmentTrouble + method: GET +- name: Manpower Issues + endpoint: + path: /services/data/vXX.X/sobjects/ManpowerIssues + method: GET +- name: Berth Allocation Problem + endpoint: + path: /slideshow/factors-affecting-port-operation/39507000#3 + method: GET + data_selector: records +- name: Tide Level + endpoint: + path: /slideshow/factors-affecting-port-operation/39507000#5 + method: GET + data_selector: records +- name: Weather Condition + endpoint: + path: /slideshow/factors-affecting-port-operation/39507000#6 + method: GET + data_selector: records +- name: Equipment Trouble + endpoint: + path: /slideshow/factors-affecting-port-operation/39507000#7 + method: GET + data_selector: records +- name: Manpower Issues + endpoint: + path: /slideshow/factors-affecting-port-operation/39507000#8 + method: GET + data_selector: records +- name: user_groups + endpoint: + path: /me/groups + method: GET + data_selector: data +- name: marketplace_listings + endpoint: + path: /me/marketplace/listings + method: GET + data_selector: data +- name: events + endpoint: + path: /me/events + method: GET + data_selector: data +- name: user_groups + endpoint: + path: /v11.0/me/groups + method: GET + data_selector: data +- name: user_events + endpoint: + path: /v11.0/me/events + method: GET + data_selector: data +- name: marketplace_listings + endpoint: + path: /v11.0/me/marketplace_listings + method: GET + data_selector: data +- name: basic_dns_testing + endpoint: + path: /services/data/vXX.X/sobjects/DNSTest + method: GET + data_selector: records + params: {} +- name: port_listener_health + endpoint: + path: /services/data/vXX.X/sobjects/PortListenerHealth + method: GET + data_selector: records + params: {} +- name: data_path_testing + endpoint: + path: /services/data/vXX.X/sobjects/DataPathTest + method: GET + data_selector: records + params: {} +- name: page_load_testing + endpoint: + path: /services/data/vXX.X/sobjects/PageLoadTest + method: GET + data_selector: records + params: {} +- name: synthetic_transactions + endpoint: + path: /services/data/vXX.X/sobjects/SyntheticTransaction + method: GET + data_selector: records + params: {} +- name: marketing_tactics + endpoint: + path: /api/marketing_tactics + method: GET + data_selector: tactics + params: {} +- name: API PRO Eagle Project strategy + endpoint: + path: /api/pro/eagle_project + method: GET +- name: API Maintenance Systems + endpoint: + path: /api/maintenance_systems + method: GET +- name: ChangeApplicationOption + endpoint: + path: /api/changeApplicationOption + method: POST + data_selector: result + params: {} +- name: GetItineraryList + endpoint: + path: /api/getItineraryList + method: GET + data_selector: itineraries + params: {} +- name: Sygic Professional Navigation + endpoint: + path: /services/data/vXX.X/sobjects/SygicProfessionalNavigation + method: GET + data_selector: records + params: {} +- name: ChangeApplicationOption + endpoint: + path: /services/data/vXX.X/sobjects/ChangeApplicationOption + method: POST + data_selector: records + params: {} +- name: GetItineraryList + endpoint: + path: /services/data/vXX.X/sobjects/GetItineraryList + method: GET + data_selector: records + params: {} +- name: Kandla Port Overview + endpoint: + path: /kandla-port/overview + method: GET + data_selector: data + params: {} +- name: Mormugao Port Profile + endpoint: + path: /mormugao-port/profile + method: GET + data_selector: data + params: {} +- name: JNPT Infrastructure and Capacity + endpoint: + path: /jnpt/infrastructure + method: GET + data_selector: data + params: {} +- name: Tuticorin Port Historical Background + endpoint: + path: /tuticorin-port/history + method: GET + data_selector: data + params: {} +- name: Visakhapatnam Port Overview + endpoint: + path: /visakhapatnam-port/overview + method: GET + data_selector: data + params: {} +- name: Mundra Port Key Features + endpoint: + path: /mundra-port/features + method: GET + data_selector: data + params: {} +- name: Chennai Port Historical Overview + endpoint: + path: /chennai-port/history + method: GET + data_selector: data + params: {} +- name: Ennore Port Development Details + endpoint: + path: /ennore-port/development + method: GET + data_selector: data + params: {} +- name: Dighi Port Infrastructure Plans + endpoint: + path: /dighi-port/infrastructure + method: GET + data_selector: data + params: {} +- name: Vizhinjam Port Advantages + endpoint: + path: /vizhinjam-port/advantages + method: GET + data_selector: data + params: {} +- name: New Mangalore Port Features + endpoint: + path: /new-mangalore-port/features + method: GET + data_selector: data + params: {} +- name: Cochin Port Location Details + endpoint: + path: /cochin-port/location + method: GET + data_selector: data + params: {} +- name: Karaikal Port Development and Capacities + endpoint: + path: /karaikal-port/development + method: GET + data_selector: data + params: {} +- name: Krishnapatnam Port Overview + endpoint: + path: /krishnapatnam-port/overview + method: GET + data_selector: data + params: {} +- name: Kolkata Port Historical Significance + endpoint: + path: /kolkata-port/history + method: GET + data_selector: data + params: {} +- name: Haldia Dock Complex Overview + endpoint: + path: /haldai-dock/overview + method: GET + data_selector: data + params: {} +- name: Paradip Port Introduction and Operations + endpoint: + path: /paradip-port/operations + method: GET + data_selector: data + params: {} +- name: Gangavaram Port Functionalities + endpoint: + path: /gangavaram-port/functionalities + method: GET + data_selector: data + params: {} +- name: Dhamra Port Development and Capacity + endpoint: + path: /dhamra-port/development + method: GET + data_selector: data + params: {} +- name: Kakinada Port Overview and Facilities + endpoint: + path: /kakinada-port/overview + method: GET + data_selector: data + params: {} +- name: Kafka Setup + endpoint: + path: /setup/kafka + method: POST + data_selector: setup_info +- name: Spark Operations + endpoint: + path: /operations/spark + method: GET + data_selector: operations_info +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: test_details + endpoint: + path: /test/details + method: GET + data_selector: details + params: {} +- name: test_format + endpoint: + path: /test/format + method: GET + data_selector: format + params: {} +- name: warehouses + endpoint: + path: /warehouses + method: GET + data_selector: records + params: {} +- name: transportation + endpoint: + path: /transportation + method: GET + data_selector: records + params: {} +- name: Test Overview + endpoint: + path: /test/overview + method: GET + data_selector: details + params: {} +- name: Test Format + endpoint: + path: /test/format + method: GET + data_selector: format + params: {} +- name: Theory + endpoint: + path: /test/theory + method: GET + data_selector: theory + params: {} +- name: Metrics + endpoint: + path: /test/metrics + method: GET + data_selector: metrics + params: {} +- name: warehouses + endpoint: + path: /warehouses + method: GET + data_selector: records +- name: transportation + endpoint: + path: /transportation + method: GET + data_selector: records +- name: logistics_services + endpoint: + path: /logistics_services + method: GET + data_selector: records +- name: barcode_api + endpoint: + path: /barcode + method: POST + data_selector: ticket + params: {} +- name: stopping_places_api + endpoint: + path: /stopping_places + method: GET + data_selector: places + params: {} +- name: chauffeur_information_system_api + endpoint: + path: /chauffeur_information + method: POST + data_selector: routes + params: {} +- name: transport_network + endpoint: + path: /services/data/vXX.X/sobjects/TransportNetwork + method: GET + data_selector: records +- name: stopping_places + endpoint: + path: /stopping-places + method: GET +- name: chauffeur_information_system + endpoint: + path: /chauffeur-information-system + method: POST +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Recently uploaded + endpoint: + path: /services/data/vXX.X/sobjects/RecentlyUploaded + method: GET + data_selector: records +- name: High performance Video Content Analysis + endpoint: + path: /slideshow/acic-corporate-2013/16567062 + method: GET + data_selector: records + params: {} +- name: vehicles + endpoint: + path: /api/v1/vehicles + method: GET + data_selector: data + params: + incremental: last_updated +- name: drivers + endpoint: + path: /api/v1/drivers + method: GET + data_selector: data + params: {} +- name: activity_detection + endpoint: + path: /services/data/vXX.X/sobjects/ActivityDetection + method: GET + data_selector: records +- name: traffic_monitoring + endpoint: + path: /services/data/vXX.X/sobjects/TrafficMonitoring + method: GET + data_selector: records +- name: people_counting + endpoint: + path: /services/data/vXX.X/sobjects/PeopleCounting + method: GET + data_selector: records +- name: WAREHOUSE MANAGEMENT SYSTEM (SWM) + endpoint: + path: /services/data/vXX.X/sobjects/SWM + method: GET + data_selector: records + params: {} +- name: EXPRESS MANAGEMENT SYSTEM (SEM) + endpoint: + path: /services/data/vXX.X/sobjects/SEM + method: GET + data_selector: records + params: {} +- name: TRANSPORTATION MANAGEMENT SYSTEM (STM) + endpoint: + path: /services/data/vXX.X/sobjects/STM + method: GET + data_selector: records + params: {} +- name: IPMS + endpoint: + path: /ipms + method: GET + data_selector: records +- name: CMAS + endpoint: + path: /cmas + method: GET + data_selector: records +- name: telecommunications + endpoint: + path: /services/data/vXX.X/sobjects/Telecommunications + method: GET + data_selector: records + params: {} +- name: telematics + endpoint: + path: /services/data/vXX.X/sobjects/Telematics + method: GET + data_selector: records + params: {} +- name: bookings + endpoint: + path: /v1/bookings + method: GET + data_selector: records + params: {} +- name: trackings + endpoint: + path: /v1/trackings + method: GET + data_selector: records + params: {} +- name: allotments + endpoint: + path: /v1/allotments + method: GET + data_selector: records + params: {} +- name: schedules + endpoint: + path: /v1/schedules + method: GET + data_selector: records + params: {} +- name: fleet_management + endpoint: + path: /services/fleet_management + method: GET + data_selector: records +- name: timetable_change_event + endpoint: + path: /api/timetable/change + method: GET +- name: allotment_change_event + endpoint: + path: /api/allotment/change + method: GET +- name: shipment_item_status_change_event + endpoint: + path: /api/shipment/item/status/change + method: GET +- name: shipment_item_tracking_change_event + endpoint: + path: /api/shipment/item/tracking/change + method: GET +- name: fleet_management + endpoint: + path: /api/v1/fleet_management + method: GET + data_selector: data + params: {} +- name: fleet_management + endpoint: + path: /api/fleet_management + method: GET + data_selector: data +- name: vessel_schedules + endpoint: + path: /v1/schedules + method: GET +- name: bookings + endpoint: + path: /v1/bookings + method: POST +- name: trackings + endpoint: + path: /v1/trackings + method: GET +- name: allotments + endpoint: + path: /v1/allotments + method: GET +- name: Brochure + endpoint: + path: /brochure/aw101vvip + method: GET + data_selector: contents +- name: VVIP + endpoint: + path: /brochure/agustawestland/aw101vvip + method: GET +- name: company_profile + endpoint: + path: /company/profile + method: GET + data_selector: records +- name: products_services + endpoint: + path: /products/services + method: GET + data_selector: records +- name: filling_stations + endpoint: + path: /filling/stations + method: GET + data_selector: records +- name: terminals + endpoint: + path: /terminals + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: recent_uploads + endpoint: + path: /api/recent_uploads + method: GET + data_selector: uploads + params: {} +- name: traffic_data + endpoint: + path: /services/data/vXX.X/traffic + method: GET + data_selector: records + params: + incremental: updated_at +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Transportation Management + endpoint: + path: /api/v1/transportation-management + method: GET +- name: Global Trade Management + endpoint: + path: /api/v1/global-trade-management + method: GET +- name: 4G Critical and Professional + endpoint: + path: /FutureNetworks/4GCriticalandProfessional + method: GET + data_selector: data + params: {} +- name: slideshows + endpoint: + path: /api/slideshow + method: GET + data_selector: slideshows + params: {} +- name: presentation + endpoint: + path: /v1/presentations + method: GET + data_selector: results + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: taxi_data + endpoint: + path: /taxi/data + method: GET + data_selector: records +- name: recent_uploads + endpoint: + path: /api/recent_uploads + method: GET + data_selector: uploads + params: {} +- name: Berth Allocation Problem + endpoint: + path: /factors/berth_allocation + method: GET + data_selector: records +- name: Tide Level + endpoint: + path: /factors/tide_level + method: GET + data_selector: records +- name: Weather Condition + endpoint: + path: /factors/weather_condition + method: GET + data_selector: records +- name: Equipment Trouble + endpoint: + path: /factors/equipment_trouble + method: GET + data_selector: records +- name: Manpower Issues + endpoint: + path: /factors/manpower_issues + method: GET + data_selector: records +- name: Berth Allocation + endpoint: + path: /slideshow/factors-affecting-port-operation/39507000#3 + method: GET +- name: Tide Level + endpoint: + path: /slideshow/factors-affecting-port-operation/39507000#5 + method: GET +- name: Weather Condition + endpoint: + path: /slideshow/factors-affecting-port-operation/39507000#6 + method: GET +- name: Equipment Trouble + endpoint: + path: /slideshow/factors-affecting-port-operation/39507000#7 + method: GET +- name: Manpower Issues + endpoint: + path: /slideshow/factors-affecting-port-operation/39507000#8 + method: GET +- name: DNS Testing + endpoint: + path: /api/v1/dns + method: GET + data_selector: records +- name: Port Listener Health + endpoint: + path: /api/v1/port-listener + method: GET + data_selector: records +- name: Data Path Testing + endpoint: + path: /api/v1/data-path + method: GET + data_selector: records +- name: Page Load Testing + endpoint: + path: /api/v1/page-load + method: GET + data_selector: records +- name: Synthetic Transactions + endpoint: + path: /api/v1/synthetic-transactions + method: GET + data_selector: records +- name: Artificial Intelligence and YOU - Thinking Thoughtfully about AI + endpoint: + path: https://www.slideshare.net/micahmelling + method: GET +- name: 'A business case for open source: From lock-in to value.pdf' + endpoint: + path: https://www.slideshare.net/Mindtrek + method: GET +- name: 'The invisible key: Securing the new attack vector of OAuth tokens' + endpoint: + path: https://www.slideshare.net/gvarisco + method: GET +- name: Building Europe with Open LLMs - Manu Setälä.pptx + endpoint: + path: https://www.slideshare.net/Mindtrek + method: GET +- name: A SEA of Energy Efficiency Opportunities! + endpoint: + path: https://www.slideshare.net/JamesMcHale1 + method: GET +- name: Session 1 - Agentic Automation Building the Enterprise Agent of Tomorrow + endpoint: + path: https://www.slideshare.net/DianaGray10 + method: GET +- name: 'This Could Have Been a Slack Message: Diagnosing and Treating Bad Meetings' + endpoint: + path: https://www.slideshare.net/mdclement + method: GET +- name: 'Master Deck: GraphSummit Bengaluru (Oct 7)' + endpoint: + path: https://www.slideshare.net/neo4j + method: GET +- name: 'Behind the Scenes at Netflix: Distributed Systems & NoSQL Architecture.' + endpoint: + path: https://www.slideshare.net/ayeshabutalia1 + method: GET +- name: How computers tell who they are using TPM2.pdf + endpoint: + path: https://www.slideshare.net/Mindtrek + method: GET +- name: Fairness and Bias in AI Ethics and Explainability + endpoint: + path: https://www.slideshare.net/shiwanigupta + method: GET +- name: 'Phishing for Answers: A Tech Filler Quiz.pdf' + endpoint: + path: https://www.slideshare.net/ConquiztadorsTheQuiz + method: GET +- name: 'TrustArc Webinar - The Future of Third-Party Privacy Risk: Trends, Tactics + & ...' + endpoint: + path: https://www.slideshare.net/TrustArc + method: GET +- name: Atlantix is an AI-first venture studio, building companies with AI at the + core + endpoint: + path: https://www.slideshare.net/admin625551 + method: GET +- name: Digital Sovereignty has to start with Open Source.pdf + endpoint: + path: https://www.slideshare.net/Mindtrek + method: GET +- name: 'NeuroXR: Current Research and Opportunities' + endpoint: + path: https://www.slideshare.net/marknb00 + method: GET +- name: '⚡Level Up Your Slack Game: Workflows & Conditional Branching🎉' + endpoint: + path: https://www.slideshare.net/SanjeetMishra29 + method: GET +- name: Towards efficient vision representation and coding standards for superior + emb... + endpoint: + path: https://www.slideshare.net/touradj_ebrahimi + method: GET +- name: 'Session 3 - Specialized AI Associate Series: AI Powered Automation through + sp...' + endpoint: + path: https://www.slideshare.net/DianaGray10 + method: GET +- name: 'Google Agentspace: Enterprise AI search platform' + endpoint: + path: https://www.slideshare.net/KAVAIYAYASHKUMARAMRU + method: GET +- name: Kandla Port + endpoint: + path: /kandla-port + method: GET + data_selector: overview +- name: Mormugao Port + endpoint: + path: /mormugao-port + method: GET + data_selector: overview +- name: JNPT + endpoint: + path: /jnpt + method: GET + data_selector: overview +- name: Tuticorin Port + endpoint: + path: /tuticorin-port + method: GET + data_selector: overview +- name: Visakhapatnam Port + endpoint: + path: /visakhapatnam-port + method: GET + data_selector: overview +- name: Pipavav Port + endpoint: + path: /pipavav-port + method: GET + data_selector: overview +- name: Mundra Port + endpoint: + path: /mundra-port + method: GET + data_selector: overview +- name: Chennai Port + endpoint: + path: /chennai-port + method: GET + data_selector: overview +- name: Ennore Port + endpoint: + path: /ennore-port + method: GET + data_selector: overview +- name: Dighi Port + endpoint: + path: /dighi-port + method: GET + data_selector: overview +- name: Vizhinjam Port + endpoint: + path: /vizhinjam-port + method: GET + data_selector: overview +- name: New Mangalore Port + endpoint: + path: /new-mangalore-port + method: GET + data_selector: overview +- name: Cochin Port + endpoint: + path: /cochin-port + method: GET + data_selector: overview +- name: Karaikal Port + endpoint: + path: /karaikal-port + method: GET + data_selector: overview +- name: Krishnapatnam Port + endpoint: + path: /krishnapatnam-port + method: GET + data_selector: overview +- name: Kolkata Port + endpoint: + path: /kolkata-port + method: GET + data_selector: overview +- name: Haldia Dock Complex + endpoint: + path: /haldiau-dock-complex + method: GET + data_selector: overview +- name: Paradip Port + endpoint: + path: /paradip-port + method: GET + data_selector: overview +- name: Gangavaram Port + endpoint: + path: /gangavaram-port + method: GET + data_selector: overview +- name: Dhamra Port + endpoint: + path: /dhamra-port + method: GET + data_selector: overview +- name: Kakinada Port + endpoint: + path: /kakinada-port + method: GET + data_selector: overview +- name: Test Details + endpoint: + path: /uber/analytics/test/details + method: GET +- name: Course Outline + endpoint: + path: /uber/analytics/test/course-outline + method: GET +- name: Theory + endpoint: + path: /uber/analytics/test/theory + method: GET +- name: Quantitative Questions + endpoint: + path: /uber/analytics/test/quantitative-questions + method: GET +- name: Conclusion + endpoint: + path: /uber/analytics/test/conclusion + method: GET +- name: Test Details + endpoint: + path: /uber/analytics/test/details + method: GET + data_selector: details + params: {} +- name: Theory + endpoint: + path: /uber/analytics/test/theory + method: GET + data_selector: theory + params: {} +- name: Quantitative Questions + endpoint: + path: /uber/analytics/test/quantitative/questions + method: GET + data_selector: quantitative_questions + params: {} +- name: test_details + endpoint: + path: /test/details + method: GET + data_selector: records + params: {} +- name: test_format + endpoint: + path: /test/format + method: GET + data_selector: records + params: {} +- name: test_questions + endpoint: + path: /test/questions + method: GET + data_selector: records + params: {} +- name: barcode + endpoint: + path: /api/barcode + method: POST + data_selector: ticket + params: {} +- name: stopping_places + endpoint: + path: /api/stopping-places + method: GET + data_selector: places + params: {} +- name: chauffeur_information_system + endpoint: + path: /api/chauffeur + method: POST + data_selector: routes + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: cloud_insights + endpoint: + path: /api/v1/cloud/insights + method: GET + data_selector: data + params: {} +- name: mobile_endpoint_agent + endpoint: + path: /api/v1/mobile/endpoint/agent + method: GET + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: vehicle + endpoint: + path: /services/data/vXX.X/sobjects/Vehicle + method: GET + data_selector: records + params: + incremental: updated_at +- name: driver + endpoint: + path: /services/data/vXX.X/sobjects/Driver + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: bookings + endpoint: + path: /v1/bookings + method: GET +- name: trackings + endpoint: + path: /v1/trackings + method: GET +- name: allotments + endpoint: + path: /v1/allotments + method: GET +- name: schedules + endpoint: + path: /v1/schedules + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: bookings + endpoint: + path: /v1/bookings + method: GET +- name: trackings + endpoint: + path: /v1/trackings + method: GET +- name: allotments + endpoint: + path: /v1/allotments + method: GET +- name: schedules + endpoint: + path: /v1/schedules + method: GET +- name: Theory of Cognitive Chasms + endpoint: + path: /theory-of-cognitive-chasms + method: GET + data_selector: research + params: {} +- name: vehicle_automation + endpoint: + path: /vehicle/automation + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: traffic_data + endpoint: + path: /traffic-data + method: GET + data_selector: data + params: {} +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: workflows + params: {} +- name: traffic_data + endpoint: + path: /traffic-data + method: GET + data_selector: records +- name: agentic_automation + endpoint: + path: /services/data/vXX.X/sobjects/AgenticAutomation + method: GET + data_selector: records + params: {} +- name: Transportation Management + endpoint: + path: /services/data/vXX.X/sobjects/TransportationManagement + method: GET + data_selector: records + params: {} +- name: Global Trade Management + endpoint: + path: /services/data/vXX.X/sobjects/GlobalTradeManagement + method: GET + data_selector: records + params: {} +- name: transportation + endpoint: + path: /services/data/vXX.X/sobjects/Transportation + method: GET + data_selector: records + params: {} +- name: global_trade + endpoint: + path: /services/data/vXX.X/sobjects/GlobalTrade + method: GET + data_selector: records + params: {} +- name: distributed_data_storage + endpoint: + path: /slideshow/behind-the-scenes-at-netflix-distributed-systems-nosql-architecture/283724460#1 + method: GET + data_selector: presentation_content + params: {} +- name: distributed_systems + endpoint: + path: /slideshow/behind-the-scenes-at-netflix-distributed-systems-nosql-architecture/283724460#2 + method: GET + data_selector: presentation_content + params: {} +- name: no_sql_databases + endpoint: + path: /slideshow/behind-the-scenes-at-netflix-distributed-systems-nosql-architecture/283724460#9 + method: GET + data_selector: presentation_content + params: {} +- name: R&D Initiatives related to European GNSS + endpoint: + path: /R&D_Initiatives_European_GNSS + method: GET + data_selector: records +- name: French Train à Grande Vitesse (Tgv + endpoint: + path: /French_Train_a_Grande_Vitesse_Tgv + method: GET + data_selector: records +- name: 11 crash reduction + endpoint: + path: /11_crash_reduction + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: customer + endpoint: + path: /services/data/vXX.X/sobjects/Customer + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: manufacturing_metrics + endpoint: + path: /api/v1/manufacturing_metrics + method: GET + data_selector: metrics +- name: recently_uploaded + endpoint: + path: /recently_uploaded + method: GET + data_selector: records + params: {} +- name: Change Logging Module + endpoint: + path: /change_logging + method: GET + data_selector: records + params: {} +- name: Maintenance Procedures + endpoint: + path: /maintenance_procedures + method: GET + data_selector: records + params: {} +- name: maintenance_management + endpoint: + path: /api/maintenance_management + method: GET + data_selector: records + params: {} +- name: production_efficiency + endpoint: + path: /api/production_efficiency + method: GET + data_selector: records + params: {} +- name: Transactional Data + endpoint: + path: /api/transactional_data + method: GET + data_selector: records +- name: Repository Metadata + endpoint: + path: /api/repository_metadata + method: GET + data_selector: records +- name: presentations + endpoint: + path: /slides + method: GET + data_selector: results +- name: presentation + endpoint: + path: /slideshow/momentum-developer-con-2025-how-to-better-developer-estimates + method: GET +- name: data_acquisition + endpoint: + path: /data/acquisition + method: GET + data_selector: records +- name: data_visualizer + endpoint: + path: /data/visualizer + method: GET + data_selector: records +- name: data_processing + endpoint: + path: /data/processing + method: GET + data_selector: records +- name: Resolved Bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: bugs + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: resolved_bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: resolved_bugs + params: {} +- name: resolved_bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: bugs + params: {} +- name: resolved_bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Session 4 AI Associate Series + endpoint: + path: /session4aiseries + method: GET +- name: DU PPT + endpoint: + path: /duppt1 + method: GET +- name: Unleashing the force of AI-powered intelligent document processing + endpoint: + path: /dubaisession + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: recent_uploads + endpoint: + path: /api/2/slideshows/recently_uploaded + method: GET + data_selector: slideshow +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: automation + endpoint: + path: /odata/Automation + method: GET + data_selector: value +- name: workflows + endpoint: + path: /workflows + method: GET + data_selector: workflows + params: {} +- name: automation_use_cases + endpoint: + path: /services/data/vXX.X/sobjects/AutomationUseCase + method: GET + data_selector: records + params: + incremental: updated_at +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: distributed_data_storage + endpoint: + path: /slideshow/behind-the-scenes-at-netflix-distributed-systems-nosql-architecture/283724460 + method: GET + data_selector: data + params: {} +- name: crm2life + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Success Stories + endpoint: + path: /success_stories + method: GET + data_selector: records +- name: Cloud Deployment Options + endpoint: + path: /cloud_deployment_options + method: GET + data_selector: records +- name: recently_uploaded + endpoint: + path: /api/recently_uploaded + method: GET + data_selector: documents + params: {} +- name: Transactional Data + endpoint: + path: /services/transactional/data + method: GET +- name: Repository Metadata + endpoint: + path: /services/repository/metadata + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: crm siebel + endpoint: + path: /services/data/vXX.X/sobjects/CrmSiebel + method: GET +- name: cmdb + endpoint: + path: /services/data/vXX.X/sobjects/Cmdb + method: GET +- name: Transactional Data + endpoint: + path: /api/transactional_data + method: GET +- name: Repository Metadata + endpoint: + path: /api/repository_metadata + method: GET +- name: Customer Dashboard + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDashboard + method: GET + data_selector: records + params: {} +- name: eService + endpoint: + path: /services/data/vXX.X/sobjects/eService + method: GET + data_selector: records + params: {} +- name: Chat + endpoint: + path: /services/data/vXX.X/sobjects/Chat + method: GET + data_selector: records + params: {} +- name: Product Configurator + endpoint: + path: /services/data/vXX.X/sobjects/ProductConfigurator + method: GET + data_selector: records + params: {} +- name: Marketing Program Designer + endpoint: + path: /services/data/vXX.X/sobjects/MarketingProgramDesigner + method: GET + data_selector: records + params: {} +- name: Loyalty Promotion Designer + endpoint: + path: /services/data/vXX.X/sobjects/LoyaltyPromotionDesigner + method: GET + data_selector: records + params: {} +- name: Web Commerce + endpoint: + path: /services/data/vXX.X/sobjects/WebCommerce + method: GET + data_selector: records + params: {} +- name: Installing the Siebel Fix Pack + endpoint: + path: /installing/siebel-fix-pack + method: GET + data_selector: records +- name: Installing Languages + endpoint: + path: /installing/languages + method: GET + data_selector: records +- name: Installing Siebel Quick Fix Releases + endpoint: + path: /installing/quick-fix-releases + method: GET + data_selector: records +- name: Uninstalling Siebel Fix Packs + endpoint: + path: /uninstalling/siebel-fix-packs + method: GET + data_selector: records +- name: Enhanced Data Capture for EDC Integration + endpoint: + path: /services/data/v8.1.1.11/edc_integration + method: GET + data_selector: records +- name: Data-Driven Clinical Trip Reports + endpoint: + path: /services/data/v8.1.1.11/clinical_trip_reports + method: GET + data_selector: records +- name: Payment Enhancements + endpoint: + path: /services/data/v8.1.1.11/payment_enhancements + method: GET + data_selector: records +- name: Siebel Catalog Browse Enhancements + endpoint: + path: /services/data/v8.1.1.11/catalog_browse + method: GET + data_selector: records +- name: Siebel Open UI Chat + endpoint: + path: /services/data/v8.1.1.11/open_ui_chat + method: GET + data_selector: records +- name: resolved_bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: bugs + params: {} +- name: Resolved Bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: records +- name: Installing Siebel Fix Pack + endpoint: + path: /installing/siebel/fix/pack + method: GET + data_selector: records +- name: Installing Languages + endpoint: + path: /installing/languages + method: GET + data_selector: records +- name: Installing Quick Fix Releases + endpoint: + path: /installing/quick/fix/releases + method: GET + data_selector: records +- name: resolved_bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: resolved_bugs + params: {} +- name: Resolved Bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: bugs + params: {} +- name: resolved_bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: bugs + params: {} +- name: resolved_bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: bugs + params: {} +- name: resolved_bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: bugs + params: {} +- name: resolved_bugs + endpoint: + path: /resolved_bugs + method: GET + data_selector: resolved_bugs + params: {} +notes: +- Requires setup of connected app in API PRO +- Supports multiple languages and plant-specific terminology +- API PRO is a next generation EAM system, developed to meet the requirements of the + industry today and in the future. +- The API PRO mobile app is available for iOS devices (iPhone and iPads), as well + as a large range of Android devices. +- This website utilizes technologies such as cookies to enable essential site functionality, + as well as for analytics, personalization, and targeted advertising. +- Slideshare is your go-to resource for concise and digestible marketing presentations. +- With millions of uploads, Slideshare is your go-to resource for marketing know-how. +- This website utilizes technologies such as cookies to enable essential site functionality. +- Our wide collection of art presentations and photography slideshows covers topics + in visual media to help artists, photographers, and creatives learn new techniques + and skills. +- Our extensive collection of design presentations explores trends, techniques, and + best practices across all design disciplines to help you improve your skills and + stay inspired. +- Slideshare offers an extensive range of government ppts and nonprofit presentations + covering topics like budget analysis, program evaluation, public health, social + services, and more. +- Extensive collection of healthcare presentations covers medical research, new technologies, + public health initiatives, and more. +- Learning leads to better care. +- Stay current on public policy, social impact, philanthropy, and more with our collection + of government presentations and nonprofit ppts. +- Accessing knowledge is easier than ever. +- Extensive collection of spiritual presentations covering religion, mindfulness, + personal growth, and more. +- Our extensive collection of healthcare presentations covers medical research, new + technologies, public health initiatives, and more to help you stay up-to-date and + provide better care. +- Our large collection of hardware ppts cover topics like consumer electronics and + manufacturing to spark innovation, help you stay competitive, and advance your career. +- Equipped with insights on emerging technologies, you’ll be able to lead the development + of cutting-edge devices and solutions. +- The API provides insights into geopolitical risks and their impacts on businesses. +- Uses Canadian mining terms as defined in accordance with National Instrument 43-101 + - Standards of Disclosure for Mineral Projects. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Uses Canadian mining terms as defined in NI 43-101. +- Refers to transportation and aviation companies. +- Refers mainly to industrial companies such as manufacturing. +- Refers to companies whose core business revolves around the generation of electricity + or transmission, distribution and sale of electricity. +- From 2024, all new and repowered power plants will need to be at least 30% hydrogen-compatible, + and must be able to be retrofitted to run entirely on hydrogen in the future. +- Refers to transportation and aviation companies +- Refers mainly to industrial companies such as manufacturing +- Refers to companies whose core business revolves around the generation of electricity + or transmission, distribution and sale of electricity +- From 2024, all new and repowered power plants will need to be at least 30% hydrogen-compatible, + and must be able to be retrofitted to run entirely on hydrogen in the future +- Onboarding needs to be focused on building the employee experience. +- Remote and hybrid workplaces make onboarding even more critical. +- The information provided is not intended to be a comprehensive review. +- The information provided is not intended to be a comprehensive review of all matters + and developments concerning the Company. +- 'Note: CuEq based on US$3.60/lb Cu, US$1,700/oz Au, US$14/lb Mo, and US$22/oz Ag, + with no consideration for metallurgical recovery.' +- The information provided in this presentation is not intended to be a comprehensive + review of all matters and developments concerning Western Copper and Gold Corporation + and its subsidiaries. +- Data based on Casino Copper-Gold 2022 Feasibility Study. +- Information regarding the Company’s mining operations included in this presentation + has been prepared in accordance with the requirements of the securities laws in + effect in Canada. +- This complaint is based on investigation into wire fraud and financial crimes. +- The complaint involves wire fraud against private investors and lenders. +- It’s vital to assess both the compliance needs and the learner needs. +- A flexible LX journey well-aligned to needs can reduce overall training and increase + compliant performance. +- Context is essential to create relevancy for learners. +- We are a global company that provides sustainable services and 360º projects. +- Our global revenue is close to ~1,200 €m. +- We are a publicly listed company since 2016 (BME:DOM). +- The project includes a net smelter returns royalty of 0.4%. +- Initial capital expenditure is estimated at $2.462 billion. +- The 2023 PEA Technical Report is prepared in accordance with the requirements set + forth by Canadian National Instrument 43-101. +- Uses OAuth2 with refresh token — requires setup of connected app in SlideShare +- Uses renewable energy sources for operations +- Initial capital expenditure of $2.462 billion +- All dollar amounts are United States Dollars (USD) unless otherwise stated. +- The 2023 PEA Technical Report is prepared in accordance with the requirements set + forth by Canadian National Instrument 43-101 for the disclosure of material information. +- This study is preliminary in nature and includes 26% inferred mineral resources + in the conceptual mine plan. +- Uses preliminary economic assessment for reporting +- All currency shown in this report is expressed in Q1 2023 United States Dollars + unless otherwise noted +- Non-Core Portfolio for Divestment comprises mainly legacy offshore & marine assets, + residential landbank, selected property developments and investment properties, + hospitality and logistics assets, associated cash and receivables, and other non-core + investments that are not aligned with Keppel’s strategic focus as an asset-light + global asset manager and operator. +- All currency shown in this report is expressed in Q1 2023 United States Dollars + unless otherwise noted. +- The project aims to obtain 100% of its energy from renewable sources. +- Publicly available documents can be accessed without authentication. +- Some objects may return nulls in deeply nested fields +- Non-Core Portfolio for Divestment comprises mainly legacy offshore & marine assets, + residential landbank, selected property developments and investment properties. +- No authentication required for public content. +- Public content available without authentication +- Requires OAuth2 authentication with connected app setup +- Utilizes cookies for essential site functionality, analytics, personalization, and + targeted advertising. +- Requires setup of a connected app in Slideshare +- First Class Security Inc. provides comprehensive security solutions designed to + safeguard your valuable inventory and infrastructure. +- First Class Security Inc. provides comprehensive security solutions designed to + safeguard your valuable inventory and infrastructure, ensuring peace of mind through + proactive protection and rapid response. +- Buffer is a social media management tool that helps you connect and organize all + your social media accounts, schedule posts, analyze them and collaborate with the + team. +- Buffer has a team of 75 people spread all over the world completely remote over + 5 continents and over 40 cities. +- Buffer has over 50,000 paying customers and is doing around $8.8m in ARR. +- Buying accounts or lists obscures provenance — creating compliance risk under CAN‑SPAM, + CCPA, GDPR, and other laws. +- Do not reprint without permission. +- The initiative is intended as a supportive tool to promote physical and mental wellbeing. +- API does not require authentication. +- Enjoyed these tips? Read the full article at http://inside.6q.io/abcs-low-cost-employee-perks/ +- Effective Date December 15, 2026 +- Fundamental differences between Limited and Reasonable Assurance +- First in a possible future suite of standards for sustainability assurance +- 'Webinar #1: Foundational Principles and Concepts, and Accepting the Engagement' +- 'Recording will be made available here: ISSA 5000 webpage' +- Comprehensive Protection +- Advanced Monitoring Services +- Transform Justice AI employs a zero-knowledge architecture — client data is processed + and encrypted locally within law firm or enterprise systems, never leaving the custody + of the attorney or institution. +- Every AI model is trained on synthetic, de-identified datasets derived from ethical + simulations, not live client files. +- Uses REST API for data access. +- Uses humor and a narrative style. +- Features a dog character with a unique perspective. +- The API provides access to various document types including PDFs and PPTs. +- Marvin is a high-maintenance dog adopted by two broke college students. +- The treatment includes comedic elements and a heartwarming storyline. +- Data may not be available for all slideshows. +- This document brings together research, inspiration, and practical tools to support + those who want to prescribe – or be prescribed – Sweden. +- Activities reflect everyday Swedish habits with proven mental and physical health + benefits. +- No authentication required for accessing slideshows. +- Applies globally to sustainability information prepared under any suitable reporting + framework +- Covers both limited assurance and reasonable assurance engagements with requirements + clearly distinguished +- Creating thumbnails that grab attention requires a blend of creativity, strategy, + and the right tools. +- Creating faceless motivational YouTube videos using AI is efficient and allows for + creative freedom. +- AI in video editing and production is not just a futuristic concept but a present + reality. +- Tools like Adobe Photoshop and Canva are excellent for enhancing image quality and + creating custom designs. +- Transform Justice AI will implement an Ethical Training Program for all employees +- The company also plans to offer Fellowships in Ethical Intelligence +- Utilize an AV product on all devices, not just Windows computers. +- Define a clear attachment policy coupled with a spam filter. +- Implement a Web content filter to help with malicious content, inappropriate content, + and productivity issues. +- Utilize unique passwords and maintain a clear password policy. If needed, use a + password manager. +- Keep all internet-connected devices up to date, including routers, IoT devices, + computers, mobile devices. +- Confidentiality is the foundation of trust in both law and technology. +- Transform Justice AI employs a zero-knowledge architecture — client data is processed + and encrypted locally. +- The creator economy is expected to reach US$ 17.84 Billion by 2030, growing at a + CAGR of 28.5% from 2023. +- Content monetization is the strategic practice of generating revenue from content + created in various formats. +- Uses OAuth2 with refresh token — requires setup of connected app in email provider +- Some endpoints may have rate limits +- Marvin is a high maintenance dog adopted by two broke college students. +- The creator economy is growing rapidly and presents new opportunities for content + creators. +- The story revolves around Marvin creating a luxurious dog lifestyle brand. +- This project is a product of my endeavour. +- The study utilized a survey research design. +- The sample size was 30 level 200 students. +- Hibrit turbo yazılımı, motor kontrol ünitesine (ECU) özel olarak geliştirilmiş parametrelerin + yüklenmesiyle motorun davranışını optimize eden bir chip tuning türüdür. +- Geleneksel tuning sistemleri genellikle sadece beygir gücünü artırmaya odaklanır. +- SlideShare feed for Recently Uploaded Slideshows +- The spelling test highlights the impact of social media language on spelling proficiency. +- Results indicate a tendency toward phonetic simplification and informal spelling. +- The term social media functions as an umbrella that includes internet-based sites + and services that function for or promote social interaction between individuals. +- Some scholars define social media as a new form of media that involve active interaction + and participation among its users. +- Social media language is characterized by its informal tone, use of slang, and brevity. +- Spelling is considered one aspect of literacy (reading, writing, and spelling). +- The findings from the spelling test highlight a clear impact of social media language + on respondents' spelling proficiency. +- Reinforcing the importance of correct spelling and formal language use through targeted + educational programs can help mitigate the adverse effects of social media habits. +- The tool allows you to adjust the video's overall mood with a few clicks. +- Creating thumbnails that grab attention is an art form in itself. +- TikTok is where trends start with low-cost media options and strong organic reach, + ideal for boosting sales and brand visibility. +- Nearly 50% of users discover new products from trending TikTok videos. +- Uses OAuth2 with refresh token — requires setup of connected app in NBA +- Uses various types of ciphers for encryption +- Market is saturated in 2024. +- Best UX for accessing sports scores and stats +- Utilize unique passwords and maintain a clear password policy. +- Utilize unique passwords across all websites/applications +- Enable and utilize 2FA on all websites that allow it +- Check to make sure this is a reputable website before entering credit card information +- Keep in mind throughout this webinar I will be giving tips and best practices not + just for you to utilize in the business world, but at home as well +- Current password policies that are often used today are not adequate at protecting + users +- NIST is recommending against having users change passwords every 90 days due to + the above +- All of the data collected, analyzed, and presented here were collected in accordance + with guidelines ensuring ethical research involving human subjects. +- Images must have less than 25% text if used as an ad. +- Tweets with photos get 313% more engagement. +- Life span of a tweet is about 15 minutes. +- The creator economy or also known as creator marketing and influencer economy, is + a software-facilitated economy that allows content creators and influencers to earn + revenue from their creations. +- According to Goldman Sachs Research, the global creator economy could approach half-a-trillion + dollars by 2027. +- The African Creator Economy market size was valued at US$ 3.08 Billion in 2023 and + is expected to reach US$ 17.84 Billion by 2030, growing at a compounded annual growth + rate (CAGR) of 28.5% from 2023 to 2030. +- Some objects may return nulls in deeply nested fields. +- Some documents may not be available for public access. +- Data is from Q4 2015 analysis. +- The study is based on the impact of social media language on the acquisition of + English spelling. +- The spelling test results reveal a significant impact of social media language on + respondents' spelling proficiency. +- Common errors reflect the influence of social media's brevity and speed over accuracy. +- Community-based tourism management demonstrates synergy between environmental conservation + goals and local economic improvement. +- Revision requires thorough evaluation. +- Proofreading is a thorough and tiring work. +- Authorization is required for all endpoints. +- Rate limits are enforced on API calls. +- The cooperative has been operating since 2023. +- The cooperative oversees a 182-hectare Social Forestry area. +- The content focuses primarily on NBA-related discussions and highlights. +- Uses live streaming for police chases on Twitch +- 'The principle of the Golden Rule: “Treat others as you would like to be treated” + serves as a powerful ethical tool for promoting unity amidst diversity in the Church + in Africa.' +- This community promotes the use of dinars and dirhams in zakat transactions. +- Tewdilly is a playful name derived from a humorous take on the word 'Totally'. +- No authentication required to access recent uploads. +- Coaching for inmates is crucial for rehabilitation and reintegration into society. +- Contradiction exists in the legal framework regarding coaching for death row inmates. +- Data were analyzed using Structural Equation Modeling-Partial Least Squares (SEM-PLS). +- The sample was determined using the Slovin formula, resulting in 144 treasurers + from a population of 225. +- This study provides a comprehensive analysis of the psychological pressures affecting + School Operational Assistance (BOS) fund treasurers in East Kalimantan. +- Study reveals distinct relationships between role stressors and burnout among BOS + Fund Treasurers. +- Role conflict significantly influences burnout. +- Role overload is a strong predictor of burnout. +- Role ambiguity was not found to significantly affect burnout. +- Minimal risk associated with the application of the research. +- Care should be taken in applying concepts to differently situated groups. +- No authentication required for accessing the API +- B2B budgets are increasing, but ad waste is a challenge. +- Better targeting and first-party data reduce inefficiencies. +- AI and ABM offer solutions for improved engagement. +- Social media and omnichannel strategies are critical. +- Uses OAuth2 with refresh token — requires setup of connected app in Workday +- OAuth2 requires setup of a connected app in Slideshare +- Website optimization is an ongoing process that requires collaboration across multiple + teams. +- Uses OAuth2 with refresh token — requires setup of connected app in Bright Data +- Requires OAuth2 for authentication. +- Uses OAuth2 with refresh token — requires setup of connected app in Snapchat +- Ensure your site is mobile-friendly, has a sitemap & its robots.txt file and meta + tags allow indexing by all AI engines. +- Coffee cultivation focuses on environmentally friendly practices. +- Community-based tourism management integrates environmental conservation with local + economic empowerment. +- LLMs are not trying to click or rank your content. LLMs are trying to interpret + your content. +- LLMs have different intent from human users and traditional search user-agents. +- The API does not require authentication for accessing recent uploads. +- Buying a Twitter account is not strictly illegal, but it may violate Twitter’s terms + of service. +- This API does not require authentication. +- This article discusses unity in diversity, a synodal path in the service of God’s + Kingdom in the context of African Ecclesiology. +- SlideShare has quickly grown to 60 million unique visitors per month. +- Examines critical challenges undermining unity in the Church in Africa. +- Highlights the importance of inclusive leadership and participation. +- This community offers an alternative zakat system and represents a contemporary + Islamic revivalist movement. +- Zakat management is carried out by internal authoritative structures such as amirs + and viziers. +- The growing secular consciousness among youth demands a morally grounded and culturally + resonant theological response. +- Uses OAuth2 with refresh token — requires setup of connected app in slideshare +- API may have rate limits on fetching uploads +- 'Current Pricing Structure (as of March 8th, 2016): Wishpond10' +- Be cautious about suspicious emails or links +- Stay vigilant online +- 'Practicing cognitive hygiene: curating not just information, but lived experiences, + protecting the resonance of language, rebuilding shared time, and practicing presence + in environments designed to fracture it.' +- Prisoner development is an integral part of the correctional system which aims to + rehabilitate prisoners. +- The probation period is given if there is an indication of deep remorse from the + convict. +- 'Current Pricing Structure (as of March 8th, 2016): Wishpond' +- This study analyzes the effects of role conflict, role ambiguity, and role overload + on burnout and their impact on performance. +- Addressing performance issues requires a direct focus on the psychological well-being + of the individuals responsible for financial governance. +- Some findings suggest that role ambiguity and role overload may lead to better performance + outcomes. +- Rate limits apply based on the type of authentication used. +- Setup of connected app in Demandbase is required for OAuth2. +- This API provides access to presentation content. +- Requires setup of connected app in ShortStack. +- Some data may return null values. +- Uses OAuth2 with refresh token — requires setup of connected app in Demandbase +- Uses OAuth2 with refresh token — requires setup of connected app in ISSIP +- Requires authentication to access slides. +- 'Join our global community: Register & Agree to Code of Conduct @ISSIP.org' +- Follow ISSIP on LinkedIn +- Participants can provide feedback through various surveys. +- Uses OAuth2 with refresh token — requires setup of connected app in Slideshare +- Website optimization isn’t a one and done deal. It’s an ongoing process that requires + collaboration across multiple teams. +- The Service Design Network Global Conference is on October 16th and 17th in Texas. +- Conferences are supported globally, including events in Europe and Asia. +- Uses OAuth2 with refresh token — requires setup of connected app in Binance +- Some accounts may return nulls in specific fields +- Requires setup of connected app in Bright Data +- Technical challenges of extracting and structuring AI-generated responses +- The biggest risk is becoming over-reliance on AI, simply copy-pasting which could + lead to superficial understanding and poor problem-solving skills, especially for + juniors learning new concepts. +- AI offers instant help with problems, explanations, or examples. It adapts to individual + learning styles and needs, increasing student participation and motivation. +- Influencer marketing can be a budget-friendly option compared to traditional advertising, + especially when collaborating with micro-influencers. +- LLMs are not trying to click or rank your content. +- LLMs are trying to interpret your content. +- Requires OAuth2 authentication setup. +- Data may include user-uploaded content and may vary in availability. +- Requires OAuth2 authentication — setup needed for access. +- Uses old Facebook accounts for business, marketing, networking, or community building. +- Account history can influence engagement and visibility. +- Ethical use of accounts is crucial to avoid violations of Facebook's TOS. +- Go Live planned for November 2016 +- The support from the current API-PRO staff has been fantastic +- Drivers can customize navigation menu and vehicle attributes remotely. +- Drivers can add road restrictions directly into the navigation. +- Authentication requires OAuth2 with setup of connected app in Slideshare. +- OIF is providing guidance to accelerate deployment +- 'Current Pricing Structure (as of March 8th, 2016): Zapier' +- 'Current Pricing Structure (as of March 8th, 2016): Segment' +- 'Current Pricing Structure (as of March 8th, 2016): SurveyMonkey' +- 'Current Pricing Structure (as of March 8th, 2016): GoToWebinar' +- 'Current Pricing Structure (as of March 8th, 2016): Slack' +- 'Current Pricing Structure (as of March 8th, 2016): AdobeStock' +- 'Current Pricing Structure (as of March 8th, 2016): BuzzSumo' +- High performance VCA +- Current Pricing Structure as of March 8th, 2016 varies by tool. +- Services that are prompt, courteous and efficient +- Facilities that are user-friendly +- Access Control (API key and credentials required) +- Public documentation and examples available +- Public documentation, examples available with access control (API key and credentials + required) +- Requires a valid Reddit account with API access +- Rate limits apply based on the type of requests made +- Requires setup of connected app in API +- Requires OAuth2 authentication +- May have limitations on the number of API calls +- OAuth2 authentication is required to access the API. +- Requires OAuth2 authentication to access presentation data. +- Content is focused on SEO strategies and insights. +- May include external links to additional resources. +- Custom interiors for Heads of State and corporate clients are available, benefiting + from the knowledge and experience of AgustaWestland. +- Every interior is individually designed and crafted to satisfy the customer’s unique + requirements. +- First company to sell fully-functional autonomous vehicle solution +- Requires OAuth2 setup for accessing API resources +- ShortStack is a marketing campaign-building tool used by small businesses and large + agencies. +- Users saw consistent growth when they ran Campaigns at least once a month. +- Interoperability is technically feasible, as demonstrated, but still needs to get + into commercial products. +- Campaigns can be designed and promoted from any social network. +- Access does not require authentication. +- This session provides insights on community engagement and professional growth opportunities. +- Uses Google Forms for feedback and registration. +- Recordings are provided via YouTube links. +- Conference happening in Texas on October 16th and 17th. +- Binance is a gateway to the evolving world of digital finance. +- The platform demonstrates how technology can democratize finance. +- Binance serves as an educational hub for cryptocurrency enthusiasts. +- Data is streamed every 10 seconds. +- Utilizes SpringXD for data ingestion and Spark Streaming for analytics. +- Influencer marketing can offer a more cost-effective approach compared to traditional + advertising. +- Data is streamed to network port where springXD is listening every 10 seconds. +- Data processed includes metrics uploaded to Gemfire for fast retrieval. +- Requires setup of connected app in Slideshare +- Seamless integration with existing PCS and other datasources, without impacting + the performance of the operational systems +- A comprehensive and consolidated view of all essential aspects of a ports business + ready for analysis and reporting +- Enabling different user groups within the port community to develop their own analysis + from simple tables to advanced analytics without the involvement of IT staff +- Comprehensive set of predefined and extensible indicators which allow the management + of the port to plan, manage and monitor the execution of strategies +- Built in and customizable access control features, ensuring the confidentiality + and sensitivity of underlying microdata +- Newsjacking is largely about top-of-funnel content +- Old accounts may have higher trust scores and better engagement metrics. +- Use old accounts for community engagement and marketplace transactions +- ThousandEyes lets us run multiple types of tests at various levels of sophistication + and granularity from all over the world. +- Focus on storytelling through video marketing. +- API PRO is available in 23 languages. +- Real-time analytics setup requires both Kafka and Spark integration. +- Spark Streaming makes it easy to build scalable fault-tolerant streaming applications. +- Test has a total of 32 questions divided into multiple choice, short and long answer + questions. +- A total of 70% is needed to move onto the next set of interviews. +- 'Successful completion of this test is necessary to move forward in the interview + process i.e. to Interview # 3.' +- You have a total of 2 hours to complete the test. +- Students have reported that a total of 70% is needed to move onto the next set of + interviews. +- A total of 32 questions divided into 28 multiple choice questions and 4 short and + long answer questions. +- A total of 2 hours to complete the test. +- Integrated Logistics Solution available +- Secured with Oauth using Identity Cloud Service +- 'Challenges: needed ISO_8859_1 characters, Node libraries are UTF-8' +- Some features may require specific configurations. +- Requires fleet customer to sign-up +- High performance VCA features multiple parametrable detection regions +- Continuous innovation and flexibility in solutions +- API projects the platform product +- 'Contractual Commitment: Less than one false alarm per week per camera!' +- End-to-end logistics management system with automation optimization. +- Hassle free Environment +- Product that are high quality and reasonably price +- Logimatic provides various automation solutions for the maritime industry. +- Confidential company presentation +- Uses advanced navigation and telematics features +- Connectivity enhances user experience +- 'Circulation: Public (documentation, examples) with Access Control (API key and + credentials required)' +- Public documentation with access control +- No authentication required for accessing public content. +- Custom interiors for Heads of State and corporate clients are available. +- Interoperability of the optical control plane for a black & white UNI is the most + basic and the most urgent issue to address. +- Interoperability is a must-have for deploying IP-optical interconnect with multi-layer + interactions. +- Rapid time-to-benefit - live in 8 to 10 weeks +- Lower costs, enabled IT +- Business innovation and transformation +- 4G / LTE can replace low-speed specialist critical and professional networks providing + broadband and video +- This evolution contributes significantly to the airport industry performance and + to many industrial environments +- 'Consulting: IDATE has established its credibility and independence in conducting + consultancy and study assignments on behalf of its clients.' +- Requires OAuth2 authentication. +- Data is available for various presentations through the slideshare API. +- Data is streamed to network port where springXD is listening +- Reports total number of streams processed, total number of streams that lacks data + and how much time did spark took to process data collected in 10 seconds window. +- Data stream is forwarded to SPARK streaming which collects data for every 10 seconds + window and applies business logic on batch of data +- SpringXD allows multicasting data stream. One stream goes to Pivotal HD for analytics + purpose +- Human Machine Interface is a key factor for the success of this vision +- OSGi technology provides an excellent base to build this system +- Integrating data from disparate sources (PCS, statistics, road counts, railroad + systems, AIS, …) using ETL engines +- SDMX interface to comply with statistical reporting requirements +- Manufacturers must plan, measure and critically evaluate any technology deployment. +- The food and pharmaceutical industry have high demands and regulations to follow + to ensure high quality. +- Maintaining high quality level and safety during all phases of manufacturing is + a necessity. +- Efficient utilization of the production equipment +- High quality products require a controlled manufacturing process +- API PRO is the optimal system for organizing maintenance management +- Effective spare part management and quick access to machine documentation contribute + to keeping down time as short as possible +- The analytics module, and the dashboard for key performance indicators present a + clear picture of where to proceed with the process of continuous improvement +- API PRO supports all of the activities necessary for an effective maintenance organization + and integrates seamlessly with the company’s ERP system +- ThousandEyes lets us run multiple types of tests at various levels of sophistication + and granularity from all over the world (DNS Test, TCP Port Tickle, Internet Path + Test, Page Loads, Full Synthetic Transactions) +- We see exactly how our clients are experiencing our services (Internet Path, BGP + Route health, packet loss, jitter & latency) +- We receive alerts on any significant variations from our established baselines (Paths, + Routes, Performance, Service Quality, etc.) +- Focus on geospatial solutions and software for various domains. +- Involvement in Earth observation and Cosmic exploration missions. +- Uses real-time monitoring and processing +- Open-source tools available for data acquisition +- Know Excel very well. +- Be fast at manipulating data. +- Understand the theory behind Uber’s business. +- Understand Uber’s operations, logistics and marketing. +- Communicate effectively. +- Be Creative. +- Secured with OAuth using Identity Cloud Service +- Requires setup of connected app in ThousandEyes +- Some objects like Driver may return nulls in deeply nested fields +- Enable Agentspace APIs in Google Cloud Console +- Configure identity provider integration (Google Identity, Azure AD, Okta) +- Ethical initiatives in AI aim to promote fairness, accountability, and transparency. +- Logimatic is an international engineering and IT company with main focus on sales, + implementation and support of in-house developed IT solutions. +- Logimatic has several years of experience and has worked on various projects for + ship owners, maritime consulting companies, and shipyards. +- Document understanding is the ability to extract and interpret information and meaning + from a wide range of documents. +- Uses a combination of rule-based and model-based approaches to process documents. +- API connections for freight customers to do bookings in Grimaldi Group, ShortSea. +- Uses API Key for authentication. +- Document Understanding offers end-to-end capabilities to use a combination of rule-based + and model-based approaches to process documents. +- Pre-trained ML models available out of the box +- Custom models can be created in AI Center +- Bring your own model - custom or third-party +- API connections for freight customers to do bookings in Grimaldi Group. +- 'Key ideas are based on my doctoral research titled ''Theory of Cognitive Chasms: + A Grounded Theory of GenAI Adoption'', © 2025.' +- 'Key ideas are based on my doctoral research titled ''Theory of Cognitive Chasms: + A Grounded Theory of GenAI Adoption''.' +- Building Europe with Open LLMs is not just about technology – it is about sovereignty, + values, and the ability to shape our own digital future together. +- A 'Conversion trend' has started → Indoor truck operations becomes driverless. +- Autopilot solutions makes Toyota warehouse trucks driverless. +- Uses FCD from INRIX as the basis of the new system +- Some safety commands for the whole region will be available for police-operators +- Requires setup of a Slack app for OAuth integration. +- Project has been officially approved by FEDRO with the use of FCD of INRIX +- Automated safety reactions between the three tunnels for traffic management +- Agentic orchestration enables the modeling, implementation, operation, monitoring, + and optimization of complex business processes from start to finish. +- UiPath Maestro is the next evolution in enterprise automation—a smart conductor + for workflows where Process, AI Agents, Humans and APIs interact seamlessly. +- Best-in-class application +- This release, Innovation Pack 2015, is quite simply referred to as 15.0. +- EUREKA is a pan-European network for market-oriented, industrial R&D +- The development, release, and timing of any features or functionality described + for Oracle’s products remains at the sole discretion of Oracle. +- HMI is a key factor for the success of this vision +- Manufacturers may feel pressure to start bringing IoT devices into their plants—innovate + or risk falling behind. +- The cloud changes the scope and impact of ERP and MES. +- Smart manufacturing starts at the sensors. +- The most successful implementations start with an obvious but often-overlooked realization + that the project must provide ROI. +- Oracle is Committed to Siebel and is delivering many New Product Innovations annually +- Significant enhancements in Industry Applications and Automation Agility +- Manufacturers are the largest investors in IoT technologies. +- Requires OAuth2 authentication to access the API. +- Stateless REST sessions with (User) Connection Pooling +- It is often a requirement to be able to document changes made to the production + equipment. +- API PRO is used by leading companies worldwide in a variety of industries. +- No specific API information provided. +- Open UI позволяет работать Siebel во всех современных браузерах включая IE9, Chrome, + Firefox и Safari. +- Open UI значительно повышает продуктивность сотрудников благодаря удобному интерфейсу, + интуитивной навигации и оптимизированности для мобильных устройств. +- Requires setup of OAuth2 for API access +- After you perform a migration installation of the Siebel Fix Pack for Siebel Enterprise + Server or SWSE, the installer reports on any conflicts that might have prevented + some of your customer-modified files from being migrated. +- Although you can add languages to an existing installation of version 8.1.1.11, + some restrictions on adding languages apply. +- You must have installed ACR 539 to be able to implement RF 967. +- Quick Fixes address a small number of defects, and the fixes are typically rolled + into the next available Fix Pack for wider distribution to the Siebel Business Applications + customer base. +- If you do not see your Quick Fix number in the table or in any similar table for + prior Siebel Fix Pack 8.1.1.x releases, then do not install the latest Siebel Fix + Pack 8.1.1.x. +- Customers using version 8.1.1 or a prior Siebel Fix Pack 8.1.1.x are advised to + install the latest 8.1.1.x Fix Pack. +- Unless specifically noted in the table, all known anomalies from the base version + remain unresolved. +- Although Siebel Fix Packs are cumulative, the Resolved Bugs table only includes + information about the Fix Pack described in this guide. +- Supports various sensors including OpenBCI, Brainflow, and Shimmer3. +- Provides a style change for the Basic Search dialog box, the Advanced Search page, + the Search Preference page, and the Search Results page +- Focus on enhancing collaboration +- Opportunities to apply research in Neuro-XR +- 'REST APIs raise the following error message and the insert/upsert fails: ''SBL-EAI-04008: + Integration component type ''Main Phone Number'' is not a valid child type for component + type ''Account''.' +- Known bugs and issues resolved in this release. +- Resolved Bugs in Siebel Fix Pack 8.1.1.11 +- All resolved bugs are documented with their respective Bug IDs. +- It is strongly recommended that you perform database-related tasks after installing + applicable Fix Packs or other patch releases. +- For more information about payment enhancements for Siebel Clinical, see Siebel + Clinical Trial Management System Guide on the Siebel Bookshelf. +- Cross-platform integration via OAuth-based authentication +- Single sign-on (SSO) integration with existing credentials +- All known anomalies from the base version remain unresolved. +- Siebel Fix Packs are cumulative. +- Fully managed Google Cloud service +- Automatic updates and scaling +- Global availability with regional data residency +- The scandal highlighted several ethical harms in digital and AI-enabled decision-making. +- Uses explainability tools like LIME to estimate feature contributions. +- Uses a combination of rule-based and model-based approaches for document processing +- Session 4 - Specialized AI Associate Series +- Support for various types of documents and processing different file formats. +- Uses OAuth2 with refresh token — requires setup of connected app in Scribd +- Currently no authentication is required to access the API. +- Identities in TPM2 are tightly coupled with a computer. +- UEFI secure boot needs to be enabled to access UEFI firmware event log. +- 'Research Based: Key ideas are based on my doctoral research titled “Theory of Cognitive + Chasms: A Grounded Theory of GenAI Adoption”, © 2025.' +- AI is a “general purpose technology” that can already do many things now or in the + near future. +- 'Research Based: Key ideas are based on my doctoral research titled ''Theory of + Cognitive Chasms: A Grounded Theory of GenAI Adoption''' +- AI is a 'general purpose technology' that can already do many things now or in the + near future. However, should it do it all? +- Huge potential business growth +- Requires setup of API keys in UiPath account +- Ensure scopes are properly configured in OAuth settings +- No-code tools mean anyone can build and deploy their own process +- Stateless REST sessions with User Connection Pooling +- Centrally managed for improved reliability & security – No local database +- Siebel and CX Cloud solutions are Complementary +- Includes insights on Siebel CRM deployments in various sectors. +- Discusses managed and hybrid cloud deployment options. +- Oracle Confidential – Restricted +- Supports modern browsers including IE9, Chrome, Firefox, and Safari. +- Improved user experience due to intuitive navigation and mobile optimization. +- This release focused on extending OpenUI to deliver a complete framework for all + devices and modes. +- The framework includes connected and disconnected mode support. +- The Siebel Fix Pack must be installed from an installation image created using the + Siebel Image Creator utility. +- Postinstallation tasks are required to deploy added languages. +- Quick Fixes included in Siebel Fix Pack 8.1.1.11 address immediate critical issues + for specific customers. +- For information about the bug fixes included in previous Siebel Fix Pack 8.1.1.x + releases, see the applicable Siebel Maintenance Release Guide on My Oracle Support. +- Framework issues may affect user experience. +- Some issues may not have a straightforward resolution. +- Postinstallation tasks are required when adding languages after the initial product + installation. +- Quick Fixes included in Siebel Fix Pack 8.1.1.11 are for immediate critical issues + and can be installed on top of Siebel Fix Packs. +- Users are not notified that the invalid email was not sent to the invalid email + address and the status of the activity is Done. +- When users perform a basic search, click Show All, navigate to the fourth or fifth + page and then click the Previous button, Internet Explorer throws a session warning + and logs the users out. +- SOAP messages that are larger than 100 MB cause the EAI Object Manager to crash. +- Framework +- Special Instructions +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- No specific error patterns were mentioned. +- '401 Unauthorized: Check your OAuth token' +- '403 Forbidden: You do not have permission to access this resource' +- '404 Not Found: Check the URL or resource ID' +- '500 Internal Server Error: Try again later' +- 'REQUEST_LIMIT_EXCEEDED: Reduce API call frequency' +- '401 Unauthorized: Check OAuth token validity' +- '404 Not Found: Verify the endpoint path and ensure the resource is available.' +- '5.00: Possible misinterpretation or typo in responses.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- '404 Not Found: Check the endpoint path or resource ID.' +- '500 Internal Server Error: Try again later.' +- Common misspellings include phonetic simplifications. +- High percentage of incorrect spellings suggest a significant impact of social media. +- '401 Unauthorized: Check your API key and token.' +- '429 Too Many Requests: Rate limit exceeded.' +- '404 Not Found: Ensure the endpoint path is correct.' +- '500 Internal Server Error: Check server status and logs.' +- '404 Not Found: Check the endpoint path' +- '500 Internal Server Error: Server-side issue, retry later' +- 'CULTURAL_BIAS: Recognize and address ethnocentrism in decision-making.' +- 'MARGINALIZATION: Ensure all voices, especially women and youth, are heard.' +- Potential long-term negative consequences of burnout on individual well-being and + organizational stability. +- '403: Forbidden - Ensure that your OAuth token has the correct permissions.' +- '404: Not Found - Check the subreddit name or endpoint path.' +- '401 Unauthorized: Check client credentials and token expiration.' +- '401 Unauthorized: Check OAuth credentials or token expiration.' +- '401 Unauthorized: Check OAuth credentials.' +- '404 Not Found: Resource may not exist or may have been removed.' +- '403 Forbidden: Check API key and permissions.' +- '404 Not Found: Valid resource required.' +- 'OAuthException: Check your access token and permissions.' +- 'GraphMethodException: Ensure the endpoint is correct and accessible.' +- '401 Unauthorized: Check OAuth credentials and token validity.' +- '401 Unauthorized: Check API key validity' +- '403 Forbidden: Check permissions or scopes' +- '404 Not Found: Resource may not exist' +- '429 Too Many Requests: Rate limit exceeded, retry later' +- '401 Unauthorized: Check your OAuth credentials.' +- '404 Not Found: The requested resource does not exist.' +- '404 Not Found: Check the endpoint path.' +- '500 Internal Server Error: Retry the request later.' +- '403 Forbidden: Access to this resource is denied' +- '400 Bad Request: Check request format and parameters.' +- '401 Unauthorized: Recheck API keys or token expiration.' +- '429 Too Many Requests: Throttle your API calls.' +- 'OAuthException: Invalid OAuth access token.' +- 'GraphMethodException: Unsupported get request.' +- 'RateLimitExceeded: Too many requests.' +- 'OAuthException: Invalid OAuth access token' +- 'FacebookAPIException: Request failed with status code 400' +- '400 Bad Request: Check request parameters' +- '404 Not Found: Verify endpoint path' +- '500 Internal Server Error: Contact support' +- Performance is key for VCA users +- Contractual commitments include less than one false alarm per week per camera +- 'SERVICE_UNAVAILABLE: Check service status' +- 'TIMEOUT: Increase request timeout limit' +- '401 Unauthorized: Recheck API key or credentials' +- '401 Unauthorized: Check the authentication credentials.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity.' +- 'invalid_auth: The provided authentication credential is invalid.' +- 'access_denied: User denied access to the application.' +- Higher resolution rates, AI improvement +- 'Funding ratio depends on Country policy: from 25% to 50% (average)' +- '401 Unauthorized: Check your OAuth token and permissions.' +- '401 Unauthorized: Check your OAuth token or credentials' +- '404 Not Found: Ensure the resource exists' +- 'ORA-12505, TNS: listener does not currently know of SID given in connect descriptor' +- Validation failed. Some of the required parameters are not saved for ra.xml file + creation. +- 'SBLDAT-00322: Error when users create a multi-site quote and try to revise it' +- 'SBL-EAI-04008: Integration component type ''Main Phone Number'' is not a valid + child type for component type ''Account''.' +- 'ORA-12505: TNS: listener does not currently know of SID given in connect descriptor' +- 'SBL-DAT00402: This operation is not available for readonly field.' +- 'SBL-OSD-01000: The Object Manager crashes' +- 'invalid email address (SBL-EML-00050): Invalid email address' +- '!! ERROR: SBL-DEV-62158: MergeType Type - Integration Component - exiting with + error. The query could not be run because it is too big. Please refine the query + to make sure it is more selective or refine the query using parentheses.' +- '401 Unauthorized: Check if token is expired or invalid' +- '429 Too Many Requests: Rate limit exceeded' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- 'Unable to connect SQLGate = 66000. Listener refused the connection with the following + error: ORA-12505, TNS: listener does not currently know of SID given in connect + descriptor' +- 'SBL-OSD-01000: The Object Manager crashes.' +- 'SBL-EML-00050: invalid email address.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential + - RedditOAuth + - RedditUser + - OAuth + - Identity Cloud Service + - OAuthToken + - OAuth2 + - AccessToken +client: + base_url: https://www.slideshare.net + headers: + Accept: application/json +source_metadata: null diff --git a/sol_incinerator/sol-incinerator-docs.md b/sol_incinerator/sol-incinerator-docs.md new file mode 100644 index 00000000..550b844c --- /dev/null +++ b/sol_incinerator/sol-incinerator-docs.md @@ -0,0 +1,158 @@ +In this guide, we'll set up a complete Sol-Incinerator data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def sol_incinerator_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://v1.api.sol-incinerator.com/batch", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "close-all", "close-all-instructions" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='sol_incinerator_pipeline', + destination='duckdb', + dataset_name='sol_incinerator_data', + ) + # Load the data + load_info = pipeline.run(sol_incinerator_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from sol_incinerator’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Burn Endpoints**: These endpoints are related to the burning process, typically for digital assets or tokens. + - `/burn`: Initiates a burn operation. + - `/burn/preview`: Provides a preview of the burn operation. + - `/burn-instructions`: Offers instructions on how to perform a burn operation. + +- **Close Endpoints**: These endpoints manage the closing of transactions or processes. + - `/close`: Initiates a close operation. + - `/close/preview`: Provides a preview of the close operation. + - `/close-instructions`: Offers instructions on how to perform a close operation. + +- **Batch Close Endpoints**: These endpoints allow for closing multiple transactions or processes in a single operation. + - `/batch/close-all`: Initiates a batch close operation for all items. + - `/batch/close-all/preview`: Provides a preview of the batch close operation. + - `/batch/close-all-instructions`: Offers instructions on how to perform a batch close operation. + +You will then debug the Sol-Incinerator pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Sol-Incinerator support. + ```shell + dlt init dlthub:sol_incinerator duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Sol-Incinerator API, as specified in @sol_incinerator-docs.yaml + Start with endpoints close-all and close-all-instructions and skip incremental loading for now. + Place the code in sol_incinerator_pipeline.py and name the pipeline sol_incinerator_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python sol_incinerator_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + You need an API key, which can be obtained from the service provider, and it should be included in the request headers under 'x-api-key'. + + To get the appropriate API keys, please visit the original source at https://docs.sol-incinerator.com/api/sol-incinerator-burn+close-api-documentation. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python sol_incinerator_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline sol_incinerator load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset sol_incinerator_data + The duckdb destination used duckdb:/sol_incinerator.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline sol_incinerator_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("sol_incinerator_pipeline").dataset() + # get "close-all" table as Pandas frame + data."close-all".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/sol_incinerator/sol-incinerator-docs.yaml b/sol_incinerator/sol-incinerator-docs.yaml new file mode 100644 index 00000000..b25e1ae0 --- /dev/null +++ b/sol_incinerator/sol-incinerator-docs.yaml @@ -0,0 +1,28 @@ +client: + auth: You need an API key, which can be obtained from the service provider, and + it should be included in the request headers under 'x-api-key'. + most_recurring_base_url: https://v1.api.sol-incinerator.com + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://docs.sol-incinerator.com/api/sol-incinerator-burn+close-api-documentation': + - /burn + - /close + - /batch/close-all + - /burn-instructions + - /batch/close-all-instructions + - /close-instructions + - /close/preview + - /` + - /batch/close-all/preview + - /burn/preview +- 'endpoints source: https://docs.sol-incinerator.com/api': + - /burn + - /close + - /batch/close-all + - /burn-instructions + - /batch/close-all-instructions + - /close-instructions + - /close/preview + - /` + - /batch/close-all/preview + - /burn/preview diff --git a/sonatype_central_repository/sonatype-central-repository-docs.md b/sonatype_central_repository/sonatype-central-repository-docs.md new file mode 100644 index 00000000..439d3bcb --- /dev/null +++ b/sonatype_central_repository/sonatype-central-repository-docs.md @@ -0,0 +1,148 @@ +In this guide, we'll set up a complete Sonatype Central Repository data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def sonatype_central_repository_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "maven2" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='sonatype_central_repository_pipeline', + destination='duckdb', + dataset_name='sonatype_central_repository_data', + ) + # Load the data + load_info = pipeline.run(sonatype_central_repository_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from sonatype_central_repository’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Service Local**: General endpoint for local service operations. +- **Staging Deploy**: Endpoint used for deploying artifacts to a staging environment. +- **Maven2**: Endpoint related to Maven repository operations, specifically for deploying and accessing Maven artifacts. +- **Example POM**: Specific endpoint for a Maven Project Object Model (POM) file related to the 'example' project version 0.1.0. + +You will then debug the Sonatype Central Repository pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Sonatype Central Repository support. + ```shell + dlt init dlthub:sonatype_central_repository duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Sonatype Central Repository API, as specified in @sonatype_central_repository-docs.yaml + Start with endpoint maven2 and skip incremental loading for now. + Place the code in sonatype_central_repository_pipeline.py and name the pipeline sonatype_central_repository_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python sonatype_central_repository_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Auth information not found. + + To get the appropriate API keys, please visit the original source at https://central.sonatype.org/search/rest-api-guide/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python sonatype_central_repository_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline sonatype_central_repository load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset sonatype_central_repository_data + The duckdb destination used duckdb:/sonatype_central_repository.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline sonatype_central_repository_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("sonatype_central_repository_pipeline").dataset() + # get "maven2" table as Pandas frame + data."maven2".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/sonatype_central_repository/sonatype-central-repository-docs.yaml b/sonatype_central_repository/sonatype-central-repository-docs.yaml new file mode 100644 index 00000000..452831e5 --- /dev/null +++ b/sonatype_central_repository/sonatype-central-repository-docs.yaml @@ -0,0 +1,14 @@ +client: + auth: Auth information not found. + most_recurring_base_url: https://ossrh-staging-api.central.sonatype.com + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://central.sonatype.org/publish/publish-portal-api/': + - https://central.sonatype.com/api/v1/publisher/status?id=28570f16-da32-4c14-bd2e-c1acc0782365 + - https://central.sonatype.com/api/v1/publisher/deployment/28570f16-da32-4c14-bd2e-c1acc0782365 + - https://central.sonatype.com/api/v1/publisher/upload +- 'endpoints source: https://central.sonatype.org/publish/publish-portal-ossrh-staging-api/': + - /service/local/staging/deploy/maven2/com/example/example/0.1.0/example-0.1.0.pom` + - /service/local + - /service/local/staging/deploy/maven2/` + - /service/local/staging/deploy/maven2 diff --git a/spacetime/spacetime-docs.md b/spacetime/spacetime-docs.md new file mode 100644 index 00000000..1a4f201a --- /dev/null +++ b/spacetime/spacetime-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Google IAP data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def google_iap_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://iap.googleapis.com/v", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + SayHello,,api/platform,,api/sbi/telemetry/ + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='google_iap_migration_pipeline', + destination='duckdb', + dataset_name='google_iap_migration_data', + ) + # Load the data + load_info = pipeline.run(google_iap_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from google_iap_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- SayHello: A simple endpoint to greet. +- API Platform: The main platform for various API interactions. +- Telemetry: Endpoint related to telemetry data. +- Scheduling: Endpoint for scheduling data and operations. + +You will then debug the Google IAP pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Google IAP support. + ```shell + dlt init dlthub:google_iap_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Google IAP API, as specified in @google_iap_migration-docs.yaml + Start with endpoints SayHello and and skip incremental loading for now. + Place the code in google_iap_migration_pipeline.py and name the pipeline google_iap_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python google_iap_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + This source uses OAuth2 for authentication, requiring a connected app setup in Google Cloud Console. The token is provided in the Authorization header. + + To get the appropriate API keys, please visit the original source at https://cloud.google.com/iap/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python google_iap_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline google_iap_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset google_iap_migration_data + The duckdb destination used duckdb:/google_iap_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline google_iap_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("google_iap_migration_pipeline").dataset() + # get ayHell table as Pandas frame + data.ayHell.df().head() + ``` + +## Running into errors? + +Users must ensure that the connected app is properly configured in the Google Cloud Console, including the correct OAuth scopes. The API is still under development, and breaking changes may occur without a deprecation policy. Additionally, some API calls may result in null values for deeply nested fields. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/spacetime/spacetime-docs.yaml b/spacetime/spacetime-docs.yaml new file mode 100644 index 00000000..928f866e --- /dev/null +++ b/spacetime/spacetime-docs.yaml @@ -0,0 +1,101 @@ +resources: +- name: common + endpoint: + path: /aalyria.com/spacetime/common + method: GET + data_selector: records +- name: federation + endpoint: + path: /aalyria.com/spacetime/federation + method: GET + data_selector: records +- name: model + endpoint: + path: /aalyria.com/spacetime/model + method: GET + data_selector: records +- name: platform + endpoint: + path: /api/platform + method: GET + data_selector: records +- name: scheduling + endpoint: + path: /api/sbi/scheduling/ + method: GET +- name: telemetry + endpoint: + path: /api/sbi/telemetry/ + method: GET +- name: SayHello + endpoint: + path: /SayHello + method: POST + data_selector: response + params: {} +- name: SayHello + endpoint: + path: /Greeter/SayHello + method: POST + data_selector: response +notes: +- Requires setup of connected app in Google Cloud Console +- Requires setup of connected app in Google API Console +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Requires setup of connected app in Google Cloud +- Ensure proper OAuth scopes are configured +- Uses Private-Public Keypairs and Self Signed JWTs to authenticate with its services. +- Uses Private-Public Keypairs and Self Signed JWTs for authentication +- JWT must be included as a bearer token in the Authorization header +- Multiple client libraries are available for interacting with various Spacetime APIs + and data models. +- Python 3+ is required for the Spacetime client libraries. +- The NBI is in active migration. +- Audience must be the full HTTPS url of the gRPC method. +- Some objects may return nulls in deeply nested fields +- The API is still under development. +- Bazel is an open-source build and test tool designed to support multiple languages + and large codebases. +- Bazelisk is included with the main repository, you don’t need to install Bazel separately. +- Understanding Bazel can help you build and test the provided libraries and examples. +- Protobuf uses a schema-definition language to define the structure of the data. +- Protobuf provides an efficient encoding for binary serialization. +- Denote the rapid-iteration development phase of this component. +- Feature-complete but under testing. +- A production-ready and fully supported API. +- gRPC uses Protocol Buffers as its interface definition language. +- Semantic Versioning is a widely adopted versioning system designed to communicate + changes in software clearly and predictably. +- 'Usage: Previewing APIs, share progress and gather feedback.' +- audience must be the full HTTPS url of the gRPC method +errors: +- '400 Bad Request: Check the request parameters' +- '401 Unauthorized: Invalid client credentials' +- '401 Unauthorized: Check client ID and secret' +- '400 Bad Request: Verify request parameters' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Ensure valid JWT token is provided' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- Breaking changes can happen without changing major version +- No past-version support or deprecation policy when changes are made. +auth_info: + mentioned_objects: + - USER_ID + - KEY_ID + - DOMAIN + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://iap.googleapis.com + auth: + type: oauth2 + flow: authorization_code + token_url: https://accounts.google.com/o/oauth2/token + client_id: 60292403139-me68tjgajl5dcdbpnlm2ek830lvsnslq.apps.googleusercontent.com + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/stagetimer/stagetimer-docs.md b/stagetimer/stagetimer-docs.md new file mode 100644 index 00000000..874fdfa8 --- /dev/null +++ b/stagetimer/stagetimer-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Stagetimer data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def stagetimer_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://stagetimer.io/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + next,,jump,,stop + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='stagetimer_migrations_pipeline', + destination='duckdb', + dataset_name='stagetimer_migrations_data', + ) + # Load the data + load_info = pipeline.run(stagetimer_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from stagetimer_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Basic Controls: Includes endpoints for starting, stopping, and resetting timers. +- Viewer: Endpoints related to the viewer's interface for timers. +- Room Management: Endpoints for managing rooms and agendas. +- Logging: Endpoints to retrieve logs and status updates. + +You will then debug the Stagetimer pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Stagetimer support. + ```shell + dlt init dlthub:stagetimer_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Stagetimer API, as specified in @stagetimer_migrations-docs.yaml + Start with endpoints next and and skip incremental loading for now. + Place the code in stagetimer_migrations_pipeline.py and name the pipeline stagetimer_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python stagetimer_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is required for all API requests, using an API key either as a query parameter or as a bearer token in the Authorization header. + + To get the appropriate API keys, please visit the original source at https://stagetimer.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python stagetimer_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline stagetimer_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset stagetimer_migrations_data + The duckdb destination used duckdb:/stagetimer_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline stagetimer_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("stagetimer_migrations_pipeline").dataset() + # get ex table as Pandas frame + data.ex.df().head() + ``` + +## Running into errors? + +Ensure that the API key used is valid and not expired. The free version has limitations, such as a cap on messages per room. The desktop app can be used offline but requires a paid plan for API access. The service is designed to be browser-based, and some features may be limited based on user subscription level. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/stagetimer/stagetimer-docs.yaml b/stagetimer/stagetimer-docs.yaml new file mode 100644 index 00000000..d5a16acc --- /dev/null +++ b/stagetimer/stagetimer-docs.yaml @@ -0,0 +1,1661 @@ +resources: +- name: test_auth + endpoint: + path: /v1/test_auth + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_status + endpoint: + path: /v1/get_status + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_room + endpoint: + path: /v1/get_room + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_logs + endpoint: + path: /v1/get_logs + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start + endpoint: + path: /v1/start + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: stop + endpoint: + path: /v1/stop + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start_or_stop + endpoint: + path: /v1/start_or_stop + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: reset + endpoint: + path: /v1/reset + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: next + endpoint: + path: /v1/next + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: previous + endpoint: + path: /v1/previous + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: add_time + endpoint: + path: /v1/add_time + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: subtract_time + endpoint: + path: /v1/subtract_time + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: jump + endpoint: + path: /jump + method: GET + data_selector: data + params: + room_id: required + milliseconds: required +- name: start_flashing + endpoint: + path: /start_flashing + method: GET + data_selector: data + params: + room_id: required + count: optional +- name: stop_flashing + endpoint: + path: /stop_flashing + method: GET + data_selector: data + params: + room_id: required +- name: enable_blackout + endpoint: + path: /enable_blackout + method: GET + data_selector: data + params: + room_id: required +- name: disable_blackout + endpoint: + path: /disable_blackout + method: GET + data_selector: data + params: + room_id: required +- name: toggle_blackout + endpoint: + path: /toggle_blackout + method: GET + data_selector: data + params: + room_id: required +- name: enable_focus + endpoint: + path: /enable_focus + method: GET + data_selector: data + params: + room_id: required +- name: disable_focus + endpoint: + path: /disable_focus + method: GET + data_selector: data + params: + room_id: required +- name: toggle_focus + endpoint: + path: /toggle_focus + method: GET + data_selector: data + params: + room_id: required +- name: start_timer + endpoint: + path: /start_timer + method: GET + data_selector: data + params: + room_id: required + timer_id: optional + index: optional +- name: stop_timer + endpoint: + path: /stop_timer + method: GET + data_selector: data + params: + room_id: required + timer_id: optional + index: optional +- name: start_or_stop_timer + endpoint: + path: /start_or_stop_timer + method: GET + data_selector: data + params: + room_id: required + timer_id: optional + index: optional +- name: reset_timer + endpoint: + path: /reset_timer + method: GET + data_selector: data + params: + room_id: required + timer_id: optional + index: optional +- name: get_all_timers + endpoint: + path: /get_all_timers + method: GET + data_selector: data + params: + room_id: required +- name: get_timer + endpoint: + path: /get_timer + method: GET + data_selector: data + params: + room_id: required + timer_id: optional + index: optional +- name: create_timer + endpoint: + path: /create_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: update_timer + endpoint: + path: /update_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: delete_timer + endpoint: + path: /delete_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: show_message + endpoint: + path: /show_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: hide_message + endpoint: + path: /hide_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: toggle_message + endpoint: + path: /show_or_hide_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_all_messages + endpoint: + path: /get_all_messages + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_message + endpoint: + path: /get_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: create_message + endpoint: + path: /create_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: update_message + endpoint: + path: /update_message + method: GET + params: + room_id: required +- name: delete_message + endpoint: + path: /delete_message + method: GET + params: + room_id: required +- name: test_auth + endpoint: + path: /test_auth + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_status + endpoint: + path: /get_status + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_room + endpoint: + path: /get_room + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_logs + endpoint: + path: /get_logs + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start + endpoint: + path: /start + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: stop + endpoint: + path: /stop + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: reset + endpoint: + path: /reset + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: next + endpoint: + path: /next + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: previous + endpoint: + path: /previous + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: add_time + endpoint: + path: /add_time + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: subtract_time + endpoint: + path: /subtract_time + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: jump + endpoint: + path: /jump + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start_flashing + endpoint: + path: /start_flashing + method: GET + params: + room_id: '' + count: 3 +- name: stop_flashing + endpoint: + path: /stop_flashing + method: GET + params: + room_id: '' +- name: enable_blackout + endpoint: + path: /enable_blackout + method: GET + params: + room_id: '' +- name: disable_blackout + endpoint: + path: /disable_blackout + method: GET + params: + room_id: '' +- name: toggle_blackout + endpoint: + path: /toggle_blackout + method: GET + params: + room_id: '' +- name: enable_focus + endpoint: + path: /enable_focus + method: GET + params: + room_id: '' +- name: disable_focus + endpoint: + path: /disable_focus + method: GET + params: + room_id: '' +- name: toggle_focus + endpoint: + path: /toggle_focus + method: GET + params: + room_id: '' +- name: start_timer + endpoint: + path: /start_timer + method: GET + params: + room_id: '' + timer_id: '' + index: '' +- name: stop_timer + endpoint: + path: /stop_timer + method: GET + params: + room_id: '' + timer_id: '' + index: '' +- name: start_or_stop_timer + endpoint: + path: /start_or_stop_timer + method: GET + params: + room_id: '' + timer_id: '' + index: '' +- name: reset_timer + endpoint: + path: /reset_timer + method: GET + params: + room_id: '' + timer_id: '' + index: '' +- name: get_all_timers + endpoint: + path: /get_all_timers + method: GET + params: + room_id: '' +- name: get_timer + endpoint: + path: /get_timer + method: GET + params: + room_id: '' + timer_id: '' + index: '' +- name: create_timer + endpoint: + path: /create_timer + method: GET + params: + room_id: '' + name: Timer [n] + speaker: '' + notes: '' + labels: [] + appearance: COUNTDOWN + type: DURATION + hours: 0 + minutes: 10 + seconds: 0 + wrap_up_yellow: 60 + wrap_up_red: 15 + trigger: MANUAL + start_time: null + start_time_uses_date: false + finish_time: null + finish_time_uses_date: false +- name: update_timer + endpoint: + path: /update_timer + method: GET + params: + room_id: '' + timer_id: '' +- name: update_timer + endpoint: + path: /update_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: delete_timer + endpoint: + path: /delete_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: show_message + endpoint: + path: /show_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: hide_message + endpoint: + path: /hide_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: toggle_message + endpoint: + path: /show_or_hide_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_all_messages + endpoint: + path: /get_all_messages + method: GET + data_selector: data.messages + params: + room_id: YOUR_ROOM_ID +- name: get_message + endpoint: + path: /get_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: create_message + endpoint: + path: /create_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: update_message + endpoint: + path: /update_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: delete_message + endpoint: + path: /delete_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: playback_status + endpoint: + path: /v1/playback_status + method: GET + data_selector: _model + params: {} +- name: room + endpoint: + path: /v1/room + method: GET + data_selector: _model + params: {} +- name: message + endpoint: + path: /v1/message + method: GET + data_selector: _model + params: {} +- name: current_timer + endpoint: + path: /v1/current_timer + method: GET + data_selector: _model + params: {} +- name: next_timer + endpoint: + path: /v1/next_timer + method: GET + data_selector: _model + params: {} +- name: flash + endpoint: + path: /v1/flash + method: POST + data_selector: count + params: {} +- name: timers + endpoint: + path: /docs/api-v1/ + method: GET + data_selector: records +- name: timers + endpoint: + path: /api/v1/timers + method: GET + data_selector: timers +- name: messages + endpoint: + path: /api/v1/messages + method: GET + data_selector: messages +- name: test_auth + endpoint: + path: /v1/test_auth + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_status + endpoint: + path: /v1/get_status + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_room + endpoint: + path: /v1/get_room + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_logs + endpoint: + path: /v1/get_logs + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start + endpoint: + path: /v1/start + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: stop + endpoint: + path: /v1/stop + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start_or_stop + endpoint: + path: /v1/start_or_stop + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: reset + endpoint: + path: /v1/reset + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: next + endpoint: + path: /v1/next + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: previous + endpoint: + path: /v1/previous + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: add_time + endpoint: + path: /v1/add_time + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: subtract_time + endpoint: + path: /v1/subtract_time + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: jump + endpoint: + path: /jump + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID + milliseconds: 30000 +- name: start_flashing + endpoint: + path: /start_flashing + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: stop_flashing + endpoint: + path: /stop_flashing + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: enable_blackout + endpoint: + path: /enable_blackout + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: disable_blackout + endpoint: + path: /disable_blackout + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: toggle_blackout + endpoint: + path: /toggle_blackout + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: enable_focus + endpoint: + path: /enable_focus + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: disable_focus + endpoint: + path: /disable_focus + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: toggle_focus + endpoint: + path: /toggle_focus + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start_timer + endpoint: + path: /start_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: stop_timer + endpoint: + path: /stop_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start_or_stop_timer + endpoint: + path: /start_or_stop_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: reset_timer + endpoint: + path: /reset_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_all_timers + endpoint: + path: /get_all_timers + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_timer + endpoint: + path: /get_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: timer + endpoint: + path: /api/timer + method: POST + data_selector: timerData +- name: timer + endpoint: + path: /r/generate/ + method: GET + data_selector: timerData +- name: timers + endpoint: + path: /r/generate/ + method: GET + data_selector: '' + params: {} +- name: timer + endpoint: + path: /r/generate/ + method: GET + data_selector: timers + params: {} +- name: create_timer + endpoint: + path: /create_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: update_timer + endpoint: + path: /update_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: delete_timer + endpoint: + path: /delete_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: show_message + endpoint: + path: /show_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: hide_message + endpoint: + path: /hide_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: toggle_message + endpoint: + path: /show_or_hide_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_all_messages + endpoint: + path: /get_all_messages + method: GET + data_selector: data.messages + params: + room_id: YOUR_ROOM_ID +- name: get_message + endpoint: + path: /get_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: create_message + endpoint: + path: /create_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: update_message + endpoint: + path: /update_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: delete_message + endpoint: + path: /delete_message + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: timer + endpoint: + path: /r/generate/ + method: GET +- name: test_auth + endpoint: + path: /test_auth + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_status + endpoint: + path: /get_status + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_room + endpoint: + path: /get_room + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_logs + endpoint: + path: /get_logs + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start + endpoint: + path: /start + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: stop + endpoint: + path: /stop + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start_or_stop + endpoint: + path: /start_or_stop + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: reset + endpoint: + path: /reset + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: next + endpoint: + path: /next + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: previous + endpoint: + path: /previous + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: add_time + endpoint: + path: /add_time + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: subtract_time + endpoint: + path: /subtract_time + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: jump + endpoint: + path: /jump + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: timer + endpoint: + path: /go/5-minutes/ + method: GET + data_selector: timer_data +- name: timer + endpoint: + path: /r/generate + method: GET +- name: start_flashing + endpoint: + path: /start_flashing + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID + count: 3 +- name: stop_flashing + endpoint: + path: /stop_flashing + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: enable_blackout + endpoint: + path: /enable_blackout + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: disable_blackout + endpoint: + path: /disable_blackout + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: toggle_blackout + endpoint: + path: /toggle_blackout + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: enable_focus + endpoint: + path: /enable_focus + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: disable_focus + endpoint: + path: /disable_focus + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: toggle_focus + endpoint: + path: /toggle_focus + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start_timer + endpoint: + path: /start_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: stop_timer + endpoint: + path: /stop_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: start_or_stop_timer + endpoint: + path: /start_or_stop_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: reset_timer + endpoint: + path: /reset_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_all_timers + endpoint: + path: /get_all_timers + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: get_timer + endpoint: + path: /get_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: create_timer + endpoint: + path: /create_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: update_timer + endpoint: + path: /update_timer + method: GET + data_selector: data + params: + room_id: YOUR_ROOM_ID +- name: timer + endpoint: + path: /api/v1/timers + method: GET + data_selector: timers + params: {} +- name: rundown + endpoint: + path: /api/v1/rundown + method: GET + data_selector: rundown + params: {} +- name: messages + endpoint: + path: /api/v1/messages + method: POST + data_selector: message + params: {} +- name: delete_timer + endpoint: + path: /delete_timer + method: GET + params: + room_id: YOUR_ROOM_ID +- name: show_message + endpoint: + path: /show_message + method: GET + params: + room_id: YOUR_ROOM_ID +- name: hide_message + endpoint: + path: /hide_message + method: GET + params: + room_id: YOUR_ROOM_ID +- name: show_or_hide_message + endpoint: + path: /show_or_hide_message + method: GET + params: + room_id: YOUR_ROOM_ID +- name: get_all_messages + endpoint: + path: /get_all_messages + method: GET + params: + room_id: YOUR_ROOM_ID +- name: get_message + endpoint: + path: /get_message + method: GET + params: + room_id: YOUR_ROOM_ID +- name: create_message + endpoint: + path: /create_message + method: GET + params: + room_id: YOUR_ROOM_ID +- name: update_message + endpoint: + path: /update_message + method: GET + params: + room_id: YOUR_ROOM_ID +- name: delete_message + endpoint: + path: /delete_message + method: GET + params: + room_id: YOUR_ROOM_ID +- name: viewer + endpoint: + path: /docs/viewer/ + method: GET + data_selector: viewer_elements +- name: controller + endpoint: + path: /docs/controller/ + method: GET + data_selector: controller_elements +- name: agenda + endpoint: + path: /docs/agenda/ + method: GET + data_selector: agenda_elements +- name: moderator + endpoint: + path: /docs/moderator/ + method: GET + data_selector: moderator_elements +- name: operator + endpoint: + path: /docs/operator/ + method: GET + data_selector: operator_elements +- name: submit_questions + endpoint: + path: /docs/submit-questions/ + method: GET + data_selector: submit_questions_elements +- name: playback_status + endpoint: + path: /v1/status + method: GET + data_selector: playback_status +- name: room + endpoint: + path: /v1/room + method: GET + data_selector: room +- name: message + endpoint: + path: /v1/message + method: GET + data_selector: message +- name: current_timer + endpoint: + path: /v1/timer/current + method: GET + data_selector: current_timer +- name: next_timer + endpoint: + path: /v1/timer/next + method: GET + data_selector: next_timer +- name: flash + endpoint: + path: /v1/flash + method: POST + data_selector: flash +- name: OutputLinks + endpoint: + path: /docs/api-v1/ + method: GET +- name: timers + endpoint: + path: /api/timers + method: GET + data_selector: timers +- name: messages + endpoint: + path: /api/messages + method: GET + data_selector: messages +- name: controller + endpoint: + path: /docs/controller/ + method: GET + data_selector: data +- name: viewer + endpoint: + path: /docs/viewer/ + method: GET + data_selector: data +- name: agenda + endpoint: + path: /docs/agenda/ + method: GET + data_selector: data +- name: moderator + endpoint: + path: /docs/moderator/ + method: GET + data_selector: data +- name: messages + endpoint: + path: /docs/messages/ + method: GET + data_selector: data +- name: timers + endpoint: + path: /api/v1/timers + method: GET + data_selector: timers +- name: agenda + endpoint: + path: /api/v1/agenda + method: GET + data_selector: agenda_items + params: {} +- name: changelog + endpoint: + path: /changelog + method: GET + data_selector: updates + params: {} +- name: room + endpoint: + path: /v1/room + method: GET + data_selector: data +- name: message + endpoint: + path: /v1/message + method: POST + data_selector: data +- name: viewer + endpoint: + path: /r/{room_id} + method: GET + data_selector: data + params: + only: timer +- name: timer + endpoint: + path: /api/timer + method: GET + data_selector: timerData +- name: agenda + endpoint: + path: /api/agenda + method: GET + data_selector: agendaData +- name: viewer + endpoint: + path: /r/DEMO0001/ + method: GET + data_selector: iframe + params: {} +- name: agenda + endpoint: + path: /r/6PAH8ZNA/agenda/ + method: GET + data_selector: iframe + params: {} +- name: youtube + endpoint: + path: https://www.youtube.com/embed/jfKfPfyJRdk + method: GET + data_selector: iframe + params: {} +- name: timer + endpoint: + path: /r/generate/ + method: GET + data_selector: timerDetails + params: {} +- name: Controller + endpoint: + path: /docs/controller/ + method: GET +- name: Operator + endpoint: + path: /docs/operator/ + method: GET +- name: Viewer + endpoint: + path: /docs/viewer/ + method: GET +- name: timer + endpoint: + path: /r/generate/ + method: GET + data_selector: timers + params: {} +- name: 1-hour_timer + endpoint: + path: /go/1-hour/ + method: GET +- name: 0-54_timer + endpoint: + path: /go/54-minutes/ + method: GET +- name: 0-55_timer + endpoint: + path: /go/55-minutes/ + method: GET +- name: 0-56_timer + endpoint: + path: /go/56-minutes/ + method: GET +- name: 0-57_timer + endpoint: + path: /go/57-minutes/ + method: GET +- name: 0-58_timer + endpoint: + path: /go/58-minutes/ + method: GET +- name: 0-59_timer + endpoint: + path: /go/59-minutes/ + method: GET +- name: 1-hour-1-minute_timer + endpoint: + path: /go/1-hour-1-minute/ + method: GET +- name: 1-hour-2-minutes_timer + endpoint: + path: /go/1-hour-2-minutes/ + method: GET +- name: 1-hour-3-minutes_timer + endpoint: + path: /go/1-hour-3-minutes/ + method: GET +- name: 1-hour-4-minutes_timer + endpoint: + path: /go/1-hour-4-minutes/ + method: GET +- name: 1-hour-5-minutes_timer + endpoint: + path: /go/1-hour-5-minutes/ + method: GET +- name: 0-30_timer + endpoint: + path: /go/30-minutes/ + method: GET +- name: 0-35_timer + endpoint: + path: /go/35-minutes/ + method: GET +- name: 0-40_timer + endpoint: + path: /go/40-minutes/ + method: GET +- name: 0-45_timer + endpoint: + path: /go/45-minutes/ + method: GET +- name: 0-50_timer + endpoint: + path: /go/50-minutes/ + method: GET +- name: 1-hour-15-minutes_timer + endpoint: + path: /go/1-hour-15-minutes/ + method: GET +- name: 1-hour-30-minutes_timer + endpoint: + path: /go/1-hour-30-minutes/ + method: GET +- name: 1-hour-45-minutes_timer + endpoint: + path: /go/1-hour-45-minutes/ + method: GET +- name: 1-minute_timer + endpoint: + path: /go/1-minute/ + method: GET +- name: 2-minutes_timer + endpoint: + path: /go/2-minutes/ + method: GET +- name: 3-minutes_timer + endpoint: + path: /go/3-minutes/ + method: GET +- name: 4-minutes_timer + endpoint: + path: /go/4-minutes/ + method: GET +- name: 5-minutes_timer + endpoint: + path: /go/5-minutes/ + method: GET +- name: 10-minutes_timer + endpoint: + path: /go/10-minutes/ + method: GET +- name: clock + endpoint: + path: /go/clock/ + method: GET +- name: clock-24h-hh-mm + endpoint: + path: /go/clock-24h-hh-mm/ + method: GET +- name: clock-24h-hh-mm-ss + endpoint: + path: /go/clock-24h-hh-mm-ss/ + method: GET +- name: clock-12h-hh-mm + endpoint: + path: /go/clock-12h-hh-mm/ + method: GET +- name: clock-12h-hh-mm-ss + endpoint: + path: /go/clock-12h-hh-mm-ss/ + method: GET +- name: messages + endpoint: + path: /api/v1/messages + method: POST + data_selector: message +- name: viewer + endpoint: + path: /viewer + method: GET +- name: controller + endpoint: + path: /controller + method: GET +- name: agenda + endpoint: + path: /agenda + method: GET +- name: moderator + endpoint: + path: /moderator + method: GET +- name: operator + endpoint: + path: /operator + method: GET +- name: submit_questions + endpoint: + path: /submit-questions + method: POST +- name: license_key + endpoint: + path: /api/license_key + method: POST + data_selector: data + params: {} +- name: controller + endpoint: + path: /docs/controller/ + method: GET +- name: operator + endpoint: + path: /docs/operator/ + method: GET +- name: viewer + endpoint: + path: /docs/viewer/ + method: GET +- name: moderator + endpoint: + path: /docs/api-v1/ + method: GET + data_selector: records + params: {} +- name: viewer + endpoint: + path: /r/DEMOROOM/ + method: GET + data_selector: timer + params: {} +- name: embed + endpoint: + path: /r/DEMO0001/ + method: GET + data_selector: embed + params: {} +- name: dashboard + endpoint: + path: /r/DEMO0001/dashboard.html + method: GET + data_selector: dashboard + params: {} +- name: Output Links + endpoint: + path: /api/v1/output-links + method: GET + data_selector: outputs + params: {} +notes: +- All API requests must be authenticated and made over HTTPS. +- IDs are auto-generated for timers and messages. +- Socket.io endpoint lives under the '/v1/socket.io' path. +- Stagetimer can be used without internet via desktop app for Mac and Windows. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- API Access REST API v1 with websockets +- Authenticate by sending your API key using the api_key query parameter, or send + it as a 'bearer token' in the HTTP Authorization header. +- We do not sell your personal information or any data you enter into our Services + in any way. +- Works completely offline, no internet needed +- A free speaker timer that runs entirely in the browser. +- Any internet device can use it. +- Stagetimer is a remote-controlled countdown timer designed for event producers and + presenters. +- A free speaker timer that runs entirely in the browser. Any internet device can + use it. +- No credit card or signup required +- Runs entirely in the browser +- No signup required, works in any browser +- No downloads required. +- Can be used with any internet-connected device. +- Socket.io endpoint receives real-time push messages from the server. +- Free version allows all basic features including creating and running timers. +- Stagetimer runs in any modern web browser - Chrome, Firefox, Safari, or Edge. +- For networks with strict security policies, you can use our desktop app which creates + a local network that doesn't require internet access once set up. +- Browser-based timer that does not require login +- 'Free users: 3 messages per room' +- 'Pro and Premium users: Unlimited messages' +- The Stagetimer desktop app operates fully without an internet connection. +- Stagetimer can be used without internet via desktop app. +- Stagetimer likely works on older systems and browsers, but was not explicitly tested + on them. +- The Operator page is an experimental feature. +- The agenda page displays a dynamic agenda of the entire event. +- The agenda link can be shared with or without the notes. +- The free starter plan has all the essential features, including creating and running + timers, scheduling timers, and linking timers together. +- You need a Stagetimer account with a Pro or Premium plan to access the API. +- The submit question form is not protected against bots. +- It offers a sharable link feature and handles timezones automatically. +- Avoid Audio Echoes by not joining the audio twice from the same computer. +- No downloads, cables, or clock-watching +- Free version allows basic features including creating and running timers +- No credit card or signup required for free plan +- Uses iFrame to embed Stagetimer on a website. +- Free version allows access to basic features without signup. +- 'Unguessable URLs: Every link uses a unique signature that makes it impossible to + guess other output links.' +- 'Tamper-Proof: The signature prevents people from modifying link parameters.' +- No downloads required +- Stagetimer now has a desktop app for Mac and Windows. +- Cookies used for Marketing/Analytics purposes are strictly opt-in and are managed + through a cookie consent banner displayed on our website. +- While functional cookies are essential for certain aspects of the website to operate, + you have control over the use of marketing and analytics cookies. +- License keys can be moved between different computers and operating systems. +- Each license key can only be active on one machine at a time. +- 'New Feature: Output Links is our next-generation system for sharing Stagetimer + rooms.' +- Each output provides a different view designed for specific roles. +- Viewer link allows URL parameters like ?only=timer to isolate a specific element + of the viewer. +- The link can be shared via link or QR code. +- The moderator link allows access to the timer display, messages and a dynamic agenda + of the event. +- You need a Stagetimer account with a Pro or Premium plan to access the API, a prerequisite + for Companion integration. +- You need a paid Stagetimer account to use the API with the desktop app. All paid + plans include an offline license key. +- The transparent background option is the best and easiest way to overlay Stagetimer + in OBS, but it requires a Premium license. +- This integration adds real-time countdowns and time-based data to your vMix productions. +- 'Password Protection: Add an optional password for an extra layer of security that + you can change or remove anytime.' +- No download required +errors: +- '401 Unauthorized: Recheck API key or token expiration' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- Ensure the URL for the viewer is correctly formatted. +- 'This site can’t be reached: Check the URL and ensure the app is using the correct + network IP address.' +auth_info: + mentioned_objects: [] +client: + base_url: https://stagetimer.io + headers: + Accept: application/json +source_metadata: null diff --git a/stamus_networks/stamus-networks-docs.md b/stamus_networks/stamus-networks-docs.md new file mode 100644 index 00000000..7aee70c4 --- /dev/null +++ b/stamus_networks/stamus-networks-docs.md @@ -0,0 +1,168 @@ +In this guide, we'll set up a complete Stamus Security Platform data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def stamus_security_platform_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https:///rest/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + ike,,dns,,logs + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='stamus_security_platform_migrations_pipeline', + destination='duckdb', + dataset_name='stamus_security_platform_migrations_data', + ) + # Load the data + load_info = pipeline.run(stamus_security_platform_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from stamus_security_platform_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- ike: Configuration and management for IKE protocols. +- dns: DNS events logging and management. +- rfb: RFB (Remote Frame Buffer) connection management. +- smb: SMB (Server Message Block) events handling. +- rdp: Remote Desktop Protocol events monitoring. +- tls: TLS (Transport Layer Security) monitoring and configuration. +- ftp: FTP (File Transfer Protocol) events management. +- map: Network mapping functionalities. +- nfs: NFS (Network File System) event handling. +- ssh: SSH (Secure Shell) connection management. +- sip: SIP (Session Initiation Protocol) events handling. +- smtp: SMTP (Simple Mail Transfer Protocol) events management. +- flow: Network flow event monitoring. +- tftp: TFTP (Trivial File Transfer Protocol) management. +- http: HTTP (HyperText Transfer Protocol) events handling. +- snmp: SNMP (Simple Network Management Protocol) event logging. +- mqtt: MQTT (Message Queuing Telemetry Transport) events management. +- logs: General logging functionality. +- krb5: Kerberos 5 protocol management. +- http2: HTTP/2 events monitoring. + +You will then debug the Stamus Security Platform pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Stamus Security Platform support. + ```shell + dlt init dlthub:stamus_security_platform_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Stamus Security Platform API, as specified in @stamus_security_platform_migrations-docs.yaml + Start with endpoints ike and and skip incremental loading for now. + Place the code in stamus_security_platform_migrations_pipeline.py and name the pipeline stamus_security_platform_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python stamus_security_platform_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is done using a token-based system. The access token must be included in the HTTP header as 'Authorization: Token '. The token is generated via an SSH command. + + To get the appropriate API keys, please visit the original source at https://www.stamus-networks.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python stamus_security_platform_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline stamus_security_platform_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset stamus_security_platform_migrations_data + The duckdb destination used duckdb:/stamus_security_platform_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline stamus_security_platform_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("stamus_security_platform_migrations_pipeline").dataset() + # get k table as Pandas frame + data.k.df().head() + ``` + +## Running into errors? + +When using the API, ensure that the Access Token is valid and not expired. If multi-tenancy is enabled, the correct tenant ID must be included in requests. Be cautious of throttling limits; excessive requests may result in '429 Too Many Requests' errors. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/stamus_networks/stamus-networks-docs.yaml b/stamus_networks/stamus-networks-docs.yaml new file mode 100644 index 00000000..6b794ca3 --- /dev/null +++ b/stamus_networks/stamus-networks-docs.yaml @@ -0,0 +1,5753 @@ +resources: +- name: appliances_host_id + endpoint: + path: /rest/appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: Custom Source + endpoint: + path: /sources/custom + method: POST + data_selector: source + params: {} +- name: Sales Trial License + endpoint: + path: /sales-trial-license + method: GET + data_selector: license_info + params: {} +- name: Installing License + endpoint: + path: /installing-license + method: GET + data_selector: installation_guide + params: {} +- name: probe_management + endpoint: + path: /probe_management + method: GET + data_selector: probes +- name: systems_license + endpoint: + path: /systems_license + method: POST + data_selector: license_info +- name: Multi Tenancy + endpoint: + path: /api/multi-tenancy + method: GET + data_selector: tenants + params: {} +- name: Chained SCS Tenancy + endpoint: + path: /api/chained-scs-tenancy + method: GET + data_selector: chainedTenancy + params: {} +- name: host_id + endpoint: + path: /rest/appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: host_insights + endpoint: + path: /host_insights + method: GET + data_selector: records + params: {} +- name: error + endpoint: + path: /stats/app_layer/error + method: GET + data_selector: records +- name: expectations + endpoint: + path: /stats/app_layer/expectations + method: GET + data_selector: records +- name: flow + endpoint: + path: /stats/app_layer/flow + method: GET + data_selector: records +- name: tx + endpoint: + path: /stats/app_layer/tx + method: GET + data_selector: records +- name: decoder + endpoint: + path: /stats/decoder + method: GET + data_selector: records +- name: ssh + endpoint: + path: /ssh + method: GET + data_selector: ssh + params: {} +- name: tftp + endpoint: + path: /tftp + method: GET + data_selector: tftp + params: {} +- name: tls + endpoint: + path: /tls + method: GET + data_selector: tls + params: {} +- name: event + endpoint: + path: /api/events + method: GET + data_selector: events +- name: http + endpoint: + path: /api/http + method: GET + data_selector: http +- name: dns + endpoint: + path: /api/dns + method: GET + data_selector: dns +- name: ike + endpoint: + path: /ike + method: GET + data_selector: ike + params: {} +- name: smb_events + endpoint: + path: /smb/events + method: GET + data_selector: smb + params: {} +- name: rfb + endpoint: + path: /rfb + method: GET + data_selector: rfb + params: {} +- name: mqtt + endpoint: + path: /mqtt + method: GET + data_selector: mqtt + params: {} +- name: http2 + endpoint: + path: /http2 + method: GET + data_selector: http2 + params: {} +- name: host_id + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: appliances_host_id + endpoint: + path: /rest/appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: stamus_probe + endpoint: + path: /rest/appliances/stamus_probe/ + method: GET + data_selector: '' + params: {} +- name: stamus_probe_template + endpoint: + path: /rest/appliances/stamus_probe_template/ + method: GET + data_selector: '' + params: {} +- name: suricata_probe + endpoint: + path: /rest/appliances/suricata_probe/ + method: GET + data_selector: '' + params: {} +- name: appliances + endpoint: + path: /rest/appliances/appliances/ + method: GET + data_selector: '' + params: {} +- name: stamus_device + endpoint: + path: /rest/appliances/stamus_device/ + method: GET + data_selector: '' + params: {} +- name: host_id + endpoint: + path: /rest/appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: appliances + endpoint: + path: /rest/appliances/ + method: GET + data_selector: '' +- name: host_id + endpoint: + path: /rest/appliances/host_id/ + method: GET + data_selector: '' +- name: host_id + endpoint: + path: /appliances/host_id/ + method: GET +- name: beacon_metric + endpoint: + path: /beacon_metric + method: GET + data_selector: records +- name: sightings + endpoint: + path: /sightings + method: GET + data_selector: records +- name: newly_registered_domains + endpoint: + path: /api/nrd + method: GET + data_selector: data + params: {} +- name: cipher_analytics + endpoint: + path: /tls/cipher/analytics + method: GET + data_selector: cipher_security, cipher_suite + params: {} +- name: ja4_analytics + endpoint: + path: /tls/ja4/analytics + method: GET + data_selector: ja4.hash, ja4.agent + params: {} +- name: alpn_analytics + endpoint: + path: /tls/alpn/analytics + method: GET + data_selector: alpn_tc, alpn_ts + params: {} +- name: Newly Registered Domains + endpoint: + path: /api/nrd + method: GET + data_selector: domains +- name: TLS + endpoint: + path: /logs/tls + method: GET + data_selector: tls_logs +- name: Flow + endpoint: + path: /logs/flow + method: GET + data_selector: flow_logs +- name: SSH + endpoint: + path: /logs/ssh + method: GET + data_selector: ssh_logs +- name: RDP + endpoint: + path: /logs/rdp + method: GET + data_selector: rdp_logs +- name: IKE + endpoint: + path: /logs/ike + method: GET + data_selector: ike_logs +- name: tls_logs + endpoint: + path: /tls/logs + method: GET + data_selector: fields +- name: flow_logs + endpoint: + path: /flow/logs + method: GET + data_selector: fields +- name: ssh_logs + endpoint: + path: /ssh/logs + method: GET + data_selector: fields +- name: rdp_logs + endpoint: + path: /rdp/logs + method: GET + data_selector: fields +- name: ike_logs + endpoint: + path: /ike/logs + method: GET + data_selector: fields +- name: krb5_fields + endpoint: + data_selector: fields +- name: rule_filter + endpoint: + path: /rest/rules/processing-filter/9/ + method: GET + data_selector: filter_defs + params: {} +- name: TLS Anomalies + endpoint: + path: /tls/anomalies + method: GET + data_selector: events +- name: IKE Anomalies + endpoint: + path: /ike/anomalies + method: GET + data_selector: events +- name: SSH Anomalies + endpoint: + path: /ssh/anomalies + method: GET + data_selector: events +- name: Kerberos Anomalies + endpoint: + path: /kerberos/anomalies + method: GET + data_selector: events +- name: QUIC Anomalies + endpoint: + path: /quic/anomalies + method: GET + data_selector: events +- name: DNS over HTTPS + endpoint: + path: /doh/anomalies + method: GET + data_selector: events +- name: TOR Detection + endpoint: + path: /tor/anomalies + method: GET + data_selector: events +- name: File Sharing Services + endpoint: + path: /file-sharing/anomalies + method: GET + data_selector: events +- name: Malicious TLS Communications + endpoint: + path: /malicious-tls + method: GET + data_selector: events +- name: hunting_filters + endpoint: + path: /hunting/filters + method: GET + data_selector: filters + params: {} +- name: hosts + endpoint: + path: /hosts + method: GET + data_selector: observed_hosts + params: {} +- name: filter_sets + endpoint: + path: /filter_sets + method: POST + data_selector: created_filter_set + params: {} +- name: rule_filter + endpoint: + path: /rest/rules/processing-filter/9/ + method: GET +- name: predefined_hunting_filters + endpoint: + path: /hunting/filters/predefined + method: GET + data_selector: filters +- name: user_defined_filters + endpoint: + path: /hunting/filters/user_defined + method: GET + data_selector: filters +- name: detection_methods + endpoint: + path: /hunting/detection_methods + method: GET + data_selector: methods +- name: hosts + endpoint: + path: /hosts + method: GET + data_selector: records +- name: services + endpoint: + path: /hosts/services + method: GET + data_selector: records +- name: probe_settings + endpoint: + path: /nsm/settings/probes + method: GET + data_selector: probes +- name: rule_activity + endpoint: + path: /nsm/rules/activity + method: GET + data_selector: rules_activity +- name: Coverage + endpoint: + path: /api/v1/coverage + method: GET + data_selector: threats + params: {} +- name: Threat Family + endpoint: + path: /api/v1/threat_family + method: GET + data_selector: threats + params: {} +- name: Threat + endpoint: + path: /api/v1/threat + method: GET + data_selector: threat_details + params: {} +- name: alert + endpoint: + path: /rest/rules/es/alerts_tail/ + method: GET + data_selector: results + params: + qfilter: alert.signature_id%3A{signature_id} AND flow_id%3A{flow_id} +- name: upload_pcap + endpoint: + path: /rest/rules/filestore_pcap/upload/ + method: POST + data_selector: filename + params: + host: +- name: extract_pcap + endpoint: + path: /rest/rules/filestore_pcap//extract_pcap/ + method: POST + data_selector: '' + params: + host: +- name: retrieve_pcap + endpoint: + path: /rest/rules/filestore_pcap//retrieve/ + method: GET + data_selector: '' + params: + host: +- name: download_pcap + endpoint: + path: /rest/rules/filestore_pcap//download/ + method: GET + data_selector: '' + params: {} +- name: alerts + endpoint: + path: /rules/es/alerts_tail/ + method: GET + data_selector: results + params: + qfilter: alert.signature_id%3A{signature_id} AND flow_id%3A{flow_id} +- name: upload_pcap + endpoint: + path: /rules/filestore_pcap/upload/ + method: POST + data_selector: filename + params: + host: +- name: extract_pcap + endpoint: + path: /rules/filestore_pcap//extract_pcap/ + method: POST + data_selector: '' + params: + host: +- name: retrieve_pcap + endpoint: + path: /rules/filestore_pcap//retrieve/ + method: GET + data_selector: '' + params: + host: +- name: download_pcap + endpoint: + path: /rules/filestore_pcap//download/ + method: GET + data_selector: '' + params: {} +- name: templates + endpoint: + path: /appliances/templates + method: GET + data_selector: templates + params: {} +- name: custom_source + endpoint: + path: /sources + method: POST + data_selector: sources + params: {} +- name: ruleset_update + endpoint: + path: /rulesets + method: PUT + data_selector: rulesets + params: {} +- name: Threat Intel Source for Datasets + endpoint: + path: /add/threat-intel-source + method: POST + data_selector: results + params: {} +- name: Single Custom Source + endpoint: + path: /add/custom-source + method: POST + data_selector: results + params: {} +- name: Dedicated Custom Sources + endpoint: + path: /add/dedicated-custom-source + method: POST + data_selector: results + params: {} +- name: Suppression and Thresholding + endpoint: + path: /suppress-threshold + method: POST + data_selector: results + params: {} +- name: Pass on Sightings and Beaconing + endpoint: + path: /pass-sightings + method: POST + data_selector: results + params: {} +- name: Rule Transformations + endpoint: + path: /transform/rules + method: POST + data_selector: results + params: {} +- name: Custom Suricata keywords + endpoint: + path: /custom-keywords + method: GET + data_selector: results + params: {} +- name: suricata_sensor_registration + endpoint: + path: /api/suricata/sensors/register + method: POST + data_selector: registration_data + params: {} +- name: log_shipping + endpoint: + path: /api/suricata/sensors/logs + method: POST + data_selector: log_data + params: {} +- name: Known Bad IPs + endpoint: + path: /Sources/Add_custom_source + method: POST + data_selector: custom_sources + params: + datatype: Signatures files in tar archive +- name: Probe Management + endpoint: + path: /probe-management + method: GET + data_selector: probes + params: {} +- name: Systems license + endpoint: + path: /systems-license + method: GET + data_selector: license_info + params: {} +- name: Stamus Networks Probe + endpoint: + path: /path/to/probe + method: POST + data_selector: data + params: {} +- name: Stamus Central Server + endpoint: + path: /path/to/server + method: POST + data_selector: data + params: {} +- name: troubleshoot_steps_probe + endpoint: + path: /rest/appliances/appliance//troubleshoot_steps/ + method: GET + data_selector: results +- name: troubleshoot_steps_scs + endpoint: + path: /rest/appliances/troubleshoot/steps/ + method: GET + data_selector: results +- name: troubleshoot_probe + endpoint: + path: /rest/appliances/appliance//troubleshoot/ + method: GET + data_selector: status +- name: troubleshoot_scs + endpoint: + path: /rest/appliances/troubleshoot/ + method: GET + data_selector: status +- name: USB Stick Procedure + endpoint: + path: /usb-installation/usb-stick-procedure + method: GET + data_selector: procedure_steps + params: {} +- name: RAID-on-a-Chip Procedure + endpoint: + path: /usb-installation/raid-on-a-chip-procedure + method: GET + data_selector: procedure_steps + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: events_tail + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: alerts_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: troubleshoot_steps_probe + endpoint: + path: /rest/appliances/appliance//troubleshoot_steps/ + method: GET + data_selector: results + params: {} +- name: troubleshoot_steps_scs + endpoint: + path: /rest/appliances/troubleshoot/steps/ + method: GET + data_selector: results + params: {} +- name: troubleshoot_probe + endpoint: + path: /rest/appliances/appliance//troubleshoot/ + method: GET + data_selector: results + params: {} +- name: troubleshoot_scs + endpoint: + path: /rest/appliances/troubleshoot/ + method: GET + data_selector: results + params: {} +- name: host_insights_all + endpoint: + path: /appliances/host_id/ + method: GET + params: {} +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET + params: {} +- name: host_insights_ip + endpoint: + path: /appliances/host_id/{ip} + method: GET + params: {} +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data + params: {} +- name: ip + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: response_data + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: records +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: records +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: records +- name: events_tail + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: records +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: '' + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: '' + params: {} +- name: alerts_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: '' + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: records +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: records +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: records +- name: alerts_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: records +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + params: {} +- name: alerted_host_insights + endpoint: + path: /appliances/host_id_alerts/ + method: GET + params: {} +- name: specific_host_insights + endpoint: + path: /appliances/host_id/{ip} + method: GET + params: {} +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + params: + field: alert.metadata.affected_product +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET +- name: host_insights_all + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: response_data + params: {} +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: response_data + params: {} +- name: host_insights_ip + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: response_data + params: {} +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: response_data + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: '' + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: events_tail + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: all_hosts + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: alerted_hosts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: '' + params: {} +- name: host_ip + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: '' + params: {} +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: results + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: response_data +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: response_data +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: response_data +- name: alert_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data +- name: metadata + endpoint: + path: /alerts/metadata + method: GET +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: alerts_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: alert_category + endpoint: + path: /hunting/dashboards(alert.category) + method: GET + data_selector: records + params: {} +- name: alert_severity + endpoint: + path: /hunting/dashboards(alert.severity) + method: GET + data_selector: records + params: {} +- name: alert_metadata_signature_severity + endpoint: + path: /hunting/dashboards(alert.metadata.signature_severity) + method: GET + data_selector: records + params: {} +- name: alert_metadata_attack_target + endpoint: + path: /hunting/dashboards(alert.metadata.attack_target) + method: GET + data_selector: records + params: {} +- name: alert_metadata_affected_product + endpoint: + path: /hunting/dashboards(alert.metadata.affected_product) + method: GET + data_selector: records + params: {} +- name: alert_metadata_malware_family + endpoint: + path: /hunting/dashboards(alert.metadata.malware_family) + method: GET + data_selector: records + params: {} +- name: alert_metadata_mitre_tactic_id + endpoint: + path: /hunting/dashboards(alert.metadata.mitre_tactic_id) + method: GET + data_selector: records + params: {} +- name: alert_metadata_mitre_tactic_name + endpoint: + path: /hunting/dashboards(alert.metadata.mitre_tactic_name) + method: GET + data_selector: records + params: {} +- name: alert_metadata_mitre_technique_id + endpoint: + path: /hunting/dashboards(alert.metadata.mitre_technique_id) + method: GET + data_selector: records + params: {} +- name: alert_metadata_mitre_technique_name + endpoint: + path: /hunting/dashboards(alert.metadata.mitre_technique_name) + method: GET + data_selector: records + params: {} +- name: alert_source_ip + endpoint: + path: /hunting/dashboards(alert.source.ip) + method: GET + data_selector: records + params: {} +- name: alert_target_ip + endpoint: + path: /hunting/dashboards(alert.target.ip) + method: GET + data_selector: records + params: {} +- name: hostname_info_subdomain + endpoint: + path: /hunting/dashboards(hostname_info.subdomain) + method: GET + data_selector: records + params: {} +- name: hostname_info_domain + endpoint: + path: /hunting/dashboards(hostname_info.domain) + method: GET + data_selector: records + params: {} +- name: hostname_info_tld + endpoint: + path: /hunting/dashboards(hostname_info.tld) + method: GET + data_selector: records + params: {} +- name: hostname_info_domain_without_tld + endpoint: + path: /hunting/dashboards(hostname_info.domain_without_tld) + method: GET + data_selector: records + params: {} +- name: hostname_info_host + endpoint: + path: /hunting/dashboards(hostname_info.host) + method: GET + data_selector: records + params: {} +- name: geoip_country_name + endpoint: + path: /hunting/dashboards(geoip.country_name) + method: GET + data_selector: records + params: {} +- name: geoip_city_name + endpoint: + path: /hunting/dashboards(geoip.city_name) + method: GET + data_selector: records + params: {} +- name: alert_lateral + endpoint: + path: /hunting/dashboards(alert.lateral) + method: GET + data_selector: records + params: {} +- name: alert_source_net_info_agg + endpoint: + path: /hunting/dashboards(alert.source.net_info_agg) + method: GET + data_selector: records + params: {} +- name: alert_target_net_info_agg + endpoint: + path: /hunting/dashboards(alert.target.net_info_agg) + method: GET + data_selector: records + params: {} +- name: fqdn_src + endpoint: + path: /hunting/dashboards(fqdn.src) + method: GET + data_selector: records + params: {} +- name: fqdn_dest + endpoint: + path: /hunting/dashboards(fqdn.dest) + method: GET + data_selector: records + params: {} +- name: geoip_provider_autonomous_system_number + endpoint: + path: /hunting/dashboards(geoip.provider.autonomous_system_number) + method: GET + data_selector: records + params: {} +- name: geoip_provider_autonomous_system_organization + endpoint: + path: /hunting/dashboards(geoip.provider.autonomous_system_organization) + method: GET + data_selector: records + params: {} +- name: src_ip + endpoint: + path: /hunting/dashboards(src_ip) + method: GET + data_selector: records + params: {} +- name: dest_ip + endpoint: + path: /hunting/dashboards(dest_ip) + method: GET + data_selector: records + params: {} +- name: src_port + endpoint: + path: /hunting/dashboards(src_port) + method: GET + data_selector: records + params: {} +- name: dest_port + endpoint: + path: /hunting/dashboards(dest_port) + method: GET + data_selector: records + params: {} +- name: vlan + endpoint: + path: /hunting/dashboards(vlan) + method: GET + data_selector: records + params: {} +- name: tunnel_src_ip + endpoint: + path: /hunting/dashboards(tunnel.src_ip) + method: GET + data_selector: records + params: {} +- name: tunnel_dest_ip + endpoint: + path: /hunting/dashboards(tunnel.dest_ip) + method: GET + data_selector: records + params: {} +- name: tunnel_proto + endpoint: + path: /hunting/dashboards(tunnel.proto) + method: GET + data_selector: records + params: {} +- name: tunnel_depth + endpoint: + path: /hunting/dashboards(tunnel.depth) + method: GET + data_selector: records + params: {} +- name: http_hostname + endpoint: + path: /hunting/dashboards(http.hostname) + method: GET + data_selector: records + params: {} +- name: http_url + endpoint: + path: /hunting/dashboards(http.url) + method: GET + data_selector: records + params: {} +- name: http_status + endpoint: + path: /hunting/dashboards(http.status) + method: GET + data_selector: records + params: {} +- name: http_http_user_agent + endpoint: + path: /hunting/dashboards(http.http_user_agent) + method: GET + data_selector: records + params: {} +- name: http_http_refer + endpoint: + path: /hunting/dashboards(http.http_refer) + method: GET + data_selector: records + params: {} +- name: http_http_refer_info_subdomain + endpoint: + path: /hunting/dashboards(http.http_refer_info.subdomain) + method: GET + data_selector: records + params: {} +- name: http_http_refer_info_resource_path + endpoint: + path: /hunting/dashboards(http.http_refer_info.resource_path) + method: GET + data_selector: records + params: {} +- name: http_http_refer_info_domain + endpoint: + path: /hunting/dashboards(http.http_refer_info.domain) + method: GET + data_selector: records + params: {} +- name: http_http_refer_info_scheme + endpoint: + path: /hunting/dashboards(http.http_refer_info.scheme) + method: GET + data_selector: records + params: {} +- name: http_http_refer_info_tld + endpoint: + path: /hunting/dashboards(http.http_refer_info.tld) + method: GET + data_selector: records + params: {} +- name: http_http_refer_info_domain_without_tld + endpoint: + path: /hunting/dashboards(http.http_refer_info.domain_without_tld) + method: GET + data_selector: records + params: {} +- name: dns_query_rrname + endpoint: + path: /hunting/dashboards(dns.query.rrname) + method: GET + data_selector: records + params: {} +- name: dns_query_rrtype + endpoint: + path: /hunting/dashboards(dns.query.rrtype) + method: GET + data_selector: records + params: {} +- name: tls_sni + endpoint: + path: /hunting/dashboards(tls.sni) + method: GET + data_selector: records + params: {} +- name: tls_subject + endpoint: + path: /hunting/dashboards(tls.subject) + method: GET + data_selector: records + params: {} +- name: tls_issuerdn + endpoint: + path: /hunting/dashboards(tls.issuerdn) + method: GET + data_selector: records + params: {} +- name: tls_fingerprint + endpoint: + path: /hunting/dashboards(tls.fingerprint) + method: GET + data_selector: records + params: {} +- name: tls_ja3_hash + endpoint: + path: /hunting/dashboards(tls.ja3.hash) + method: GET + data_selector: records + params: {} +- name: tls_ja3_agent + endpoint: + path: /hunting/dashboards(tls.ja3.agent) + method: GET + data_selector: records + params: {} +- name: tls_ja3s_hash + endpoint: + path: /hunting/dashboards(tls.ja3s.hash) + method: GET + data_selector: records + params: {} +- name: tls_cipher_suite + endpoint: + path: /hunting/dashboards(tls.cipher_suite) + method: GET + data_selector: records + params: {} +- name: tls_cipher_security + endpoint: + path: /hunting/dashboards(tls.cipher_security) + method: GET + data_selector: records + params: {} +- name: smtp_mail_from + endpoint: + path: /hunting/dashboards(smtp.mail_from) + method: GET + data_selector: records + params: {} +- name: smtp_rcpt_to + endpoint: + path: /hunting/dashboards(smtp.rcpt_to) + method: GET + data_selector: records + params: {} +- name: smtp_helo + endpoint: + path: /hunting/dashboards(smtp.helo) + method: GET + data_selector: records + params: {} +- name: smb_command + endpoint: + path: /hunting/dashboards(smb.command) + method: GET + data_selector: records + params: {} +- name: smb_status + endpoint: + path: /hunting/dashboards(smb.status) + method: GET + data_selector: records + params: {} +- name: smb_filename + endpoint: + path: /hunting/dashboards(smb.filename) + method: GET + data_selector: records + params: {} +- name: smb_share + endpoint: + path: /hunting/dashboards(smb.share) + method: GET + data_selector: records + params: {} +- name: smb_dcerpc_interface_name + endpoint: + path: /hunting/dashboards(smb.dcerpc.interface.name) + method: GET + data_selector: records + params: {} +- name: smb_dcerpc_endpoint + endpoint: + path: /hunting/dashboards(smb.dcerpc.endpoint) + method: GET + data_selector: records + params: {} +- name: ssh_client_software_version + endpoint: + path: /hunting/dashboards(ssh.client.software_version) + method: GET + data_selector: records + params: {} +- name: ssh_server_software_version + endpoint: + path: /hunting/dashboards(ssh.server.software_version) + method: GET + data_selector: records + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + params: {} +- name: host_insights_all + endpoint: + path: /appliances/host_id/ + method: GET +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET +- name: host_insights_ip + endpoint: + path: /appliances/host_id/{ip} + method: GET +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: events_tail + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data +- name: nsm_events + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data +- name: alert_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: records + params: {} +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: records + params: {} +- name: host_insights_ip + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: records + params: {} +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: '' + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: '' + params: {} +- name: alerts_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: '' + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET +- name: host_insights_ip + endpoint: + path: /appliances/host_id/{ip} + method: GET +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: events_tail + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: response_data + params: {} +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: response_data + params: {} +- name: host_insights_ip + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: response_data + params: {} +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + params: {} +- name: alert_category + endpoint: + path: hunting.dashboards(dashboard="alert.category", alert=True, discovery=False) + method: GET +- name: alert_severity + endpoint: + path: hunting.dashboards(dashboard="alert.severity", alert=False, discovery=True) + method: GET +- name: alert_metadata_signature_severity + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.signature_severity", alert=True, + discovery=True) + method: GET +- name: alert_metadata_attack_target + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.attack_target", alert=True, + discovery=True) + method: GET +- name: alert_metadata_affected_product + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.affected_product", alert=True, + discovery=True) + method: GET +- name: alert_metadata_malware_family + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.malware_family", alert=True, + discovery=True) + method: GET +- name: alert_metadata_mitre_tactic_id + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.mitre_tactic_id", alert=True, + discovery=False) + method: GET +- name: alert_metadata_mitre_tactic_name + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.mitre_tactic_name", alert=True, + discovery=False) + method: GET +- name: alert_metadata_mitre_technique_id + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.mitre_technique_id", alert=True, + discovery=False) + method: GET +- name: alert_metadata_mitre_technique_name + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.mitre_technique_name", alert=True, + discovery=False) + method: GET +- name: alert_source_ip + endpoint: + path: hunting.dashboards(dashboard="alert.source.ip", alert=True, discovery=False) + method: GET +- name: alert_target_ip + endpoint: + path: hunting.dashboards(dashboard="alert.target.ip", alert=True, discovery=False) + method: GET +- name: hostname_info_subdomain + endpoint: + path: hunting.dashboards(dashboard="hostname_info.subdomain", alert=True, discovery=False) + method: GET +- name: hostname_info_domain + endpoint: + path: hunting.dashboards(dashboard="hostname_info.domain", alert=True, discovery=False) + method: GET +- name: hostname_info_tld + endpoint: + path: hunting.dashboards(dashboard="hostname_info.tld", alert=True, discovery=False) + method: GET +- name: hostname_info_domain_without_tld + endpoint: + path: hunting.dashboards(dashboard="hostname_info.domain_without_tld", alert=True, + discovery=False) + method: GET +- name: hostname_info_host + endpoint: + path: hunting.dashboards(dashboard="hostname_info.host", alert=True, discovery=False) + method: GET +- name: geoip_country_name + endpoint: + path: hunting.dashboards(dashboard="geoip.country_name", alert=True, discovery=False) + method: GET +- name: geoip_city_name + endpoint: + path: hunting.dashboards(dashboard="geoip.city_name", alert=True, discovery=False) + method: GET +- name: alert_lateral + endpoint: + path: hunting.dashboards(dashboard="alert.lateral", alert=True, discovery=False) + method: GET +- name: alert_source_net_info_agg + endpoint: + path: hunting.dashboards(dashboard="alert.source.net_info_agg", alert=True, discovery=False) + method: GET +- name: alert_target_net_info_agg + endpoint: + path: hunting.dashboards(dashboard="alert.target.net_info_agg", alert=True, discovery=False) + method: GET +- name: fqdn_src + endpoint: + path: hunting.dashboards(dashboard="fqdn.src", alert=True, discovery=False) + method: GET +- name: fqdn_dest + endpoint: + path: hunting.dashboards(dashboard="fqdn.dest", alert=True, discovery=False) + method: GET +- name: geoip_provider_autonomous_system_number + endpoint: + path: hunting.dashboards(dashboard="geoip.provider.autonomous_system_number", + alert=True, discovery=False) + method: GET +- name: geoip_provider_autonomous_system_organization + endpoint: + path: hunting.dashboards(dashboard="geoip.provider.autonomous_system_organization", + alert=True, discovery=False) + method: GET +- name: src_ip + endpoint: + path: hunting.dashboards(dashboard="src_ip", alert=True, discovery=False) + method: GET +- name: dest_ip + endpoint: + path: hunting.dashboards(dashboard="dest_ip", alert=True, discovery=False) + method: GET +- name: src_port + endpoint: + path: hunting.dashboards(dashboard="src_port", alert=True, discovery=False) + method: GET +- name: dest_port + endpoint: + path: hunting.dashboards(dashboard="dest_port", alert=True, discovery=False) + method: GET +- name: vlan + endpoint: + path: hunting.dashboards(dashboard="vlan", alert=True, discovery=False) + method: GET +- name: tunnel_src_ip + endpoint: + path: hunting.dashboards(dashboard="tunnel.src_ip", alert=True, discovery=False) + method: GET +- name: tunnel_dest_ip + endpoint: + path: hunting.dashboards(dashboard="tunnel.dest_ip", alert=True, discovery=False) + method: GET +- name: tunnel_proto + endpoint: + path: hunting.dashboards(dashboard="tunnel.proto", alert=True, discovery=False) + method: GET +- name: tunnel_depth + endpoint: + path: hunting.dashboards(dashboard="tunnel.depth", alert=True, discovery=False) + method: GET +- name: http_hostname + endpoint: + path: hunting.dashboards(dashboard="http.hostname", alert=True, discovery=False) + method: GET +- name: http_url + endpoint: + path: hunting.dashboards(dashboard="http.url", alert=True, discovery=False) + method: GET +- name: http_status + endpoint: + path: hunting.dashboards(dashboard="http.status", alert=True, discovery=False) + method: GET +- name: http_http_user_agent + endpoint: + path: hunting.dashboards(dashboard="http.http_user_agent", alert=True, discovery=False) + method: GET +- name: http_http_refer + endpoint: + path: hunting.dashboards(dashboard="http.http_refer", alert=True, discovery=False) + method: GET +- name: http_http_refer_info_subdomain + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.subdomain", alert=True, + discovery=False) + method: GET +- name: http_http_refer_info_resource_path + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.resource_path", alert=True, + discovery=False) + method: GET +- name: http_http_refer_info_domain + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.domain", alert=True, + discovery=False) + method: GET +- name: http_http_refer_info_scheme + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.scheme", alert=True, + discovery=False) + method: GET +- name: http_http_refer_info_tld + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.tld", alert=True, discovery=False) + method: GET +- name: http_http_refer_info_domain_without_tld + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.domain_without_tld", + alert=True, discovery=False) + method: GET +- name: dns_query_rrname + endpoint: + path: hunting.dashboards(dashboard="dns.query.rrname", alert=True, discovery=False) + method: GET +- name: dns_query_rrtype + endpoint: + path: hunting.dashboards(dashboard="dns.query.rrtype", alert=True, discovery=False) + method: GET +- name: tls_sni + endpoint: + path: hunting.dashboards(dashboard="tls.sni", alert=True, discovery=False) + method: GET +- name: tls_subject + endpoint: + path: hunting.dashboards(dashboard="tls.subject", alert=True, discovery=False) + method: GET +- name: tls_issuerdn + endpoint: + path: hunting.dashboards(dashboard="tls.issuerdn", alert=True, discovery=False) + method: GET +- name: tls_fingerprint + endpoint: + path: hunting.dashboards(dashboard="tls.fingerprint", alert=True, discovery=False) + method: GET +- name: tls_ja3_hash + endpoint: + path: hunting.dashboards(dashboard="tls.ja3.hash", alert=True, discovery=False) + method: GET +- name: tls_ja3_agent + endpoint: + path: hunting.dashboards(dashboard="tls.ja3.agent", alert=True, discovery=False) + method: GET +- name: tls_ja3s_hash + endpoint: + path: hunting.dashboards(dashboard="tls.ja3s.hash", alert=True, discovery=False) + method: GET +- name: tls_cipher_suite + endpoint: + path: hunting.dashboards(dashboard="tls.cipher_suite", alert=True, discovery=False) + method: GET +- name: tls_cipher_security + endpoint: + path: hunting.dashboards(dashboard="tls.cipher_security", alert=True, discovery=False) + method: GET +- name: smtp_mail_from + endpoint: + path: hunting.dashboards(dashboard="smtp.mail_from", alert=True, discovery=False) + method: GET +- name: smtp_rcpt_to + endpoint: + path: hunting.dashboards(dashboard="smtp.rcpt_to", alert=True, discovery=False) + method: GET +- name: smtp_helo + endpoint: + path: hunting.dashboards(dashboard="smtp.helo", alert=True, discovery=False) + method: GET +- name: smb_command + endpoint: + path: hunting.dashboards(dashboard="smb.command", alert=True, discovery=False) + method: GET +- name: smb_status + endpoint: + path: hunting.dashboards(dashboard="smb.status", alert=True, discovery=False) + method: GET +- name: smb_filename + endpoint: + path: hunting.dashboards(dashboard="smb.filename", alert=True, discovery=False) + method: GET +- name: smb_share + endpoint: + path: hunting.dashboards(dashboard="smb.share", alert=True, discovery=False) + method: GET +- name: smb_dcerpc_interface_name + endpoint: + path: hunting.dashboards(dashboard="smb.dcerpc.interface.name", alert=True, discovery=False) + method: GET +- name: smb_dcerpc_endpoint + endpoint: + path: hunting.dashboards(dashboard="smb.dcerpc.endpoint", alert=True, discovery=False) + method: GET +- name: ssh_client_software_version + endpoint: + path: hunting.dashboards(dashboard="ssh.client.software_version", alert=True, + discovery=False) + method: GET +- name: ssh_server_software_version + endpoint: + path: hunting.dashboards(dashboard="ssh.server.software_version", alert=True, + discovery=False) + method: GET +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: response_data +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data +- name: alert_category + endpoint: + path: hunting.dashboards(dashboard="alert.category") + method: GET +- name: alert_severity + endpoint: + path: hunting.dashboards(dashboard="alert.severity") + method: GET +- name: alert_metadata_signature_severity + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.signature_severity") + method: GET +- name: alert_metadata_attack_target + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.attack_target") + method: GET +- name: alert_metadata_affected_product + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.affected_product") + method: GET +- name: alert_metadata_malware_family + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.malware_family") + method: GET +- name: alert_metadata_mitre_tactic_id + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.mitre_tactic_id") + method: GET +- name: alert_metadata_mitre_tactic_name + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.mitre_tactic_name") + method: GET +- name: alert_metadata_mitre_technique_id + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.mitre_technique_id") + method: GET +- name: alert_metadata_mitre_technique_name + endpoint: + path: hunting.dashboards(dashboard="alert.metadata.mitre_technique_name") + method: GET +- name: alert_source_ip + endpoint: + path: hunting.dashboards(dashboard="alert.source.ip") + method: GET +- name: alert_target_ip + endpoint: + path: hunting.dashboards(dashboard="alert.target.ip") + method: GET +- name: hostname_info_subdomain + endpoint: + path: hunting.dashboards(dashboard="hostname_info.subdomain") + method: GET +- name: hostname_info_domain + endpoint: + path: hunting.dashboards(dashboard="hostname_info.domain") + method: GET +- name: hostname_info_tld + endpoint: + path: hunting.dashboards(dashboard="hostname_info.tld") + method: GET +- name: hostname_info_domain_without_tld + endpoint: + path: hunting.dashboards(dashboard="hostname_info.domain_without_tld") + method: GET +- name: hostname_info_host + endpoint: + path: hunting.dashboards(dashboard="hostname_info.host") + method: GET +- name: geoip_country_name + endpoint: + path: hunting.dashboards(dashboard="geoip.country_name") + method: GET +- name: geoip_city_name + endpoint: + path: hunting.dashboards(dashboard="geoip.city_name") + method: GET +- name: alert_lateral + endpoint: + path: hunting.dashboards(dashboard="alert.lateral") + method: GET +- name: alert_source_net_info_agg + endpoint: + path: hunting.dashboards(dashboard="alert.source.net_info_agg") + method: GET +- name: alert_target_net_info_agg + endpoint: + path: hunting.dashboards(dashboard="alert.target.net_info_agg") + method: GET +- name: fqdn_src + endpoint: + path: hunting.dashboards(dashboard="fqdn.src") + method: GET +- name: fqdn_dest + endpoint: + path: hunting.dashboards(dashboard="fqdn.dest") + method: GET +- name: geoip_provider_autonomous_system_number + endpoint: + path: hunting.dashboards(dashboard="geoip.provider.autonomous_system_number") + method: GET +- name: geoip_provider_autonomous_system_organization + endpoint: + path: hunting.dashboards(dashboard="geoip.provider.autonomous_system_organization") + method: GET +- name: src_ip + endpoint: + path: hunting.dashboards(dashboard="src_ip") + method: GET +- name: dest_ip + endpoint: + path: hunting.dashboards(dashboard="dest_ip") + method: GET +- name: src_port + endpoint: + path: hunting.dashboards(dashboard="src_port") + method: GET +- name: dest_port + endpoint: + path: hunting.dashboards(dashboard="dest_port") + method: GET +- name: vlan + endpoint: + path: hunting.dashboards(dashboard="vlan") + method: GET +- name: tunnel_src_ip + endpoint: + path: hunting.dashboards(dashboard="tunnel.src_ip") + method: GET +- name: tunnel_dest_ip + endpoint: + path: hunting.dashboards(dashboard="tunnel.dest_ip") + method: GET +- name: tunnel_proto + endpoint: + path: hunting.dashboards(dashboard="tunnel.proto") + method: GET +- name: tunnel_depth + endpoint: + path: hunting.dashboards(dashboard="tunnel.depth") + method: GET +- name: http_hostname + endpoint: + path: hunting.dashboards(dashboard="http.hostname") + method: GET +- name: http_url + endpoint: + path: hunting.dashboards(dashboard="http.url") + method: GET +- name: http_status + endpoint: + path: hunting.dashboards(dashboard="http.status") + method: GET +- name: http_http_user_agent + endpoint: + path: hunting.dashboards(dashboard="http.http_user_agent") + method: GET +- name: http_http_refer + endpoint: + path: hunting.dashboards(dashboard="http.http_refer") + method: GET +- name: http_http_refer_info_subdomain + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.subdomain") + method: GET +- name: http_http_refer_info_resource_path + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.resource_path") + method: GET +- name: http_http_refer_info_domain + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.domain") + method: GET +- name: http_http_refer_info_scheme + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.scheme") + method: GET +- name: http_http_refer_info_tld + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.tld") + method: GET +- name: http_http_refer_info_domain_without_tld + endpoint: + path: hunting.dashboards(dashboard="http.http_refer_info.domain_without_tld") + method: GET +- name: dns_query_rrname + endpoint: + path: hunting.dashboards(dashboard="dns.query.rrname") + method: GET +- name: dns_query_rrtype + endpoint: + path: hunting.dashboards(dashboard="dns.query.rrtype") + method: GET +- name: tls_sni + endpoint: + path: hunting.dashboards(dashboard="tls.sni") + method: GET +- name: tls_subject + endpoint: + path: hunting.dashboards(dashboard="tls.subject") + method: GET +- name: tls_issuerdn + endpoint: + path: hunting.dashboards(dashboard="tls.issuerdn") + method: GET +- name: tls_fingerprint + endpoint: + path: hunting.dashboards(dashboard="tls.fingerprint") + method: GET +- name: tls_ja3_hash + endpoint: + path: hunting.dashboards(dashboard="tls.ja3.hash") + method: GET +- name: tls_ja3_agent + endpoint: + path: hunting.dashboards(dashboard="tls.ja3.agent") + method: GET +- name: tls_ja3s_hash + endpoint: + path: hunting.dashboards(dashboard="tls.ja3s.hash") + method: GET +- name: tls_cipher_suite + endpoint: + path: hunting.dashboards(dashboard="tls.cipher_suite") + method: GET +- name: tls_cipher_security + endpoint: + path: hunting.dashboards(dashboard="tls.cipher_security") + method: GET +- name: smtp_mail_from + endpoint: + path: hunting.dashboards(dashboard="smtp.mail_from") + method: GET +- name: smtp_rcpt_to + endpoint: + path: hunting.dashboards(dashboard="smtp.rcpt_to") + method: GET +- name: smtp_helo + endpoint: + path: hunting.dashboards(dashboard="smtp.helo") + method: GET +- name: smb_command + endpoint: + path: hunting.dashboards(dashboard="smb.command") + method: GET +- name: smb_status + endpoint: + path: hunting.dashboards(dashboard="smb.status") + method: GET +- name: smb_filename + endpoint: + path: hunting.dashboards(dashboard="smb.filename") + method: GET +- name: smb_share + endpoint: + path: hunting.dashboards(dashboard="smb.share") + method: GET +- name: smb_dcerpc_interface_name + endpoint: + path: hunting.dashboards(dashboard="smb.dcerpc.interface.name") + method: GET +- name: smb_dcerpc_endpoint + endpoint: + path: hunting.dashboards(dashboard="smb.dcerpc.endpoint") + method: GET +- name: ssh_client_software_version + endpoint: + path: hunting.dashboards(dashboard="ssh.client.software_version") + method: GET +- name: ssh_server_software_version + endpoint: + path: hunting.dashboards(dashboard="ssh.server.software_version") + method: GET +- name: dns + endpoint: + path: /dns + method: GET + data_selector: records + params: {} +- name: fileinfo + endpoint: + path: /fileinfo + method: GET + data_selector: records + params: {} +- name: flow + endpoint: + path: /flow + method: GET + data_selector: records + params: {} +- name: ftp + endpoint: + path: /ftp + method: GET + data_selector: records + params: {} +- name: ftp_data + endpoint: + path: /ftp_data + method: GET + data_selector: records + params: {} +- name: host_insights + endpoint: + path: /host_insights + method: GET + data_selector: records + params: {} +- name: http + endpoint: + path: /http + method: GET + data_selector: records + params: {} +- name: ike + endpoint: + path: /ike + method: GET + data_selector: records + params: {} +- name: krb5 + endpoint: + path: /krb5 + method: GET + data_selector: records + params: {} +- name: mqtt + endpoint: + path: /mqtt + method: GET + data_selector: records + params: {} +- name: netflow + endpoint: + path: /netflow + method: GET + data_selector: records + params: {} +- name: nfs + endpoint: + path: /nfs + method: GET + data_selector: records + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: response_data +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data +- name: app_layer + endpoint: + path: /stats/app_layer + method: GET + data_selector: records +- name: decoder + endpoint: + path: /stats/decoder + method: GET + data_selector: records +- name: ssh_client + endpoint: + path: /ssh/client + method: GET + data_selector: ssh.client + params: {} +- name: ssh_server + endpoint: + path: /ssh/server + method: GET + data_selector: ssh.server + params: {} +- name: logs + endpoint: + path: /api/logs + method: GET + data_selector: records + params: {} +- name: json_log + endpoint: + path: /json/logs + method: GET + data_selector: logs +- name: dns_event + endpoint: + path: /dns/events + method: GET + data_selector: answers + params: + version: 2 +- name: smb + endpoint: + path: /smb/events + method: GET + data_selector: smb + params: {} +- name: fileinfo + endpoint: + path: /fileinfo + method: GET + data_selector: records +- name: flow + endpoint: + path: /flow + method: GET + data_selector: records +- name: ftp + endpoint: + path: /ftp + method: GET + data_selector: records +- name: http + endpoint: + path: /http + method: GET + data_selector: records +- name: ike + endpoint: + path: /ike + method: GET + data_selector: records +- name: krb5 + endpoint: + path: /krb5 + method: GET + data_selector: records +- name: mqtt + endpoint: + path: /mqtt + method: GET + data_selector: records +- name: netflow + endpoint: + path: /netflow + method: GET + data_selector: records +- name: nfs + endpoint: + path: /nfs + method: GET + data_selector: records +- name: rdp + endpoint: + path: /rdp + method: GET + data_selector: rdp + params: {} +- name: rfb + endpoint: + path: /rfb + method: GET + data_selector: rfb +- name: mqtt + endpoint: + path: /mqtt + method: GET + data_selector: mqtt +- name: http2 + endpoint: + path: /http2 + method: GET + data_selector: http2 +- name: error + endpoint: + path: /stats/app_layer/error + method: GET + data_selector: records +- name: expectations + endpoint: + path: /stats/app_layer/expectations + method: GET + data_selector: records +- name: flow + endpoint: + path: /stats/app_layer/flow + method: GET + data_selector: records +- name: tx + endpoint: + path: /stats/app_layer/tx + method: GET + data_selector: records +- name: ssh + endpoint: + path: /ssh + method: GET + data_selector: fields +- name: tftp + endpoint: + path: /tftp + method: GET + data_selector: fields +- name: tls + endpoint: + path: /tls + method: GET + data_selector: fields +- name: map + endpoint: + path: /map + method: GET + data_selector: records + params: {} +- name: replay + endpoint: + path: /replay + method: GET + data_selector: records + params: {} +- name: tarExtract + endpoint: + path: /tarExtract + method: GET + data_selector: records + params: {} +- name: alert_events + endpoint: + path: /api/alerts + method: GET + data_selector: alerts +- name: anomaly_events + endpoint: + path: /api/anomalies + method: GET + data_selector: anomalies +- name: http_events + endpoint: + path: /api/http + method: GET + data_selector: http +- name: dns_events + endpoint: + path: /dns/events + method: GET + data_selector: answers + params: + version: 2 +- name: ike_events + endpoint: + path: /ike/events + method: GET + data_selector: ikev1 + params: {} +- name: modbus_events + endpoint: + path: /modbus/events + method: GET + data_selector: data + params: {} +- name: ftp_events + endpoint: + path: /ftp/events + method: GET + data_selector: reply + params: {} +- name: tls_events + endpoint: + path: /tls/events + method: GET + data_selector: subject + params: {} +- name: tftp_events + endpoint: + path: /tftp/events + method: GET + data_selector: file + params: {} +- name: smb + endpoint: + path: /smb/events + method: GET + data_selector: smb + params: {} +- name: map + endpoint: + path: /map + method: POST + data_selector: global +- name: replay + endpoint: + path: /replay + method: POST + data_selector: global +- name: tarExtract + endpoint: + path: /tarExtract + method: POST + data_selector: global +- name: beacons + endpoint: + path: /api/beacons + method: GET + data_selector: beacon_data +- name: sightings + endpoint: + path: /api/sightings + method: GET + data_selector: sighting_data +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: policies + endpoint: + path: /policies + method: GET + data_selector: records +- name: alerts + endpoint: + path: /alerts + method: GET + data_selector: records +- name: tls_logs + endpoint: + path: /tls/logs + method: GET + data_selector: fields +- name: flow_logs + endpoint: + path: /flow/logs + method: GET + data_selector: fields +- name: ssh_logs + endpoint: + path: /ssh/logs + method: GET + data_selector: fields +- name: ike_logs + endpoint: + path: /ike/logs + method: GET + data_selector: fields +- name: krb5_log + endpoint: + path: /krb5/log + method: GET + data_selector: records +- name: TLS Anomalies + endpoint: + path: /tls/anomalies + method: GET + data_selector: events +- name: IKE Anomalies + endpoint: + path: /ike/anomalies + method: GET + data_selector: events +- name: SSH Anomalies + endpoint: + path: /ssh/anomalies + method: GET + data_selector: events +- name: Kerberos Anomalies + endpoint: + path: /kerberos/anomalies + method: GET + data_selector: events +- name: QUIC Anomalies + endpoint: + path: /quic/anomalies + method: GET + data_selector: events +- name: DNS over HTTPS + endpoint: + path: /doh/detections + method: GET + data_selector: events +- name: TOR Detections + endpoint: + path: /tor/detections + method: GET + data_selector: events +- name: Malicious TLS Communications + endpoint: + path: /malicious_tls + method: GET + data_selector: events +- name: processing_filter + endpoint: + path: /rest/rules/processing-filter/9/ + method: GET + data_selector: filter_defs + params: {} +- name: newly_registered_domains + endpoint: + path: /api/v1/nrd + method: GET + data_selector: records +- name: hosts + endpoint: + path: /hosts + method: GET + data_selector: observed_hosts + params: {} +- name: hosts_with_services + endpoint: + path: /hosts/services + method: GET + data_selector: observed_hosts_with_services + params: {} +- name: tls_logs + endpoint: + path: /tls/logs + method: GET + data_selector: fields +- name: flow_logs + endpoint: + path: /flow/logs + method: GET + data_selector: fields +- name: ssh_logs + endpoint: + path: /ssh/logs + method: GET + data_selector: fields +- name: ike_logs + endpoint: + path: /ike/logs + method: GET + data_selector: fields +- name: rdp_logs + endpoint: + path: /rdp/logs + method: GET + data_selector: fields +- name: krb5_fields + endpoint: + data_selector: fields +- name: TLS Detection + endpoint: + path: /detection/tls + method: GET + data_selector: events +- name: IKE Detection + endpoint: + path: /detection/ike + method: GET + data_selector: events +- name: SSH Detection + endpoint: + path: /detection/ssh + method: GET + data_selector: events +- name: Kerberos Detection + endpoint: + path: /detection/kerberos + method: GET + data_selector: events +- name: QUIC Detection + endpoint: + path: /detection/quic + method: GET + data_selector: events +- name: rule_filter + endpoint: + path: /rest/rules/processing-filter/9/ + method: GET + data_selector: filter_defs +- name: Hosts + endpoint: + path: /hosts + method: GET + data_selector: records +- name: Services + endpoint: + path: /hosts/services + method: GET + data_selector: records +- name: SN-ALERTS + endpoint: + path: /kibana/api/alerts + method: GET + data_selector: alerts + params: {} +- name: SN-DNS + endpoint: + path: /kibana/api/dns + method: GET + data_selector: dns_logs + params: {} +- name: SN-ALERTS + endpoint: + path: /dashboard/SN-ALERTS + method: GET + data_selector: alerts + params: {} +- name: SN-ALERTS-CVE + endpoint: + path: /dashboard/SN-ALERTS-CVE + method: GET + data_selector: alerts + params: {} +- name: SN-ALERTS-EXE-HUNT-1 + endpoint: + path: /dashboard/SN-ALERTS-EXE-HUNT-1 + method: GET + data_selector: alerts + params: {} +- name: SN-ALERTS-PHISHING + endpoint: + path: /dashboard/SN-ALERTS-PHISHING + method: GET + data_selector: alerts + params: {} +- name: SN-ALL + endpoint: + path: /dashboard/SN-ALL + method: GET + data_selector: events + params: {} +- name: SN-ANOMALY + endpoint: + path: /dashboard/SN-ANOMALY + method: GET + data_selector: anomalies + params: {} +- name: SN-BEACONING-TLS + endpoint: + path: /dashboard/SN-BEACONING-TLS + method: GET + data_selector: beaconing + params: {} +- name: SN-DCERPC + endpoint: + path: /dashboard/SN-DCERPC + method: GET + data_selector: dcerpc + params: {} +- name: SN-DHCP + endpoint: + path: /dashboard/SN-DHCP + method: GET + data_selector: dhcp + params: {} +- name: SN-DNP3 + endpoint: + path: /dashboard/SN-DNP3 + method: GET + data_selector: dnp3 + params: {} +- name: SN-DNS + endpoint: + path: /dashboard/SN-DNS + method: GET + data_selector: dns + params: {} +- name: SN-DNS-HUNT-Tunnel + endpoint: + path: /dashboard/SN-DNS-HUNT-Tunnel + method: GET + data_selector: dns + params: {} +- name: SN-FILE-Transactions + endpoint: + path: /dashboard/SN-FILE-Transactions + method: GET + data_selector: file_transactions + params: {} +- name: SN-FLOW + endpoint: + path: /dashboard/SN-FLOW + method: GET + data_selector: flow + params: {} +- name: SN-FLOW-HTTP + endpoint: + path: /dashboard/SN-FLOW-HTTP + method: GET + data_selector: flow_http + params: {} +- name: SN-FLOW-HUNT-DNS-EXFIL + endpoint: + path: /dashboard/SN-FLOW-HUNT-DNS-EXFIL + method: GET + data_selector: flow_dns + params: {} +- name: SN-FLOW-HUNT-ICMP-Possible-EXFIL + endpoint: + path: /dashboard/SN-FLOW-HUNT-ICMP-Possible-EXFIL + method: GET + data_selector: flow_icmp + params: {} +- name: SN-FLOW-SIZE + endpoint: + path: /dashboard/SN-FLOW-SIZE + method: GET + data_selector: flow_size + params: {} +- name: SN-FLOW-SMB + endpoint: + path: /dashboard/SN-FLOW-SMB + method: GET + data_selector: flow_smb + params: {} +- name: SN-FLOW-SSH + endpoint: + path: /dashboard/SN-FLOW-SSH + method: GET + data_selector: flow_ssh + params: {} +- name: SN-FLOW-TCP + endpoint: + path: /dashboard/SN-FLOW-TCP + method: GET + data_selector: flow_tcp + params: {} +- name: SN-FLOW-TLS + endpoint: + path: /dashboard/SN-FLOW-TLS + method: GET + data_selector: flow_tls + params: {} +- name: SN-FLOW-UDP + endpoint: + path: /dashboard/SN-FLOW-UDP + method: GET + data_selector: flow_udp + params: {} +- name: SN-HTTP + endpoint: + path: /dashboard/SN-HTTP + method: GET + data_selector: http + params: {} +- name: SN-HTTP-HUNT + endpoint: + path: /dashboard/SN-HTTP-HUNT + method: GET + data_selector: http_hunt + params: {} +- name: SN-HUNT-1 + endpoint: + path: /dashboard/SN-HUNT-1 + method: GET + data_selector: hunt + params: {} +- name: SN-IDS + endpoint: + path: /dashboard/SN-IDS + method: GET + data_selector: ids + params: {} +- name: SN-IKEv2 + endpoint: + path: /dashboard/SN-IKEv2 + method: GET + data_selector: ike + params: {} +- name: SN-IoC-Search + endpoint: + path: /dashboard/SN-IoC-Search + method: GET + data_selector: ioc_search + params: {} +- name: SN-KRB5 + endpoint: + path: /dashboard/SN-KRB5 + method: GET + data_selector: krb5 + params: {} +- name: SN-MQTT + endpoint: + path: /dashboard/SN-MQTT + method: GET + data_selector: mqtt + params: {} +- name: SN-NFS + endpoint: + path: /dashboard/SN-NFS + method: GET + data_selector: nfs + params: {} +- name: SN-Network-Overview + endpoint: + path: /dashboard/SN-Network-Overview + method: GET + data_selector: network_overview + params: {} +- name: SN-Network-Overview-1 + endpoint: + path: /dashboard/SN-Network-Overview-1 + method: GET + data_selector: network_overview_1 + params: {} +- name: SN-Network-Overview-2 + endpoint: + path: /dashboard/SN-Network-Overview-2 + method: GET + data_selector: network_overview_2 + params: {} +- name: SN-OVERVIEW + endpoint: + path: /dashboard/SN-OVERVIEW + method: GET + data_selector: overview + params: {} +- name: SN-POLICY-OLD-TLS + endpoint: + path: /dashboard/SN-POLICY-OLD-TLS + method: GET + data_selector: policy_old_tls + params: {} +- name: SN-POLICY-Violations + endpoint: + path: /dashboard/SN-POLICY-Violations + method: GET + data_selector: policy_violations + params: {} +- name: SN-POSTPROC-Stats + endpoint: + path: /dashboard/SN-POSTPROC-Stats + method: GET + data_selector: postproc_stats + params: {} +- name: SN-RDP + endpoint: + path: /dashboard/SN-RDP + method: GET + data_selector: rdp + params: {} +- name: SN-RFB + endpoint: + path: /dashboard/SN-RFB + method: GET + data_selector: rfb + params: {} +- name: SN-SIGHTINGS + endpoint: + path: /dashboard/SN-SIGHTINGS + method: GET + data_selector: sightings + params: {} +- name: SN-SIGNATURE-Performance + endpoint: + path: /dashboard/SN-SIGNATURE-Performance + method: GET + data_selector: signature_performance + params: {} +- name: SN-SIP + endpoint: + path: /dashboard/SN-SIP + method: GET + data_selector: sip + params: {} +- name: SN-SMB + endpoint: + path: /dashboard/SN-SMB + method: GET + data_selector: smb + params: {} +- name: SN-SMB-DCERPC-Lateral-1 + endpoint: + path: /dashboard/SN-SMB-DCERPC-Lateral-1 + method: GET + data_selector: smb_dcerpc_lateral + params: {} +- name: SN-SMTP + endpoint: + path: /dashboard/SN-SMTP + method: GET + data_selector: smtp + params: {} +- name: SN-SNMP + endpoint: + path: /dashboard/SN-SNMP + method: GET + data_selector: snmp + params: {} +- name: SN-SSH + endpoint: + path: /dashboard/SN-SSH + method: GET + data_selector: ssh + params: {} +- name: SN-STAMUS + endpoint: + path: /dashboard/SN-STAMUS + method: GET + data_selector: stamus + params: {} +- name: SN-TFTP + endpoint: + path: /dashboard/SN-TFTP + method: GET + data_selector: tftp + params: {} +- name: SN-TLS + endpoint: + path: /dashboard/SN-TLS + method: GET + data_selector: tls + params: {} +- name: SN-TrafficID + endpoint: + path: /dashboard/SN-TrafficID + method: GET + data_selector: traffic_id + params: {} +- name: SN-VLAN + endpoint: + path: /dashboard/SN-VLAN + method: GET + data_selector: vlan + params: {} +- name: policy_violation + endpoint: + path: /api/v1/policy-violation + method: GET + data_selector: violations + params: {} +- name: policy_violations + endpoint: + path: /declarations_of_policy_violation + method: GET + data_selector: data + params: {} +- name: alerts + endpoint: + path: /rest/rules/es/alerts_tail/ + method: GET + data_selector: results + params: {} +- name: upload_pcap + endpoint: + path: /rest/rules/filestore_pcap/upload/ + method: POST + data_selector: filename + params: {} +- name: extract_pcap + endpoint: + path: /rest/rules/filestore_pcap//extract_pcap/ + method: POST + data_selector: response + params: {} +- name: retrieve_pcap + endpoint: + path: /rest/rules/filestore_pcap//retrieve/ + method: GET + data_selector: response + params: {} +- name: download_pcap + endpoint: + path: /rest/rules/filestore_pcap//download/ + method: GET + data_selector: response + params: {} +- name: alerts + endpoint: + path: /rest/rules/es/alerts_tail/ + method: GET + data_selector: results + params: + qfilter: alert.signature_id%3A{signature_id} AND flow_id%3A{flow_id} +- name: upload_pcap + endpoint: + path: /rest/rules/filestore_pcap/upload/ + method: POST + data_selector: filename + params: + host: +- name: extract_pcap + endpoint: + path: /rest/rules/filestore_pcap//extract_pcap/ + method: POST + data_selector: response + params: + host: +- name: retrieve_pcap + endpoint: + path: /rest/rules/filestore_pcap//retrieve/ + method: GET + data_selector: response + params: + host: +- name: download_pcap + endpoint: + path: /rest/rules/filestore_pcap//download/ + method: GET + data_selector: response +- name: network_definition + endpoint: + path: /rest/appliances/network_definition/ + method: GET + data_selector: results +- name: apply_changes + endpoint: + path: /rest/appliances/stamus_probe/%s/apply_changes/ + method: POST +- name: Custom Source + endpoint: + path: /sources/custom + method: POST + data_selector: data + params: {} +- name: Dataset Custom Source + endpoint: + path: /sources/dataset + method: POST + data_selector: data + params: {} +- name: threats_update + endpoint: + path: /threats + method: GET +- name: ip_reputation_list + endpoint: + path: /ip_reputation + method: GET +- name: Threat Updates + endpoint: + path: /threats + method: GET +- name: IP Reputation List + endpoint: + path: /ip-reputation + method: POST +- name: Sales Trial License + endpoint: + path: /sales/trial + method: GET + data_selector: trial_info + params: {} +- name: Installing License + endpoint: + path: /license/install + method: POST + data_selector: installation_info + params: {} +- name: usb_installation_procedure + endpoint: + path: /usb-installation + method: GET + data_selector: procedure + params: {} +- name: troubleshoot_steps_probe + endpoint: + path: /rest/appliances/appliance//troubleshoot_steps/ + method: GET + data_selector: results +- name: troubleshoot_steps_scs + endpoint: + path: /rest/appliances/troubleshoot/steps/ + method: GET + data_selector: results +- name: troubleshoot_probe + endpoint: + path: /rest/appliances/appliance//troubleshoot/?query= + method: GET + data_selector: results +- name: troubleshoot_scs + endpoint: + path: /rest/appliances/troubleshoot/?query= + method: GET + data_selector: results +- name: troubleshoot_steps_probe + endpoint: + path: /rest/appliances/appliance//troubleshoot_steps/ + method: GET + data_selector: results +- name: troubleshoot_steps_scs + endpoint: + path: /rest/appliances/troubleshoot/steps/ + method: GET + data_selector: results +- name: troubleshoot_probe + endpoint: + path: /rest/appliances/appliance//troubleshoot/ + method: GET + data_selector: results +- name: troubleshoot_scs + endpoint: + path: /rest/appliances/troubleshoot/ + method: GET + data_selector: results +- name: troubleshoot_report_probe + endpoint: + path: /rest/appliances/appliance//troubleshoot_report/ + method: GET + data_selector: results +- name: troubleshoot_report_scs + endpoint: + path: /rest/appliances/troubleshoot/report/ + method: GET + data_selector: results +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: events_tail + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: records + params: {} +- name: host_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: records + params: {} +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: records + params: {} +- name: events_tail + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: records + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: events_tail + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: all_hosts + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: alerted_hosts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: '' + params: {} +- name: specific_host + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: '' + params: {} +- name: all_hosts + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: response_data + params: {} +- name: alerted_hosts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: response_data + params: {} +- name: specific_host + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: response_data + params: {} +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data +- name: ip + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: response_data +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data +- name: alerts_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data +- name: host_insights + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: response_data +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: records +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: records +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: records +- name: events_tail + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: records +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: host_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: '' + params: {} +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: '' + params: {} +- name: events_tail + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: '' + params: {} +- name: host_insights_all + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: '' + params: {} +- name: host_insights_ip + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: '' + params: {} +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + params: {} +- name: host_insights_all + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: '' + params: {} +- name: host_insights_ip + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: '' + params: {} +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data +- name: dashboards + endpoint: + path: /hunting/dashboards + method: GET + data_selector: records + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + params: + field: required_field + field_value: required_qfilter_value +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: '' + params: {} +- name: field_stats + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: '' + params: {} +- name: events_tail + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: '' + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: response_data + params: {} +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: response_data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: nsm_events + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: alerts_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET +- name: alerted_host_insights + endpoint: + path: /appliances/host_id_alerts/ + method: GET +- name: specific_host_insights + endpoint: + path: /appliances/host_id/{ip} + method: GET +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: alerts_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + params: + qfilter: field +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: alerts_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: host_id_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: records + params: {} +- name: host_id + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: records + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: alerts_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + params: {} +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET + params: {} +- name: host_insights_ip + endpoint: + path: /appliances/host_id/{ip} + method: GET + params: {} +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: data + params: {} +- name: host_insights_alerts + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: data + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: data + params: {} +- name: alerts_metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: data + params: {} +- name: host_insights + endpoint: + path: /appliances/host_id/ + method: GET + data_selector: '' + params: {} +- name: host_insights_alerted + endpoint: + path: /appliances/host_id_alerts/ + method: GET + data_selector: '' + params: {} +- name: host_insights_ip + endpoint: + path: /appliances/host_id/{ip} + method: GET + data_selector: '' + params: {} +- name: metadata + endpoint: + path: /rules/es/field_stats/ + method: GET + data_selector: response_data + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data + params: {} +- name: alert_category + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.category + params: {} +- name: alert_severity + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.severity + params: {} +- name: alert_metadata_signature_severity + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.metadata.signature_severity + params: {} +- name: alert_metadata_attack_target + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.metadata.attack_target + params: {} +- name: alert_metadata_affected_product + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.metadata.affected_product + params: {} +- name: alert_metadata_malware_family + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.metadata.malware_family + params: {} +- name: alert_metadata_mitre_tactic_id + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.metadata.mitre_tactic_id + params: {} +- name: alert_metadata_mitre_tactic_name + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.metadata.mitre_tactic_name + params: {} +- name: alert_metadata_mitre_technique_id + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.metadata.mitre_technique_id + params: {} +- name: alert_metadata_mitre_technique_name + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.metadata.mitre_technique_name + params: {} +- name: alert_source_ip + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.source.ip + params: {} +- name: alert_target_ip + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.target.ip + params: {} +- name: hostname_info_subdomain + endpoint: + path: /hunting/dashboards + method: GET + data_selector: hostname_info.subdomain + params: {} +- name: hostname_info_domain + endpoint: + path: /hunting/dashboards + method: GET + data_selector: hostname_info.domain + params: {} +- name: hostname_info_tld + endpoint: + path: /hunting/dashboards + method: GET + data_selector: hostname_info.tld + params: {} +- name: hostname_info_domain_without_tld + endpoint: + path: /hunting/dashboards + method: GET + data_selector: hostname_info.domain_without_tld + params: {} +- name: hostname_info_host + endpoint: + path: /hunting/dashboards + method: GET + data_selector: hostname_info.host + params: {} +- name: geoip_country_name + endpoint: + path: /hunting/dashboards + method: GET + data_selector: geoip.country_name + params: {} +- name: geoip_city_name + endpoint: + path: /hunting/dashboards + method: GET + data_selector: geoip.city_name + params: {} +- name: alert_lateral + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.lateral + params: {} +- name: alert_source_net_info_agg + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.source.net_info_agg + params: {} +- name: alert_target_net_info_agg + endpoint: + path: /hunting/dashboards + method: GET + data_selector: alert.target.net_info_agg + params: {} +- name: fqdn_src + endpoint: + path: /hunting/dashboards + method: GET + data_selector: fqdn.src + params: {} +- name: fqdn_dest + endpoint: + path: /hunting/dashboards + method: GET + data_selector: fqdn.dest + params: {} +- name: geoip_provider_autonomous_system_number + endpoint: + path: /hunting/dashboards + method: GET + data_selector: geoip.provider.autonomous_system_number + params: {} +- name: geoip_provider_autonomous_system_organization + endpoint: + path: /hunting/dashboards + method: GET + data_selector: geoip.provider.autonomous_system_organization + params: {} +- name: src_ip + endpoint: + path: /hunting/dashboards + method: GET + data_selector: src_ip + params: {} +- name: dest_ip + endpoint: + path: /hunting/dashboards + method: GET + data_selector: dest_ip + params: {} +- name: src_port + endpoint: + path: /hunting/dashboards + method: GET + data_selector: src_port + params: {} +- name: dest_port + endpoint: + path: /hunting/dashboards + method: GET + data_selector: dest_port + params: {} +- name: vlan + endpoint: + path: /hunting/dashboards + method: GET + data_selector: vlan + params: {} +- name: tunnel_src_ip + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tunnel.src_ip + params: {} +- name: tunnel_dest_ip + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tunnel.dest_ip + params: {} +- name: tunnel_proto + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tunnel.proto + params: {} +- name: tunnel_depth + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tunnel.depth + params: {} +- name: http_hostname + endpoint: + path: /hunting/dashboards + method: GET + data_selector: http.hostname + params: {} +- name: http_url + endpoint: + path: /hunting/dashboards + method: GET + data_selector: http.url + params: {} +- name: http_status + endpoint: + path: /hunting/dashboards + method: GET + data_selector: http.status + params: {} +- name: http_http_user_agent + endpoint: + path: /hunting/dashboards + method: GET + data_selector: http.http_user_agent + params: {} +- name: http_http_refer + endpoint: + path: /hunting/dashboards + method: GET + data_selector: http.http_refer + params: {} +- name: http_http_refer_info_subdomain + endpoint: + path: /hunting/dashboards + method: GET + data_selector: http.http_refer_info.subdomain + params: {} +- name: http_http_refer_info_resource_path + endpoint: + path: /hunting/dashboards + method: GET + data_selector: http.http_refer_info.resource_path + params: {} +- name: http_http_refer_info_domain + endpoint: + path: /hunting/dashboards + method: GET + data_selector: http.http_refer_info.domain + params: {} +- name: http_http_refer_info_scheme + endpoint: + path: /hunting/dashboards + method: GET + data_selector: http.http_refer_info.scheme + params: {} +- name: http_http_refer_info_tld + endpoint: + path: /hunting/dashboards + method: GET + data_selector: http.http_refer_info.tld + params: {} +- name: http_http_refer_info_domain_without_tld + endpoint: + path: /hunting/dashboards + method: GET + data_selector: http.http_refer_info.domain_without_tld + params: {} +- name: dns_query_rrname + endpoint: + path: /hunting/dashboards + method: GET + data_selector: dns.query.rrname + params: {} +- name: dns_query_rrtype + endpoint: + path: /hunting/dashboards + method: GET + data_selector: dns.query.rrtype + params: {} +- name: tls_sni + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tls.sni + params: {} +- name: tls_subject + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tls.subject + params: {} +- name: tls_issuerdn + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tls.issuerdn + params: {} +- name: tls_fingerprint + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tls.fingerprint + params: {} +- name: tls_ja3_hash + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tls.ja3.hash + params: {} +- name: tls_ja3_agent + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tls.ja3.agent + params: {} +- name: tls_ja3s_hash + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tls.ja3s.hash + params: {} +- name: tls_cipher_suite + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tls.cipher_suite + params: {} +- name: tls_cipher_security + endpoint: + path: /hunting/dashboards + method: GET + data_selector: tls.cipher_security + params: {} +- name: smtp_mail_from + endpoint: + path: /hunting/dashboards + method: GET + data_selector: smtp.mail_from + params: {} +- name: smtp_rcpt_to + endpoint: + path: /hunting/dashboards + method: GET + data_selector: smtp.rcpt_to + params: {} +- name: smtp_helo + endpoint: + path: /hunting/dashboards + method: GET + data_selector: smtp.helo + params: {} +- name: smb_command + endpoint: + path: /hunting/dashboards + method: GET + data_selector: smb.command + params: {} +- name: smb_status + endpoint: + path: /hunting/dashboards + method: GET + data_selector: smb.status + params: {} +- name: smb_filename + endpoint: + path: /hunting/dashboards + method: GET + data_selector: smb.filename + params: {} +- name: smb_share + endpoint: + path: /hunting/dashboards + method: GET + data_selector: smb.share + params: {} +- name: smb_dcerpc_interface_name + endpoint: + path: /hunting/dashboards + method: GET + data_selector: smb.dcerpc.interface.name + params: {} +- name: smb_dcerpc_endpoint + endpoint: + path: /hunting/dashboards + method: GET + data_selector: smb.dcerpc.endpoint + params: {} +- name: ssh_client_software_version + endpoint: + path: /hunting/dashboards + method: GET + data_selector: ssh.client.software_version + params: {} +- name: ssh_server_software_version + endpoint: + path: /hunting/dashboards + method: GET + data_selector: ssh.server.software_version + params: {} +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: response_data + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: response_data + params: {} +- name: fileinfo + endpoint: + path: /api/fileinfo + method: GET + data_selector: fileinfo + params: {} +- name: flow + endpoint: + path: /api/flow + method: GET + data_selector: flow + params: {} +- name: ftp + endpoint: + path: /api/ftp + method: GET + data_selector: ftp + params: {} +- name: http + endpoint: + path: /api/http + method: GET + data_selector: http + params: {} +- name: ike + endpoint: + path: /api/ike + method: GET + data_selector: ike + params: {} +- name: krb5 + endpoint: + path: /api/krb5 + method: GET + data_selector: krb5 + params: {} +- name: mqtt + endpoint: + path: /api/mqtt + method: GET + data_selector: mqtt + params: {} +- name: netflow + endpoint: + path: /api/netflow + method: GET + data_selector: netflow + params: {} +- name: nfs + endpoint: + path: /api/nfs + method: GET + data_selector: nfs + params: {} +- name: rdp + endpoint: + path: /api/rdp + method: GET + data_selector: rdp + params: {} +- name: rfb + endpoint: + path: /api/rfb + method: GET + data_selector: rfb + params: {} +- name: sip + endpoint: + path: /api/sip + method: GET + data_selector: sip + params: {} +- name: smb + endpoint: + path: /smb + method: GET + data_selector: fields + params: {} +- name: smtp + endpoint: + path: /smtp + method: GET + data_selector: fields + params: {} +- name: snmp + endpoint: + path: /snmp + method: GET + data_selector: fields + params: {} +- name: sightings + endpoint: + path: /sightings + method: GET + data_selector: fields + params: {} +- name: error + endpoint: + path: /stats/app_layer/error + method: GET + data_selector: records +- name: flow + endpoint: + path: /stats/app_layer/flow + method: GET + data_selector: records +- name: tx + endpoint: + path: /stats/app_layer/tx + method: GET + data_selector: records +- name: decoder + endpoint: + path: /stats/decoder + method: GET + data_selector: records +- name: SSH + endpoint: + path: /ssh + method: GET + data_selector: ssh.client.hassh + params: {} +- name: TFTP + endpoint: + path: /tftp + method: GET + data_selector: tftp.file + params: {} +- name: TLS + endpoint: + path: /tls + method: GET + data_selector: tls.cipher_suite + params: {} +- name: json_logs + endpoint: + path: /logs + method: GET + data_selector: records + params: {} +- name: dns_events + endpoint: + path: /dns/events + method: GET + data_selector: answers +- name: ike_events + endpoint: + path: /ike/events + method: GET + data_selector: ike +- name: modbus_events + endpoint: + path: /modbus/events + method: GET + data_selector: modbus +- name: ftp_events + endpoint: + path: /ftp/events + method: GET + data_selector: ftp +- name: tls_events + endpoint: + path: /tls/events + method: GET + data_selector: tls +- name: tftp_events + endpoint: + path: /tftp/events + method: GET + data_selector: tftp +- name: nsm_metadata + endpoint: + path: /rules/es/events_tail/ + method: GET + data_selector: results + params: {} +- name: dashboards + endpoint: + path: /rules/es/fields_stats/ + method: GET + data_selector: metadata + params: {} +- name: smb_event + endpoint: + path: /smb/events + method: GET + data_selector: smb + params: {} +- name: rfb + endpoint: + path: /rfb + method: GET + data_selector: rfb + params: {} +- name: map + endpoint: + path: /map + method: GET + data_selector: files + params: + incremental: timestamp +- name: replay + endpoint: + path: /replay + method: POST + data_selector: results + params: {} +- name: tarExtract + endpoint: + path: /tarExtract + method: POST + data_selector: extracted_files + params: {} +- name: Fileinfo + endpoint: + path: /fileinfo + method: GET + data_selector: fileinfo + params: {} +- name: FLOW + endpoint: + path: /flow + method: GET + data_selector: flow + params: {} +- name: FTP + endpoint: + path: /ftp + method: GET + data_selector: ftp + params: {} +- name: Host Insights + endpoint: + path: /host-insights + method: GET + data_selector: host + params: {} +- name: HTTP + endpoint: + path: /http + method: GET + data_selector: http + params: {} +- name: IKE + endpoint: + path: /ike + method: GET + data_selector: ike + params: {} +- name: KRB5 + endpoint: + path: /krb5 + method: GET + data_selector: krb5 + params: {} +- name: MQTT + endpoint: + path: /mqtt + method: GET + data_selector: mqtt + params: {} +- name: NETFLOW + endpoint: + path: /netflow + method: GET + data_selector: netflow + params: {} +- name: NFS + endpoint: + path: /nfs + method: GET + data_selector: nfs + params: {} +- name: RDP + endpoint: + path: /rdp + method: GET + data_selector: rdp + params: {} +- name: RFB + endpoint: + path: /rfb + method: GET + data_selector: rfb + params: {} +- name: SIP + endpoint: + path: /sip + method: GET + data_selector: sip + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: smb + endpoint: + path: /smb + method: GET + data_selector: fields + params: {} +- name: smtp + endpoint: + path: /smtp + method: GET + data_selector: fields + params: {} +- name: snmp + endpoint: + path: /snmp + method: GET + data_selector: fields + params: {} +- name: sightings + endpoint: + path: /sightings + method: GET + data_selector: fields + params: {} +- name: error + endpoint: + path: /stats/app_layer/error + method: GET + data_selector: records + params: {} +- name: expectations + endpoint: + path: /stats/app_layer/expectations + method: GET + data_selector: records + params: {} +- name: flow + endpoint: + path: /stats/app_layer/flow + method: GET + data_selector: records + params: {} +- name: tx + endpoint: + path: /stats/app_layer/tx + method: GET + data_selector: records + params: {} +- name: decoder + endpoint: + path: /stats/decoder + method: GET + data_selector: records + params: {} +- name: decoder_event + endpoint: + path: /stats/decoder/event + method: GET + data_selector: records +- name: defrag + endpoint: + path: /stats/defrag + method: GET + data_selector: records +- name: detect + endpoint: + path: /stats/detect + method: GET + data_selector: records +- name: file_store + endpoint: + path: /stats/file_store + method: GET + data_selector: records +- name: flow + endpoint: + path: /stats/flow + method: GET + data_selector: records +- name: ftp + endpoint: + path: /stats/ftp + method: GET + data_selector: records +- name: http + endpoint: + path: /stats/http + method: GET + data_selector: records +- name: tcp + endpoint: + path: /stats/tcp + method: GET + data_selector: records +- name: uptime + endpoint: + path: /stats/uptime + method: GET + data_selector: records +- name: alert + endpoint: + path: /alert + method: GET + data_selector: alert +- name: anomaly + endpoint: + path: /anomaly + method: GET + data_selector: anomaly +- name: http + endpoint: + path: /http + method: GET + data_selector: http +- name: dns_events + endpoint: + path: /dns/events + method: GET + data_selector: dns +- name: predefined_hunting_filter_sets + endpoint: + path: /hunting-filters/predefined + method: GET + data_selector: filter_sets + params: {} +- name: user_defined_filters + endpoint: + path: /hunting-filters/user-defined + method: GET + data_selector: user_filters + params: {} +- name: smb + endpoint: + path: /smb/events + method: GET + data_selector: smb + params: {} +- name: rfb + endpoint: + path: /rfb + method: GET + data_selector: rfb + params: {} +- name: mqtt + endpoint: + path: /mqtt + method: GET + data_selector: mqtt + params: {} +- name: http2 + endpoint: + path: /http2 + method: GET + data_selector: http2 + params: {} +- name: file_status + endpoint: + path: /rest/rules/filestore//status/ + method: GET + data_selector: status + params: + host: +- name: file_retrieve + endpoint: + path: /rest/rules/filestore//retrieve/ + method: GET + data_selector: retrieve + params: + host: +- name: file_download + endpoint: + path: /rest/rules/filestore//download/ + method: GET + data_selector: download + params: + host: +- name: NDR Events + endpoint: + path: /api/v1/events + method: GET + data_selector: events +- name: suricata_sensor + endpoint: + path: /api/suricata/sensor + method: POST + data_selector: sensor_data + params: {} +- name: Known Bad IPs + endpoint: + path: /add/custom/source + method: POST + data_selector: source + params: {} +- name: predefined_filter_sets + endpoint: + path: /api/filter_sets + method: GET + data_selector: filter_sets +- name: user_defined_filters + endpoint: + path: /api/user_defined_filters + method: GET + data_selector: user_filters +- name: file_status + endpoint: + path: /rest/rules/filestore//status/ + method: GET + data_selector: status + params: + host: +- name: file_retrieve + endpoint: + path: /rest/rules/filestore//retrieve/ + method: GET + data_selector: retrieve + params: + host: +- name: file_download + endpoint: + path: /rest/rules/filestore//download/ + method: GET + data_selector: download + params: + host: +- name: Threat Definitions + endpoint: + path: /YOUR_UNIQ_ID/stamus/str-etpro/threats.tar.gz + method: GET +- name: Known Bad IPs + endpoint: + path: /YOUR_UNIQ_ID/stamus/bad-ips.list + method: POST +- name: policies + endpoint: + path: /api/v1/policies + method: GET + data_selector: records +- name: policies + endpoint: + path: /api/policies + method: GET + data_selector: records +- name: backup + endpoint: + path: /home/snuser/backups/ + method: POST + data_selector: backup + params: {} +- name: restore + endpoint: + path: /home/snuser/backups/ + method: POST + data_selector: restore + params: {} +- name: map + endpoint: + path: /map + method: GET + data_selector: records + params: {} +- name: replay + endpoint: + path: /replay + method: GET + data_selector: records + params: {} +- name: tarExtract + endpoint: + path: /tarExtract + method: GET + data_selector: records + params: {} +- name: tls + endpoint: + path: /tls + method: GET + data_selector: records +- name: rule_filter + endpoint: + path: /rest/rules/processing-filter/9/ + method: GET + data_selector: filter_defs + params: {} +- name: tls_ja4 + endpoint: + path: /tls/ja4 + method: GET + data_selector: tls + params: {} +- name: tls_alpn + endpoint: + path: /tls/alpn + method: GET + data_selector: tls + params: {} +- name: dcerpc + endpoint: + path: /dcerpc + method: GET + data_selector: smb + params: {} +- name: transactions + endpoint: + path: /transactions + method: GET + data_selector: tx_id + params: {} +- name: ssh + endpoint: + path: /ssh + method: GET + data_selector: ssh + params: {} +- name: rule_filter + endpoint: + path: /rest/rules/processing-filter/9/ + method: GET + data_selector: '' + params: {} +- name: SN-ALERTS + endpoint: + path: /path/to/sn-alerts + method: GET + data_selector: alerts with metadata + params: {} +- name: SN-ALERTS-CVE + endpoint: + path: /path/to/sn-alerts-cve + method: GET + data_selector: alerts with metadata + params: {} +- name: SN-ALERTS-EXE-HUNT-1 + endpoint: + path: /path/to/sn-alerts-exe-hunt-1 + method: GET + data_selector: alerts with metadata + params: {} +- name: SN-ALERTS-PHISHING + endpoint: + path: /path/to/sn-alerts-phishing + method: GET + data_selector: alerts with metadata + params: {} +- name: SN-ALL + endpoint: + path: /path/to/sn-all + method: GET + data_selector: any log type + params: {} +- name: SN-ANOMALY + endpoint: + path: /path/to/sn-anomaly + method: GET + data_selector: anomaly events + params: {} +- name: SN-BEACONING-TLS + endpoint: + path: /path/to/sn-beaconing-tls + method: GET + data_selector: beaconing events + params: {} +- name: SN-DCERPC + endpoint: + path: /path/to/sn-dcerpc + method: GET + data_selector: dcerpc logs + params: {} +- name: SN-DHCP + endpoint: + path: /path/to/sn-dhcp + method: GET + data_selector: dhcp logs + params: {} +- name: SN-DNP3 + endpoint: + path: /path/to/sn-dnp3 + method: GET + data_selector: dnp3 logs + params: {} +- name: SN-DNS + endpoint: + path: /path/to/sn-dns + method: GET + data_selector: dns logs + params: {} +- name: SN-DNS-HUNT-Tunnel + endpoint: + path: /path/to/sn-dns-hunt-tunnel + method: GET + data_selector: dns logs + params: {} +- name: SN-FILE-Transactions + endpoint: + path: /path/to/sn-file-transactions + method: GET + data_selector: fileinfo, file transaction logs + params: {} +- name: SN-FLOW + endpoint: + path: /path/to/sn-flow + method: GET + data_selector: flow, netflow logs + params: {} +- name: SN-FLOW-HTTP + endpoint: + path: /path/to/sn-flow-http + method: GET + data_selector: flow logs specific to HTTP + params: {} +- name: SN-FLOW-HUNT-DNS-EXFIL + endpoint: + path: /path/to/sn-flow-hunt-dns-exfil + method: GET + data_selector: flow logs specific to DNS + params: {} +- name: SN-FLOW-HUNT-ICMP-Possible-EXFIL + endpoint: + path: /path/to/sn-flow-hunt-icmp-possible-exfil + method: GET + data_selector: flow logs specific to ICMP + params: {} +- name: SN-FLOW-SIZE + endpoint: + path: /path/to/sn-flow-size + method: GET + data_selector: flow logs + params: {} +- name: SN-FLOW-SMB + endpoint: + path: /path/to/sn-flow-smb + method: GET + data_selector: flow logs specific to SMB + params: {} +- name: SN-FLOW-SSH + endpoint: + path: /path/to/sn-flow-ssh + method: GET + data_selector: flow logs specific to SSH + params: {} +- name: SN-FLOW-TCP + endpoint: + path: /path/to/sn-flow-tcp + method: GET + data_selector: flow logs specific to TCP + params: {} +- name: SN-FLOW-TLS + endpoint: + path: /path/to/sn-flow-tls + method: GET + data_selector: flow logs specific to TLS + params: {} +- name: SN-FLOW-UDP + endpoint: + path: /path/to/sn-flow-udp + method: GET + data_selector: flow logs specific to UDP + params: {} +- name: SN-HTTP + endpoint: + path: /path/to/sn-http + method: GET + data_selector: http logs + params: {} +- name: SN-HTTP-HUNT + endpoint: + path: /path/to/sn-http-hunt + method: GET + data_selector: http logs + params: {} +- name: SN-HUNT-1 + endpoint: + path: /path/to/sn-hunt-1 + method: GET + data_selector: tls, http, dns, flow, smb, krb, icmp, file transaction logs + params: {} +- name: SN-IDS + endpoint: + path: /path/to/sn-ids + method: GET + data_selector: alert logs + params: {} +- name: SN-IKEv2 + endpoint: + path: /path/to/sn-ikev2 + method: GET + data_selector: ike logs + params: {} +- name: SN-IoC-Search + endpoint: + path: /path/to/sn-ioc-search + method: GET + data_selector: tls, http, dns logs + params: {} +- name: SN-KRB5 + endpoint: + path: /path/to/sn-krb5 + method: GET + data_selector: krb5 logs + params: {} +- name: SN-MQTT + endpoint: + path: /path/to/sn-mqtt + method: GET + data_selector: mqtt logs + params: {} +- name: SN-NFS + endpoint: + path: /path/to/sn-nfs + method: GET + data_selector: nfs logs + params: {} +- name: SN-Network-Overview + endpoint: + path: /path/to/sn-network-overview + method: GET + data_selector: flow logs + params: {} +- name: SN-Network-Overview-1 + endpoint: + path: /path/to/sn-network-overview-1 + method: GET + data_selector: flow logs + params: {} +- name: SN-Network-Overview-2 + endpoint: + path: /path/to/sn-network-overview-2 + method: GET + data_selector: flow logs + params: {} +- name: SN-OVERVIEW + endpoint: + path: /path/to/sn-overview + method: GET + data_selector: any logs + params: {} +- name: SN-POLICY-OLD-TLS + endpoint: + path: /path/to/sn-policy-old-tls + method: GET + data_selector: tls logs + params: {} +- name: SN-POLICY-Violations + endpoint: + path: /path/to/sn-policy-violations + method: GET + data_selector: alert logs + params: {} +- name: SN-POSTPROC-Stats + endpoint: + path: /path/to/sn-postproc-stats + method: GET + data_selector: stats logs + params: {} +- name: SN-RDP + endpoint: + path: /path/to/sn-rdp + method: GET + data_selector: rdp logs + params: {} +- name: SN-RFB + endpoint: + path: /path/to/sn-rfb + method: GET + data_selector: rfb logs + params: {} +- name: SN-SIGHTINGS + endpoint: + path: /path/to/sn-sightings + method: GET + data_selector: tls, http, dns, smb, logs + params: {} +- name: SN-SIGNATURE-Performance + endpoint: + path: /path/to/sn-signature-performance + method: GET + data_selector: signature profiling metrics on cpu ticks + params: {} +- name: SN-SIP + endpoint: + path: /path/to/sn-sip + method: GET + data_selector: sip logs + params: {} +- name: SN-SMB + endpoint: + path: /path/to/sn-smb + method: GET + data_selector: smb logs + params: {} +- name: SN-SMB-DCERPC-Lateral-1 + endpoint: + path: /path/to/sn-smb-dcerpc-lateral-1 + method: GET + data_selector: smb logs + params: {} +- name: SN-SMTP + endpoint: + path: /path/to/sn-smtp + method: GET + data_selector: smtp logs + params: {} +- name: SN-SNMP + endpoint: + path: /path/to/sn-snmp + method: GET + data_selector: snmp logs + params: {} +- name: SN-SSH + endpoint: + path: /path/to/sn-ssh + method: GET + data_selector: ssh logs + params: {} +- name: SN-STAMUS + endpoint: + path: /path/to/sn-stamus + method: GET + data_selector: doc logs + params: {} +- name: SN-TFTP + endpoint: + path: /path/to/sn-tftp + method: GET + data_selector: tftp logs + params: {} +- name: SN-TLS + endpoint: + path: /path/to/sn-tls + method: GET + data_selector: tls logs + params: {} +- name: SN-TrafficID + endpoint: + path: /path/to/sn-trafficid + method: GET + data_selector: alert logs + params: {} +- name: SN-VLAN + endpoint: + path: /path/to/sn-vlan + method: GET + data_selector: all logs + params: {} +- name: dns_events_filter + endpoint: + path: /events/dns + method: GET +- name: flow_events_filter + endpoint: + path: /events/flow + method: GET +- name: enrichment_options + endpoint: + path: /events/enrichment + method: GET +- name: file_extraction + endpoint: + path: /rest/rules/filestore//status/?host= + method: GET + data_selector: status +- name: retrieve_file + endpoint: + path: /rest/rules/filestore//retrieve/?host= + method: GET + data_selector: retrieve +- name: download_file + endpoint: + path: /rest/rules/filestore//download/?host= + method: GET + data_selector: file +- name: alerts + endpoint: + path: /rest/rules/es/alerts_tail/ + method: GET + data_selector: results + params: + qfilter: alert.signature_id%3A AND flow_id%3A +- name: upload_pcap + endpoint: + path: /rest/rules/filestore_pcap/upload/ + method: POST + data_selector: '' + params: + host: +- name: extract_pcap + endpoint: + path: /rest/rules/filestore_pcap//extract_pcap/ + method: POST + data_selector: '' + params: + host: +- name: retrieve_pcap + endpoint: + path: /rest/rules/filestore_pcap//retrieve/ + method: GET + data_selector: '' + params: + host: +- name: download_pcap + endpoint: + path: /rest/rules/filestore_pcap//download/ + method: GET + data_selector: '' + params: {} +- name: NSM settings + endpoint: + path: /nsm/settings + method: GET +- name: Protocols + endpoint: + path: /nsm/protocols + method: GET +- name: HTTP custom fields + endpoint: + path: /nsm/http + method: POST +- name: SMTP custom fields + endpoint: + path: /nsm/smtp + method: POST +- name: DNS custom fields + endpoint: + path: /nsm/dns + method: POST +- name: File handling + endpoint: + path: /nsm/file + method: POST +- name: Rule Activity + endpoint: + path: /nsm/rules/activity + method: GET +- name: alerts + endpoint: + path: /rest/rules/es/alerts_tail/ + method: GET + data_selector: results + params: + qfilter: alert.signature_id%3A{signature_id} AND flow_id%3A{flow_id} +- name: upload_pcap + endpoint: + path: /rest/rules/filestore_pcap/upload/ + method: POST + data_selector: filename + params: + host: +- name: extract_pcap + endpoint: + path: /rest/rules/filestore_pcap//extract_pcap/ + method: POST + data_selector: '' + params: + host: +- name: retrieve_pcap + endpoint: + path: /rest/rules/filestore_pcap//retrieve/ + method: GET + data_selector: '' + params: + host: +- name: download_pcap + endpoint: + path: /rest/rules/filestore_pcap//download/ + method: GET + data_selector: '' + params: {} +notes: +- 'The Access Token must be sent using the HTTP header ''Authorization: Token ''' +- SCS provides out-of-box filters, called Filters Set, and that’s the methodology + we use to produce them. +- You are viewing an older version of this documentation. +- 'Most recent is here: 42.0.0' +- The groups SCSAdmins and SCSStaff need to be part of the group SCSActive otherwise + members will not have an active status and would not be able to log into SCS. +- After the configuration is submitted, you need to click on apply changes to make + it active. +- A name must not be included in another name to avoid potential conflicts during + log fetching. +- The name in load must be the same as the name of the dataset source. +- For both custom source addition types (http url or upload), you should select Individual + Signatures file as Datatype. +- The installation process is mostly unattended. +- Default credentials for login are `scirius:scirius`. +- All models require an USB Keyboard and a VGA monitor (or an adaptator for VGA) to + be able control the boot process of our Appliances. +- External ELK cluster aren’t part of the components we do support. +- To use Stamus Networks support portal, you have to setup an account. +- Each Tenant will be named following the name of the Network Definition used on the + relevant Stamus Network Probe. +- Activating multi-tenancy cannot be reverted without losing all previously collected + data. +- 'The Access Token must be sent using the HTTP header `Authorization: Token `.' +- Hassh must be enabled in the Suricata config file (set ‘app-layer.protocols.ssh.hassh’ + to ‘yes’) +- 'The HTTP header Content-Type: application/json must be provided' +- 'Access Token must be sent using the HTTP header ''Authorization: Token ''' +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Uses OAuth2 for authentication. +- Uses loose filters for exploration is acceptable. +- The SCS provides out-of-box filters called Filters Set. +- High-fidelity Declarations of Compromise™ are generated by Stamus Security Platform, + signaling a serious threat on an asset. +- Beacons and Sightings detection require a NDR license. +- Consider enabling High Entropy NRD and Phishing NRDs 30 days list with any deployment + that is also monitoring internet (North-South) traffic. +- On the smallest Stamus Networks HW probe models - SN-VA-100M (100 mbps virtual model) + only the Phishing NRDs list should be enabled. +- 'Enrichment will be present in event types: SIGHTINGS, alert, flow, tls.' +- Any TLS based alert or TLS protocol event will have Cipher analytics subsection + as part of the standard JSON log. +- The TLS Application-Layer Protocol Negotiation (ALPN) is an extension of the TLS + protocol that allows the client and server to negotiate which application protocol + to use during the TLS handshake. +- Stamus Security Platform analyzes and automatically detects any KRB5-based connection. +- Data in the logs contain various aspects of that encrypted connection including + fields and values related to the encryption itself. +- The Stamus Security Platform is threat intel feed vendor agnostic. +- Daily updated detection methods for various types of encrypted communication. +- A filter set is basically a hunting idea or concept – translated into criteria based + on the selection, negation and wild carding of event metadata values. +- The import/export format is json. +- Any data from the Kibana dashboards or visualizations can be exported as CSV or + PDF. +- Over 120 pre-defined filter sets available. +- Filters can be negated or wildcarded. +- After any configuration change in this section is submitted, you need to click on + apply changes to make it active. +- Only Global Filter Sets and Private Filter Sets can be deleted. +- Consult your Identity Provider (IdP) for more details what configuration needs to + be provided, like the Identity Provider URL and the Identity Provider metadata. +- Some IdP’s won’t need that SP metadata to be provided. +- Stamus Central Server does not support external SSL Elasticsearch that is using + a self signed certificate or any certificate that is not signed by a publicly trusted + certificate authority (CA based PKI) +- Your comments, suggestions, and ideas for improvements are very important to us. +- In case there is a no interface displayed, you can use (Re)discover system parameters + under Special actions sub menu from the left hand side panel. +- After any configuration change in the authentication section, you need to click + on apply changes. +- For all settings related to Network Security Monitoring, you need to apply changes + on the probe once you are happy with your change set. +- It is recommended to select at least Conditional logging as it will provide context + around IDS alerts that is really beneficial when doing investigation. +- Declarations of Compromise were formerly known as STR Events prior U38.0.0 +- If you enable an external Elasticsearch on your SCS setup and you do not explicitly + specify a port, then port 9200 will be set as a default one. +- The objectives is to lower the amount of generated data by applying some specific + filters. +- You need to apply changes on the probe once you are happy with your change set. +- File extraction has a performance impact on the Stamus Probe it is enabled on. +- Extracted files are de-duplicated. +- Extracted files are de-duplicated. In other words if the same file is extracted + 5 times it will only be saved to disc once on the particular Stamus Probe. +- Each subnet or IP address in the network definition must be unique. +- Load balancers and proxies should be excluded from the HOME_NET in order not to + miss detection. +- You need to enable listening to port 443/TCP if you want to configure and apply + VPN proxy settings on a probe. +- Templates allow you to change properties on a set of Stamus Probes in one single + action. +- Specific settings can be overridden when editing a template. +- Load balancers and proxies should be excluded from the HOME_NET. +- VPN probes and Loggers are incompatible in v39.0.0. +- The configuration of the SCS will be lost when converting to a Stamus Logger. +- RYOD requires dedicated performance and HW resources. It is not recommended to enable + and run RYOD containers in Virtual production environments. +- After registering successfully a Stamus Networks Probe, some additional configuration + needs to be done. +- At least one protocol needs to be set active. +- The correct sniffing network interface needs to be activated. +- Using port 443/TCP breaks the IP address logging of connections to SCS. +- You need to have at least one interface prior to submitting proxy configuration. +- To create a template, go to Appliances then click Add template in the Action category + of the left menu. +- To list templates, click on Template list. There you can select a template and edit + it by clicking on Edit settings in the Action category of the left menu. +- Overridden settings are displayed with a pin on the top right corner. To get back + to template value, simply click on the pin and validate the action by clicking on + Reset in the pop up. +- For any template changes to take effect and become active you would need to Apply + changes on the particular probe or probes. +- Upload managed files are not updated during ruleset update. +- To trigger an update, you need to Edit the source and upload a new file. +- VPN probes and Loggers are incompatible in v39.0.0 +- 'WARNING: converting SCS into a Stamus Logger will lose the configuration of the + SCS and cannot be reverted.' +- Bad written signatures can result in very bad detection performance for the whole + system or generate very noisy alerts. +- Make sure that the variables HOME_NET and EXTERNAL_NET are correctly set, since + a big portion if signatures rely on those. +- In general the so called sticky buffers in Suricata provide a better performance + compared to the legacy keywords. +- Once the configuration fits your environment requirements, don’t forget to Apply + Changes +- Password for `ams` user should be used as one time password for probe registration + in the Stamus Central Server interface. +- 'On CentOS based sensors: The option **Defaults requiretty** in **/etc/sudoers** + needs to be commented.' +- Webhooks are only available with Clear NDR Tier 3 +- Uses Suricata signatures for detection capabilities. +- Webhook takes the scirius visible address to construct the links to NDR. +- In some specific cases, if you are using the AIO, Logstash over VLAN, etc. - you + would need to adjust the webhooks template content, in order to make it work. +- Ensure to use specific variables instead of 'any' unless there is a good reason + to not follow that. +- Using 'threshold' is a good way to limit alerts and reduce noise. +- External Links Templates offer dynamic and customizable access to the latest threat + intelligence available. +- This feature streamlines the investigation process by providing immediate access + to external information on suspicious entities. +- Password for 'ams' user is used as a one-time password for probe registration. +- After registration, the password of the 'ams' user will be reset by SCS. +- The default user’s (scirius) credentials need to be reset with the `stamus_config` + CLI tool on the Stamus Central Server. +- Use user `admin` for AWS, GCP and `adminaz` for Azure when connecting over the shell. +- Please contact Stamus Networks to obtain the latest images for AWS/GCP/Azure. +- If you SCS is able to access Internet over HTTPS, then all you need to do is to + configure a Source to get updates from https://ti.stamus-networks.io +- The proper deployment for Stamus Network Probes is crucial to ensure the correct + visibility of network traffic in the environment. +- Full coverage every traffic passing any switch would have to be mirrored, but that + is rarely feasible. +- It is highly recommended to configure the custom system with 2 disks in RAID 1 redundant + storage array. +- External Links Templates can also be edited or deleted from the External links page. +- Default credentials are snuser:snpasswd for initial login. +- After installation, change the default password using the passwd command. +- Ensure the USB key has at least 2GB of space +- Substitute `/dev/sdc` from this example to the actual device of the USB stick that + you have plugged into your system. +- On Windows, you can use programs such as Rufus to write the ISO file to a USB stick. +- Make sure to setup the BIOS to boot the USB stick in Legacy mode. +- Restoring from a backup created on non-consecutive versions will not be possible. +- Restoring data will cause all existing data to be lost. +- Stamus Central Server (SCS) upgrade time will vary depending on the hardware or + allocated resources of the system and could take up to 40 minutes for smaller VMs. +- A full coverage every traffic passing any switch would have to be mirrored, but + that is rarely feasible. +- If the error is only localized on SCS, generate a report for SCS. If the error is + on the probe, generate a report on both SCS and the Probe. +- The software is licensed annually, and multiple years may be purchased together. +- All licenses include software maintenance and support with new software updates + approximately every 3 months. +- If you are installing the Stamus Central Server or the Stamus Network Probe on a + custom hardware (non Stamus issued HW), it is required to have the custom HW configuration + to be approved prior by Stamus Networks. +- Ensure all services and connections are running properly on both SCS and Stamus + Probes. +- Refer to SNMP’s user manual to properly configure the SNMP daemon according to the + specification of your environment. +- Ensure that the networks you map during the deployment match your VM’s requirements. +- All OVF images come with fixed disks, that can be adjusted if needed. +- Setup the BIOS to boot the USB stick in Legacy mode +- Default pagination returns 30 items per page starting from page 1. +- Date parameters must be provided in Unix Timestamp format. +- If restoring the backup on a machine with different IP address, an additional configurational + step is needed. +- Default pagination returns 30 items per page starting from the first page. +- Execute troubleshooting steps via the provided API endpoints. +- SNMP (Simple Network Management Protocol) is a widely used protocol for network + management. +- If multi-tenancy is enabled, ensure correct tenant value is used. +- Unix timestamp format is required for date and time parameters. +- If multi-tenancy is enabled, appropriate tenant value should be used. +- Pagination settings can be modified if needed. +- API calls require a token in order to ensure secure communication. +- If multi-tenancy is enabled, uncomment the corresponding lines in the class. +- If customizations are needed for pagination and date/time range uncomment lines + in the methods. +- Requires setup of connected app in api +- API calls require a token for secure communication. +- By default, API calls will return 30 items per page starting from page 1. +- By default Stamus Central Server uses a pagination system with a default page size + of 30 and starts on page 1. +- API calls will return 30 items per page starting from the first page. +- If customizations are needed for pagination and date/time range uncomment the corresponding + lines below and change to desired value. +- If tenancy is enabled, uncomment the lines below +- Date and time must be provided in Unix Timestamp format. +- Default pagination is set to return 30 items per page starting from page 1. +- Tenant parameter is not used by default and should only be used if multi-tenancy + is enabled. +- Default pagination returns 30 items per page starting from page 1 +- Any and all logs produced by the Stamus Central Server are in standard JSON format. +- Each event produced by the Stamus Central Server has its own log event type. +- Some objects may return nulls in deeply nested fields +- Fields include timestamp, event_type, src_ip, src_port, dest_ip, dest_port, proto. +- Extended logging can provide additional details such as HTTP method, status, and + headers. +- Uses new version of dns logging to improve how dns answers are logged +- GopherCap is a lightweight tool for working with PCAP files. +- This API provides access to various types of event data including alerts, anomalies, + and HTTP events. +- Uses different formats for logging dns answers +- IKEv1 and IKEv2 have different feature sets +- GopherCap uses a single configuration dictionary for all subcommands. +- For the rest of the High Entropy NRDs or All NRD there must be minimum of 2.4Gb + or 3.6GB additional RAM respectively available. +- Any TLS based alert or TLS protocol event will have TLS JA4 subsection as part of + the standard JSON log. +- Any DCERPC event will have enrichment in the form of a name mapping subsection as + part of the standard JSON log. +- Any protocol event will have enrichment in the form tx_id as part of the standard + JSON log. +- Any SSH protocol event will have by default the ssh client and server software and + version as part of its log. +- Predefined filter sets are organized around 11 categories. +- The combined power of predefined filter sets with local organizational enrichment + provides a proactive approach to minimizing the risk of malware. +- On the smallest Stamus Networks HW probe models - SN-VA-100M only the Phishing NRDs + list should be enabled. +- Global filter sets are shared between all authorized and authenticated users. +- Private filter sets are available only to the user who created them. +- Any TLS based alert or TLS protocol event (even TLS 1.3 with full encryption) will + have TLS JA4 subsection as part of the standard JSON log. +- Stamus Security Platform is threat intel feed vendor agnostic +- Uses a drill down approach to select events. +- All time range will set a time range from the first to the last stored alert. +- 10.136.0.27 is the IP of SCS +- There is a fall back on local database but one should keep a user with admin privilege + in the local database which username is not available/existing in the Active Directory. +- Some IdP’s won't need that SP metadata to be provided. Consult the documentation + of the Identity Provider that is going to be used. +- After any configuration change in the authentication section is submitted, you need + to click on apply changes to make it active. +- Stamus Central Server does not support external SSL Elasticsearch that is using + a self signed certificate or any certificate that is not signed by a publicly trusted + certificate authority +- In case there is a no interface displayed, you can use '(Re)discover system parameters' + under 'Special actions' sub menu from the left hand side panel. +- Provides insights into various categories of policy violations. +- Allows creation of custom Declarations of Policy Violation. +- This system allows you to filter some network security monitoring events based on + some criteria. +- The partition on which the files are stored on the Network Probes can only be extended + on virtual machines. +- You can use a custom HTTPS certificate and key for the connection with the web UI. +- To clear the logs history, click on `Appliances` major menu, select `Global Appliance + Settings` from the drop down menu on the left upper side corner(Stamus Networks + logo). +- To clear the logs history, click on Appliances major menu, select Global Appliance + Settings from the drop down menu on the left upper side corner(Stamus Networks logo). +- Once you configure the VPN proxy settings, you have to recreate the VPN certificate + and register the Probe. +- If a child template that is deployed to a probe is deleted - the parent/base template + takes over. +- For any template changes to take effect and become active you would need to `Apply + changes` on the particular probe or probes. +- This operation cannot be reverted. +- Before you begin and in case you already have VPN probe(s), you should have in mind + that VPN probes and Loggers are incompatible in v39.0.0. +- 'WARNING: this will convert the SCS into a Stamus Logger. The configuration of the + SCS will be lost. This operation cannot be reverted.' +- If you are a SELKS user, the menu Appliances won’t be accessible to you. Instead, + use the Suricata menu. +- Stamus Networks is threat intel vendor agnostic. +- The expected format is pure text, one IoC (like a Domain or HTTP user agent) per + line. +- Each time you change a signature, increase the revision value rev:. +- By default only the top 10 signatures are shown. This can be adjusted via Custom + suricata runtime flags. +- Upload managed file are not updated during ruleset update. +- By default only the top 10 signatures are shown. This can be adjusted via Custom + suricata runtime flags +- Apply changes to both Stamus Central Server and Probe after enabling SSL. +- Once you have selected the checkbox, you will see that there is one more option + you could choose - Signature based Stamus Threat Radar. +- In order to be able to use the Signature based Stamus Threat Radar feature, you + should mandatorily add stamus.rules to the list of sources in suricata.yaml, then + restart Suricata on your Custom Sensors. +- Password for ams user should be used as one time password for probe registration + in the Stamus Central Server interface. +- After executing the steps above, you should do an Update/Push Ruleset in order to + enable log shipping from the remote Suricata sensor to Stamus Central Server. +- Provides daily Threat Updates to ensure up to date coverage of recent threats. +- Daily Threat Updates to ensure up-to-date coverage of recent threats. +- Webhooks are only available with Stamus NDR +- External Links Templates can be edited or deleted from the External links page. +- If you are already using Webhooks and would like to enable Multi Tenancy feature, + you need to adjust your Webhooks Integrations setup. +- Traffic captured directly at the WAN uplink will show all traffic coming in and + outside the network. +- The described guideline highly benefits from a proper network architecture with + strict segregation. +- Free Sales Trial license limited to 30 days, may be extended. +- Sales Trial license is limited to 30 days. +- Stamus Network Probe has 2 network interfaces, one for management and one for sniffing + the traffic. +- The sniffing interface on the Network Probe is set to Promiscuous mode. +- Highly recommended to configure the custom system with 2 disks in RAID 1 redundant + storage array. +- Default credentials for login are snuser:snpasswd. +- Use sudo stamus_config to set minimum required parameters. +- The installation process is mostly unattended and all you need to do is select the + first option when presented with the installation screen. +- Once the parameters are set, Save & apply changes, exit stamus_config and reboot + the system using sudo reboot. +- Make sure to setup the BIOS to boot the USB stick in Legacy mode +- If restoring the backup on a machine with different ip address, an additional configurational + step is needed. +- Restoration procedure doesn’t include network parameters of the system. +- Token is generated via SSH command. +- Ensure the API is reachable before executing troubleshoot steps. +- Date and time parameters must be provided in Unix Timestamp format. +- Default pagination starts on page 1. +- API calls return 30 items per page starting from page 1. +- Use Unix Timestamp format for date and time parameters. +- If multi-tenancy is enabled, the tenant parameter should be used. +- If multi-tenancy is enabled, corresponding lines need to be uncommented and the + correct tenant value should be used. +- If multi-tenancy is enabled, you may need to customize parameters. +- By default, API calls will return 30 items per page starting from the first page. +- Tenant parameter should only be used if multi-tenancy is enabled. +- Default API calls will return 30 items per page starting from page 1. +- Default settings for tenancy and pagination are employed. +- Pagination defaults to 30 items per page +- Date must be provided in Unix Timestamp format +- Multi-tenancy is supported +- Custom pagination settings can be applied +- Pagination defaults to 30 items per page starting from page 1. +- Customizations are needed for pagination and date/time range. +- Default page size is 30, starts on page 1 +- If multi-tenancy is enabled, appropriate tenant parameters should be added. +- By default API calls will return 30 items per page starting from the first page. +- Uses JSON format for logs +- Includes common fields across different event types +- New version of dns logging improves how dns answers are logged. +- DNS events can be logged in detailed or grouped format. +- Uses SMB protocol for events +- Stamus Central Server generates different types of data that can be used in various + cases such as - detection, hunting, matching, statistics and analysis. +- GopherCap can handle large asynchronous PCAP sets efficiently. +- CLI flags override values in configuration dictionary. +- Uses detailed and grouped formats for logging DNS answers +- Control over logged RR types using 'types' field in suricata.yaml +- Uses JSON data format for SMB events +- Gophercap is an open source project maintained by Stamus Networks for accurate, + modular and scalable PCAP manipulation. +- File extraction is performed through the usage of Suricata rules. +- All extracted files will have their sha256 fingerprint computed. +- The deduplication of files is performed on a per probe basis. +- To clear the logs history, click on Appliances major menu, select Global Appliance + Settings from the drop down menu on the left upper side corner(Stamus Networks logo). + Click on the Log retention tab and click Clean old logs now. +- If your network is not compliant with RFC1918, simply define your internal networks + in Home as they are, this will work as expected. +- All your subnets and IPs should be part of Home, including your public IP addresses. +- The HOME_NET type can also be set to All networks. Choose this option if your network + definition doesn’t define 'Internet' (0.0.0.0/0) and only contains addresses and + subnets that belong to your organization. +- As of U38.0, there is a UI bug that displays a brown triangle next to the subnets + or IP addresses indicating that the address is invalid. While this is disturbing, + this is just a UI glitch and the underlying logic works. Simply ignore this warning, + this will be fixed soon. +- Default user/password combination to connect to the container is login 'snuser' + and password 'snpasswd'. +- After executing the steps above, you should do an `Update/Push Ruleset` in order + to enable log shipping from the remote Suricata sensor to Stamus Central Server. +- If you are working in a closed environment which prevent SCS from accessing Internet, + you will need to regularly update threats definition manually. +- Over 110 pre-defined filter sets available. +- As of October 2021, Microsoft Azure Virtual Network TAP is on hold for all regions. + Deploying Network Probes in Microsoft Azure requires a third party packet broker. +- The software versions must strictly be identical on the backuped server and the + restored VM. +- Some of those files may be potentially dangerous, proceed with caution when downloading + them! +- Some objects like Contact may return nulls in deeply nested fields +- Once a RYOD container is created it can be accessed via SSH protocol at the same + address as the Stamus Central Server but on a separate port. +- The default user/password combination to connect to the container is login `snuser` + and password `snpasswd`. So please change it as soon as you connect to the container. +- GopherCap is an open source project maintained by Stamus Networks for accurate, + modular and scalable PCAP manipulation. +- Gophercap does not aim to be a generic traffic replay tool like tcpreplay. +- Ensure proper SMTP configuration for email notifications. +- Webhook actions can be triggered for STR events. +- Uses OAuth2 for authentication — requires configuration of Clear NDR® Central Server +- High-fidelity Declarations of Compromise™ (DoCs) are high-confidence and high-priority + security events generated by Stamus Security Platform. +- Guided threat hunting empowers users to investigate, classify, escalate, and automate + vast amounts of event data. +- Keep a user with admin privilege in the local database which username is not available/existing + in the Active Directory. +- Consult your Identity Provider (IdP) for more details on configuration. +- If Stamus Central Server can not connect directly to the internet and has to use + a proxy, you can check the `Use a proxy` checkbox. +- Before you enable the external Elasticsearch cluster, you should have in mind that + Evebox only supports one single ES node. +- If you enable an external Elasticsearch on your SCS setup and you do not explicitly + specify a port, then port `9200` will be set as a default one. +- Activating network card load balancing is not recommended for virtual probes. +- Declarations of Compromise were formerly known as STR Events prior U38.0.0. +- Some IdP’s won't need that SP metadata to be provided. +- Extracted files are de-duplicated on a per probe basis. +- Unset the checkbox `Use elasticsearch` if you want to totally remove all data analysis + from the product. +- Evebox only supports one single ES node. So in case you have more than one node, + Evebox will not be accessible. +- Conditional pcaps stored are automatically rotated based on total size limit for + all. +- Changes need to be applied on the probe once the desired configurations are set. +- The recommended logging for protocols is at least 'Conditional logging'. +- Once a new Declaration of Compromise has been created, please update/push ruleset. +- To clear the logs history, click on `Appliances` major menu, select `Global Appliance + Settings` from the drop down menu on the left upper side corner. +- 'Important: It is highly recommended and advised for any expert configurational + changes to be reviewed and approved by Stamus Networks as there can be performance + and/or detection impact.' +errors: +- '401 Unauthorized: Invalid Token' +- 'INVALID_CREDENTIALS: Check bind parameters for accuracy.' +- 'Authentication failed for user: user DN/password rejected by LDAP server.' +- 'Authentication failed for user: failed to map the username to a DN.' +- Contact support for assistance with account setup +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Recheck API key or token expiration' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- 'FILTER_NOT_FOUND: Ensure correct filter name is used.' +- 'INVALID_FILTER_SYNTAX: Check for proper syntax in filter definitions.' +- 'SC_ERR_UNKNOWN_PROTOCOL(124): protocol cannot be used in a signature.' +- 'SC_ERR_INVALID_SIGNATURE(39): error parsing signature from file.' +- 'SC_ERR_NO_RULES(42): No rules loaded from file.' +- 'Invalid configuration: Check sensor settings and ensure all prerequisites are met.' +- 'Connection failed: Ensure SSH access is enabled and credentials are correct.' +- '401 Unauthorized: Check your credentials and permissions.' +- Dropped packets, either on the path towards the probe or on the probe, are a big + issue, because the detection is negatively impacted. +- If packets are missing it’s very similar to dropped packets and are typical issue + with oversubscribed mirror parts. +- 'TOKEN_EXPIRED: Generate a new access token.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'INVALID_TENANT: Ensure correct tenant ID is used.' +- '401 Unauthorized: Check the provided token and its validity.' +- '404 Not Found: Ensure the specified probe or appliance exists.' +- '500 Internal Server Error: The server encountered an unexpected condition.' +- '401 Unauthorized: Recheck token validity or permissions' +- '401 Unauthorized: Recheck token validity' +- '404 Not Found: Verify the endpoint path' +- '500 Internal Server Error: Retry the request later' +- '401 Unauthorized: Check token validity.' +- '404 Not Found: Ensure the endpoint is correct.' +- '401 Unauthorized: Recheck token validity or permissions.' +- '401 Unauthorized: Ensure token is valid and has proper scopes.' +- '429 Too Many Requests: Throttle API calls to avoid rate limiting.' +- '404 Not Found: Check the endpoint and parameters for correctness.' +- '401 Unauthorized: Recheck access token validity or permissions' +- '400 Bad Request: Check the request parameters' +- '404 Not Found: Ensure the endpoint exists' +- '500 Internal Server Error: Try again later or contact support' +- 'INVALID_CREDENTIALS: Check bind parameters' +- 'user DN/password rejected by LDAP server: Check user credentials' +- 'failed to map the username to a DN: Check if the user exists' +- 'INVALID_CREDENTIALS: Check the bind parameters.' +- 'Authentication failed for : user DN/password rejected by LDAP server.' +- Error. Host %s is not up... +- 'Request failed with status code: {status_code}' +- '400 Bad Request: Ensure the JSON structure is correct when importing.' +- 'SC_ERR_NO_RULES(42): No rules loaded from rules file.' +- 'SC_ERR_NO_RULES(42): No rules loaded from the specified rule file.' +- If your sniffing interface doesn’t appear in the list of the interfaces, you can + add it manually. +- 'EXIT_WUSAGE: Usage error in script execution.' +- 'EXIT_WERROR_NOSSH: SSH connection error.' +- 'EXIT_WFAILCHECK: Troubleshoot check failure.' +- Request for account setup may be triaged to the SPAM folder. +- '401 Unauthorized: Recheck token validity.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity.' +- '401 Unauthorized: Ensure correct token is provided.' +- '404 Not Found: Verify the endpoint is correct.' +- '500 Internal Server Error: Contact support if this issue persists.' +- '401 Unauthorized: Ensure the token is valid and not expired.' +- 'Unauthorized: Check the token and ensure it is valid.' +- 'Not Found: Verify the endpoint and parameters.' +- '400 Bad Request: Check request parameters' +- '401 Unauthorized: Check token validity' +- '500 Internal Server Error: Check server status' +- '400 Bad Request: Check your query parameters' +- '404 Not Found: Check endpoint path' +- '500 Internal Server Error: Retry the request' +- '401 Unauthorized: Check if the token is valid' +- '404 Not Found: Ensure the endpoint path is correct' +- '500 Internal Server Error: An unexpected error occurred' +- '401 Unauthorized: Recheck token validity or scopes' +- '401 Unauthorized: Recheck token validity or authorization' +- '404 Not Found: Check endpoint path or resource existence' +- 'INVALID_QUERY: The DNS query is malformed.' +- 'NO_DATA: The DNS query returned no data.' +- 'ERROR_FILE_NOT_FOUND: Check the file path.' +- 'ERROR_INVALID_REGEXP: Ensure the regular expression is valid.' +- '404 Not Found: The specified file does not exist.' +- '403 Forbidden: Insufficient permissions to access the file.' +- '401 Unauthorized: Check OAuth scopes or token expiration' +- '200: Request is successful!' +- '404: Resource not found' +- '400: Bad request' +auth_info: + mentioned_objects: + - LDAP server URI + - LDAP bind user + - LDAP search settings + - LDAP groups mapping + - RestCall + - HostInsights + - Alerts + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https:///rest/ + auth: + type: Token + location: header + header_name: Authorization + paginator: + default_page_size: 30 +source_metadata: null diff --git a/stannp_events_api/stannp-events-api-docs.md b/stannp_events_api/stannp-events-api-docs.md new file mode 100644 index 00000000..8508a667 --- /dev/null +++ b/stannp_events_api/stannp-events-api-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Stannp data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def stannp_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://app-us1.stannp.com/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + webhooks,,campaigns,,users/me + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='stannp_migration_pipeline', + destination='duckdb', + dataset_name='stannp_migration_data', + ) + # Load the data + load_info = pipeline.run(stannp_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from stannp_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- User Management: Manage user accounts and retrieve user details. +- Campaign Management: Create, manage, and track campaigns sent through the platform. +- Mailpiece Operations: Handle operations related to letters and postcards, including sending and tracking. +- Pricing and Samples: Access pricing information and sample mailpieces. + +You will then debug the Stannp pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Stannp support. + ```shell + dlt init dlthub:stannp_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Stannp API, as specified in @stannp_migration-docs.yaml + Start with endpoints webhooks and and skip incremental loading for now. + Place the code in stannp_migration_pipeline.py and name the pipeline stannp_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python stannp_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is handled through OAuth2 using a refresh token, which requires the setup of a connected app in Stannp. + + To get the appropriate API keys, please visit the original source at https://www.stannp.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python stannp_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline stannp_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset stannp_migration_data + The duckdb destination used duckdb:/stannp_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline stannp_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("stannp_migration_pipeline").dataset() + # get ebhook table as Pandas frame + data.ebhook.df().head() + ``` + +## Running into errors? + +Be mindful of rate limits which may apply to prevent excessive API calls. Ensure that you have correctly configured your OAuth2 setup and that your API key is valid. Some operations may have specific requirements for idempotency keys and webhook configurations. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/stannp_events_api/stannp-events-api-docs.yaml b/stannp_events_api/stannp-events-api-docs.yaml new file mode 100644 index 00000000..600e0990 --- /dev/null +++ b/stannp_events_api/stannp-events-api-docs.yaml @@ -0,0 +1,3792 @@ +resources: +- name: recipient_event + endpoint: + path: /v1/recipientEvents/create + method: POST + data_selector: data +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: POST + data_selector: document + params: {} +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: POST + data_selector: document + params: {} +- name: Bulk mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: Virtual printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: Automations + endpoint: + path: /uk/automations + method: GET +- name: Developer tools + endpoint: + path: /uk/developer-tools + method: GET +- name: API docs + endpoint: + path: /uk/direct-mail-api/guide + method: GET +- name: postcard + endpoint: + path: /uk/postcards + method: GET + data_selector: postcards + params: {} +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: samples + endpoint: + path: /uk/samples + method: GET +- name: developer_tools + endpoint: + path: /uk/developer-tools + method: GET +- name: integrations + endpoint: + path: /uk/integrations + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET + data_selector: records +- name: sms + endpoint: + path: /uk/automated-sms + method: POST +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET + data_selector: records +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: recipients + endpoint: + path: /api/v1/recipients/new + method: POST + data_selector: data + params: + group_id: '1' + on_duplicate: update + firstname: Steve + lastname: Parish + address1: Unit 12 Taw Trade Park + city: Barnstaple + postcode: EX31 1JZ + country: GB +- name: recipients + endpoint: + path: /api/v1/recipients/new + method: POST + data_selector: data + params: {} +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: samples + endpoint: + path: /uk/samples + method: GET +- name: developer_tools + endpoint: + path: /uk/developer-tools + method: GET +- name: api_docs + endpoint: + path: /uk/direct-mail-api/guide + method: GET +- name: integrations + endpoint: + path: /uk/integrations + method: GET +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: samples + endpoint: + path: /uk/samples + method: GET +- name: developer_tools + endpoint: + path: /uk/developer-tools + method: GET +- name: Postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: Letters + endpoint: + path: /uk/letters + method: GET +- name: Greetings cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: SMS + endpoint: + path: /uk/automated-sms + method: GET +- name: Request samples + endpoint: + path: /uk/samples + method: GET +- name: Developer tools + endpoint: + path: /uk/developer-tools + method: GET +- name: Virtual printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: Bulk mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: Automations + endpoint: + path: /uk/automations + method: GET +- name: Integrations + endpoint: + path: /uk/integrations + method: GET +- name: Pricing + endpoint: + path: /uk/pricing + method: GET +- name: reviews + endpoint: + path: /drive-reviews + method: GET + data_selector: records +- name: Drive reviews + endpoint: + path: /uk/drive-reviews + method: GET +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: samples + endpoint: + path: /uk/samples + method: GET +- name: developer_tools + endpoint: + path: /uk/developer-tools + method: GET +- name: api_docs + endpoint: + path: /uk/direct-mail-api/guide + method: GET +- name: integrations + endpoint: + path: /uk/integrations + method: GET +- name: knowledgebase + endpoint: + path: https://knowledge.stannp.com/eu + method: GET +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greeting_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: samples + endpoint: + path: /uk/samples + method: GET +- name: direct_mail_campaign + endpoint: + path: /uk/direct-mail-api/campaign + method: POST + data_selector: campaigns +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: direct_mail_campaign + endpoint: + path: /api/direct_mail_campaign + method: POST + data_selector: campaign_data +- name: account_statements + endpoint: + path: /api/account_statements + method: GET + data_selector: statements +- name: direct_mail_campaigns + endpoint: + path: /api/v1/direct_mail_campaigns + method: GET + data_selector: data + params: {} +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: samples + endpoint: + path: /uk/samples + method: GET +- name: direct_mail + endpoint: + path: /uk/parking + method: GET +- name: address_verification + endpoint: + path: /uk/address-verification + method: POST + data_selector: verification_results +- name: address_verification + endpoint: + path: /uk/address-verification + method: POST + data_selector: verificationResult +- name: postcode_radius_search + endpoint: + path: /uk/radius + method: GET +- name: postcode_radius_search + endpoint: + path: /uk/radius + method: GET + data_selector: recipient_group +- name: data_feeds + endpoint: + path: /data/feeds + method: GET + data_selector: feeds + params: {} +- name: companies + endpoint: + path: /data/prospectfeed + method: GET + data_selector: records + params: {} +- name: bulk_mailer + endpoint: + path: /api/bulk-mail + method: POST + data_selector: data + params: {} +- name: bulk_mailer + endpoint: + path: /api/bulk-mailer + method: POST + data_selector: data + params: {} +- name: virtual_printing + endpoint: + path: /api/virtual-printing + method: POST + data_selector: data + params: {} +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: samples + endpoint: + path: /uk/samples + method: GET +- name: developer_tools + endpoint: + path: /uk/developer-tools + method: GET +- name: integrations + endpoint: + path: /uk/integrations + method: GET +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: samples + endpoint: + path: /uk/samples + method: GET +- name: developer_tools + endpoint: + path: /uk/developer-tools + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: integrations + endpoint: + path: /uk/integrations + method: GET +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greeting_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: samples + endpoint: + path: /uk/samples + method: GET +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: integrations + endpoint: + path: /uk/integrations + method: GET +- name: pricing + endpoint: + path: /uk/pricing + method: GET + data_selector: pricing_data +- name: bulk_mailer + endpoint: + path: /uk/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /uk/virtual-printing + method: GET +- name: automations + endpoint: + path: /uk/automations + method: GET +- name: postcards + endpoint: + path: /uk/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /uk/letters + method: GET +- name: greeting_cards + endpoint: + path: /uk/greetings-cards + method: GET +- name: sms + endpoint: + path: /uk/automated-sms + method: GET +- name: samples + endpoint: + path: /uk/samples + method: GET +- name: developer_tools + endpoint: + path: /uk/developer-tools + method: GET +- name: api_docs + endpoint: + path: /uk/direct-mail-api/guide + method: GET +- name: integrations + endpoint: + path: /uk/integrations + method: GET +- name: bulk_mailer + endpoint: + path: /us/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /us/virtual-printing + method: GET +- name: automations + endpoint: + path: /us/automations + method: GET +- name: developer_tools + endpoint: + path: /us/developer-tools + method: GET +- name: bulk_mail_campaigns + endpoint: + path: /api/v1/bulk-mail + method: POST + data_selector: data + params: {} +- name: bulk_mail_campaign + endpoint: + path: /api/bulk-mail-campaign + method: POST + data_selector: data + params: {} +- name: mailing_list + endpoint: + path: /api/mailing-list + method: GET + data_selector: records + params: {} +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET + data_selector: records +- name: bulk_mailer + endpoint: + path: /api/bulk-mailer + method: POST + data_selector: data + params: {} +- name: greetings_cards + endpoint: + path: /uk/greetings-cards + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /api/campaign_member + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /api/contact + method: GET + data_selector: records + params: {} +- name: letters + endpoint: + path: /us/letters + method: GET + data_selector: records + params: {} +- name: samples + endpoint: + path: /us/samples + method: GET + data_selector: records + params: {} +- name: postcards + endpoint: + path: /us/direct-mail-postcards + method: GET + data_selector: records +- name: letters + endpoint: + path: /us/letters + method: GET + data_selector: records +- name: self-mailers + endpoint: + path: /us/self-mailers + method: GET + data_selector: records +- name: sms + endpoint: + path: /us/automated-sms + method: GET + data_selector: records +- name: samples + endpoint: + path: /us/samples + method: GET + data_selector: records +- name: developer_tools + endpoint: + path: /us/developer-tools + method: GET + data_selector: records +- name: bulk_mailer + endpoint: + path: /us/bulk-mailing-service + method: GET + data_selector: records +- name: automations + endpoint: + path: /us/automations + method: GET + data_selector: records +- name: sms + endpoint: + path: /us/automated-sms + method: POST + data_selector: sms_data + params: {} +- name: SMS + endpoint: + path: /us/automated-sms + method: GET +- name: recipients + endpoint: + path: /api/v1/recipients/new + method: POST + data_selector: data + params: {} +- name: recipients + endpoint: + path: /api/v1/recipients/new + method: POST + data_selector: data + params: {} +- name: bulk_mailer + endpoint: + path: /bulk-mailer + method: POST + data_selector: records + params: {} +- name: virtual_printing + endpoint: + path: /virtual-printing + method: POST + data_selector: records + params: {} +- name: automations + endpoint: + path: /automations + method: POST + data_selector: records + params: {} +- name: Postcards + endpoint: + path: /us/direct-mail-postcards + method: GET +- name: Letters + endpoint: + path: /us/letters + method: GET +- name: Self-mailers + endpoint: + path: /us/self-mailers + method: GET +- name: SMS + endpoint: + path: /us/automated-sms + method: GET +- name: Request samples + endpoint: + path: /us/samples + method: GET +- name: Developer tools + endpoint: + path: /us/developer-tools + method: GET +- name: Virtual printing + endpoint: + path: /us/virtual-printing + method: GET +- name: Bulk mailer + endpoint: + path: /us/bulk-mailing-service + method: GET +- name: Automations + endpoint: + path: /us/automations + method: GET +- name: postcards + endpoint: + path: /us/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /us/letters + method: GET +- name: self-mailers + endpoint: + path: /us/self-mailers + method: GET +- name: sms + endpoint: + path: /us/automated-sms + method: GET +- name: samples + endpoint: + path: /us/samples + method: GET +- name: developer_tools + endpoint: + path: /us/developer-tools + method: GET +- name: virtual_printing + endpoint: + path: /us/virtual-printing + method: GET +- name: bulk_mailer + endpoint: + path: /us/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /us/automations + method: GET +- name: pricing + endpoint: + path: /us/pricing + method: GET +- name: automations + endpoint: + path: /us/automations + method: GET + data_selector: records +- name: postcards + endpoint: + path: /us/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /us/letters + method: GET +- name: self-mailers + endpoint: + path: /us/self-mailers + method: GET +- name: sms + endpoint: + path: /us/automated-sms + method: GET +- name: samples + endpoint: + path: /us/samples + method: GET +- name: developer_tools + endpoint: + path: /us/developer-tools + method: GET +- name: virtual_printing + endpoint: + path: /us/virtual-printing + method: GET +- name: bulk_mailer + endpoint: + path: /us/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /us/automations + method: GET +- name: direct_mail_campaign + endpoint: + path: /api/v1/direct_mail_campaigns + method: POST + data_selector: data + params: {} +- name: automations + endpoint: + path: /us/automations + method: GET +- name: api_docs + endpoint: + path: /us/direct-mail-api/guide + method: GET +- name: postcards + endpoint: + path: /us/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /us/letters + method: GET +- name: self-mailers + endpoint: + path: /us/self-mailers + method: GET +- name: sms + endpoint: + path: /us/automated-sms + method: GET +- name: samples + endpoint: + path: /us/samples + method: GET +- name: developer_tools + endpoint: + path: /us/developer-tools + method: GET +- name: virtual_printing + endpoint: + path: /us/virtual-printing + method: GET +- name: bulk_mailer + endpoint: + path: /us/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /us/automations + method: GET +- name: pricing + endpoint: + path: /us/pricing + method: GET +- name: direct_mail_campaigns + endpoint: + path: /api/v1/direct_mail_campaigns + method: POST + data_selector: campaign + params: {} +- name: postcards + endpoint: + path: /us/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /us/letters + method: GET +- name: self-mailers + endpoint: + path: /us/self-mailers + method: GET +- name: sms + endpoint: + path: /us/automated-sms + method: GET +- name: bulk mailer + endpoint: + path: /us/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /us/automations + method: GET +- name: api docs + endpoint: + path: /us/direct-mail-api/guide + method: GET +- name: direct_mail_campaign + endpoint: + path: /api/v1/direct_mail_campaign + method: POST +- name: postcards + endpoint: + path: /us/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /us/letters + method: GET +- name: self-mailers + endpoint: + path: /us/self-mailers + method: GET +- name: sms + endpoint: + path: /us/automated-sms + method: GET +- name: samples + endpoint: + path: /us/samples + method: GET +- name: bulk_mailer + endpoint: + path: /us/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /us/automations + method: GET +- name: campaigns + endpoint: + path: /api/v1/campaigns + method: GET + data_selector: data +- name: direct_mail_campaign + endpoint: + path: /us/direct-mail-api/guide + method: GET +- name: postcards + endpoint: + path: /us/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /us/letters + method: GET +- name: self-mailers + endpoint: + path: /us/self-mailers + method: GET +- name: sms + endpoint: + path: /us/automated-sms + method: GET +- name: samples + endpoint: + path: /us/samples + method: GET +- name: virtual_printing + endpoint: + path: /us/virtual-printing + method: GET +- name: bulk_mailer + endpoint: + path: /us/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /us/automations + method: GET +- name: pricing + endpoint: + path: /us/pricing + method: GET +- name: direct_mail_campaigns + endpoint: + path: /api/v1/campaigns + method: GET + data_selector: data + params: {} +- name: address_verification + endpoint: + path: /address-verification + method: POST + data_selector: verificationResult + params: {} +- name: accreditation + endpoint: + path: /us/accreditations + method: GET + data_selector: accreditations + params: {} +- name: bulk_mailer + endpoint: + path: /us/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /us/virtual-printing + method: GET +- name: automations + endpoint: + path: /us/automations + method: GET +- name: postcards + endpoint: + path: /us/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /us/letters + method: GET +- name: self_mailers + endpoint: + path: /us/self-mailers + method: GET +- name: sms + endpoint: + path: /us/automated-sms + method: GET +- name: request_samples + endpoint: + path: /us/samples + method: GET +- name: developer_tools + endpoint: + path: /us/developer-tools + method: GET +- name: affiliate_partnership + endpoint: + path: /us/affiliate-partner + method: GET + data_selector: data + params: {} +- name: api_docs + endpoint: + path: /us/direct-mail-api/guide + method: GET + data_selector: data + params: {} +- name: bulk_mailer + endpoint: + path: /us/bulk-mailing-service + method: GET + data_selector: records +- name: virtual_printing + endpoint: + path: /us/virtual-printing + method: GET + data_selector: records +- name: automations + endpoint: + path: /us/automations + method: GET + data_selector: records +- name: postcards + endpoint: + path: /us/direct-mail-postcards + method: GET + data_selector: records +- name: letters + endpoint: + path: /us/letters + method: GET + data_selector: records +- name: self_mailers + endpoint: + path: /us/self-mailers + method: GET + data_selector: records +- name: sms + endpoint: + path: /us/automated-sms + method: GET + data_selector: records +- name: request_samples + endpoint: + path: /us/samples + method: GET + data_selector: records +- name: developer_tools + endpoint: + path: /us/developer-tools + method: GET + data_selector: records +- name: direct_mail_campaign + endpoint: + path: /api/v1/direct_mail_campaigns + method: GET + data_selector: data + params: {} +- name: bulk_mailer + endpoint: + path: /us/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /us/virtual-printing + method: GET +- name: automations + endpoint: + path: /us/automations + method: GET +- name: postcards + endpoint: + path: /us/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /us/letters + method: GET +- name: self_mailers + endpoint: + path: /us/self-mailers + method: GET +- name: sms + endpoint: + path: /us/automated-sms + method: GET +- name: samples + endpoint: + path: /us/samples + method: GET +- name: developer_tools + endpoint: + path: /us/developer-tools + method: GET +- name: pricing + endpoint: + path: /us/pricing + method: GET +- name: pricing_plans + endpoint: + path: /api/v1/pricing + method: GET + data_selector: plans + params: {} +- name: recipient_events + endpoint: + path: /v1/recipientEvents/create + method: POST +- name: recipientEvents + endpoint: + path: /v1/recipientEvents/create + method: POST +- name: virtual_printing + endpoint: + path: /api/virtual-printing + method: POST + data_selector: data + params: {} +- name: bulk_mailer + endpoint: + path: /api/bulk_mailer + method: POST + data_selector: data + params: {} +- name: virtual_printing + endpoint: + path: /api/virtual_printing + method: POST + data_selector: data + params: {} +- name: recipient_events + endpoint: + path: /v1/recipientEvents/create + method: POST +- name: recipient_events + endpoint: + path: /v1/recipientEvents/create + method: POST +- name: postcards + endpoint: + path: /api/postcards + method: GET + data_selector: records + params: {} +- name: letters + endpoint: + path: /api/letters + method: GET + data_selector: records + params: {} +- name: self_mailers + endpoint: + path: /api/self-mailers + method: POST + data_selector: data + params: {} +- name: bulk_mailer + endpoint: + path: /ca/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /ca/virtual-printing + method: GET +- name: automations + endpoint: + path: /ca/automations + method: GET +- name: postcards + endpoint: + path: /ca/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /ca/letters + method: GET +- name: self_mailers + endpoint: + path: /ca/self-mailers + method: GET +- name: sms + endpoint: + path: /ca/automated-sms + method: GET +- name: samples + endpoint: + path: /ca/samples + method: GET +- name: developer_tools + endpoint: + path: /ca/developer-tools + method: GET +- name: sms + endpoint: + path: /automated-sms + method: POST +- name: letters + endpoint: + path: /ca/letters + method: GET +- name: bulk_mailer + endpoint: + path: /ca/bulk-mailing-service + method: GET +- name: virtual_printing + endpoint: + path: /ca/virtual-printing + method: GET +- name: automations + endpoint: + path: /ca/automations + method: GET +- name: postcards + endpoint: + path: /ca/direct-mail-postcards + method: GET +- name: sms + endpoint: + path: /ca/automated-sms + method: GET +- name: samples + endpoint: + path: /ca/samples + method: GET +- name: developer_tools + endpoint: + path: /ca/developer-tools + method: GET +- name: recipients + endpoint: + path: /recipients/new + method: POST + data_selector: data + params: {} +- name: users + endpoint: + path: /users/me + method: GET + data_selector: data + params: {} +- name: sms + endpoint: + path: /automated-sms + method: POST +- name: recipients + endpoint: + path: /recipients/new + method: POST + data_selector: data + params: + group_id: int + on_duplicate: string + firstname: string + lastname: string + address1: string + city: string + postcode: string + country: string +- name: drive_reviews + endpoint: + path: /drive-reviews + method: GET +- name: direct_mail + endpoint: + path: /api/v1/direct_mail + method: POST + data_selector: data + params: {} +- name: Bulk mailer + endpoint: + path: /ca/bulk-mailing-service + method: GET + data_selector: records +- name: Virtual printing + endpoint: + path: /ca/virtual-printing + method: GET + data_selector: records +- name: Automations + endpoint: + path: /ca/automations + method: GET + data_selector: records +- name: Postcards + endpoint: + path: /ca/direct-mail-postcards + method: GET + data_selector: records +- name: Letters + endpoint: + path: /ca/letters + method: GET + data_selector: records +- name: Self-mailers + endpoint: + path: /ca/self-mailers + method: GET + data_selector: records +- name: SMS + endpoint: + path: /ca/automated-sms + method: GET + data_selector: records +- name: drive_reviews + endpoint: + path: /ca/drive-reviews + method: GET +- name: postcards + endpoint: + path: /ca/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /ca/letters + method: GET +- name: self-mailers + endpoint: + path: /ca/self-mailers + method: GET +- name: sms + endpoint: + path: /ca/automated-sms + method: GET +- name: samples + endpoint: + path: /ca/samples + method: GET +- name: bulk mailer + endpoint: + path: /ca/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /ca/automations + method: GET +- name: api documentation + endpoint: + path: /ca/direct-mail-api/guide + method: GET +- name: postcards + endpoint: + path: /ca/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /ca/letters + method: GET +- name: self_mailers + endpoint: + path: /ca/self-mailers + method: GET +- name: sms + endpoint: + path: /ca/automated-sms + method: GET +- name: bulk_mailer + endpoint: + path: /ca/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /ca/automations + method: GET +- name: postcards + endpoint: + path: /ca/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /ca/letters + method: GET +- name: self-mailers + endpoint: + path: /ca/self-mailers + method: GET +- name: automated-sms + endpoint: + path: /ca/automated-sms + method: GET +- name: bulk-mailer + endpoint: + path: /ca/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /ca/automations + method: GET +- name: address_verification + endpoint: + path: /api/address/verify + method: POST + data_selector: results +- name: political_campaign + endpoint: + path: /api/v1/political/campaigns + method: GET + data_selector: records +- name: direct_mail_campaigns + endpoint: + path: /api/campaigns + method: POST + data_selector: data +- name: direct_mail_campaigns + endpoint: + path: /api/v1/campaigns + method: GET + data_selector: campaigns +- name: address_verification + endpoint: + path: /api/address/verify + method: POST + data_selector: verification_result +- name: postcards + endpoint: + path: /ca/direct-mail-postcards + method: GET +- name: letters + endpoint: + path: /ca/letters + method: GET +- name: self_mailers + endpoint: + path: /ca/self-mailers + method: GET +- name: sms + endpoint: + path: /ca/automated-sms + method: GET +- name: samples + endpoint: + path: /ca/samples + method: GET +- name: developer_tools + endpoint: + path: /ca/developer-tools + method: GET +- name: virtual_printing + endpoint: + path: /ca/virtual-printing + method: GET +- name: bulk_mailer + endpoint: + path: /ca/bulk-mailing-service + method: GET +- name: automations + endpoint: + path: /ca/automations + method: GET +- name: postcards + endpoint: + path: /api/v1/postcards + method: GET + data_selector: records +- name: letters + endpoint: + path: /api/v1/letters + method: GET + data_selector: records +- name: users + endpoint: + path: /users/me + method: GET + data_selector: data +- name: direct_mail + endpoint: + path: /api/v1/direct_mail + method: POST + data_selector: data +- name: letters + endpoint: + path: /letters/create + method: POST + data_selector: data + params: {} +- name: webhooks + endpoint: + path: /webhooks + method: POST + data_selector: webhook_id +- name: postcard_create + endpoint: + path: /postcards/create + method: POST + data_selector: success + params: + size: mandatory +- name: postcard_get + endpoint: + path: /postcards/get/:id + method: GET + data_selector: success + params: + id: mandatory +- name: postcard_cancel + endpoint: + path: /postcards/cancel + method: POST + data_selector: success + params: + id: mandatory +- name: users + endpoint: + path: /users/me + method: GET + data_selector: data +- name: letters + endpoint: + path: /letters/create + method: POST +- name: create_letter + endpoint: + path: /api/v1/letters/create + method: POST +- name: post_letter + endpoint: + path: /api/v1/letters/post + method: POST +- name: get_letter + endpoint: + path: /api/v1/letters/get/:id + method: GET +- name: cancel_letter + endpoint: + path: /api/v1/letters/cancel + method: POST +- name: webhooks + endpoint: + path: /direct-mail-api/webhooks + method: POST +- name: postcards + endpoint: + path: /direct-mail-api/postcards + method: GET +- name: letters + endpoint: + path: /direct-mail-api/letters + method: GET +- name: recipients + endpoint: + path: /direct-mail-api/recipients + method: GET +- name: groups + endpoint: + path: /direct-mail-api/groups + method: GET +- name: events + endpoint: + path: /direct-mail-api/events + method: GET +- name: files + endpoint: + path: /direct-mail-api/files + method: GET +- name: reporting + endpoint: + path: /direct-mail-api/reporting + method: GET +- name: campaigns + endpoint: + path: /direct-mail-api/campaigns + method: GET +- name: selections + endpoint: + path: /direct-mail-api/selections + method: GET +- name: account + endpoint: + path: /direct-mail-api/account + method: GET +- name: addresses + endpoint: + path: /direct-mail-api/addresses + method: GET +- name: objects + endpoint: + path: /direct-mail-api/objects + method: GET +- name: tools + endpoint: + path: /direct-mail-api/tools + method: GET +- name: sms + endpoint: + path: /direct-mail-api/sms + method: GET +- name: list_recipients + endpoint: + path: /recipients/list + method: GET + data_selector: recipients + params: + group_id: int + offset: int + limit: int +- name: get_recipient + endpoint: + path: /recipients/get/:id + method: GET + data_selector: recipient + params: + id: int +- name: create_recipient + endpoint: + path: /recipients/new + method: POST + data_selector: recipient + params: + firstname: string + lastname: string + address1: string + address2: string + city: string + postcode: string + country: string + email: string + phone_number: string + ref_id: string + group_id: int + on_duplicate: string + test_level: string +- name: delete_recipient + endpoint: + path: /recipients/delete + method: POST + data_selector: success + params: + id: int +- name: delete_all_recipients + endpoint: + path: /recipients/deleteAll + method: POST + data_selector: success + params: + delete_all: bool +- name: import_data_file + endpoint: + path: /recipients/import + method: POST + data_selector: success + params: + file: string + group_id: int + duplicates: string + no_headings: bool + mappings: string +- name: postcards_create + endpoint: + path: /postcards/create + method: POST + params: + size: mandatory +- name: postcards_get + endpoint: + path: /postcards/get/:id + method: GET + params: + id: mandatory +- name: postcards_cancel + endpoint: + path: /postcards/cancel + method: POST + params: + id: mandatory +- name: create_letter + endpoint: + path: /api/v1/letters/create + method: POST +- name: post_letter + endpoint: + path: /api/v1/letters/post + method: POST +- name: get_letter + endpoint: + path: /api/v1/letters/get/:id + method: GET +- name: cancel_letter + endpoint: + path: /api/v1/letters/cancel + method: POST +- name: groups + endpoint: + path: /v1/groups + method: GET + data_selector: data + params: {} +- name: create_group + endpoint: + path: /v1/groups + method: POST + data_selector: data + params: {} +- name: add_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: POST + data_selector: data + params: {} +- name: remove_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: DELETE + data_selector: data + params: {} +- name: purge_group + endpoint: + path: /v1/groups/{id}/purge + method: POST + data_selector: data + params: {} +- name: recalculate_group + endpoint: + path: /v1/groups/{id}/recalculate + method: POST + data_selector: data + params: {} +- name: delete_group + endpoint: + path: /v1/groups/{id} + method: DELETE + data_selector: data + params: {} +- name: files + endpoint: + path: /files/upload + method: POST + data_selector: data + params: {} +- name: create_folder + endpoint: + path: /files/createFolder + method: POST + data_selector: data + params: {} +- name: list_folders + endpoint: + path: /files/folders + method: GET + data_selector: data + params: {} +- name: recipients_list + endpoint: + path: /recipients/list + method: GET + data_selector: success + params: {} +- name: single_recipient + endpoint: + path: /recipients/get/:id + method: GET + data_selector: success + params: {} +- name: new_recipient + endpoint: + path: /recipients/new + method: POST + data_selector: success + params: {} +- name: delete_recipient + endpoint: + path: /recipients/delete + method: POST + data_selector: success + params: {} +- name: delete_all_recipients + endpoint: + path: /recipients/deleteAll + method: POST + data_selector: success + params: {} +- name: import_data_file + endpoint: + path: /recipients/import + method: POST + data_selector: success + params: {} +- name: reporting_summary + endpoint: + path: /api/v1/reporting/summary/:startdate/:enddate + method: GET + data_selector: data.singles + params: {} +- name: list_mailpieces + endpoint: + path: /api/v1/reporting/list/:startdate/:enddate/[:status]/[:tag] + method: GET + data_selector: data.singles + params: {} +- name: groups + endpoint: + path: /v1/groups + method: GET + data_selector: data + params: + offset: offset + limit: limit +- name: create_group + endpoint: + path: /v1/groups + method: POST + data_selector: data + params: + name: name +- name: add_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: POST + data_selector: data + params: + recipients: recipients +- name: remove_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: DELETE + data_selector: data + params: + recipients: recipients +- name: purge_group + endpoint: + path: /v1/groups/{id}/purge + method: POST + data_selector: data + params: + id: id + delete_recipients: delete_recipients +- name: recalculate_group + endpoint: + path: /v1/groups/{id}/recalculate + method: POST + data_selector: data +- name: delete_group + endpoint: + path: /v1/groups/{id} + method: DELETE + data_selector: data + params: + id: id + delete_recipients: delete_recipients +- name: campaigns + endpoint: + path: /api/v1/campaigns/list + method: GET + data_selector: data + params: {} +- name: create_campaign + endpoint: + path: /api/v1/campaigns/create + method: POST + data_selector: data + params: {} +- name: approve_campaign + endpoint: + path: /api/v1/campaigns/approve + method: POST + data_selector: data + params: {} +- name: book_campaign + endpoint: + path: /api/v1/campaigns/book + method: POST + data_selector: data + params: {} +- name: delete_campaign + endpoint: + path: /api/v1/campaigns/delete + method: POST + data_selector: success + params: + id: int +- name: upload_file + endpoint: + path: /v1/files/upload + method: POST + data_selector: data + params: {} +- name: create_folder + endpoint: + path: /v1/files/createFolder + method: POST + data_selector: data + params: {} +- name: list_folders + endpoint: + path: /v1/files/folders + method: GET + data_selector: data + params: {} +- name: selections + endpoint: + path: /api/v1/selections/new + method: POST + data_selector: data + params: {} +- name: reporting_summary + endpoint: + path: /api/v1/reporting/summary/:startdate/:enddate + method: GET +- name: list_mailpieces + endpoint: + path: /api/v1/reporting/list/:startdate/:enddate/[:status]/[:tag] + method: GET +- name: account_balance + endpoint: + path: /v1/accounts/balance + method: GET + data_selector: data +- name: top_up_balance + endpoint: + path: /v1/accounts/topup + method: POST + data_selector: data + params: + net: '100.00' +- name: validate_address + endpoint: + path: /v1/addresses/validate + method: POST + data_selector: data + params: {} +- name: campaigns_list + endpoint: + path: /api/v1/campaigns/list + method: GET + data_selector: data +- name: campaigns_get + endpoint: + path: /api/v1/campaigns/get/:id + method: GET + data_selector: data +- name: campaigns_create + endpoint: + path: /api/v1/campaigns/create + method: POST + data_selector: data +- name: campaigns_sample + endpoint: + path: /api/v1/campaigns/sample + method: POST + data_selector: data +- name: campaigns_approve + endpoint: + path: /api/v1/campaigns/approve + method: POST + data_selector: data +- name: campaigns_cost + endpoint: + path: /api/v1/campaigns/cost + method: POST + data_selector: data +- name: campaigns_available_dates + endpoint: + path: /api/v1/campaigns/availableDates + method: POST + data_selector: data +- name: campaigns_book + endpoint: + path: /api/v1/campaigns/book + method: POST + data_selector: data +- name: delete_campaign + endpoint: + path: /api/v1/campaigns/delete + method: POST + data_selector: success + params: + id: int +- name: selections + endpoint: + path: /api/v1/selections/new + method: POST + data_selector: data + params: {} +- name: postcards + endpoint: + path: /ca/direct-mail-api/postcards + method: GET +- name: letters + endpoint: + path: /ca/direct-mail-api/letters + method: GET +- name: recipients + endpoint: + path: /ca/direct-mail-api/recipients + method: GET +- name: groups + endpoint: + path: /ca/direct-mail-api/groups + method: GET +- name: events + endpoint: + path: /ca/direct-mail-api/events + method: GET +- name: files + endpoint: + path: /ca/direct-mail-api/files + method: GET +- name: reporting + endpoint: + path: /ca/direct-mail-api/reporting + method: GET +- name: campaigns + endpoint: + path: /ca/direct-mail-api/campaigns + method: GET +- name: selections + endpoint: + path: /ca/direct-mail-api/selections + method: GET +- name: account + endpoint: + path: /ca/direct-mail-api/account + method: GET +- name: addresses + endpoint: + path: /ca/direct-mail-api/addresses + method: GET +- name: objects + endpoint: + path: /ca/direct-mail-api/objects + method: GET +- name: tools + endpoint: + path: /ca/direct-mail-api/tools + method: GET +- name: sms + endpoint: + path: /ca/direct-mail-api/sms + method: GET +- name: account_balance + endpoint: + path: /v1/accounts/balance + method: GET + data_selector: data +- name: account_topup + endpoint: + path: /v1/accounts/topup + method: POST + data_selector: data + params: + net: '100.00' +- name: templates_list + endpoint: + path: /v1/templates/list + method: GET + data_selector: data +- name: qrcode_create + endpoint: + path: /v1/qrcode/create + method: GET +- name: pdf_merge + endpoint: + path: /v1/pdf/merge + method: POST +- name: validate_address + endpoint: + path: /v1/addresses/validate + method: POST + data_selector: data + params: {} +- name: sms + endpoint: + path: /v1/sms/create + method: POST + data_selector: data + params: {} +- name: postcards + endpoint: + path: /ca/direct-mail-api/postcards + method: GET +- name: letters + endpoint: + path: /ca/direct-mail-api/letters + method: GET +- name: recipients + endpoint: + path: /ca/direct-mail-api/recipients + method: GET +- name: campaigns + endpoint: + path: /ca/direct-mail-api/campaigns + method: GET +- name: templates + endpoint: + path: /v1/templates/list + method: GET + data_selector: data +- name: qrcode + endpoint: + path: /v1/qrcode/create + method: GET + data_selector: data +- name: pdf_merge + endpoint: + path: /v1/pdf/merge + method: POST + data_selector: data +- name: users + endpoint: + path: /api/v1/users/me + method: GET + data_selector: data + params: {} +- name: sms + endpoint: + path: /v1/sms/create + method: POST +- name: webhooks + endpoint: + path: /webhooks + method: POST + data_selector: webhook_id +- name: campaigns + endpoint: + path: /campaigns + method: GET + data_selector: campaigns +- name: mailpieces + endpoint: + path: /mailpieces + method: GET + data_selector: mailpieces +- name: recipients + endpoint: + path: /recipients + method: GET + data_selector: recipients +- name: postcards + endpoint: + path: /postcards/create + method: POST + data_selector: success + params: + size: mandatory +- name: get_postcard + endpoint: + path: /postcards/get/:id + method: GET + data_selector: success + params: + id: mandatory +- name: cancel_postcard + endpoint: + path: /postcards/cancel + method: POST + data_selector: success + params: + id: mandatory +- name: users + endpoint: + path: /api/v1/users/me + method: GET + data_selector: data +- name: create_letter + endpoint: + path: /api/v1/letters/create + method: POST + data_selector: success + params: {} +- name: post_letter + endpoint: + path: /api/v1/letters/post + method: POST + data_selector: success + params: {} +- name: get_letter + endpoint: + path: /api/v1/letters/get/:id + method: GET + data_selector: success + params: {} +- name: cancel_letter + endpoint: + path: /api/v1/letters/cancel + method: POST + data_selector: success + params: {} +- name: letters + endpoint: + path: /api/v1/letters/create + method: POST + data_selector: data + params: {} +- name: webhooks + endpoint: + path: /webhooks + method: POST + data_selector: webhook_id + params: {} +- name: mailpiece_status + endpoint: + path: /mailpiece_status + method: POST + data_selector: mailpieces + params: {} +- name: recipients_list + endpoint: + path: /api/v1/recipients/list + method: GET + data_selector: success + params: + group_id: int + offset: int + limit: int +- name: recipients_get + endpoint: + path: /api/v1/recipients/get/:id + method: GET + data_selector: success + params: + id: int +- name: recipients_new + endpoint: + path: /api/v1/recipients/new + method: POST + data_selector: success + params: + firstname: string + lastname: string + address1: string + address2: string + address3: string + city: string + postcode: string + country: string + email: string + phone_number: string + ref_id: string + group_id: int + on_duplicate: string + test_level: string +- name: recipients_delete + endpoint: + path: /api/v1/recipients/delete + method: POST + data_selector: success + params: + id: int +- name: recipients_deleteAll + endpoint: + path: /api/v1/recipients/deleteAll + method: POST + data_selector: success + params: + delete_all: bool +- name: recipients_import + endpoint: + path: /api/v1/recipients/import + method: POST + data_selector: success + params: + file: string + group_id: int + duplicates: string + no_headings: bool + mappings: string +- name: postcards + endpoint: + path: /api/v1/postcards/create + method: POST +- name: get_postcard + endpoint: + path: /api/v1/postcards/get/:id + method: GET +- name: cancel_postcard + endpoint: + path: /api/v1/postcards/cancel + method: POST +- name: create_letter + endpoint: + path: /api/v1/letters/create + method: POST +- name: post_letter + endpoint: + path: /api/v1/letters/post + method: POST +- name: get_letter + endpoint: + path: /api/v1/letters/get/:id + method: GET +- name: cancel_letter + endpoint: + path: /api/v1/letters/cancel + method: POST +- name: groups + endpoint: + path: /v1/groups + method: GET + data_selector: data + params: + offset: int + limit: int +- name: create_group + endpoint: + path: /v1/groups + method: POST + data_selector: data + params: + name: string +- name: add_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: POST + data_selector: data + params: + recipients: string +- name: remove_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: DELETE + data_selector: data + params: + recipients: string +- name: purge_group + endpoint: + path: /v1/groups/{id}/purge + method: POST + data_selector: data + params: + id: int + delete_recipients: bool +- name: recalculate_group + endpoint: + path: /v1/groups/{id}/recalculate + method: POST + data_selector: data +- name: delete_group + endpoint: + path: /v1/groups/{id} + method: DELETE + data_selector: data + params: + id: int + delete_recipients: bool +- name: upload_file + endpoint: + path: /v1/files/upload + method: POST + data_selector: data +- name: create_folder + endpoint: + path: /v1/files/createFolder + method: POST + data_selector: data +- name: list_folders + endpoint: + path: /v1/files/folders + method: GET + data_selector: data +- name: recipients_list + endpoint: + path: /api/v1/recipients/list + method: GET + data_selector: records + params: {} +- name: recipients_get + endpoint: + path: /api/v1/recipients/get/:id + method: GET + data_selector: records + params: {} +- name: recipients_new + endpoint: + path: /api/v1/recipients/new + method: POST + data_selector: records + params: {} +- name: recipients_delete + endpoint: + path: /api/v1/recipients/delete + method: POST + data_selector: records + params: {} +- name: recipients_deleteAll + endpoint: + path: /api/v1/recipients/deleteAll + method: POST + data_selector: records + params: {} +- name: recipients_import + endpoint: + path: /api/v1/recipients/import + method: POST + data_selector: records + params: {} +- name: reporting_summary + endpoint: + path: /api/v1/reporting/summary/:startdate/:enddate + method: GET + data_selector: data.singles + params: {} +- name: list_mailpieces + endpoint: + path: /api/v1/reporting/list/:startdate/:enddate/[:status]/[:tag] + method: GET + data_selector: data.singles + params: {} +- name: groups + endpoint: + path: /v1/groups + method: GET + data_selector: data + params: + offset: int + limit: int +- name: create_group + endpoint: + path: /v1/groups + method: POST + data_selector: data + params: + name: string +- name: add_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: POST + data_selector: data + params: + recipients: string +- name: remove_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: DELETE + data_selector: data + params: + recipients: string +- name: purge_group + endpoint: + path: /v1/groups/{id}/purge + method: POST + data_selector: data + params: + id: int + delete_recipients: bool +- name: recalculate_group + endpoint: + path: /v1/groups/{id}/recalculate + method: POST + data_selector: data +- name: delete_group + endpoint: + path: /v1/groups/{id} + method: DELETE + data_selector: data + params: + id: int + delete_recipients: bool +- name: campaigns_list + endpoint: + path: /api/v1/campaigns/list + method: GET + data_selector: data +- name: campaigns_get + endpoint: + path: /api/v1/campaigns/get/:id + method: GET + data_selector: data +- name: campaigns_create + endpoint: + path: /api/v1/campaigns/create + method: POST + data_selector: data +- name: campaigns_sample + endpoint: + path: /api/v1/campaigns/sample + method: POST + data_selector: data +- name: campaigns_approve + endpoint: + path: /api/v1/campaigns/approve + method: POST + data_selector: data +- name: campaigns_cost + endpoint: + path: /api/v1/campaigns/cost + method: POST + data_selector: data +- name: campaigns_available_dates + endpoint: + path: /api/v1/campaigns/availableDates + method: POST + data_selector: data +- name: campaigns_book + endpoint: + path: /api/v1/campaigns/book + method: POST + data_selector: data +- name: delete_campaign + endpoint: + path: /api/v1/campaigns/delete + method: POST + data_selector: success + params: + id: int +- name: upload_file + endpoint: + path: /v1/files/upload + method: POST + data_selector: data +- name: create_folder + endpoint: + path: /v1/files/createFolder + method: POST + data_selector: data +- name: list_folders + endpoint: + path: /v1/files/folders + method: GET + data_selector: data +- name: selections + endpoint: + path: /api/v1/selections/new + method: POST + data_selector: data + params: {} +- name: reporting_summary + endpoint: + path: /api/v1/reporting/summary/:startdate/:enddate + method: GET +- name: list_mailpieces + endpoint: + path: /api/v1/reporting/list/:startdate/:enddate/[:status]/[:tag] + method: GET +- name: account_balance + endpoint: + path: /v1/accounts/balance + method: GET + data_selector: data +- name: top_up_balance + endpoint: + path: /v1/accounts/topup + method: POST + data_selector: data + params: + net: '100.00' +- name: validate_address + endpoint: + path: /v1/addresses/validate + method: POST + data_selector: data + params: {} +- name: campaigns_list + endpoint: + path: /api/v1/campaigns/list + method: GET + data_selector: data +- name: campaigns_get + endpoint: + path: /api/v1/campaigns/get/:id + method: GET + data_selector: data +- name: campaigns_create + endpoint: + path: /api/v1/campaigns/create + method: POST + data_selector: data +- name: campaigns_sample + endpoint: + path: /api/v1/campaigns/sample + method: POST + data_selector: data +- name: campaigns_approve + endpoint: + path: /api/v1/campaigns/approve + method: POST + data_selector: data +- name: campaigns_cost + endpoint: + path: /api/v1/campaigns/cost + method: POST + data_selector: data +- name: campaigns_available_dates + endpoint: + path: /api/v1/campaigns/availableDates + method: POST + data_selector: data +- name: campaigns_book + endpoint: + path: /api/v1/campaigns/book + method: POST + data_selector: data +- name: mailpiece + endpoint: + path: /us/direct-mail-api/mailpiece + method: GET +- name: campaign + endpoint: + path: /us/direct-mail-api/campaign + method: GET +- name: recipient + endpoint: + path: /us/direct-mail-api/recipient + method: GET +- name: delete_campaign + endpoint: + path: /api/v1/campaigns/delete + method: POST + data_selector: data + params: {} +- name: templates + endpoint: + path: /v1/templates/list + method: GET + data_selector: data +- name: qrcode + endpoint: + path: /v1/qrcode/create + method: GET +- name: pdf_merge + endpoint: + path: /v1/pdf/merge + method: POST +- name: selections + endpoint: + path: /api/v1/selections/new + method: POST + params: {} +- name: sms_create + endpoint: + path: /v1/sms/create + method: POST + data_selector: data + params: {} +- name: account_balance + endpoint: + path: /v1/accounts/balance + method: GET + data_selector: data +- name: topup_balance + endpoint: + path: /v1/accounts/topup + method: POST + data_selector: data + params: + net: string +- name: validate_address + endpoint: + path: /v1/addresses/validate + method: POST + data_selector: data + params: {} +- name: letters + endpoint: + path: /api/v1/letters/create + method: POST +- name: webhook + endpoint: + path: /uk/direct-mail-api/webhooks + method: POST +- name: Postcards + endpoint: + path: /us/direct-mail-api/postcards + method: GET + data_selector: records +- name: Letters + endpoint: + path: /us/direct-mail-api/letters + method: GET + data_selector: records +- name: Recipients + endpoint: + path: /us/direct-mail-api/recipients + method: GET + data_selector: records +- name: Campaigns + endpoint: + path: /us/direct-mail-api/campaigns + method: GET + data_selector: records +- name: postcard_create + endpoint: + path: /api/v1/postcards/create + method: POST +- name: postcard_get + endpoint: + path: /api/v1/postcards/get/:id + method: GET +- name: postcard_cancel + endpoint: + path: /api/v1/postcards/cancel + method: POST +- name: templates + endpoint: + path: /v1/templates/list + method: GET + data_selector: data +- name: qrcode + endpoint: + path: /v1/qrcode/create + method: GET + data_selector: success +- name: pdf_merge + endpoint: + path: /v1/pdf/merge + method: POST + data_selector: success +- name: create_letter + endpoint: + path: /api/v1/letters/create + method: POST + data_selector: success +- name: post_letter + endpoint: + path: /api/v1/letters/post + method: POST + data_selector: success +- name: get_letter + endpoint: + path: /api/v1/letters/get/:id + method: GET + data_selector: success +- name: cancel_letter + endpoint: + path: /api/v1/letters/cancel + method: POST + data_selector: success +- name: letters + endpoint: + path: /api/v1/letters/create + method: POST +- name: recipients_list + endpoint: + path: /recipients/list + method: GET + data_selector: recipients + params: + group_id: int + offset: int + limit: int +- name: recipients_get + endpoint: + path: /recipients/get/:id + method: GET + data_selector: recipient + params: + id: int +- name: recipients_new + endpoint: + path: /recipients/new + method: POST + data_selector: success + params: + firstname: string + lastname: string + address1: string + address2: string + address3: string + city: string + postcode: string + country: string + email: string + phone_number: string + ref_id: string + group_id: int + on_duplicate: string + test_level: string +- name: recipients_delete + endpoint: + path: /recipients/delete + method: POST + data_selector: success + params: + id: int +- name: recipients_deleteAll + endpoint: + path: /recipients/deleteAll + method: POST + data_selector: success + params: + delete_all: bool +- name: recipients_import + endpoint: + path: /recipients/import + method: POST + data_selector: success + params: + file: string + group_id: int + duplicates: string + no_headings: bool + mappings: string +- name: webhooks + endpoint: + path: /uk/direct-mail-api/webhooks + method: POST +- name: postcards + endpoint: + path: /uk/direct-mail-api/postcards + method: GET +- name: letters + endpoint: + path: /uk/direct-mail-api/letters + method: GET +- name: recipients + endpoint: + path: /uk/direct-mail-api/recipients + method: GET +- name: groups + endpoint: + path: /uk/direct-mail-api/groups + method: GET +- name: events + endpoint: + path: /uk/direct-mail-api/events + method: GET +- name: files + endpoint: + path: /uk/direct-mail-api/files + method: GET +- name: reporting + endpoint: + path: /uk/direct-mail-api/reporting + method: GET +- name: campaigns + endpoint: + path: /uk/direct-mail-api/campaigns + method: GET +- name: selections + endpoint: + path: /uk/direct-mail-api/selections + method: GET +- name: account + endpoint: + path: /uk/direct-mail-api/account + method: GET +- name: addresses + endpoint: + path: /uk/direct-mail-api/addresses + method: GET +- name: objects + endpoint: + path: /uk/direct-mail-api/objects + method: GET +- name: tools + endpoint: + path: /uk/direct-mail-api/tools + method: GET +- name: groups + endpoint: + path: /v1/groups + method: GET + data_selector: data + params: + offset: int + limit: int +- name: create_group + endpoint: + path: /v1/groups + method: POST + data_selector: data + params: + name: string +- name: add_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: POST + data_selector: data + params: + recipients: string +- name: remove_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: DELETE + data_selector: data + params: + recipients: string +- name: purge_group + endpoint: + path: /v1/groups/{id}/purge + method: POST + data_selector: data + params: + id: int + delete_recipients: bool +- name: recalculate_group + endpoint: + path: /v1/groups/{id}/recalculate + method: POST + data_selector: data +- name: delete_group + endpoint: + path: /v1/groups/{id} + method: DELETE + data_selector: data + params: + id: int + delete_recipients: bool +- name: postcards + endpoint: + path: /api/v1/postcards/create + method: POST +- name: get_postcard + endpoint: + path: /api/v1/postcards/get/:id + method: GET +- name: cancel_postcard + endpoint: + path: /api/v1/postcards/cancel + method: POST +- name: files + endpoint: + path: /v1/files/upload + method: POST + data_selector: data + params: {} +- name: create_folder + endpoint: + path: /v1/files/createFolder + method: POST + data_selector: data + params: {} +- name: list_folders + endpoint: + path: /v1/files/folders + method: GET + data_selector: data + params: {} +- name: create_letter + endpoint: + path: /api/v1/letters/create + method: POST +- name: post_letter + endpoint: + path: /api/v1/letters/post + method: POST +- name: get_letter + endpoint: + path: /api/v1/letters/get/:id + method: GET +- name: cancel_letter + endpoint: + path: /api/v1/letters/cancel + method: POST +- name: reporting_summary + endpoint: + path: /reporting/summary/:startdate/:enddate + method: GET + data_selector: data.singles + params: {} +- name: list_mailpieces + endpoint: + path: /reporting/list/:startdate/:enddate/[:status]/[:tag] + method: GET + data_selector: data.singles + params: {} +- name: recipients_list + endpoint: + path: /recipients/list + method: GET + params: {} +- name: get_recipient + endpoint: + path: /recipients/get/:id + method: GET + params: {} +- name: create_recipient + endpoint: + path: /recipients/new + method: POST + params: {} +- name: delete_recipient + endpoint: + path: /recipients/delete + method: POST + params: {} +- name: delete_all_recipients + endpoint: + path: /recipients/deleteAll + method: POST + params: {} +- name: import_data_file + endpoint: + path: /recipients/import + method: POST + params: {} +- name: campaigns + endpoint: + path: /campaigns/list + method: GET + data_selector: data + params: {} +- name: create_campaign + endpoint: + path: /campaigns/create + method: POST + data_selector: data + params: {} +- name: approve_campaign + endpoint: + path: /campaigns/approve + method: POST + data_selector: data + params: {} +- name: campaign_cost + endpoint: + path: /campaigns/cost + method: POST + data_selector: data + params: {} +- name: available_dates + endpoint: + path: /campaigns/availableDates + method: POST + data_selector: data + params: {} +- name: book_campaign + endpoint: + path: /campaigns/book + method: POST + data_selector: data + params: {} +- name: groups + endpoint: + path: /v1/groups + method: GET + data_selector: data + params: + offset: offset + limit: limit +- name: create_group + endpoint: + path: /v1/groups + method: POST + data_selector: data + params: + name: name +- name: add_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: POST + data_selector: data + params: + recipients: recipients +- name: remove_recipients + endpoint: + path: /v1/groups/{id}/recipients + method: DELETE + data_selector: data + params: + recipients: recipients +- name: purge_group + endpoint: + path: /v1/groups/{id}/purge + method: POST + data_selector: data + params: + id: id + delete_recipients: delete_recipients +- name: recalculate_group + endpoint: + path: /v1/groups/{id}/recalculate + method: POST + data_selector: data +- name: delete_group + endpoint: + path: /v1/groups/{id} + method: DELETE + data_selector: data + params: + id: id + delete_recipients: delete_recipients +- name: delete_campaign + endpoint: + path: /campaigns/delete + method: POST + data_selector: success + params: + id: int +- name: upload_file + endpoint: + path: /v1/files/upload + method: POST + data_selector: data + params: {} +- name: create_folder + endpoint: + path: /v1/files/createFolder + method: POST + data_selector: data + params: {} +- name: list_folders + endpoint: + path: /v1/files/folders + method: GET + data_selector: data + params: {} +- name: selections + endpoint: + path: /selections/new + method: POST + data_selector: data + params: {} +- name: reporting_summary + endpoint: + path: /reporting/summary/:startdate/:enddate + method: GET + data_selector: data.singles + params: {} +- name: list_mailpieces + endpoint: + path: /reporting/list/:startdate/:enddate/[:status]/[:tag] + method: GET + data_selector: data.singles + params: {} +- name: account_balance + endpoint: + path: /v1/accounts/balance + method: GET + data_selector: data +- name: top_up_balance + endpoint: + path: /v1/accounts/topup + method: POST + data_selector: data + params: + net: string +- name: validate_address + endpoint: + path: /v1/addresses/validate + method: POST + data_selector: data + params: {} +- name: postcard + endpoint: + path: /uk/direct-mail-api/postcards + method: GET +- name: letter + endpoint: + path: /uk/direct-mail-api/letters + method: GET +- name: recipient + endpoint: + path: /uk/direct-mail-api/recipients + method: GET +- name: campaign + endpoint: + path: /uk/direct-mail-api/campaigns + method: GET +- name: campaigns_list + endpoint: + path: /campaigns/list + method: GET + data_selector: data +- name: campaigns_get + endpoint: + path: /campaigns/get/:id + method: GET + data_selector: data +- name: campaigns_create + endpoint: + path: /campaigns/create + method: POST + data_selector: data +- name: campaigns_sample + endpoint: + path: /campaigns/sample + method: POST + data_selector: data +- name: campaigns_approve + endpoint: + path: /campaigns/approve + method: POST + data_selector: data +- name: campaigns_cost + endpoint: + path: /campaigns/cost + method: POST + data_selector: data +- name: campaigns_available_dates + endpoint: + path: /campaigns/availableDates + method: POST + data_selector: data +- name: campaigns_book + endpoint: + path: /campaigns/book + method: POST + data_selector: data +- name: QR Code + endpoint: + path: /v1/qrcode/create + method: GET + data_selector: data + params: {} +- name: Merge PDF + endpoint: + path: /v1/pdf/merge + method: POST + data_selector: data + params: {} +- name: Get Templates + endpoint: + path: /v1/templates/list + method: GET + data_selector: data + params: {} +- name: campaign_delete + endpoint: + path: /campaigns/delete + method: POST + data_selector: success + params: {} +- name: selections + endpoint: + path: /selections/new + method: POST + data_selector: data + params: {} +- name: account_balance + endpoint: + path: /v1/accounts/balance + method: GET + data_selector: data +- name: topup_balance + endpoint: + path: /v1/accounts/topup + method: POST + data_selector: data + params: + net: '10.00' +- name: validate_address + endpoint: + path: /v1/addresses/validate + method: POST + data_selector: data + params: {} +- name: postcards + endpoint: + path: /uk/direct-mail-api/postcards + method: GET +- name: letters + endpoint: + path: /uk/direct-mail-api/letters + method: GET +- name: recipients + endpoint: + path: /uk/direct-mail-api/recipients + method: GET +- name: campaigns + endpoint: + path: /uk/direct-mail-api/campaigns + method: GET +- name: templates + endpoint: + path: /v1/templates/list + method: GET + data_selector: data + params: {} +- name: qrcode + endpoint: + path: /v1/qrcode/create + method: GET + data_selector: data + params: {} +- name: pdf_merge + endpoint: + path: /v1/pdf/merge + method: POST + data_selector: data + params: {} +notes: +- Effortlessly connect your marketing stack using 3rd party integrations or build + a custom connection with our API. +- We process, print, and dispatch your mail within one working day after approval. +- Use our variable data printing to add individual names, addresses, and more. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- We handle printing, folding, enveloping and posting, quickly and accurately. +- No minimum number of letters required to send. +- Trusted by our customers for over 10 years. We've sent over 200 million items since + 2014. +- Postcards are a quick and easy way to share your brand or offer with people. +- You can track engagement using QR codes. +- API documentation available at /uk/direct-mail-api/guide +- Next day shipping for printing and mailing once the letter design has been finalised. +- Turnaround time is the next working day for printing and posting once the design + has been finalised. +- Once your design is final, we'll print and send it out by the next working day. +- Trigger hyper-targeted SMS to your contact list. +- Send messages based on user actions, events or to verify. +- Next day shipping for greetings cards. +- If you don't have a developer at your disposal this is a great way of integrating + with us. +- Direct integration with Stannp's print network. +- Our whole platform is built on an API framework and everything you can do within + the self-service platform can also be replicated seamlessly via the API. +- Supercharge your marketing with an omnichannel approach. +- Create programmatic communications across multiple channels. +- API documentation guides are available to help you easily connect with our platform. +- We are a security-first platform and our team puts security at the heart of our + culture. +- HIPAA compliant +- Security-first platform +- Create automations to trigger a letter, postcard, or SMS to drive reviews. +- Direct mail reduces cart abandonment by an average of 14%. +- We are HIPAA and GDPR compliant. +- Direct mail is considered more meaningful than digital messages. +- GDPR-compliant mailings +- We prioritise patient confidentiality with strict data protection measures and secure + handling. +- Direct mail campaigns can be personalized with voter data. +- Targeted marketing campaign management. +- Uses OAuth2 with refresh token — requires setup of connected app in Stannp. +- We adhere to the highest industry standards, ensuring full regulatory compliance + and complete peace of mind. +- We follow strict security protocols. Our systems are compliant with industry standards, + including encryption and secure handling protocols, to ensure your information is + protected throughout the printing and mailing process. +- Integration with eCommerce platforms like Shopify and WooCommerce +- We follow strict UK data protection rules and provide GDPR-compliant solutions. +- Automate your direct mail workflows with our powerful, easy-to-use API. +- API integration allows you to automate your direct mail workflows. +- We can still send to unverified addresses but it will cost £0.20 extra per addressee. +- Postcode Radius Search is available to all Stannp customers free of charge. +- PRS groups show a hidden icon because they’re free datasets provided for you (not + ones you own). +- All addresses in PRS groups are verified. +- Data is sourced from Companies House public records, processed in line with GDPR + requirements. +- Uses Companies House data processed in line with GDPR requirements. +- Integrate directly with us and dispatch to our global print network. +- Uses OAuth2 with refresh token — requires setup of connected app in Stannp +- API documentation available for integration. +- API docs guide available for integration. +- Stannp is accredited by Royal Mail as a Postal Address File (PAF) partner. +- ISO 9001:2015 Quality Management +- ISO /IEC 27001:2022 Information Security Management +- ISO /IEC 14001:2015 Environmental Management Systems +- 'Royal Mail: PAF Accreditation' +- 'Royal Mail: Mail Made Easy Partner' +- ICO Registration +- Crown Commercial Services G-Cloud 11 +- CCS Postal Goods, Services & Solutions Framework RM6017 +- Forest Carbon and Carbon Capture Scheme +- HIPAA +- Investors in People +- Disability Confident Employer +- Deloitte Technology Fast 500 +- Requires setup of connected app in api +- We are currently operating in 3 territories (US, Canada & UK) with 12 production + facilities. +- API integration team assistance available +- Trusted by our customers for over 10 years. +- We've sent over 200 million items since 2014. +- Colour printing is standard. +- Orders are processed, printed, and mailed within one working day after approval. +- With variable data printing, you can personalize each postcard, letter, or self-mailer. +- Requires setup of connected app in Stannp +- No minimum order size for sending. +- Next day shipping available. +- Variable data printing allows for personalisation. +- We prioritize your security. Our systems are compliant with industry standards, + including encryption and secure handling protocols. +- Some objects like Contact may return nulls in deeply nested fields +- Stannp offers various Service Elements as part of the Service that the Customer + may opt to choose and benefit from depending on the Customer's Payment Plan. +- All users of the Platform will be considered subscribers on a 'free to use' basis + unless they have opted in to a Payment Plan. +- All users are required to create an account to access the Platform and the Service. +- Prohibited Activities include deploying within the Platform any spider, robot, web + crawler or other automated query program. +- You must complete our registration procedure, including agreeing to these Terms. +- Stannp reserves the right to reject or refuse to accept any Mailing Item and Electronic + Mailing Item that fails to comply with the Agreement. +- Stannp may provide forms or interfaces that allow Customers to query and retrieve + data from third-party sources for use in campaigns utilising Mailing Items and/or + Electronic Mailing Items. +- Use of these data services is subject to a separate Data Services Agreement. +- Stannp acts strictly as a data processor, providing the technical means for Customers + to select and retrieve records relevant to their marketing needs. +- Customers acknowledge that any use of data for direct marketing purposes is subject + to applicable laws including Data Protection Legislation, the UK GDPR, and PECR. +- Customers are solely responsible for ensuring that any use of data, including selection + of recipients and campaign content for Mailing Items and/or Electronic Mailing Items, + is lawful, proportionate, and compliant with all relevant regulations. +- Stannp disclaims all liability for the content, targeting, or legal basis of any + campaign using such data. +- The most powerful marketing channel. +- Print & ship next working day. +- Postcards are double sided. +- Postcards are double sided and printed in full color. +- Next day shipping for printing and posting once the design has been finalized. +- Next day shipping for printing and mailing. +- Next day shipping for printing and posting once the design has been finalised. +- API Documentation available at /us/direct-mail-api/guide +- Connect your Stannp account with 3rd party platforms and services to automate your + direct mail. +- Secure API with HIPAA and GDPR compliance +- Direct mail has a 90% open rate and 42% read rate. +- We are HIPAA Certified which means all our staff undergo HIPAA training and all + our production facilities are also process compliant. +- Direct mail campaigns can be designed and sent in minutes +- Direct Mail can make an impact. +- The platform allows for customization of mail pieces for each location. +- Direct mail campaigns can be quickly designed and sent. +- Easy-to-use platform +- Competitive pricing on postcards, letters, and self-mailers +- Real-time insights and measure the success of every campaign +- We meet the highest industry standards for data security, ensuring regulatory compliance + and peace of mind. +- Direct mail campaigns can be personalized with voter names, precincts, and polling + locations. +- Requires setup of connected app in Stannp. +- We follow strict security protocols to keep your data safe. Our systems are compliant + with industry standards, including encryption and secure handling protocols. +- Address Verification Certified by the USPS. +- We can verify the addresses in your database. +- Requires setup of OAuth2 for API access. +- Address Verification Certified by the USPS +- Validation available for international addresses with Royal Mail and Canada Post +- Stannp is accredited by Royal Mail and USPS. +- CASS accreditation means that Stannp can give you a pinpoint accurate postal service + throughout the United States. +- CASS accreditation means that Stannp can give you a pinpoint accurate postal service + throughout the United States at no extra cost. +- Customer banding is based on new customer spend in the first 30 days. +- Bespoke, contracted plans for large send volumes may require additional setup. +- All plans include access to the direct mail platform with no minimum order quantities. +- API key is required for authentication +- Some objects may return nulls in deeply nested fields +- We handle the printing, folding, enveloping, and mailing with speed and precision. +- No minimum order size for letters. +- You must complete our registration procedure, including agreeing to these Terms +- Continuous access cannot be guaranteed +- Ensure to handle rate limits appropriately +- The Customer is the Data Controller and Stannp is the Data Processor. +- Stannp acts strictly as a data processor for the Customer. +- We take data security seriously. Our systems are compliant with industry standards, + including encryption and secure handling protocols, to ensure your information is + protected throughout the printing and mailing process. +- We are HIPAA compliant, ensuring sensitive data is always protected. +- Next day shipping for self-mailers once approved. +- Over 1,000 integrations available. +- Next day shipping once the design has been finalised. +- Send automated SMS using our automations tool. +- We support many ways of integrating with us and it all depends on the level of development + resources at your disposal. +- Trigger hyper-targeted SMS to your contact list. Send messages based on user actions, + events or to verify. +- Security Scorecard A Rating, GDPR & ISO 9001/27001 compliant +- Integrate Stannp account with web platforms and services to automate direct mail. +- Secure — we are HIPAA and GDPR compliant. +- We are a security-first platform and our team puts security at the heart of our + culture. We operate weekly penetration testing, two-factor authentication, SFTP + for all data exchange off-platform, Security Scorecard A Rating, GDPR & ISO 9001/27001 + compliant and are USPS CASS Certified. +- Security Scorecard A Rating +- GDPR & ISO 9001/27001 compliant +- HIPAA-compliant mailings +- Patient confidentiality is maintained with our secure and compliant mailing processes. +- Direct mail has a higher response rate than digital ads. +- Direct Mail campaigns can be automated based on customer actions. +- Uses variable data printing allowing personalization +- Address verification is available via REST API. +- Validation is done with the USPS database. +- Some fields may return nulls in deeply nested responses +- We follow strict security protocols to keep your data safe. +- Stannp is CASS certified by USPS. +- Direct mail campaigns can be automated based on customer actions. +- We can still send to unverified addresses but it will cost $0.20 extra per addressee. +- We can fill that capacity up! +- Everyday thousands of customers order from our platform. +- All plans include access to our direct mail platform with no minimum order quantities. +- Stannp is accredited by Royal Mail as a Mail Made Easy partner. +- Stannp is registered with the Information Commissioner's Office (ICO) as a Data + Processor. +- Stannp is HIPAA compliant. +- Stannp has signed up to both the Forest Carbon and Carbon Capture schemes. +- The Stannp API imposes rate limits to prevent misuse and mitigate potential instability + caused by large bursts of incoming traffic. +- API requires setup of connected app in Stannp +- Idempotency keys help ensure that API requests are processed exactly once, even + if they are sent multiple times. +- Only POST requests may be idempotent. +- Webhooks require a configured URL and a valid HTTP 200 response for creation. +- Only POST requests may be idempotent. Setting an idempotency key for GET will have + no effect. +- Webhooks allow you to subscribe to events that happen within the Stannp Direct Mail + platform. +- When a webhook is triggered we send a request to the specified URL. +- API requires an API key for authentication. +- If set to true, a sample PDF file will be produced but the item will not be dispatched + and no charge will be taken. +- 'Use a start date and end date in the format: YYYY-MM-DD.' +- Uses API key for authentication. +- All endpoints require API key in the header. +- 'The format for filters is based on the following: [column_name]:::[string_operator]:::[value]' +- Currently can only validate UK & US addresses. +- API Documentation available on the website. +- Rate limits may apply. +- The API key must be included in the Authorization header. +- We currently can only validate UK & US addresses. +- We offer an online platform accessible via our website. +- Stannp offers the Service on either a free or on a paid Payment Plan depending upon + the combination of Service Elements the Customer wishes to use. +- API key must be included in the Authorization header +- We offer an online platform (the 'Platform'), accessible via our website at www.stannp.com. +- Access to certain Service Elements and/or quantity or rates of use may require the + Customer to subscribe to a Subscription Account. +- Specific details of the functional capability of the Service Elements and the Service + and license volumes for the Customer's subscription are available within the Customer's + subscription details within the Platform. +- Webhooks require a valid URL and must respond with HTTP 200 status to be created. +- You can cancel a postcard if we haven't started processing it yet. +- The API imposes rate limits to prevent misuse and mitigate potential instability + caused by large bursts of incoming traffic. +- Idempotency keys must be between 10 and 1024 characters in length. +- Webhooks can be created and managed on the webhooks page in your Stannp account + settings. +- Webhook payloads contain an array of objects triggered by events. +- Payment will be taken from your balance when booking a campaign. +- The object model includes details for mailpieces, campaigns, and recipients. +- Uses API Key for authentication. +- 'Filter string format is based on the following: [column_name]:::[string_operator]:::[value]' +- If set to true, the SMS message will not be sent and there will be no charge. +- API_KEY must be provided as part of the request to access the endpoints. +- Webhooks require an HTTP 200 status for creation. +- Webhook events can include status changes for campaigns or mailpieces. +- API supports direct mail operations such as sending postcards and letters. +- Use addon codes to upgrade your letter, e.g., FIRST_CLASS to send your letter using + first-class postage. +- Use offset and limit parameters for pagination. +- API requires setup of API key. +- Be aware tax may be added on after when topping up balance. +- API key is required for authentication. +- Integration with Stannp for direct mail services +- Uses API key for authentication — ensure to include the key in the Authorization + header. +errors: +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Invalid API key or no API key provided.' +- '404 Not Found: Resource does not exist or was deleted.' +- '500 Internal Server Error: Something went wrong at our end.' +- 'INVALID_DATA: Ensure all required fields are filled correctly' +- 'RATE_LIMIT_EXCEEDED: Reduce the number of requests per minute' +- '401 Unauthorized: Check your credentials' +- '400 Bad Request: Invalid input parameters' +- '400 Bad Request: Check request parameters' +- '401 Unauthorized: Check your authentication credentials' +- '400 Bad Request: Check the request format and required fields.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- '429 Too Many Requests: Throttle API calls or reduce frequency.' +- '400 Bad Request: Check your request parameters' +- '401 Unauthorized: Check your authentication credentials.' +- '400 Bad Request: Validate the structure of your request.' +- '401 Unauthorized: Check your credentials.' +- '403 Forbidden: Verify your permissions.' +- '404 Not Found: Ensure the endpoint is correct.' +- '400 Bad Request: Check request parameters for correctness.' +- '401 Unauthorized: Verify OAuth token validity.' +- '429 Too Many Requests: Reduce the frequency of API calls.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'Invalid PDF: Ensure the file format is correct.' +- 'SERVICE_UNAVAILABLE: Try again later.' +- '429 Too Many Requests: Throttle API calls' +- '401 Unauthorized: Check OAuth token validity' +- '404 Not Found: Verify the endpoint path' +- '429 Too Many Requests: Throttle API calls or reduce frequency' +- '400 BAD REQUEST: Check request parameters.' +- '401 UNAUTHORIZED: Ensure the token is valid.' +- '500 INTERNAL SERVER ERROR: Try again later.' +- '429 Too Many Requests: Rate limit exceeded. Wait before making another request.' +- '409 Conflict: Idempotent request - returning original response.' +- '400 Bad Request: Check request format and parameters' +- '401 Unauthorized: Ensure API key is valid' +- '404 Not Found: Verify endpoint path' +- '401 Unauthorized: Recheck API key or permissions.' +- '400 Bad Request: Check the request parameters.' +- '401 Unauthorized: Ensure API key is valid.' +- '404 Not Found: Resource does not exist.' +- '401 Unauthorized: Check your API key.' +- '400 Bad Request: Ensure all required parameters are provided.' +- '401 Unauthorized: Check API key' +- '401 Unauthorized: Recheck API key' +- '401 Unauthorized: Invalid API key or insufficient permissions.' +- '401 Unauthorized: Recheck API key or token expiration' +- '409 Conflict: Idempotent request - returning original response' +- '400 Bad Request: Invalid webhook URL or payload.' +- '401 Unauthorized: API key is missing or invalid.' +- '404 Not Found: The requested resource does not exist.' +- '401 Unauthorized: Recheck API key or permissions' +- '200: Successful request' +- '400: Bad Request — check your input' +- '401: Unauthorized — check your API key' +- '401 Unauthorized: Recheck API key or access permissions.' +- '401 Unauthorized: Invalid API key provided.' +- '400 Bad Request: Check the request format or parameters.' +- HTTP 200 required for webhook creation. +- 'Incorrect API key: Check your API key and try again.' +- 'Campaign not found: Ensure the campaign ID is valid.' +- '401 Unauthorized: Check API key.' +- '400 Bad Request: Verify request parameters.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: https://app-us1.stannp.com + auth: + type: oauth2 + flow: refresh_token +source_metadata: null diff --git a/task_management_api/task-management-api-docs.md b/task_management_api/task-management-api-docs.md new file mode 100644 index 00000000..be8f8d91 --- /dev/null +++ b/task_management_api/task-management-api-docs.md @@ -0,0 +1,147 @@ +In this guide, we'll set up a complete Task Management API data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def task_management_api_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "http://localhost:1234/task", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "1", "0" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='task_management_api_pipeline', + destination='duckdb', + dataset_name='task_management_api_data', + ) + # Load the data + load_info = pipeline.run(task_management_api_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from task_management_api’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **/task**: This endpoint likely retrieves a list of tasks or allows the creation of a new task. +- **/task/0**: This endpoint probably refers to a specific task with the ID of 0, allowing for actions such as retrieving, updating, or deleting that task. +- **/task/1**: Similar to /task/0, this endpoint pertains to a specific task with the ID of 1, enabling operations on that particular task. + +You will then debug the Task Management API pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Task Management API support. + ```shell + dlt init dlthub:task_management_api duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Task Management API API, as specified in @task_management_api-docs.yaml + Start with endpoints 1 and 0 and skip incremental loading for now. + Place the code in task_management_api_pipeline.py and name the pipeline task_management_api_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python task_management_api_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The snippets do not contain any specific authorization information such as keys, tokens, client IDs, client secrets, headers, token URLs, or flows. + + To get the appropriate API keys, please visit the original source at https://jmmv.dev/2019/09/rest-api-rust-go.html. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python task_management_api_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline task_management_api load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset task_management_api_data + The duckdb destination used duckdb:/task_management_api.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline task_management_api_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("task_management_api_pipeline").dataset() + # get "1" table as Pandas frame + data."1".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/task_management_api/task-management-api-docs.yaml b/task_management_api/task-management-api-docs.yaml new file mode 100644 index 00000000..1571e9cc --- /dev/null +++ b/task_management_api/task-management-api-docs.yaml @@ -0,0 +1,19 @@ +client: + auth: The snippets do not contain any specific authorization information such as + keys, tokens, client IDs, client secrets, headers, token URLs, or flows. + most_recurring_base_url: http://localhost:1234 + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://jmmv.dev/2019/09/rest-api-rust-go.html': + - /task/0 + - /task + - /task/1 +- 'endpoints source: https://jmmv.dev/tags/netbsd': + - http://oss.sgi.com/projects/fam +- 'endpoints source: https://jmmv.dev/tags/pkgsrc': + - http://oss.sgi.com/projects/fam +- 'endpoints source: https://jmmv.dev/tags/git': + - http://${project +- 'endpoints source: https://jmmv.dev/2005/10/lightweight-web-serving-with-thttpd.html': + - http://localhost/` + - http://localhost:8080/`. diff --git a/technical_writer_hq/technical-writer-hq-docs.md b/technical_writer_hq/technical-writer-hq-docs.md new file mode 100644 index 00000000..13ee731e --- /dev/null +++ b/technical_writer_hq/technical-writer-hq-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Technical Writer HQ data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def technical_writer_hq_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "http://www.w3.org/2000/svg", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "svg" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='technical_writer_hq_pipeline', + destination='duckdb', + dataset_name='technical_writer_hq_data', + ) + # Load the data + load_info = pipeline.run(technical_writer_hq_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from technical_writer_hq’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **SVG Endpoints**: Endpoints that represent Scalable Vector Graphics (SVG) with varying viewBox dimensions for rendering different graphic sizes and shapes. + - Example endpoints include: + - `/2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E` + - `/2000/svg%22%20viewBox=%220%200%2026%2026%22%3E%3C/svg%3E` + - `/2000/svg%22%20viewBox=%220%200%201024%20444%22%3E%3C/svg%3E` + - `/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3C/svg%3E` + - `/2000/svg%22%20viewBox=%220%200%201881%20958%22%3E%3C/svg%3E` + +You will then debug the Technical Writer HQ pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Technical Writer HQ support. + ```shell + dlt init dlthub:technical_writer_hq duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Technical Writer HQ API, as specified in @technical_writer_hq-docs.yaml + Start with endpoint svg and skip incremental loading for now. + Place the code in technical_writer_hq_pipeline.py and name the pipeline technical_writer_hq_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python technical_writer_hq_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The snippets mention that API keys are required for authentication, which can be generated and obtained from services like Bitly and YouTube. + + To get the appropriate API keys, please visit the original source at https://technicalwriterhq.com/documentation/api-documentation/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python technical_writer_hq_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline technical_writer_hq load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset technical_writer_hq_data + The duckdb destination used duckdb:/technical_writer_hq.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline technical_writer_hq_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("technical_writer_hq_pipeline").dataset() + # get "svg" table as Pandas frame + data."svg".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/technical_writer_hq/technical-writer-hq-docs.yaml b/technical_writer_hq/technical-writer-hq-docs.yaml new file mode 100644 index 00000000..a7527982 --- /dev/null +++ b/technical_writer_hq/technical-writer-hq-docs.yaml @@ -0,0 +1,40 @@ +client: + auth: The snippets mention that API keys are required for authentication, which + can be generated and obtained from services like Bitly and YouTube. + most_recurring_base_url: http://www.w3.org + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://technicalwriterhq.com/documentation/api-documentation/': + - /2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%2026%2026%22%3E%3C/svg%3E + - http://Senior +- 'endpoints source: https://technicalwriterhq.com/documentation-engineering-for-developers/': + - /2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%2026%2026%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%201024%20444%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%201024%20414%22%3E%3C/svg%3E +- 'endpoints source: https://technicalwriterhq.com/tools/api-documentation-software/': + - /2000/svg%22%20viewBox=%220%200%2084%2020%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%20150%2020%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%20732%20457%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%20828%20315%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%20104%2020%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%201881%20958%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%20102%2020%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%20658%20180%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%201118%20701%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%2091%2020%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%20680%20413%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%2070%2020%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%2079%2020%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%2060%2020%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%20170%20170%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%20122%2020%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%2026%2026%22%3E%3C/svg%3E +- 'endpoints source: https://technicalwriterhq.com/career/api-technical-writer/': + - /2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%20560%20373.333333333%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%2026%2026%22%3E%3C/svg%3E + - /2000/svg%22%20viewBox=%220%200%201480%20358%22%3E%3C/svg%3E diff --git a/tensor/tensor-docs.md b/tensor/tensor-docs.md new file mode 100644 index 00000000..6f60ac51 --- /dev/null +++ b/tensor/tensor-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Tensor data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def tensor_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://arweave.net/", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "AzmyEwV1pVtHFkSihvMO4ULmNfgSbvdk4chlycMlQbM", "Q5e2iaHtkXz5xazVyqhvJ2nxs59q8K3VwduxX9PD78Q" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='tensor_pipeline', + destination='duckdb', + dataset_name='tensor_data', + ) + # Load the data + load_info = pipeline.run(tensor_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from tensor’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +It seems that the provided data is a list of endpoint identifiers rather than categories. However, based on the nature of typical API endpoints, I can infer some potential categories and descriptions: + +- **User Endpoints**: Endpoints that manage user-related operations such as creation, retrieval, updating, and deletion of user accounts. +- **Product Endpoints**: Endpoints that handle product information, allowing users to add, update, or retrieve product details. +- **Order Endpoints**: Endpoints that facilitate order processing, including creating, viewing, and managing orders. +- **Authentication Endpoints**: Endpoints that handle user authentication, such as login and logout processes. + +If you provide more context or specific categories associated with the endpoints, I can refine this summary further. + +You will then debug the Tensor pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Tensor support. + ```shell + dlt init dlthub:tensor duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Tensor API, as specified in @tensor-docs.yaml + Start with endpoints AzmyEwV1pVtHFkSihvMO4ULmNfgSbvdk4chlycMlQbM and Q5e2iaHtkXz5xazVyqhvJ2nxs59q8K3VwduxX9PD78Q and skip incremental loading for now. + Place the code in tensor_pipeline.py and name the pipeline tensor_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python tensor_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + To access the API, you need to reach out to team@tensor.so to ask for the API endpoint and API key. + + To get the appropriate API keys, please visit the original source at https://docs.tensor.so/consume/rest-api. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python tensor_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline tensor load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset tensor_data + The duckdb destination used duckdb:/tensor.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline tensor_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("tensor_pipeline").dataset() + # get "AzmyEwV1pVtHFkSihvMO4ULmNfgSbvdk4chlycMlQbM" table as Pandas frame + data."AzmyEwV1pVtHFkSihvMO4ULmNfgSbvdk4chlycMlQbM".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/tensor/tensor-docs.yaml b/tensor/tensor-docs.yaml new file mode 100644 index 00000000..f7871769 --- /dev/null +++ b/tensor/tensor-docs.yaml @@ -0,0 +1,14 @@ +client: + auth: To access the API, you need to reach out to team@tensor.so to ask for the + API endpoint and API key. + most_recurring_base_url: https://arweave.net + paginator: Pagination information not found. +endpoints: +- 'endpoints source: https://docs.tensor.so/consume/rest-api': + - /Po4HLYrxRsWvYzZe8tqwh22DjmGugK_jd3ZoOUyMgik + - /Q5e2iaHtkXz5xazVyqhvJ2nxs59q8K3VwduxX9PD78Q + - /AzmyEwV1pVtHFkSihvMO4ULmNfgSbvdk4chlycMlQbM +- 'endpoints source: https://docs.tensor.so/consume': + - /Po4HLYrxRsWvYzZe8tqwh22DjmGugK_jd3ZoOUyMgik + - /Q5e2iaHtkXz5xazVyqhvJ2nxs59q8K3VwduxX9PD78Q + - /AzmyEwV1pVtHFkSihvMO4ULmNfgSbvdk4chlycMlQbM diff --git a/thoughtspot_git_api/thoughtspot-git-api-docs.md b/thoughtspot_git_api/thoughtspot-git-api-docs.md new file mode 100644 index 00000000..f74950b7 --- /dev/null +++ b/thoughtspot_git_api/thoughtspot-git-api-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete ThoughtSpot data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def thoughtspot_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://{ThoughtSpot-Host}/api/rest/2.0/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + auth/token,metadata/search,users/search + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='thoughtspot_migration_pipeline', + destination='duckdb', + dataset_name='thoughtspot_migration_data', + ) + # Load the data + load_info = pipeline.run(thoughtspot_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from thoughtspot_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Authentication: Endpoints for managing user authentication through OAuth2 and other methods. +- User Management: Endpoints for creating, modifying, and managing users and their permissions. +- Visualization: Endpoints for embedding ThoughtSpot visualizations and Liveboards into applications. +- Data Management: Endpoints for managing and querying datasets and data connections. + +You will then debug the ThoughtSpot pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with ThoughtSpot support. + ```shell + dlt init dlthub:thoughtspot_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for ThoughtSpot API, as specified in @thoughtspot_migration-docs.yaml + Start with endpoints auth/token and metadata/search and skip incremental loading for now. + Place the code in thoughtspot_migration_pipeline.py and name the pipeline thoughtspot_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python thoughtspot_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + ThoughtSpot uses OAuth2 for authentication, requiring setup of a connected app to obtain access tokens. These tokens must be included in the request headers for authorized access to the API. + + To get the appropriate API keys, please visit the original source at https://www.thoughtspot.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python thoughtspot_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline thoughtspot_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset thoughtspot_migration_data + The duckdb destination used duckdb:/thoughtspot_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline thoughtspot_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("thoughtspot_migration_pipeline").dataset() + # get uth/toke table as Pandas frame + data.uth/toke.df().head() + ``` + +## Running into errors? + +The APIs may be rate-limited, and some features are still in beta and may be disabled by default. Ensure proper permissions are granted for API access and that the ThoughtSpot instance is correctly configured for OAuth2. Additionally, some browsers have strict settings on cookie origins that might prohibit the standard SSO process. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/thoughtspot_git_api/thoughtspot-git-api-docs.yaml b/thoughtspot_git_api/thoughtspot-git-api-docs.yaml new file mode 100644 index 00000000..eafb68e3 --- /dev/null +++ b/thoughtspot_git_api/thoughtspot-git-api-docs.yaml @@ -0,0 +1,9604 @@ +resources: +- name: commit_files + endpoint: + path: /api/rest/2.0/vcs/git/branches/commit + method: POST + data_selector: results + params: {} +- name: deploy_commits + endpoint: + path: /api/rest/2.0/vcs/git/deploy + method: POST + data_selector: results + params: {} +- name: validate_merge + endpoint: + path: /api/rest/2.0/vcs/git/validate + method: POST + data_selector: results + params: {} +- name: search_commits + endpoint: + path: /api/rest/2.0/vcs/git/search + method: GET + data_selector: results + params: {} +- name: revert_commit + endpoint: + path: /api/rest/2.0/vcs/git/revert + method: POST + data_selector: results + params: {} +- name: commit_files + endpoint: + path: /api/rest/2.0/vcs/git/branches/commit + method: POST + data_selector: results + params: {} +- name: deploy_commits + endpoint: + path: /api/rest/2.0/vcs/git/deploy + method: POST + data_selector: results + params: {} +- name: validate_merge + endpoint: + path: /api/rest/2.0/vcs/git/validate + method: POST + data_selector: results + params: {} +- name: search_commits + endpoint: + path: /api/rest/2.0/vcs/git/search + method: GET + data_selector: results + params: {} +- name: revert_commit + endpoint: + path: /api/rest/2.0/vcs/git/revert + method: POST + data_selector: results + params: {} +- name: commit + endpoint: + path: /api/rest/2.0/vcs/git/branches/commit + method: POST +- name: deploy_commits + endpoint: + path: /api/rest/2.0/vcs/git/commits/deploy + method: POST +- name: validate_merge + endpoint: + path: /api/rest/2.0/vcs/git/branches/validate + method: POST +- name: search_commits + endpoint: + path: /api/rest/2.0/vcs/git/commits/search + method: POST +- name: revert_commit + endpoint: + path: /api/rest/2.0/vcs/git/commits/{commit_id}/revert + method: POST +- name: users + endpoint: + path: /api/v2/users + method: GET + data_selector: data + params: {} +- name: groups + endpoint: + path: /api/v2/groups + method: GET + data_selector: data + params: {} +- name: commit + endpoint: + path: /api/rest/2.0/vcs/git/branches/commit + method: POST + data_selector: metadata + params: + delete_aware: true +- name: deploy_commits + endpoint: + path: /api/rest/2.0/vcs/git/commits/deploy + method: POST + data_selector: deploy_type + params: + deploy_policy: ALL_OR_NONE +- name: validate_merge + endpoint: + path: /api/rest/2.0/vcs/git/branches/validate + method: POST + data_selector: source_branch_name + params: {} +- name: revert_commit + endpoint: + path: /api/rest/2.0/vcs/git/commits/{commit_id}/revert + method: POST + data_selector: metadata + params: + revert_policy: ALL_OR_NONE +- name: embed_search + endpoint: + path: /api/v1/embed/search + method: POST + data_selector: results + params: {} +- name: embed_liveboard + endpoint: + path: /api/v1/embed/liveboard + method: GET + data_selector: liveboard + params: {} +- name: spotter_ai_apis + endpoint: + path: /api/rest/2.0/ai/agent/conversation/create + method: POST +- name: data_source_suggestions + endpoint: + path: /api/rest/2.0/ai/data-source-suggestions + method: GET +- name: relevant_questions + endpoint: + path: /api/rest/2.0/ai/relevant-questions/ + method: GET +- name: agent_converse_sse + endpoint: + path: /api/rest/2.0/ai/agent/converse/sse + method: GET +- name: connection + endpoint: + path: /tspublic/rest/v2/connection + method: GET +- name: report + endpoint: + path: /tspublic/rest/v2/report/liveboard + method: POST +- name: security_permission_tsobject + endpoint: + path: /tspublic/rest/v2/security/permission/tsobject + method: GET +- name: customaction + endpoint: + path: /tspublic/rest/v2/customaction + method: GET +- name: connection + endpoint: + path: /tspublic/rest/v2/connection + method: GET +- name: report + endpoint: + path: /tspublic/rest/v2/report/liveboard + method: POST +- name: security_tsobject + endpoint: + path: /tspublic/rest/v2/security/share/tsobject + method: POST +- name: security_visualization + endpoint: + path: /tspublic/rest/v2/security/share/visualization + method: POST +- name: security_permission_tsobject + endpoint: + path: /tspublic/rest/v2/security/permission/tsobject + method: GET +- name: security_permission_principal + endpoint: + path: /tspublic/rest/v2/security/permission/principal + method: GET +- name: customaction + endpoint: + path: /tspublic/rest/v2/customaction + method: GET +- name: connection + endpoint: + path: /tspublic/v1/connection/create + method: POST +- name: metadata + endpoint: + path: /tspublic/v1/metadata/list + method: GET +- name: session_info + endpoint: + path: /tspublic/v1/session/info + method: GET +- name: connection_create + endpoint: + path: /tspublic/v1/connection/create + method: POST +- name: connection_update + endpoint: + path: /tspublic/v1/connection/update + method: POST +- name: connection_export + endpoint: + path: /tspublic/v1/connection/export + method: POST +- name: connection_delete + endpoint: + path: /tspublic/v1/connection/delete + method: POST +- name: metadata_list + endpoint: + path: /tspublic/v1/metadata/list + method: GET +- name: session_info + endpoint: + path: /tspublic/v1/session/info + method: GET +- name: user_activate + endpoint: + path: /tspublic/v1/user/activate + method: POST +- name: user_inactivate + endpoint: + path: /tspublic/v1/user/inactivate + method: POST +- name: user_resetpassword + endpoint: + path: /tspublic/v1/user/resetpassword + method: POST +- name: group_users + endpoint: + path: /tspublic/v1/group/{groupid}/users + method: PUT +- name: group_addmemberships + endpoint: + path: /tspublic/v1/group/addmemberships + method: POST +- name: group_removememberships + endpoint: + path: /tspublic/v1/group/removememberships + method: POST +- name: user_update_preference + endpoint: + path: /tspublic/v1/user/updatepreference + method: POST + data_selector: null + params: {} +- name: metadata_listas + endpoint: + path: /tspublic/v1/metadata/listas + method: GET + data_selector: null + params: {} +- name: tml_import + endpoint: + path: /api/rest/2.0/metadata/tml/import + method: POST + data_selector: results +- name: tml_export + endpoint: + path: /api/rest/2.0/metadata/tml/export + method: POST + data_selector: results +- name: role_create + endpoint: + path: /api/rest/2.0/roles/create + method: POST + data_selector: results +- name: role_update + endpoint: + path: /api/rest/2.0/roles/{role_identifier}/update + method: POST + data_selector: results +- name: schedules + endpoint: + path: /api/rest/2.0/schedules/create + method: POST +- name: users + endpoint: + path: /api/rest/2.0/users/{user_identifier}/update + method: POST +- name: groups + endpoint: + path: /api/rest/2.0/groups/{group_identifier}/update + method: POST +- name: auth_session + endpoint: + path: /api/rest/2.0/auth/session/login + method: POST +- name: Spotter + endpoint: + path: /ai/agent/conversation/create + method: POST +- name: Email customization + endpoint: + path: /customization/email/update + method: POST +- name: user + endpoint: + path: /tspublic/v1/user + method: POST +- name: role + endpoint: + path: /tspublic/v1/role + method: POST +- name: session_auth_token + endpoint: + path: /tspublic/v1/session/auth/token + method: POST +- name: async_import + endpoint: + path: /api/rest/2.0/metadata/tml/async/import + method: POST +- name: import + endpoint: + path: /api/rest/2.0/metadata/tml/import + method: POST +- name: export + endpoint: + path: /api/rest/2.0/metadata/tml/export + method: POST +- name: share_metadata + endpoint: + path: /api/rest/2.0/security/metadata/share + method: POST +- name: role_create + endpoint: + path: /api/rest/2.0/roles/create + method: POST +- name: schedules + endpoint: + path: /api/rest/2.0/schedules/create + method: POST +- name: security_share + endpoint: + path: /tspublic/v1/security/share + method: POST +- name: security_shareviz + endpoint: + path: /tspublic/v1/security/shareviz + method: POST +- name: session_login_token + endpoint: + path: /tspublic/v1/session/login/token + method: GET +- name: metadata_assigntag + endpoint: + path: /tspublic/v1/metadata/assigntag + method: POST +- name: metadata_details + endpoint: + path: /tspublic/v1/metadata/details + method: GET +- name: metadata_markunmarkfavoritefor + endpoint: + path: /tspublic/v1/metadata/markunmarkfavoritefor + method: POST +- name: metadata_markunmarkfavoritefor_delete + endpoint: + path: /tspublic/v1/metadata/markunmarkfavoritefor + method: DELETE +- name: session_homepinboard + endpoint: + path: /tspublic/v1/session/homepinboard + method: POST +- name: session_homepinboard_get + endpoint: + path: /tspublic/v1/session/homepinboard + method: GET +- name: session_homepinboard_delete + endpoint: + path: /tspublic/v1/session/homepinboard + method: DELETE +- name: user_updatepreference + endpoint: + path: /tspublic/v1/user/updatepreference + method: POST +- name: metadata_listas + endpoint: + path: /tspublic/v1/metadata/listas + method: GET +- name: user + endpoint: + path: /tspublic/v1/user + method: POST + data_selector: records + params: {} +- name: role + endpoint: + path: /tspublic/v1/role + method: POST + data_selector: records + params: {} +- name: security_share + endpoint: + path: /tspublic/v1/security/share + method: POST +- name: security_shareviz + endpoint: + path: /tspublic/v1/security/shareviz + method: POST +- name: session_login_token + endpoint: + path: /tspublic/v1/session/login/token + method: GET +- name: metadata_assigntag + endpoint: + path: /tspublic/v1/metadata/assigntag + method: POST +- name: metadata_details + endpoint: + path: /tspublic/v1/metadata/details + method: GET +- name: metadata_markunmarkfavoritefor + endpoint: + path: /tspublic/v1/metadata/markunmarkfavoritefor + method: POST +- name: metadata_markunmarkfavoritefor_delete + endpoint: + path: /tspublic/v1/metadata/markunmarkfavoritefor + method: DELETE +- name: session_homepinboard + endpoint: + path: /tspublic/v1/session/homepinboard + method: POST +- name: session_homepinboard_get + endpoint: + path: /tspublic/v1/session/homepinboard + method: GET +- name: session_homepinboard_delete + endpoint: + path: /tspublic/v1/session/homepinboard + method: DELETE +- name: user_updatepreference + endpoint: + path: /tspublic/v1/user/updatepreference + method: POST +- name: metadata_listas + endpoint: + path: /tspublic/v1/metadata/listas + method: GET +- name: Liveboard + endpoint: + path: /liveboards + method: GET + data_selector: liveboardId +- name: LiveboardEmbed + endpoint: + path: /embed/liveboard + method: GET + data_selector: liveboardData +- name: SageEmbed + endpoint: + path: /embed/sage + method: GET + data_selector: sageData +- name: AppEmbed + endpoint: + path: /embed/app + method: GET + data_selector: appData +- name: SearchEmbed + endpoint: + path: /embed/search + method: GET + data_selector: searchData +- name: SearchBarEmbed + endpoint: + path: /embed/searchbar + method: GET + data_selector: searchBarData +- name: fetchLiveboardData + endpoint: + path: /fetchLiveboardData + method: POST + data_selector: data.fetchLiveboardData + params: {} +- name: createUser + endpoint: + path: /createUser + method: POST + data_selector: data.createUser + params: {} +- name: liveboard + endpoint: + path: /embed/liveboard + method: GET +- name: LiveboardEmbed + endpoint: + path: /embed/liveboard + method: GET +- name: SpotterEmbed + endpoint: + path: /docs/embed-spotter + method: GET +- name: SpotterAgentEmbed + endpoint: + path: /docs/embed-spotter-agent + method: GET +- name: Liveboard + endpoint: + path: /liveboard + method: GET + data_selector: liveboards +- name: worksheet + endpoint: + path: your-worksheet-id + method: GET + data_selector: data +- name: liveboard + endpoint: + path: /embed/liveboard + method: GET +- name: spotter_agent + endpoint: + path: /spotter/agent + method: POST + data_selector: response + params: + worksheetId: your-worksheet-id +- name: LiveboardEmbed + endpoint: + path: /embed/liveboard + method: GET + data_selector: visualization + params: {} +- name: SpotterEmbed + endpoint: + path: /embed/spotter + method: GET +- name: SpotterAgentEmbed + endpoint: + path: /embed/spotter-agent + method: GET +- name: worksheet + endpoint: + path: /your-worksheet-id + method: GET + data_selector: data +- name: Home + endpoint: + path: home + method: GET + data_selector: records + params: {} +- name: Answers + endpoint: + path: home/answers + method: GET + data_selector: records + params: {} +- name: Liveboards + endpoint: + path: home/liveboards + method: GET + data_selector: records + params: {} +- name: SpotIQ Analysis + endpoint: + path: home/spotiq-analysis + method: GET + data_selector: records + params: {} +- name: Monitor Subscriptions + endpoint: + path: home/monitor-alerts + method: GET + data_selector: records + params: {} +- name: search_embed + endpoint: + path: /search/embed + method: POST + data_selector: data + params: {} +- name: embed_application + endpoint: + path: /docs/full-app-customize + method: GET + data_selector: applications + params: {} +- name: searchdata + endpoint: + path: /api/rest/2.0/searchdata + method: POST + data_selector: contents + params: + query_string: query + logical_table_identifier: sourceName + data_format: COMPACT + record_size: 1000000 +- name: home + endpoint: + path: /home + method: GET + data_selector: records + params: {} +- name: answers + endpoint: + path: /home/answers + method: GET + data_selector: records + params: {} +- name: liveboards + endpoint: + path: /home/liveboards + method: GET + data_selector: records + params: {} +- name: spotiq-analysis + endpoint: + path: /home/spotiq-analysis + method: GET + data_selector: records + params: {} +- name: monitor-alerts + endpoint: + path: /home/monitor-alerts + method: GET + data_selector: records + params: {} +- name: SpotterEmbed + endpoint: + path: /embed/spotter + method: GET +- name: LiveboardEmbed + endpoint: + path: /embed/liveboard + method: GET +- name: AppEmbed + endpoint: + path: /embed/app + method: GET +- name: SpotterAgent + endpoint: + path: /spotter/agent + method: POST + data_selector: response.message +- name: SearchEmbed + endpoint: + path: /search/embed + method: POST + data_selector: searchOptions +- name: SageEmbed + endpoint: + path: /sage/embed + method: POST + data_selector: searchOptions +- name: SearchBarEmbed + endpoint: + path: /embed/searchbar + method: GET +- name: searchdata + endpoint: + path: /api/rest/2.0/searchdata + method: POST + data_selector: contents + params: {} +- name: Liveboard + endpoint: + path: /liveboard + method: GET + data_selector: liveboardData +- name: Spotter + endpoint: + path: /api/v1/spotter + method: GET +- name: LiveboardEmbed + endpoint: + path: /api/v1/liveboard + method: GET +- name: AppEmbed + endpoint: + path: /api/v1/app + method: GET +- name: search + endpoint: + path: /search + method: GET + data_selector: searchResults + params: {} +- name: sage + endpoint: + path: /sage + method: GET + data_selector: sageResults + params: {} +- name: liveboard + endpoint: + path: /liveboard + method: GET + data_selector: liveboardId +- name: auth_token + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST + data_selector: token + params: + username: username + secret_key: secretKey + validity_time_in_sec: 30 + auto_create: false +- name: Liveboard + endpoint: + path: /embed/liveboard + method: GET + data_selector: liveboard + params: {} +- name: Liveboard + endpoint: + path: /api/liveboards + method: GET + data_selector: liveboards +- name: LiveboardEmbed + endpoint: + path: /liveboard/embed + method: GET +- name: liveboard + endpoint: + path: /embed/liveboard + method: GET + data_selector: liveboardId + params: {} +- name: auth_token + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST + data_selector: token + params: + username: user + validity_time_in_sec: 30 + auto_create: false + secret_key: secretKey +- name: Liveboard + endpoint: + path: /api/liveboard + method: GET + data_selector: liveboard +- name: menu_elements + endpoint: + path: /docs/css-variables-reference#_menu_elements + method: GET + data_selector: variables +- name: dialogs + endpoint: + path: /docs/css-variables-reference#_dialogs + method: GET + data_selector: variables +- name: button_elements + endpoint: + path: /docs/css-variables-reference#_button_elements + method: GET + data_selector: variables +- name: checkboxes + endpoint: + path: /docs/css-variables-reference#_checkboxes + method: GET + data_selector: variables +- name: lists + endpoint: + path: /docs/css-variables-reference#_lists + method: GET + data_selector: variables +- name: liveboard + endpoint: + path: /docs/css-variables-reference#_liveboard + method: GET + data_selector: variables +- name: visualization_and_answer + endpoint: + path: /docs/css-variables-reference#vizStyle + method: GET + data_selector: variables +- name: chart_switcher + endpoint: + path: /docs/css-variables-reference#_chart_switcher + method: GET + data_selector: variables +- name: chart_selection_widget + endpoint: + path: /docs/css-variables-reference#_chart_selection_widget + method: GET + data_selector: variables +- name: axis_title_and_labels_on_charts + endpoint: + path: /docs/css-variables-reference#_axis_title_and_labels_on_charts + method: GET + data_selector: variables +- name: filter_chips + endpoint: + path: /docs/css-variables-reference#_filter_chips_on_liveboard_and_answers + method: GET + data_selector: variables +- name: spotter_interface + endpoint: + path: /docs/css-variables-reference#_spotter_interface + method: GET + data_selector: variables +- name: natural_language_search_interface + endpoint: + path: /docs/css-variables-reference#_natural_language_search_interface + method: GET + data_selector: variables +- name: search_bar_and_data_panel + endpoint: + path: /docs/css-variables-reference#_search_bar_and_data_panel + method: GET + data_selector: variables +- name: homepage_modules + endpoint: + path: /docs/css-variables-reference#_homepage_modules_new_experience_mode + method: GET + data_selector: variables +- name: menu_elements + endpoint: + path: /menu_elements + method: GET + data_selector: variables +- name: dialogs + endpoint: + path: /dialogs + method: GET + data_selector: variables +- name: button_elements + endpoint: + path: /button_elements + method: GET + data_selector: variables +- name: checkboxes + endpoint: + path: /checkboxes + method: GET + data_selector: variables +- name: lists + endpoint: + path: /lists + method: GET + data_selector: variables +- name: liveboard + endpoint: + path: /liveboard + method: GET + data_selector: variables +- name: visualization_and_answer + endpoint: + path: /visualization_and_answer + method: GET + data_selector: variables +- name: spotter_interface + endpoint: + path: /spotter_interface + method: GET + data_selector: variables +- name: natural_language_search_interface + endpoint: + path: /natural_language_search_interface + method: GET + data_selector: variables +- name: search_bar_and_data_panel + endpoint: + path: /search_bar_and_data_panel + method: GET + data_selector: variables +- name: homepage_modules + endpoint: + path: /homepage_modules + method: GET + data_selector: variables +- name: icon_override + endpoint: + path: /icon/override + method: POST + data_selector: response + params: {} +- name: Theme Builder + endpoint: + path: /docs/theme-builder + method: GET + data_selector: components + params: {} +- name: report_liveboard + endpoint: + path: /api/rest/2.0/report/liveboard + method: POST + data_selector: metadata_identifier + params: {} +- name: report_answer + endpoint: + path: /api/rest/2.0/report/answer + method: POST + data_selector: metadata_identifier + params: {} +- name: searchdata + endpoint: + path: /api/rest/2.0/searchdata + method: POST + data_selector: query_string + params: {} +- name: liveboard_data + endpoint: + path: /api/rest/2.0/metadata/liveboard/data + method: POST + data_selector: metadata_identifier + params: {} +- name: answer_data + endpoint: + path: /api/rest/2.0/metadata/answer/data + method: POST + data_selector: metadata_identifier + params: {} +- name: pinboarddata + endpoint: + path: /callosum/v1/tspublic/v1/pinboarddata + method: GET + data_selector: records + params: {} +- name: searchdata + endpoint: + path: /api/rest/2.0/searchdata + method: POST +- name: liveboard_data + endpoint: + path: /api/rest/2.0/metadata/liveboard/data + method: POST +- name: answer_data + endpoint: + path: /api/rest/2.0/metadata/answer/data + method: POST +- name: export_liveboard_report + endpoint: + path: /api/rest/2.0/report/liveboard + method: POST +- name: export_answer_report + endpoint: + path: /api/rest/2.0/report/answer + method: POST +- name: liveboard_report + endpoint: + path: /api/rest/2.0/report/liveboard + method: POST + data_selector: metadata_identifier + params: {} +- name: answer_report + endpoint: + path: /api/rest/2.0/report/answer + method: POST + data_selector: metadata_identifier + params: {} +- name: search_data + endpoint: + path: /api/rest/2.0/searchdata + method: POST + data_selector: query_string + params: {} +- name: liveboard_data + endpoint: + path: /api/rest/2.0/metadata/liveboard/data + method: POST + data_selector: metadata_identifier + params: {} +- name: answer_data + endpoint: + path: /api/rest/2.0/metadata/answer/data + method: POST + data_selector: metadata_identifier + params: {} +- name: pinboarddata + endpoint: + path: /callosum/v1/tspublic/v1/pinboarddata + method: GET + data_selector: data + params: {} +- name: search_data + endpoint: + path: /api/rest/2.0/searchdata + method: POST + data_selector: data + params: {} +- name: liveboard_data + endpoint: + path: /api/rest/2.0/metadata/liveboard/data + method: POST + data_selector: data + params: {} +- name: answer_data + endpoint: + path: /api/rest/2.0/metadata/answer/data + method: POST + data_selector: data + params: {} +- name: LiveboardEmbed + endpoint: + path: /liveboardEmbed + method: POST +- name: SearchEmbed + endpoint: + path: /searchEmbed + method: POST +- name: custom_actions + endpoint: + path: /docs/custom-action-intro + method: GET + data_selector: actions + params: {} +- name: actions + endpoint: + path: /api/liveboard/actions + method: GET + data_selector: actions +- name: visualizations + endpoint: + path: /api/liveboard/visualizations + method: GET + data_selector: visualizations +- name: spotter + endpoint: + path: /api/spotter/actions + method: GET + data_selector: actions +- name: answers + endpoint: + path: /api/v1/answers + method: GET + data_selector: records +- name: liveboards + endpoint: + path: /api/v1/liveboards + method: GET + data_selector: records +- name: data_workspace + endpoint: + path: /api/v1/data/workspace + method: GET + data_selector: records +- name: callback_data_payload + endpoint: + path: /callback/data/payload + method: GET + data_selector: data + params: {} +- name: callback_custom_action + endpoint: + path: /callback/customAction + method: GET + data_selector: embedAnswerData + params: {} +- name: custom_actions + endpoint: + path: /docs/custom-action-intro + method: GET + data_selector: actions + params: {} +- name: callback_custom_action + endpoint: + path: /api/callback_custom_action + method: POST + data_selector: payload + params: {} +- name: search_data_payload + endpoint: + path: /search/data + method: GET + data_selector: data + params: {} +- name: context_menu_payload + endpoint: + path: /context/menu + method: GET + data_selector: contextMenuPoints + params: {} +- name: Liveboard + endpoint: + path: /#/pinboard/{object-id} + method: GET + data_selector: link + params: {} +- name: Liveboard Visualization + endpoint: + path: /#/pinboard/{object-id}/{sub-object-id} + method: GET + data_selector: link + params: {} +- name: Answer + endpoint: + path: /#/saved-answer/{object-id} + method: GET + data_selector: link + params: {} +- name: SpotIQ + endpoint: + path: /#/insight/{object-id} + method: GET + data_selector: link + params: {} +- name: User Preference + endpoint: + path: /#/user-preference + method: GET + data_selector: link + params: {} +- name: Generic Link + endpoint: + path: /#/{path} + method: GET + data_selector: link + params: {} +- name: liveboard_payload + endpoint: + path: /callback/livboard + method: POST + data_selector: reportBookData + params: {} +- name: callback_custom_action + endpoint: + path: /callback/custom_action + method: POST + data_selector: clickedPoint + params: {} +- name: callback_action + endpoint: + path: /callback-action + method: POST + data_selector: data +- name: context_menu + endpoint: + path: /context-menu + method: POST + data_selector: data +- name: update_user + endpoint: + path: /api/rest/2.0/users/{user_identifier}/update + method: POST +- name: create_user + endpoint: + path: /api/rest/2.0/users/create + method: POST +- name: update_preference + endpoint: + path: /tspublic/v1/user/updatepreference + method: POST +- name: email_customization + endpoint: + path: /api/rest/2.0/customization/email + method: POST +- name: email_customization + endpoint: + path: /api/rest/2.0/customization/email + method: POST + data_selector: template_properties + params: {} +- name: validate_email_customization + endpoint: + path: /api/rest/2.0/customization/email/validate + method: POST + data_selector: '' + params: {} +- name: search_email_customization + endpoint: + path: /api/rest/2.0/customization/email/search + method: POST + data_selector: '' + params: {} +- name: update_email_customization + endpoint: + path: /api/rest/2.0/customization/email/update + method: POST + data_selector: template_properties + params: {} +- name: delete_email_customization + endpoint: + path: /api/rest/2.0/customization/email/delete + method: POST + data_selector: '' + params: {} +- name: metadata_search + endpoint: + path: /metadata/search + method: GET +- name: onboarding_settings + endpoint: + path: /Admin/Application/settings/Onboarding + method: GET + data_selector: settings +- name: metadata_search + endpoint: + path: /metadata/search + method: GET + data_selector: metadata + params: {} +- name: metadata_list + endpoint: + path: /metadata/list + method: GET + data_selector: headers + params: {} +- name: metadata_list_viz_headers + endpoint: + path: /metadata/listvizheaders + method: GET + data_selector: headers + params: {} +- name: email_customization + endpoint: + path: /api/rest/2.0/customization/email + method: POST + data_selector: '' + params: {} +- name: validate_email_customization + endpoint: + path: /api/rest/2.0/customization/email/validate + method: POST + data_selector: '' + params: {} +- name: search_email_customization + endpoint: + path: /api/rest/2.0/customization/email/search + method: POST + data_selector: '' + params: {} +- name: update_email_customization + endpoint: + path: /api/rest/2.0/customization/email/update + method: POST + data_selector: '' + params: {} +- name: delete_email_customization + endpoint: + path: /api/rest/2.0/customization/email/delete + method: POST + data_selector: '' + params: {} +- name: metadata_search + endpoint: + path: /metadata/search + method: GET + data_selector: headers +- name: metadata_list + endpoint: + path: /metadata/list + method: GET + data_selector: headers +- name: viz_headers + endpoint: + path: /metadata/listvizheaders + method: GET + data_selector: headers +- name: token_request + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST + data_selector: token + params: + validity_time_in_sec: 60 +- name: token_request + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST + data_selector: token +- name: authentication_token + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST + data_selector: token + params: + auto_create: 'true' +- name: authentication_token_object + endpoint: + path: /api/rest/2.0/auth/token/object + method: POST + data_selector: token + params: + auto_create: 'true' +- name: session_auth_token + endpoint: + path: /session/auth/token + method: POST + data_selector: autocreate + params: {} +- name: org_search + endpoint: + path: /org/search + method: GET + data_selector: orgs + params: {} +- name: current_org + endpoint: + path: /session/orgs + method: GET + data_selector: currentOrg + params: {} +- name: share_metadata + endpoint: + path: /security/metadata/share + method: POST + data_selector: '' + params: {} +- name: fetch_permissions + endpoint: + path: /security/metadata/fetch-permissions + method: GET + data_selector: '' + params: {} +- name: fetch_principals_permissions + endpoint: + path: /security/principals/fetch-permissions + method: GET + data_selector: '' + params: {} +- name: assign_content_author + endpoint: + path: /security/metadata/assign + method: POST + data_selector: '' + params: {} +- name: authentication_token + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST + data_selector: token + params: + auto_create: 'true' + display_name: '' + email: '' + org_id: '' + group_identifiers: [] +- name: share_metadata + endpoint: + path: /security/metadata/share + method: POST + data_selector: metadata_identifiers + params: {} +- name: fetch_permissions + endpoint: + path: /security/metadata/fetch-permissions + method: GET + data_selector: permissions + params: {} +- name: assign_content_author + endpoint: + path: /security/metadata/assign + method: POST + data_selector: metadata + params: {} +- name: custom_token + endpoint: + path: /api/rest/2.0/auth/token/custom + method: POST +- name: full_token + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST +- name: object_token + endpoint: + path: /api/rest/2.0/auth/token/object + method: POST +- name: custom_token + endpoint: + path: /api/rest/2.0/auth/token/custom + method: POST +- name: custom_token + endpoint: + path: /api/rest/2.0/auth/token/custom + method: POST + data_selector: token + params: {} +- name: custom_token + endpoint: + path: /api/rest/2.0/auth/token/custom + method: POST +- name: token_request + endpoint: + path: /services/restV2/token_request + method: POST + data_selector: user_parameters + params: {} +- name: Liveboard + endpoint: + path: /liveboard + method: GET + data_selector: visualizations +- name: lazy_loading + endpoint: + path: /docs/embed-liveboard + method: GET + data_selector: visualizations + params: {} +- name: Liveboard + endpoint: + path: /services/liveboard + method: GET + data_selector: records +- name: liveboard + endpoint: + path: /docs/embed-liveboard + method: GET + data_selector: visualizations + params: {} +- name: CrossFilterChanged + endpoint: + path: /types/crossfilterchanged + method: GET + data_selector: data + params: {} +- name: CustomAction + endpoint: + path: /types/customaction + method: GET + data_selector: data + params: {} +- name: Data + endpoint: + path: /types/data + method: GET + data_selector: data + params: {} +- name: DataSourceSelected + endpoint: + path: /types/datasourceselected + method: GET + data_selector: data + params: {} +- name: Delete + endpoint: + path: /types/delete + method: GET + data_selector: data + params: {} +- name: DeletePersonalisedView + endpoint: + path: /types/deletepersonalisedview + method: GET + data_selector: data + params: {} +- name: DialogClose + endpoint: + path: /types/dialogclose + method: GET + data_selector: data + params: {} +- name: DialogOpen + endpoint: + path: /types/dialogopen + method: GET + data_selector: data + params: {} +- name: Download + endpoint: + path: /types/download + method: GET + data_selector: data + params: {} +- name: DownloadAsCsv + endpoint: + path: /types/downloadascsv + method: GET + data_selector: data + params: {} +- name: DownloadAsPdf + endpoint: + path: /types/downloadaspdf + method: GET + data_selector: data + params: {} +- name: DownloadAsPng + endpoint: + path: /types/downloadaspng + method: GET + data_selector: data + params: {} +- name: DownloadAsXlsx + endpoint: + path: /types/downloadasxlsx + method: GET + data_selector: data + params: {} +- name: DrillExclude + endpoint: + path: /types/drillexclude + method: GET + data_selector: data + params: {} +- name: DrillInclude + endpoint: + path: /types/drillinclude + method: GET + data_selector: data + params: {} +- name: Drilldown + endpoint: + path: /types/drilldown + method: GET + data_selector: data + params: {} +- name: Edit + endpoint: + path: /types/edit + method: GET + data_selector: data + params: {} +- name: EditTML + endpoint: + path: /types/edittml + method: GET + data_selector: data + params: {} +- name: Error + endpoint: + path: /types/error + method: GET + data_selector: data + params: {} +- name: Explore + endpoint: + path: /types/explore + method: GET + data_selector: data + params: {} +- name: ExportTML + endpoint: + path: /types/exporttml + method: GET + data_selector: data + params: {} +- name: FilterChanged + endpoint: + path: /types/filterchanged + method: GET + data_selector: data + params: {} +- name: GetDataClick + endpoint: + path: /types/getdataclick + method: GET + data_selector: data + params: {} +- name: Init + endpoint: + path: /types/init + method: GET + data_selector: data + params: {} +- name: LastPromptDeleted + endpoint: + path: /types/lastpromptdeleted + method: GET + data_selector: data + params: {} +- name: LastPromptEdited + endpoint: + path: /types/lastpromptedited + method: GET + data_selector: data + params: {} +- name: LiveboardInfo + endpoint: + path: /types/liveboardinfo + method: GET + data_selector: data + params: {} +- name: LiveboardRendered + endpoint: + path: /types/liveboardrendered + method: GET + data_selector: data + params: {} +- name: Load + endpoint: + path: /types/load + method: GET + data_selector: data + params: {} +- name: MakeACopy + endpoint: + path: /types/makeacopy + method: GET + data_selector: data + params: {} +- name: NoCookieAccess + endpoint: + path: /types/nocookieaccess + method: GET + data_selector: data + params: {} +- name: OnBeforeGetVizDataIntercept + endpoint: + path: /onBeforeGetVizDataIntercept + method: GET + data_selector: payload +- name: OrgSwitched + endpoint: + path: /orgSwitched + method: GET + data_selector: payload +- name: ParameterChanged + endpoint: + path: /parameterChanged + method: GET + data_selector: payload +- name: Pin + endpoint: + path: /pin + method: GET + data_selector: payload +- name: Present + endpoint: + path: /present + method: GET + data_selector: payload +- name: PreviewSpotterData + endpoint: + path: /PreviewSpotterData + method: GET + data_selector: payload +- name: QueryChanged + endpoint: + path: /queryChanged + method: GET + data_selector: payload +- name: Rename + endpoint: + path: /rename + method: GET + data_selector: payload +- name: ResetLiveboard + endpoint: + path: /resetLiveboard + method: GET + data_selector: payload +- name: ResetSpotterConversation + endpoint: + path: /ResetSpotterConversation + method: GET + data_selector: payload +- name: RouteChange + endpoint: + path: /ROUTE_CHANGE + method: GET + data_selector: payload +- name: SageEmbedQuery + endpoint: + path: /sageEmbedQuery + method: GET + data_selector: payload +- name: SageWorksheetUpdated + endpoint: + path: /sageWorksheetUpdated + method: GET + data_selector: payload +- name: Save + endpoint: + path: /save + method: GET + data_selector: payload +- name: SaveAsView + endpoint: + path: /saveAsView + method: GET + data_selector: payload +- name: SavePersonalisedView + endpoint: + path: /savePersonalisedView + method: GET + data_selector: payload +- name: Schedule + endpoint: + path: /subscription + method: GET + data_selector: payload +- name: SchedulesList + endpoint: + path: /schedule-list + method: GET + data_selector: payload +- name: Share + endpoint: + path: /share + method: GET + data_selector: payload +- name: ShowUnderlyingData + endpoint: + path: /showUnderlyingData + method: GET + data_selector: payload +- name: SpotIQAnalyze + endpoint: + path: /spotIQAnalyze + method: GET + data_selector: payload +- name: SpotterData + endpoint: + path: /SpotterData + method: GET + data_selector: payload +- name: SpotterInit + endpoint: + path: /spotterInit + method: GET + data_selector: payload +- name: SpotterQueryTriggered + endpoint: + path: /SpotterQueryTriggered + method: GET + data_selector: payload +- name: TableVizRendered + endpoint: + path: /TableVizRendered + method: GET + data_selector: payload +- name: UpdateConnection + endpoint: + path: /updateConnection + method: GET + data_selector: payload +- name: UpdatePersonalisedView + endpoint: + path: /updatePersonalisedView + method: GET + data_selector: payload +- name: UpdateTML + endpoint: + path: /updateTSL + method: GET + data_selector: payload +- name: VizPointClick + endpoint: + path: /vizPointClick + method: GET + data_selector: payload +- name: VizPointDoubleClick + endpoint: + path: /vizPointDoubleClick + method: GET + data_selector: payload +- name: OnBeforeGetVizDataIntercept + endpoint: + path: /onBeforeGetVizDataIntercept + method: GET + data_selector: payload +- name: OrgSwitched + endpoint: + path: /orgSwitched + method: GET + data_selector: payload +- name: ParameterChanged + endpoint: + path: /parameterChanged + method: GET + data_selector: payload +- name: Pin + endpoint: + path: /pin + method: GET + data_selector: payload +- name: Present + endpoint: + path: /present + method: GET + data_selector: payload +- name: PreviewSpotterData + endpoint: + path: /PreviewSpotterData + method: GET + data_selector: payload +- name: QueryChanged + endpoint: + path: /queryChanged + method: GET + data_selector: payload +- name: Rename + endpoint: + path: /rename + method: GET + data_selector: payload +- name: ResetLiveboard + endpoint: + path: /resetLiveboard + method: GET + data_selector: payload +- name: ResetSpotterConversation + endpoint: + path: /ResetSpotterConversation + method: GET + data_selector: payload +- name: RouteChange + endpoint: + path: /ROUTE_CHANGE + method: GET + data_selector: payload +- name: SageEmbedQuery + endpoint: + path: /sageEmbedQuery + method: GET + data_selector: payload +- name: SageWorksheetUpdated + endpoint: + path: /sageWorksheetUpdated + method: GET + data_selector: payload +- name: Save + endpoint: + path: /save + method: GET + data_selector: payload +- name: SaveAsView + endpoint: + path: /saveAsView + method: GET + data_selector: payload +- name: SavePersonalisedView + endpoint: + path: /savePersonalisedView + method: GET + data_selector: payload +- name: Schedule + endpoint: + path: /subscription + method: GET + data_selector: payload +- name: SchedulesList + endpoint: + path: /schedule-list + method: GET + data_selector: payload +- name: Share + endpoint: + path: /share + method: GET + data_selector: payload +- name: ShowUnderlyingData + endpoint: + path: /showUnderlyingData + method: GET + data_selector: payload +- name: SpotIQAnalyze + endpoint: + path: /spotIQAnalyze + method: GET + data_selector: payload +- name: SpotterData + endpoint: + path: /SpotterData + method: GET + data_selector: payload +- name: SpotterInit + endpoint: + path: /spotterInit + method: GET + data_selector: payload +- name: SpotterQueryTriggered + endpoint: + path: /SpotterQueryTriggered + method: GET + data_selector: payload +- name: TableVizRendered + endpoint: + path: /TableVizRendered + method: GET + data_selector: payload +- name: UpdateConnection + endpoint: + path: /updateConnection + method: GET + data_selector: payload +- name: UpdatePersonalisedView + endpoint: + path: /updatePersonalisedView + method: GET + data_selector: payload +- name: UpdateTML + endpoint: + path: /updateTSL + method: GET + data_selector: payload +- name: VizPointClick + endpoint: + path: /vizPointClick + method: GET + data_selector: payload +- name: VizPointDoubleClick + endpoint: + path: /vizPointDoubleClick + method: GET + data_selector: payload +- name: AddColumns + endpoint: + path: /docs/Enumeration_HostEvent#_addcolumns + method: GET + data_selector: records +- name: AnswerChartSwitcher + endpoint: + path: /docs/Enumeration_HostEvent#_answerchartswitcher + method: GET + data_selector: records +- name: AskSage + endpoint: + path: /docs/Enumeration_HostEvent#_asksage + method: GET + data_selector: records +- name: AskSpotter + endpoint: + path: /docs/Enumeration_HostEvent#_askspotter + method: GET + data_selector: records +- name: CopyLink + endpoint: + path: /docs/Enumeration_HostEvent#_copylink + method: GET + data_selector: records +- name: CreateMonitor + endpoint: + path: /docs/Enumeration_HostEvent#_createmonitor + method: GET + data_selector: records +- name: Delete + endpoint: + path: /docs/Enumeration_HostEvent#_delete + method: GET + data_selector: records +- name: DeleteLastPrompt + endpoint: + path: /docs/Enumeration_HostEvent#_deletelastprompt + method: GET + data_selector: records +- name: Download + endpoint: + path: /docs/Enumeration_HostEvent#_download + method: GET + data_selector: records +- name: DownloadAsCsv + endpoint: + path: /docs/Enumeration_HostEvent#_downloadascsv + method: GET + data_selector: records +- name: DownloadAsPdf + endpoint: + path: /docs/Enumeration_HostEvent#_downloadaspdf + method: GET + data_selector: records +- name: DownloadAsPng + endpoint: + path: /docs/Enumeration_HostEvent#_downloadaspng + method: GET + data_selector: records +- name: DownloadAsXlsx + endpoint: + path: /docs/Enumeration_HostEvent#_downloadasxlsx + method: GET + data_selector: records +- name: DrillDown + endpoint: + path: /docs/Enumeration_HostEvent#_drilldown + method: GET + data_selector: records +- name: Edit + endpoint: + path: /docs/Enumeration_HostEvent#_edit + method: GET + data_selector: records +- name: EditLastPrompt + endpoint: + path: /docs/Enumeration_HostEvent#_editlastprompt + method: GET + data_selector: records +- name: EditTML + endpoint: + path: /docs/Enumeration_HostEvent#_edittml + method: GET + data_selector: records +- name: Explore + endpoint: + path: /docs/Enumeration_HostEvent#_explore + method: GET + data_selector: records +- name: ExportTML + endpoint: + path: /docs/Enumeration_HostEvent#_exporttml + method: GET + data_selector: records +- name: GetAnswerSession + endpoint: + path: /docs/Enumeration_HostEvent#_getanswersession + method: GET + data_selector: records +- name: GetFilters + endpoint: + path: /docs/Enumeration_HostEvent#_getfilters + method: GET + data_selector: records +- name: GetIframeUrl + endpoint: + path: /docs/Enumeration_HostEvent#_getiframeurl + method: GET + data_selector: records +- name: GetParameters + endpoint: + path: /docs/Enumeration_HostEvent#_getparameters + method: GET + data_selector: records +- name: GetTML + endpoint: + path: /docs/Enumeration_HostEvent#_gettml + method: GET + data_selector: records +- name: GetTabs + endpoint: + path: /docs/Enumeration_HostEvent#_gettabs + method: GET + data_selector: records +- name: LiveboardInfo + endpoint: + path: /docs/Enumeration_HostEvent#_liveboardinfo + method: GET + data_selector: records +- name: MakeACopy + endpoint: + path: /docs/Enumeration_HostEvent#_makeacopy + method: GET + data_selector: records +- name: ManageMonitor + endpoint: + path: /docs/Enumeration_HostEvent#_managemonitor + method: GET + data_selector: records +- name: ManagePipelines + endpoint: + path: /docs/Enumeration_HostEvent#_managepipelines + method: GET + data_selector: records +- name: Navigate + endpoint: + path: /docs/Enumeration_HostEvent#_navigate + method: GET + data_selector: records +- name: OpenFilter + endpoint: + path: /docs/Enumeration_HostEvent#_openfilter + method: GET + data_selector: records +- name: Pin + endpoint: + path: /docs/Enumeration_HostEvent#_pin + method: GET + data_selector: records +- name: Present + endpoint: + path: /docs/Enumeration_HostEvent#_present + method: GET + data_selector: records +- name: PreviewSpotterData + endpoint: + path: /docs/Enumeration_HostEvent#_previewspotterdata + method: GET + data_selector: records +- name: Remove + endpoint: + path: /docs/Enumeration_HostEvent#_remove + method: GET + data_selector: records +- name: RemoveColumn + endpoint: + path: /docs/Enumeration_HostEvent#_removecolumn + method: GET + data_selector: records +- name: ResetLiveboardPersonalisedView + endpoint: + path: /docs/Enumeration_HostEvent#_resetliveboardpersonalisedview + method: GET + data_selector: records +- name: ResetSearch + endpoint: + path: /docs/Enumeration_HostEvent#_resetsearch + method: GET + data_selector: records +- name: ResetSpotterConversation + endpoint: + path: /docs/Enumeration_HostEvent#_resetspotterconversation + method: GET + data_selector: records +- name: Save + endpoint: + path: /docs/Enumeration_HostEvent#_save + method: GET + data_selector: records +- name: SaveAnswer + endpoint: + path: /docs/Enumeration_HostEvent#_saveanswer + method: GET + data_selector: records +- name: Schedule + endpoint: + path: /docs/Enumeration_HostEvent#_schedule + method: GET + data_selector: records +- name: SchedulesList + endpoint: + path: /docs/Enumeration_HostEvent#_scheduleslist + method: GET + data_selector: records +- name: Search + endpoint: + path: /docs/Enumeration_HostEvent#_search + method: GET + data_selector: records +- name: SetActiveTab + endpoint: + path: /docs/Enumeration_HostEvent#_setactivetab + method: GET + data_selector: records +- name: SetHiddenTabs + endpoint: + path: /docs/Enumeration_HostEvent#_sethiddentabs + method: GET + data_selector: records +- name: SetVisibleTabs + endpoint: + path: /docs/Enumeration_HostEvent#_setvisibletabs + method: GET + data_selector: records +- name: SetVisibleVizs + endpoint: + path: /docs/Enumeration_HostEvent#_setvisiblevizs + method: GET + data_selector: records +- name: Share + endpoint: + path: /docs/Enumeration_HostEvent#_share + method: GET + data_selector: records +- name: ShowUnderlyingData + endpoint: + path: /docs/Enumeration_HostEvent#_showunderlyingdata + method: GET + data_selector: records +- name: SpotIQAnalyze + endpoint: + path: /docs/Enumeration_HostEvent#_spotiqanalyze + method: GET + data_selector: records +- name: SpotterSearch + endpoint: + path: /docs/Enumeration_HostEvent#_spottersearch + method: GET + data_selector: records +- name: SyncToOtherApps + endpoint: + path: /docs/Enumeration_HostEvent#_synctootherapps + method: GET + data_selector: records +- name: SyncToSheets + endpoint: + path: /docs/Enumeration_HostEvent#_synctosheets + method: GET + data_selector: records +- name: TransformTableVizData + endpoint: + path: /docs/Enumeration_HostEvent#_transformtablevizdata + method: GET + data_selector: records +- name: UpdateCrossFilter + endpoint: + path: /docs/Enumeration_HostEvent#_updatecrossfilter + method: GET + data_selector: records +- name: UpdateFilters + endpoint: + path: /docs/Enumeration_HostEvent#_updatefilters + method: GET + data_selector: records +- name: UpdateParameters + endpoint: + path: /docs/Enumeration_HostEvent#_updateparameters + method: GET + data_selector: records +- name: UpdatePersonalisedView + endpoint: + path: /docs/Enumeration_HostEvent#_updatepersonalisedview + method: GET + data_selector: records +- name: UpdateRuntimeFilters + endpoint: + path: /docs/Enumeration_HostEvent#_updateruntimefilters + method: GET + data_selector: records +- name: UpdateSageQuery + endpoint: + path: /docs/Enumeration_HostEvent#_updatesagequery + method: GET + data_selector: records +- name: UpdateTML + endpoint: + path: /docs/Enumeration_HostEvent#_updatetml + method: GET + data_selector: records +- name: getExportRequestForCurrentPinboard + endpoint: + path: /docs/Enumeration_HostEvent#_getexportrequestforcurrentpinboard + method: GET + data_selector: records +- name: AddColumns + endpoint: + path: /docs/Enumeration_HostEvent#_addcolumns + method: GET + data_selector: undefined + params: {} +- name: AnswerChartSwitcher + endpoint: + path: /docs/Enumeration_HostEvent#_answerchartswitcher + method: GET + data_selector: undefined + params: {} +- name: AskSage + endpoint: + path: /docs/Enumeration_HostEvent#_asksage + method: GET + data_selector: undefined + params: {} +- name: AskSpotter + endpoint: + path: /docs/Enumeration_HostEvent#_askspotter + method: GET + data_selector: undefined + params: {} +- name: CopyLink + endpoint: + path: /docs/Enumeration_HostEvent#_copylink + method: GET + data_selector: undefined + params: {} +- name: CreateMonitor + endpoint: + path: /docs/Enumeration_HostEvent#_createmonitor + method: GET + data_selector: undefined + params: {} +- name: Delete + endpoint: + path: /docs/Enumeration_HostEvent#_delete + method: GET + data_selector: undefined + params: {} +- name: DeleteLastPrompt + endpoint: + path: /docs/Enumeration_HostEvent#_deletelastprompt + method: GET + data_selector: undefined + params: {} +- name: Download + endpoint: + path: /docs/Enumeration_HostEvent#_download + method: GET + data_selector: undefined + params: {} +- name: DownloadAsCsv + endpoint: + path: /docs/Enumeration_HostEvent#_downloadascsv + method: GET + data_selector: undefined + params: {} +- name: DownloadAsPdf + endpoint: + path: /docs/Enumeration_HostEvent#_downloadaspdf + method: GET + data_selector: undefined + params: {} +- name: DownloadAsPng + endpoint: + path: /docs/Enumeration_HostEvent#_downloadaspng + method: GET + data_selector: undefined + params: {} +- name: DownloadAsXlsx + endpoint: + path: /docs/Enumeration_HostEvent#_downloadasxlsx + method: GET + data_selector: undefined + params: {} +- name: DrillDown + endpoint: + path: /docs/Enumeration_HostEvent#_drilldown + method: GET + data_selector: undefined + params: {} +- name: Edit + endpoint: + path: /docs/Enumeration_HostEvent#_edit + method: GET + data_selector: undefined + params: {} +- name: EditLastPrompt + endpoint: + path: /docs/Enumeration_HostEvent#_editlastprompt + method: GET + data_selector: undefined + params: {} +- name: EditTML + endpoint: + path: /docs/Enumeration_HostEvent#_edittml + method: GET + data_selector: undefined + params: {} +- name: Explore + endpoint: + path: /docs/Enumeration_HostEvent#_explore + method: GET + data_selector: undefined + params: {} +- name: ExportTML + endpoint: + path: /docs/Enumeration_HostEvent#_exporttml + method: GET + data_selector: undefined + params: {} +- name: GetAnswerSession + endpoint: + path: /docs/Enumeration_HostEvent#_getanswersession + method: GET + data_selector: undefined + params: {} +- name: GetFilters + endpoint: + path: /docs/Enumeration_HostEvent#_getfilters + method: GET + data_selector: undefined + params: {} +- name: GetIframeUrl + endpoint: + path: /docs/Enumeration_HostEvent#_getiframeurl + method: GET + data_selector: undefined + params: {} +- name: GetParameters + endpoint: + path: /docs/Enumeration_HostEvent#_getparameters + method: GET + data_selector: undefined + params: {} +- name: GetTML + endpoint: + path: /docs/Enumeration_HostEvent#_gettml + method: GET + data_selector: undefined + params: {} +- name: GetTabs + endpoint: + path: /docs/Enumeration_HostEvent#_gettabs + method: GET + data_selector: undefined + params: {} +- name: LiveboardInfo + endpoint: + path: /docs/Enumeration_HostEvent#_liveboardinfo + method: GET + data_selector: undefined + params: {} +- name: MakeACopy + endpoint: + path: /docs/Enumeration_HostEvent#_makeacopy + method: GET + data_selector: undefined + params: {} +- name: ManageMonitor + endpoint: + path: /docs/Enumeration_HostEvent#_managemonitor + method: GET + data_selector: undefined + params: {} +- name: ManagePipelines + endpoint: + path: /docs/Enumeration_HostEvent#_managepipelines + method: GET + data_selector: undefined + params: {} +- name: Navigate + endpoint: + path: /docs/Enumeration_HostEvent#_navigate + method: GET + data_selector: undefined + params: {} +- name: OpenFilter + endpoint: + path: /docs/Enumeration_HostEvent#_openfilter + method: GET + data_selector: undefined + params: {} +- name: Pin + endpoint: + path: /docs/Enumeration_HostEvent#_pin + method: GET + data_selector: undefined + params: {} +- name: Present + endpoint: + path: /docs/Enumeration_HostEvent#_present + method: GET + data_selector: undefined + params: {} +- name: PreviewSpotterData + endpoint: + path: /docs/Enumeration_HostEvent#_previewspotterdata + method: GET + data_selector: undefined + params: {} +- name: Remove + endpoint: + path: /docs/Enumeration_HostEvent#_remove + method: GET + data_selector: undefined + params: {} +- name: RemoveColumn + endpoint: + path: /docs/Enumeration_HostEvent#_removecolumn + method: GET + data_selector: undefined + params: {} +- name: ResetLiveboardPersonalisedView + endpoint: + path: /docs/Enumeration_HostEvent#_resetliveboardpersonalisedview + method: GET + data_selector: undefined + params: {} +- name: ResetSearch + endpoint: + path: /docs/Enumeration_HostEvent#_resetsearch + method: GET + data_selector: undefined + params: {} +- name: ResetSpotterConversation + endpoint: + path: /docs/Enumeration_HostEvent#_resetspotterconversation + method: GET + data_selector: undefined + params: {} +- name: Save + endpoint: + path: /docs/Enumeration_HostEvent#_save + method: GET + data_selector: undefined + params: {} +- name: SaveAnswer + endpoint: + path: /docs/Enumeration_HostEvent#_saveanswer + method: GET + data_selector: undefined + params: {} +- name: Schedule + endpoint: + path: /docs/Enumeration_HostEvent#_schedule + method: GET + data_selector: undefined + params: {} +- name: SchedulesList + endpoint: + path: /docs/Enumeration_HostEvent#_scheduleslist + method: GET + data_selector: undefined + params: {} +- name: Search + endpoint: + path: /docs/Enumeration_HostEvent#_search + method: GET + data_selector: undefined + params: {} +- name: SetActiveTab + endpoint: + path: /docs/Enumeration_HostEvent#_setactivetab + method: GET + data_selector: undefined + params: {} +- name: SetHiddenTabs + endpoint: + path: /docs/Enumeration_HostEvent#_sethiddentabs + method: GET + data_selector: undefined + params: {} +- name: SetVisibleTabs + endpoint: + path: /docs/Enumeration_HostEvent#_setvisibletabs + method: GET + data_selector: undefined + params: {} +- name: SetVisibleVizs + endpoint: + path: /docs/Enumeration_HostEvent#_setvisiblevizs + method: GET + data_selector: undefined + params: {} +- name: Share + endpoint: + path: /docs/Enumeration_HostEvent#_share + method: GET + data_selector: undefined + params: {} +- name: ShowUnderlyingData + endpoint: + path: /docs/Enumeration_HostEvent#_showunderlyingdata + method: GET + data_selector: undefined + params: {} +- name: SpotIQAnalyze + endpoint: + path: /docs/Enumeration_HostEvent#_spotiqanalyze + method: GET + data_selector: undefined + params: {} +- name: SpotterSearch + endpoint: + path: /docs/Enumeration_HostEvent#_spottersearch + method: GET + data_selector: undefined + params: {} +- name: SyncToOtherApps + endpoint: + path: /docs/Enumeration_HostEvent#_synctootherapps + method: GET + data_selector: undefined + params: {} +- name: SyncToSheets + endpoint: + path: /docs/Enumeration_HostEvent#_synctosheets + method: GET + data_selector: undefined + params: {} +- name: TransformTableVizData + endpoint: + path: /docs/Enumeration_HostEvent#_transformtablevizdata + method: GET + data_selector: undefined + params: {} +- name: UpdateCrossFilter + endpoint: + path: /docs/Enumeration_HostEvent#_updatecrossfilter + method: GET + data_selector: undefined + params: {} +- name: UpdateFilters + endpoint: + path: /docs/Enumeration_HostEvent#_updatefilters + method: GET + data_selector: undefined + params: {} +- name: UpdateParameters + endpoint: + path: /docs/Enumeration_HostEvent#_updateparameters + method: GET + data_selector: undefined + params: {} +- name: UpdatePersonalisedView + endpoint: + path: /docs/Enumeration_HostEvent#_updatepersonalisedview + method: GET + data_selector: undefined + params: {} +- name: UpdateRuntimeFilters + endpoint: + path: /docs/Enumeration_HostEvent#_updateruntimefilters + method: GET + data_selector: undefined + params: {} +- name: UpdateSageQuery + endpoint: + path: /docs/Enumeration_HostEvent#_updatesagequery + method: GET + data_selector: undefined + params: {} +- name: UpdateTML + endpoint: + path: /docs/Enumeration_HostEvent#_updatetml + method: GET + data_selector: undefined + params: {} +- name: getExportRequestForCurrentPinboard + endpoint: + path: /docs/Enumeration_HostEvent#_getexportrequestforcurrentpinboard + method: GET + data_selector: undefined + params: {} +- name: Save + endpoint: + path: /save + method: POST +- name: SaveAnswer + endpoint: + path: /saveAnswer + method: POST +- name: Schedule + endpoint: + path: /schedule + method: POST +- name: SchedulesList + endpoint: + path: /schedule-list + method: POST +- name: Search + endpoint: + path: /search + method: POST +- name: SetActiveTab + endpoint: + path: /set-active-tab + method: POST +- name: SetHiddenTabs + endpoint: + path: /set-hidden-tabs + method: POST +- name: SetVisibleTabs + endpoint: + path: /set-visible-tabs + method: POST +- name: SetVisibleVizs + endpoint: + path: /set-visible-vizs + method: POST +- name: Share + endpoint: + path: /share + method: POST +- name: ShowUnderlyingData + endpoint: + path: /show-underlying-data + method: POST +- name: SpotIQAnalyze + endpoint: + path: /spotiqanalyze + method: POST +- name: SpotterSearch + endpoint: + path: /spotter-search + method: POST +- name: SyncToOtherApps + endpoint: + path: /sync-to-other-apps + method: POST +- name: SyncToSheets + endpoint: + path: /sync-to-sheets + method: POST +- name: TransformTableVizData + endpoint: + path: /transform-table-viz-data + method: POST +- name: UpdateCrossFilter + endpoint: + path: /update-cross-filter + method: POST +- name: UpdateFilters + endpoint: + path: /update-filters + method: POST +- name: UpdateParameters + endpoint: + path: /update-parameters + method: POST +- name: UpdatePersonalisedView + endpoint: + path: /update-personalised-view + method: POST +- name: UpdateRuntimeFilters + endpoint: + path: /update-runtime-filters + method: POST +- name: UpdateSageQuery + endpoint: + path: /update-sage-query + method: POST +- name: UpdateTML + endpoint: + path: /update-tml + method: POST +- name: DrillDown + endpoint: + path: /drill_down + method: POST + data_selector: points + params: {} +- name: Edit + endpoint: + path: /edit + method: POST + data_selector: object + params: {} +- name: EditLastPrompt + endpoint: + path: /edit_last_prompt + method: POST + data_selector: query + params: {} +- name: ExportTML + endpoint: + path: /export_tml + method: POST + data_selector: {} + params: {} +- name: GetAnswerSession + endpoint: + path: /get_answer_session + method: POST + data_selector: session + params: {} +- name: GetFilters + endpoint: + path: /get_filters + method: POST + data_selector: filters + params: {} +- name: GetParameters + endpoint: + path: /get_parameters + method: POST + data_selector: parameters + params: {} +- name: LiveboardInfo + endpoint: + path: /liveboard_info + method: POST + data_selector: {} + params: {} +- name: Pin + endpoint: + path: /pin + method: POST + data_selector: {} + params: {} +- name: Present + endpoint: + path: /present + method: POST + data_selector: {} + params: {} +- name: Answer + endpoint: + path: /answers + method: GET + data_selector: data + params: {} +- name: fetchCSVBlob + endpoint: + path: /fetchCSVBlob + method: GET + data_selector: Promise< Response > + params: + userLocale: en-us + includeInfo: false +- name: fetchData + endpoint: + path: /fetchData + method: GET + data_selector: 'Promise< {columns: any , data: any } >' + params: + offset: 0 + size: 1000 +- name: getSQLQuery + endpoint: + path: /getSQLQuery + method: GET + data_selector: Promise< string > + params: {} +- name: getSession + endpoint: + path: /getSession + method: GET + data_selector: SessionInterface + params: {} +- name: Save + endpoint: + path: /save + method: POST + data_selector: '' + params: {} +- name: SaveAnswer + endpoint: + path: /saveAnswer + method: POST + data_selector: '' + params: {} +- name: Schedule + endpoint: + path: /schedule + method: POST + data_selector: '' + params: {} +- name: SchedulesList + endpoint: + path: /schedule-list + method: POST + data_selector: '' + params: {} +- name: Search + endpoint: + path: /search + method: POST + data_selector: '' + params: {} +- name: SetActiveTab + endpoint: + path: /set-active-tab + method: POST + data_selector: '' + params: {} +- name: SetHiddenTabs + endpoint: + path: /set-hidden-tabs + method: POST + data_selector: '' + params: {} +- name: SetVisibleTabs + endpoint: + path: /set-visible-tabs + method: POST + data_selector: '' + params: {} +- name: SetVisibleVizs + endpoint: + path: /set-visible-vizs + method: POST + data_selector: '' + params: {} +- name: Share + endpoint: + path: /share + method: POST + data_selector: '' + params: {} +- name: ShowUnderlyingData + endpoint: + path: /show-underlying-data + method: POST + data_selector: '' + params: {} +- name: SpotIQAnalyze + endpoint: + path: /spotiqanalyze + method: POST + data_selector: '' + params: {} +- name: SpotterSearch + endpoint: + path: /spotter-search + method: POST + data_selector: '' + params: {} +- name: SyncToOtherApps + endpoint: + path: /sync-to-other-apps + method: POST + data_selector: '' + params: {} +- name: SyncToSheets + endpoint: + path: /sync-to-sheets + method: POST + data_selector: '' + params: {} +- name: TransformTableVizData + endpoint: + path: /transform-table-viz-data + method: POST + data_selector: '' + params: {} +- name: UpdateCrossFilter + endpoint: + path: /update-cross-filter + method: POST + data_selector: '' + params: {} +- name: UpdateFilters + endpoint: + path: /update-filters + method: POST + data_selector: '' + params: {} +- name: UpdateParameters + endpoint: + path: /update-parameters + method: POST + data_selector: '' + params: {} +- name: UpdatePersonalisedView + endpoint: + path: /update-personalised-view + method: POST + data_selector: '' + params: {} +- name: UpdateRuntimeFilters + endpoint: + path: /update-runtime-filters + method: POST + data_selector: '' + params: {} +- name: UpdateSageQuery + endpoint: + path: /update-sage-query + method: POST + data_selector: '' + params: {} +- name: UpdateTML + endpoint: + path: /update-tml + method: POST + data_selector: '' + params: {} +- name: getExportRequestForCurrentPinboard + endpoint: + path: /getExportRequestForCurrentPinboard + method: GET +- name: fetchData + endpoint: + path: /fetchData + method: GET + data_selector: data + params: + offset: 0 + size: 1000 +- name: fetchCSVBlob + endpoint: + path: /fetchCSVBlob + method: GET + data_selector: blob + params: + userLocale: en-us + includeInfo: false +- name: fetchPNGBlob + endpoint: + path: /fetchPNGBlob + method: GET + data_selector: blob + params: + userLocale: en-us + omitBackground: false + deviceScaleFactor: 2 +- name: sendMessageData + endpoint: + path: /embed/bodyless-conversation.ts + method: POST + data_selector: data + params: {} +- name: CustomActionPayload + endpoint: + path: /docs/Interface_CustomActionPayload + method: GET + data_selector: properties + params: {} +- name: LiveboardEmbed + endpoint: + path: /embed/liveboard + method: GET + data_selector: embed + params: {} +- name: Liveboard + endpoint: + path: /embed/liveboard + method: GET + data_selector: LiveboardEmbed +- name: sendMessageData + endpoint: + path: /sendMessageData + method: POST + data_selector: data + params: {} +- name: sendMessage + endpoint: + path: /sendMessage + method: POST + data_selector: container + params: {} +- name: sendMessageData + endpoint: + path: /sendMessageData + method: POST + data_selector: container + params: {} +- name: LiveboardEmbed + endpoint: + path: /liveboard/embed + method: GET + data_selector: data +- name: sendMessageData + endpoint: + path: /sendMessageData + method: POST + data_selector: data + params: {} +- name: SageEmbed + endpoint: + path: /embed/sage + method: GET + data_selector: SageEmbed +- name: sendMessageData + endpoint: + path: /sendMessageData + method: POST + data_selector: data + params: {} +- name: additionalFlags + endpoint: + path: /docs/Interface_AppViewConfig#_additionalflags + method: GET +- name: collapseSearchBar + endpoint: + path: /docs/Interface_AppViewConfig#_collapsesearchbar + method: GET +- name: collapseSearchBarInitially + endpoint: + path: /docs/Interface_AppViewConfig#_collapsesearchbarinitially + method: GET +- name: contextMenuTrigger + endpoint: + path: /docs/Interface_AppViewConfig#_contextmenutrigger + method: GET +- name: coverAndFilterOptionInPDF + endpoint: + path: /docs/Interface_AppViewConfig#_coverandfilteroptioninpdf + method: GET +- name: customActions + endpoint: + path: /docs/Interface_AppViewConfig#_customactions + method: GET +- name: customizations + endpoint: + path: /docs/Interface_AppViewConfig#_customizations + method: GET +- name: dataPanelCustomGroupsAccordionInitialState + endpoint: + path: /docs/Interface_AppViewConfig#_datapanelcustomgroupsaccordioninitialstate + method: GET +- name: dataPanelV2 + endpoint: + path: /docs/Interface_AppViewConfig#_datapanelv2 + method: GET +- name: disableProfileAndHelp + endpoint: + path: /docs/Interface_AppViewConfig#_disableprofileandhelp + method: GET +- name: disableRedirectionLinksInNewTab + endpoint: + path: /docs/Interface_AppViewConfig#_disableredirectionlinksinnewtab + method: GET +- name: disabledActionReason + endpoint: + path: /docs/Interface_AppViewConfig#_disabledactionreason + method: GET +- name: disabledActions + endpoint: + path: /docs/Interface_AppViewConfig#_disabledactions + method: GET +- name: discoveryExperience + endpoint: + path: /docs/Interface_AppViewConfig#_discoveryexperience + method: GET +- name: worksheet + endpoint: + params: {} +- name: worksheet + endpoint: + path: /worksheetId + method: GET + data_selector: worksheetId +- name: doNotTrackPreRenderSize + endpoint: + path: doNotTrackPreRenderSize + method: boolean + data_selector: default + params: {} +- name: enable2ColumnLayout + endpoint: + path: enable2ColumnLayout + method: boolean + data_selector: default + params: {} +- name: enableAskSage + endpoint: + path: enableAskSage + method: boolean + data_selector: default + params: {} +- name: enableCustomColumnGroups + endpoint: + path: enableCustomColumnGroups + method: boolean + data_selector: default + params: {} +- name: enablePendoHelp + endpoint: + path: enablePendoHelp + method: boolean + data_selector: default + params: {} +- name: enableSearchAssist + endpoint: + path: enableSearchAssist + method: boolean + data_selector: default + params: {} +- name: enableV2Shell_experimental + endpoint: + path: enableV2Shell_experimental + method: boolean + data_selector: default + params: {} +- name: excludeRuntimeFiltersfromURL + endpoint: + path: excludeRuntimeFiltersfromURL + method: boolean + data_selector: default + params: {} +- name: excludeRuntimeParametersfromURL + endpoint: + path: excludeRuntimeParametersfromURL + method: boolean + data_selector: default + params: {} +- name: exposeTranslationIDs + endpoint: + path: exposeTranslationIDs + method: boolean + data_selector: default + params: {} +- name: fullHeight + endpoint: + path: fullHeight + method: boolean + data_selector: default + params: {} +- name: hideApplicationSwitcher + endpoint: + path: hideApplicationSwitcher + method: boolean + data_selector: default + params: {} +- name: hideHamburger + endpoint: + path: hideHamburger + method: boolean + data_selector: default + params: {} +- name: hideHomepageLeftNav + endpoint: + path: hideHomepageLeftNav + method: boolean + data_selector: default + params: {} +- name: hideLiveboardHeader + endpoint: + path: hideLiveboardHeader + method: boolean + data_selector: default + params: {} +- name: hideNotification + endpoint: + path: hideNotification + method: boolean + data_selector: default + params: {} +- name: hideObjectSearch + endpoint: + path: hideObjectSearch + method: boolean + data_selector: default + params: {} +- name: hideOrgSwitcher + endpoint: + path: hideOrgSwitcher + method: boolean + data_selector: default + params: {} +- name: insertAsSibling + endpoint: + path: insertAsSibling + method: boolean + data_selector: default + params: {} +- name: isLiveboardCompactHeaderEnabled + endpoint: + path: isLiveboardCompactHeaderEnabled + method: boolean + data_selector: default + params: {} +- name: isLiveboardHeaderSticky + endpoint: + path: isLiveboardHeaderSticky + method: boolean + data_selector: default + params: {} +- name: worksheet + endpoint: + params: {} +- name: activeTabId + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: additionalFlags + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: collapseSearchBar + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: contextMenuTrigger + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: coverAndFilterOptionInPDF + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: customActions + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: customizations + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: dataPanelV2 + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: defaultHeight + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: disableRedirectionLinksInNewTab + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: disabledActionReason + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: disabledActions + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: doNotTrackPreRenderSize + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: enable2ColumnLayout + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: enableAskSage + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: enableCustomColumnGroups + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: worksheet + endpoint: + path: /worksheetId + method: GET + data_selector: worksheetId +- name: showLiveboardTitle + endpoint: + path: /showLiveboardTitle + method: GET + data_selector: boolean + params: {} +- name: showLiveboardVerifiedBadge + endpoint: + path: /showLiveboardVerifiedBadge + method: GET + data_selector: boolean + params: {} +- name: showPreviewLoader + endpoint: + path: /showPreviewLoader + method: GET + data_selector: boolean + params: {} +- name: showSpotterLimitations + endpoint: + path: /showSpotterLimitations + method: GET + data_selector: boolean + params: {} +- name: visibleActions + endpoint: + path: /visibleActions + method: GET + data_selector: Action[] + params: {} +- name: visibleTabs + endpoint: + path: /visibleTabs + method: GET + data_selector: string[] + params: {} +- name: visibleVizs + endpoint: + path: /visibleVizs + method: GET + data_selector: string[] + params: {} +- name: vizId + endpoint: + path: /vizId + method: GET + data_selector: string + params: {} +- name: showLiveboardTitle + endpoint: + path: /showLiveboardTitle + method: GET + data_selector: boolean + params: {} +- name: showLiveboardVerifiedBadge + endpoint: + path: /showLiveboardVerifiedBadge + method: GET + data_selector: boolean + params: {} +- name: showPreviewLoader + endpoint: + path: /showPreviewLoader + method: GET + data_selector: boolean + params: {} +- name: showSpotterLimitations + endpoint: + path: /showSpotterLimitations + method: GET + data_selector: boolean + params: {} +- name: visibleActions + endpoint: + path: /visibleActions + method: GET + data_selector: Action[] + params: {} +- name: visibleTabs + endpoint: + path: /visibleTabs + method: GET + data_selector: string[] + params: {} +- name: visibleVizs + endpoint: + path: /visibleVizs + method: GET + data_selector: string[] + params: {} +- name: vizId + endpoint: + path: /vizId + method: GET + data_selector: string + params: {} +- name: runtimeFilters + endpoint: + path: /runtimeFilters + method: POST +- name: runtimeParameters + endpoint: + path: /runtimeParameters + method: POST +- name: searchOptions + endpoint: + path: /searchOptions + method: POST +- name: showAlerts + endpoint: + path: /showAlerts + method: POST +- name: showObjectResults + endpoint: + path: /showObjectResults + method: POST +- name: showObjectSuggestions + endpoint: + path: /showObjectSuggestions + method: POST +- name: visibleActions + endpoint: + path: /visibleActions + method: POST +- name: additionalFlags + endpoint: + path: /docs/Interface_SearchBarViewConfig#_additionalflags + method: GET +- name: collapseSearchBar + endpoint: + path: /docs/Interface_SearchBarViewConfig#_collapsesearchbar + method: GET +- name: contextMenuTrigger + endpoint: + path: /docs/Interface_SearchBarViewConfig#_contextmenutrigger + method: GET +- name: customActions + endpoint: + path: /docs/Interface_SearchBarViewConfig#_customactions + method: GET +- name: customizations + endpoint: + path: /docs/Interface_SearchBarViewConfig#_customizations + method: GET +- name: dataPanelV2 + endpoint: + path: /docs/Interface_SearchBarViewConfig#_datapanelv2 + method: GET +- name: dataSource + endpoint: + path: /docs/Interface_SearchBarViewConfig#_datasource + method: GET +- name: disableRedirectionLinksInNewTab + endpoint: + path: /docs/Interface_SearchBarViewConfig#_disableredirectionlinksinnewtab + method: GET +- name: disabledActionReason + endpoint: + path: /docs/Interface_SearchBarViewConfig#_disabledactionreason + method: GET +- name: disabledActions + endpoint: + path: /docs/Interface_SearchBarViewConfig#_disabledactions + method: GET +- name: doNotTrackPreRenderSize + endpoint: + path: /docs/Interface_SearchBarViewConfig#_donottrackprerendersize + method: GET +- name: enableCustomColumnGroups + endpoint: + path: /docs/Interface_SearchBarViewConfig#_enablecustomcolumngroups + method: GET +- name: enableV2Shell_experimental + endpoint: + path: /docs/Interface_SearchBarViewConfig#_enablev2shell_experimental + method: GET +- name: excludeRuntimeFiltersfromURL + endpoint: + path: /docs/Interface_SearchBarViewConfig#_excluderuntimefiltersfromurl + method: GET +- name: excludeRuntimeParametersfromURL + endpoint: + path: /docs/Interface_SearchBarViewConfig#_excluderuntimeparametersfromurl + method: GET +- name: excludeSearchTokenStringFromURL + endpoint: + path: /docs/Interface_SearchBarViewConfig#_excludesearchtokenstringfromurl + method: GET +- name: exposeTranslationIDs + endpoint: + path: /docs/Interface_SearchBarViewConfig#_exposetranslationids + method: GET +- name: frameParams + endpoint: + path: /docs/Interface_SearchBarViewConfig#_frameparams + method: GET +- name: hiddenActions + endpoint: + path: /docs/Interface_SearchBarViewConfig#_hiddenactions + method: GET +- name: insertAsSibling + endpoint: + path: /docs/Interface_SearchBarViewConfig#_insertassibling + method: GET +- name: linkOverride + endpoint: + path: /docs/Interface_SearchBarViewConfig#_linkoverride + method: GET +- name: locale + endpoint: + path: /docs/Interface_SearchBarViewConfig#_locale + method: GET +- name: overrideOrgId + endpoint: + path: /docs/Interface_SearchBarViewConfig#_overrideorgid + method: GET +- name: preRenderId + endpoint: + path: /docs/Interface_SearchBarViewConfig#_prerenderid + method: GET +- name: primaryAction + endpoint: + path: /docs/Interface_SearchBarViewConfig#_primaryaction + method: GET +- name: runtimeFilters + endpoint: + path: /runtimeFilters + method: GET +- name: runtimeParameters + endpoint: + path: /runtimeParameters + method: GET +- name: searchOptions + endpoint: + path: /searchOptions + method: GET +- name: showAlerts + endpoint: + path: /showAlerts + method: GET +- name: useLastSelectedSources + endpoint: + path: /useLastSelectedSources + method: GET +- name: visibleActions + endpoint: + path: /visibleActions + method: GET +- name: SearchEmbed + endpoint: + path: /docs/Interface_SearchViewConfig#_searchembed + method: GET +- name: SpotterAgentEmbed + endpoint: + path: /docs/Interface_SpotterAgentEmbedViewConfig + method: GET +- name: runtimeFilters + endpoint: + path: /runtimeFilters + method: GET +- name: runtimeParameters + endpoint: + path: /runtimeParameters + method: GET +- name: searchOptions + endpoint: + path: /searchOptions + method: GET +- name: showAlerts + endpoint: + path: /showAlerts + method: GET +- name: useLastSelectedSources + endpoint: + path: /useLastSelectedSources + method: GET +- name: visibleActions + endpoint: + path: /visibleActions + method: GET +- name: worksheetId + endpoint: + path: /worksheetId + method: GET + data_selector: records +- name: exportTML + endpoint: + path: /exportTML + method: POST + data_selector: result + params: {} +- name: hideDataSources + endpoint: + path: /_hidedatasources + method: GET +- name: hideResults + endpoint: + path: /_hideresults + method: GET +- name: hideSearchBar + endpoint: + path: /_hidesearchbar + method: GET +- name: insertAsSibling + endpoint: + path: /_insertassibling + method: GET +- name: isOnBeforeGetVizDataInterceptEnabled + endpoint: + path: /_isonbeforegetvizdatainterceptenabled + method: GET +- name: linkOverride + endpoint: + path: /_linkoverride + method: GET +- name: locale + endpoint: + path: /_locale + method: GET +- name: overrideOrgId + endpoint: + path: /_overrideorgid + method: GET +- name: preRenderId + endpoint: + path: /_prerenderid + method: GET +- name: runtimeFilters + endpoint: + path: /_runtimefilters + method: GET +- name: runtimeParameters + endpoint: + path: /_runtimeparameters + method: GET +- name: searchOptions + endpoint: + path: /_searchoptions + method: GET +- name: showAlerts + endpoint: + path: /_showalerts + method: GET +- name: useLastSelectedSources + endpoint: + path: /_uselastselectedsources + method: GET +- name: visibleActions + endpoint: + path: /_visibleactions + method: GET +- name: worksheet + endpoint: + path: /worksheet + method: GET + data_selector: worksheetId +- name: worksheetId + endpoint: + path: /worksheetId + method: GET + data_selector: string +- name: exportTML + endpoint: + path: /exportTML + method: POST + data_selector: result +- name: --ts-var-answer-chart-hover-background + endpoint: + path: /docs/Interface_CustomCssVariables#_ts_var_answer_chart_hover_background + method: GET + data_selector: string + params: {} +- name: --ts-var-answer-chart-select-background + endpoint: + path: /docs/Interface_CustomCssVariables#_ts_var_answer_chart_select_background + method: GET + data_selector: string + params: {} +- name: ts_var_viz_title_text_transform + endpoint: + path: --ts-var-viz-title-text-transform + method: GET + data_selector: string +- name: customizations + endpoint: + path: /customizations + method: POST + data_selector: customizations + params: {} +- name: custom_css_variables + endpoint: + path: /custom_css_variables + method: GET + data_selector: variables + params: {} +- name: answer_chart_hover_background + endpoint: + path: /docs/Interface_CustomCssVariables#_ts_var_answer_chart_hover_background + method: GET + data_selector: string +- name: answer_chart_select_background + endpoint: + path: /docs/Interface_CustomCssVariables#_ts_var_answer_chart_select_background + method: GET + data_selector: string +- name: liveboard_data + endpoint: + path: /tspublic/v1/pinboarddata + method: POST + data_selector: data + params: {} +- name: user + endpoint: + path: /services/api/v2/users + method: GET + data_selector: data + params: {} +- name: group + endpoint: + path: /services/api/v2/groups + method: GET + data_selector: data + params: {} +- name: user + endpoint: + path: /docs/rest-api-reference#_user_management + method: POST + data_selector: users + params: {} +- name: user_group + endpoint: + path: /docs/rest-apiv2-reference#_users + method: POST + data_selector: groups + params: {} +- name: create_user + endpoint: + path: /api/rest/2.0/users/create + method: POST +- name: update_user + endpoint: + path: /api/rest/2.0/users/{user_identifier}/update + method: POST +- name: create_group + endpoint: + path: /api/rest/2.0/groups + method: POST +- name: update_group + endpoint: + path: /api/rest/2.0/groups/{groupid} + method: PUT +- name: search_user_groups + endpoint: + path: /api/rest/2.0/groups/search + method: POST +- name: add_memberships + endpoint: + path: /tspublic/v1/group/addmemberships + method: POST +- name: remove_memberships + endpoint: + path: /tspublic/v1/group/removememberships + method: POST +- name: share_object + endpoint: + path: /api/rest/2.0/security/metadata/share + method: POST +- name: FullApp + endpoint: + path: /fullapp + method: GET +- name: LiveboardEmbed + endpoint: + path: /liveboardembed + method: GET +- name: SearchEmbed + endpoint: + path: /searchembed + method: GET +- name: VizEmbed + endpoint: + path: /vizembed + method: GET +- name: Liveboard + endpoint: + path: /?embedApp=true#/embed/viz/{Liveboard_id} + method: GET +- name: Visualization + endpoint: + path: /?embedApp=true#/embed/viz/{Liveboard_id}/{visualization_id} + method: GET +- name: Search + endpoint: + path: /?embedApp=true&dataSources="cd252e5c-b552-49a8-821d-3eadaa049cca"#/answer + method: GET +- name: create_role + endpoint: + path: /tspublic/v1/role + method: POST + data_selector: role + params: {} +- name: edit_role + endpoint: + path: /tspublic/v1/role/{role_identifier} + method: PUT + data_selector: role + params: {} +- name: search_role + endpoint: + path: /tspublic/v1/role/search + method: POST + data_selector: roles + params: {} +- name: delete_role + endpoint: + path: /tspublic/v1/role/{role_identifier} + method: DELETE + data_selector: response + params: {} +- name: add_role_to_group + endpoint: + path: /tspublic/v1/group/addrole + method: POST + data_selector: response + params: {} +- name: remove_role_from_group + endpoint: + path: /tspublic/v1/group/removerole + method: POST + data_selector: response + params: {} +- name: update_group + endpoint: + path: /tspublic/v1/group/{groupid} + method: PUT + data_selector: response + params: {} +- name: create_conversation_session + endpoint: + path: /api/rest/2.0/ai/agent/conversation/create + method: POST +- name: get_relevant_questions + endpoint: + path: /api/rest/2.0/ai/relevant-questions/ + method: POST +- name: send_question_to_conversation_session + endpoint: + path: /api/rest/2.0/ai/agent/converse/sse + method: POST +- name: liveboard_data + endpoint: + path: tspublic/v1/pinboarddata + method: POST + data_selector: data + params: + id: c10dab93-75fd-4231-8e95-ec40a4999996 + vizid: '[''59f0af45-b3a5-4bad-a6f0-4ee7003ad171'']' + batchsize: '-1' + pagenumber: '-1' + offset: '-1' + formattype: COMPACT +- name: send_a_question + endpoint: + path: /api/rest/2.0/ai/agent/converse/sse + method: POST + data_selector: null + params: {} +- name: conversation_session + endpoint: + path: /ai/agent/conversation/create + method: POST +- name: answer_report + endpoint: + path: /report/answer + method: GET +- name: generate_answer + endpoint: + path: /api/rest/2.0/ai/answer/create + method: POST + data_selector: '' + params: {} +- name: data_source_suggestions + endpoint: + path: /api/rest/2.0/ai/data-source-suggestions + method: POST + data_selector: '' + params: {} +- name: User + endpoint: + path: /docs/rest-api-reference#_user_management + method: POST + data_selector: users + params: {} +- name: User Group + endpoint: + path: /docs/rest-apiv2-reference#_users + method: POST + data_selector: groups + params: {} +- name: security_audit_events + endpoint: + path: /audit-logs + method: GET + data_selector: events + params: {} +- name: create_user + endpoint: + path: /api/rest/2.0/users/create + method: POST +- name: update_user + endpoint: + path: /api/rest/2.0/users/{user_identifier}/update + method: POST +- name: search_user_groups + endpoint: + path: /api/rest/2.0/groups/search + method: POST +- name: share_object + endpoint: + path: /api/rest/2.0/security/metadata/share + method: POST +- name: logs_fetch + endpoint: + path: /api/rest/2.0/logs/fetch + method: POST + data_selector: logs + params: + get_all_logs: 'true' +- name: security_events + endpoint: + path: /tspublic/v1/logs/topics/security + method: GET + data_selector: events + params: {} +- name: role + endpoint: + path: /tspublic/v1/role + method: POST + data_selector: role + params: {} +- name: group + endpoint: + path: /tspublic/v1/group + method: POST + data_selector: group + params: {} +- name: data_connections + endpoint: + path: /data/connections + method: GET + data_selector: data + params: {} +- name: data_objects + endpoint: + path: /data/objects + method: GET + data_selector: data + params: {} +- name: rls + endpoint: + path: /rls + method: GET + data_selector: data + params: {} +- name: answers + endpoint: + path: /answers + method: GET + data_selector: data + params: {} +- name: liveboards + endpoint: + path: /liveboards + method: GET + data_selector: data + params: {} +- name: create_conversation_session + endpoint: + path: /api/rest/2.0/ai/agent/conversation/create + method: POST +- name: get_relevant_questions + endpoint: + path: /api/rest/2.0/ai/relevant-questions/ + method: POST +- name: send_question_to_conversation_session + endpoint: + path: /api/rest/2.0/ai/agent/converse/sse + method: POST +- name: import_tml + endpoint: + path: /api/rest/2.0/metadata/tml/import + method: POST +- name: async_import_tml + endpoint: + path: /api/rest/2.0/metadata/tml/async/import + method: POST +- name: import_tml + endpoint: + path: /metadata/tml/async/import + method: POST + data_selector: null + params: {} +- name: send_a_question + endpoint: + path: /api/rest/2.0/ai/agent/converse/sse + method: POST + data_selector: data + params: {} +- name: import_tml + endpoint: + path: /metadata/tml/async/import + method: POST + data_selector: metadata_tmls + params: {} +- name: message + endpoint: + path: /api/rest/2.0/message + method: GET +- name: answer + endpoint: + path: /api/rest/2.0/report/answer + method: GET +- name: conversation + endpoint: + path: /api/rest/2.0/ai/agent/conversation/create + method: POST +- name: import_task + endpoint: + path: /import/async + method: POST + data_selector: task_id + params: {} +- name: generate_answer + endpoint: + path: /api/rest/2.0/ai/answer/create + method: POST + data_selector: session_identifier + params: {} +- name: data_source_suggestions + endpoint: + path: /api/rest/2.0/ai/data-source-suggestions + method: POST + data_selector: data_sources + params: {} +- name: security_audit_logs + endpoint: + path: /audit-logs + method: GET + data_selector: events +- name: fetch_status + endpoint: + path: /api/rest/2.0/metadata/tml/async/status + method: POST + data_selector: status_list + params: + record_offset: 0 + record_size: 5 + include_import_response: true +- name: export_tml + endpoint: + path: /api/rest/2.0/metadata/tml/export + method: POST +- name: export_tml_batch + endpoint: + path: /api/rest/2.0/metadata/tml/export/batch + method: POST +- name: logs + endpoint: + path: /api/rest/2.0/logs/fetch + method: POST + data_selector: logs + params: + get_all_logs: 'true' +- name: security_events + endpoint: + path: /tspublic/v1/logs/topics/security + method: GET + data_selector: events + params: {} +- name: data_connections + endpoint: + path: /data/connections + method: GET + data_selector: logs +- name: data_objects + endpoint: + path: /data/objects + method: GET + data_selector: logs +- name: rls + endpoint: + path: /rls/rules + method: GET + data_selector: logs +- name: answers + endpoint: + path: /answers + method: GET + data_selector: logs +- name: liveboards + endpoint: + path: /liveboards + method: GET + data_selector: logs +- name: create_connection_configuration + endpoint: + path: /create + method: POST +- name: search_connection_configuration + endpoint: + path: /search + method: POST +- name: update_connection_configuration + endpoint: + path: /{configuration_identifier}/update + method: POST +- name: delete_connection_configuration + endpoint: + path: /delete + method: POST +- name: import_tml + endpoint: + path: /api/rest/2.0/metadata/tml/import + method: POST +- name: async_import_tml + endpoint: + path: /api/rest/2.0/metadata/tml/async/import + method: POST +- name: async_import_status + endpoint: + path: /api/rest/2.0/metadata/tml/async/status + method: POST +- name: tml_import + endpoint: + path: /async/import + method: POST + data_selector: '' + params: + metadata_tmls: [] + create_new: false + all_orgs_context: false + import_policy: PARTIAL_OBJECT + skip_diff_check: false + enable_large_metadata_validation: false +- name: auth_token + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST +- name: session_login + endpoint: + path: /api/rest/2.0/auth/session/login + method: POST +- name: metadata_search + endpoint: + path: /api/rest/2.0/metadata/search + method: POST +- name: import_tml + endpoint: + path: /metadata/tml/async/import + method: POST + data_selector: metadata_tmls +- name: fetch_status_of_import_task + endpoint: + path: /api/rest/2.0/metadata/tml/async/status + method: POST + data_selector: status_list + params: + record_offset: 0 + record_size: 5 + include_import_response: true +- name: export_tml + endpoint: + path: /api/rest/2.0/metadata/tml/export + method: POST + data_selector: response + params: {} +- name: export_tml_batch + endpoint: + path: /api/rest/2.0/metadata/tml/export/batch + method: POST + data_selector: response + params: {} +- name: auth_token_custom + endpoint: + path: /api/rest/2.0/auth/token/custom + method: POST +- name: auth_token_full + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST +- name: auth_token_object + endpoint: + path: /api/rest/2.0/auth/token/object + method: POST +- name: auth_session_token + endpoint: + path: /api/rest/2.0/auth/session/token + method: GET +- name: auth_session_user + endpoint: + path: /api/rest/2.0/auth/session/user + method: GET +- name: auth_session_logout + endpoint: + path: /api/rest/2.0/auth/session/logout + method: POST +- name: auth_token_revoke + endpoint: + path: /api/rest/2.0/auth/token/revoke + method: POST +- name: create_connection_configuration + endpoint: + path: /api/rest/2.0/connection-configurations/create + method: POST +- name: search_connection_configuration + endpoint: + path: /api/rest/2.0/connection-configurations/search + method: POST +- name: update_connection_configuration + endpoint: + path: /api/rest/2.0/connection-configurations/{configuration_identifier}/update + method: POST +- name: delete_connection_configuration + endpoint: + path: /api/rest/2.0/connection-configurations/delete + method: POST +- name: metadata_search + endpoint: + path: /metadata/search + method: POST + data_selector: response + params: + record_offset: 0 + record_size: 100000 +- name: search_data + endpoint: + path: /searchdata + method: POST + data_selector: response +- name: auth_token + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST + data_selector: token + params: {} +- name: metadata_search + endpoint: + path: /api/rest/2.0/metadata/search + method: POST + data_selector: metadata + params: {} +- name: search_metadata + endpoint: + path: /metadata/search + method: GET + data_selector: records + params: {} +- name: search_users + endpoint: + path: /users/search + method: GET + data_selector: records + params: {} +- name: search_groups + endpoint: + path: /groups/search + method: GET + data_selector: records + params: {} +- name: search_tags + endpoint: + path: /tags/search + method: GET + data_selector: records + params: {} +- name: tags + endpoint: + path: /tags/search + method: POST + data_selector: tags + params: {} +- name: orgs + endpoint: + path: /orgs/search + method: POST + data_selector: orgs + params: {} +- name: schedules + endpoint: + path: /schedules/search + method: POST + data_selector: schedules + params: {} +- name: roles + endpoint: + path: /roles/search + method: POST + data_selector: roles + params: {} +- name: session_login + endpoint: + path: /api/rest/2.0/auth/session/login + method: POST + data_selector: null + params: {} +- name: token_full + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST + data_selector: null + params: {} +- name: token_object + endpoint: + path: /api/rest/2.0/auth/token/object + method: POST + data_selector: null + params: {} +- name: search_users + endpoint: + path: /users/search + method: GET + data_selector: users +- name: auth_token_full + endpoint: + path: /api/rest/2.0/auth/token/full + method: POST + data_selector: token + params: {} +- name: auth_token_object + endpoint: + path: /api/rest/2.0/auth/token/object + method: POST + data_selector: token + params: {} +- name: auth_token_custom + endpoint: + path: /api/rest/2.0/auth/token/custom + method: POST + data_selector: token + params: {} +- name: session_token + endpoint: + path: /api/rest/2.0/auth/session/token + method: GET + data_selector: token + params: {} +- name: session_user + endpoint: + path: /api/rest/2.0/auth/session/user + method: GET + data_selector: user + params: {} +- name: session_logout + endpoint: + path: /api/rest/2.0/auth/session/logout + method: POST + data_selector: null + params: {} +- name: search_users + endpoint: + path: /users/search + method: POST + data_selector: records + params: + record_offset: 0 + record_size: 100000 +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET +- name: search_groups + endpoint: + path: /groups/search + method: GET +- name: search_groups + endpoint: + path: /groups/search + method: POST + data_selector: '' + params: {} +- name: search_metadata + endpoint: + path: /metadata/search + method: GET + data_selector: objects +- name: metadata_search + endpoint: + path: /metadata/search + method: POST + data_selector: response + params: + record_offset: 0 + record_size: 100000 +- name: search_data + endpoint: + path: /searchdata + method: POST + data_selector: response +- name: metadata_search + endpoint: + path: /metadata/search + method: GET + data_selector: metadata + params: {} +- name: Liveboard + endpoint: + path: /liveboard + method: GET + data_selector: metadata_detail +- name: search_metadata + endpoint: + path: /metadata/search + method: GET + data_selector: records +- name: search_users + endpoint: + path: /users/search + method: GET + data_selector: records +- name: search_groups + endpoint: + path: /groups/search + method: GET + data_selector: records +- name: search_tags + endpoint: + path: /tags/search + method: GET + data_selector: records +- name: tags + endpoint: + path: /tags/search + method: POST + data_selector: tags + params: {} +- name: orgs + endpoint: + path: /orgs/search + method: POST + data_selector: orgs + params: {} +- name: schedules + endpoint: + path: /schedules/search + method: POST + data_selector: schedules + params: {} +- name: roles + endpoint: + path: /roles/search + method: POST + data_selector: roles + params: {} +- name: Total Order Total Price + endpoint: + path: /services/data/vXX.X/sobjects/TotalOrderTotalPrice + method: GET + data_selector: records + params: {} +- name: Untitled + endpoint: + path: /services/data/vXX.X/sobjects/Untitled + method: GET + data_selector: records + params: {} +- name: search_users + endpoint: + path: /users/search + method: GET + data_selector: users + params: + record_offset: 0 + record_size: 10 +- name: users + endpoint: + path: /users/search + method: POST + data_selector: '' + params: {} +- name: Chart Viz order total price quantity + endpoint: + path: /path/to/endpoint + method: GET +- name: Table Viz order total price quantity + endpoint: + path: /path/to/endpoint + method: GET +- name: groups_search + endpoint: + path: /groups/search + method: GET +- name: search_groups + endpoint: + path: /groups/search + method: POST + data_selector: records + params: + record_offset: 0 + record_size: 100000 +- name: Total Order Total Price + endpoint: + path: /total/order/total/price + method: GET + data_selector: records +- name: Total Quantity + endpoint: + path: /total/quantity + method: GET + data_selector: records +- name: metadata_search + endpoint: + path: /metadata/search + method: GET + data_selector: objects +- name: search + endpoint: + path: /metadata/search + method: GET + data_selector: metadata +- name: metadata + endpoint: + path: /api/v1/liveboard + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Total Order Total Price + endpoint: + path: /services/data/vXX.X/sobjects/TotalOrderTotalPrice + method: GET + data_selector: records +- name: Untitled + endpoint: + path: /services/data/vXX.X/sobjects/Untitled + method: GET + data_selector: records +- name: metadata + endpoint: + path: /metadata/search + method: POST + data_selector: metadata + params: + include_visualization_headers: true + record_offset: 0 + record_size: 10 +- name: Table 1 + endpoint: + path: /services/data/vXX.X/sobjects/Table + method: GET + data_selector: records +- name: Headline Ship Mode + endpoint: + path: /services/data/vXX.X/sobjects/Headline + method: GET + data_selector: records +- name: Filter Viz + endpoint: + path: /services/data/vXX.X/sobjects/Filter + method: GET + data_selector: records +- name: Chart Viz + endpoint: + path: /services/data/vXX.X/sobjects/Chart + method: GET + data_selector: records +- name: search_data + endpoint: + path: /api/rest/2.0/searchdata + method: POST +- name: liveboard_data + endpoint: + path: /api/rest/2.0/metadata/liveboard/data + method: POST +- name: answer_data + endpoint: + path: /api/rest/2.0/metadata/answer/data + method: POST +- name: order_total_price_quantity + endpoint: + path: /path/to/endpoint + method: GET + data_selector: data_records +- name: Total Order Total Price + endpoint: + path: /path/to/TotalOrderTotalPrice + method: GET + data_selector: records +- name: Total Quantity + endpoint: + path: /path/to/TotalQuantity + method: GET + data_selector: records +- name: search_data + endpoint: + path: /api/rest/2.0/searchdata + method: POST + data_selector: data + params: {} +- name: liveboard_data + endpoint: + path: /api/rest/2.0/metadata/liveboard/data + method: POST + data_selector: data + params: {} +- name: answer_data + endpoint: + path: /api/rest/2.0/metadata/answer/data + method: POST + data_selector: data + params: {} +- name: liveboard_report + endpoint: + path: /api/rest/2.0/report/liveboard + method: POST + data_selector: data + params: {} +- name: answer_report + endpoint: + path: /api/rest/2.0/report/answer + method: POST + data_selector: data + params: {} +- name: Total Revenue by Manufacturer + endpoint: + path: '' + method: QUESTION + data_selector: '' + params: {} +- name: answer_data + endpoint: + path: /api/rest/2.0/report/answer + method: POST + data_selector: file + params: {} +- name: metadata_header + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: metadata + endpoint: + path: /metadata/search + method: POST + data_selector: metadata + params: + include_visualization_headers: true + record_offset: 0 + record_size: 10 +- name: search_data + endpoint: + path: /api/rest/2.0/searchdata + method: POST +- name: liveboard_data + endpoint: + path: /api/rest/2.0/metadata/liveboard/data + method: POST +- name: answer_data + endpoint: + path: /api/rest/2.0/metadata/answer/data + method: POST +- name: searchUsers + endpoint: + path: /api/rest/2.0/users/search + method: POST +- name: createUser + endpoint: + path: /api/rest/2.0/users/create + method: POST +- name: user + endpoint: + path: /api/v2/user + method: POST + data_selector: user + params: {} +- name: search_data + endpoint: + path: /api/rest/2.0/searchdata + method: POST + data_selector: data + params: {} +- name: liveboard_data + endpoint: + path: /api/rest/2.0/metadata/liveboard/data + method: POST + data_selector: data + params: {} +- name: answer_data + endpoint: + path: /api/rest/2.0/metadata/answer/data + method: POST + data_selector: data + params: {} +- name: liveboard_report + endpoint: + path: /api/rest/2.0/report/liveboard + method: POST + data_selector: data + params: {} +- name: answer_report + endpoint: + path: /api/rest/2.0/report/answer + method: POST + data_selector: data + params: {} +- name: Answer + endpoint: + path: /api/rest/2.0/report/answer + method: POST + data_selector: data + params: {} +- name: searchUsers + endpoint: + path: /api/rest/2.0/users/search + method: POST + data_selector: data +- name: createUser + endpoint: + path: /api/rest/2.0/users/create + method: POST + data_selector: data +- name: user + endpoint: + path: /users + method: POST + data_selector: createdUser +- name: activateUser + endpoint: + path: /users/activate + method: POST +- name: assignChangeAuthor + endpoint: + path: /security/metadata/assign + method: POST +- name: assignTag + endpoint: + path: /tags/assign + method: POST +- name: changeUserPassword + endpoint: + path: /users/change-password + method: POST +- name: commitBranch + endpoint: + path: /vcs/git/branches/commit + method: POST +- name: convertWorksheetToModel + endpoint: + path: /metadata/worksheets/convert + method: POST +- name: copyObject + endpoint: + path: /metadata/copyobject + method: POST +- name: createConfig + endpoint: + path: /vcs/git/config/create + method: POST +- name: createConnection + endpoint: + path: /connection/create + method: POST +- name: createConversation + endpoint: + path: /ai/conversation/create + method: POST +- name: createCustomAction + endpoint: + path: /customization/custom-actions + method: POST +- name: createOrg + endpoint: + path: /orgs/create + method: POST +- name: createRole + endpoint: + path: /roles/create + method: POST +- name: createSchedule + endpoint: + path: /schedules/create + method: POST +- name: createTag + endpoint: + path: /tags/create + method: POST +- name: createUser + endpoint: + path: /users/create + method: POST +- name: createUserGroup + endpoint: + path: /groups/create + method: POST +- name: dbtConnection + endpoint: + path: /dbt/dbt-connection + method: POST +- name: dbtGenerateSyncTml + endpoint: + path: /dbt/generate-sync-tml + method: POST +- name: dbtGenerateTml + endpoint: + path: /dbt/generate-tml + method: POST +- name: dbtSearch + endpoint: + path: /dbt/search + method: POST +- name: deactivateUser + endpoint: + path: /users/deactivate + method: POST +- name: deleteConfig + endpoint: + path: /vcs/git/config/delete + method: POST +- name: deleteConnection + endpoint: + path: /connection/delete + method: POST +- name: deleteUser + endpoint: + path: /users/{user_identifier}/delete + method: POST +- name: fetchLogs + endpoint: + path: /logs/fetch + method: POST +- name: getCurrentUserInfo + endpoint: + path: /auth/session/user + method: GET +- name: getSystemConfig + endpoint: + path: /system/config + method: GET +- name: login + endpoint: + path: /auth/session/login + method: POST +- name: logout + endpoint: + path: /auth/session/logout + method: POST +- name: searchUsers + endpoint: + path: /users/search + method: POST +- name: updateCustomAction + endpoint: + path: /api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update + method: POST +- name: updateDbtConnection + endpoint: + path: /api/rest/2.0/dbt/update-dbt-connection + method: POST +- name: updateMetadataHeader + endpoint: + path: /api/rest/2.0/metadata/headers/update + method: POST +- name: updateMetadataObjId + endpoint: + path: /api/rest/2.0/metadata/update-obj-id + method: POST +- name: updateOrg + endpoint: + path: /api/rest/2.0/orgs/{org_identifier}/update + method: POST +- name: updateRole + endpoint: + path: /api/rest/2.0/roles/{role_identifier}/update + method: POST +- name: updateSchedule + endpoint: + path: /api/rest/2.0/schedules/{schedule_identifier}/update + method: POST +- name: updateSystemConfig + endpoint: + path: /api/rest/2.0/system/config-update + method: POST +- name: updateTag + endpoint: + path: /api/rest/2.0/tags/{tag_identifier}/update + method: POST +- name: updateUser + endpoint: + path: /api/rest/2.0/users/{user_identifier}/update + method: POST +- name: updateUserGroup + endpoint: + path: /api/rest/2.0/groups/{group_identifier}/update + method: POST +- name: validateMerge + endpoint: + path: /api/rest/2.0/vcs/git/branches/validate + method: POST +- name: validateToken + endpoint: + path: /api/rest/2.0/auth/token/validate + method: POST +- name: activateUser + endpoint: + path: /users/activate + method: POST +- name: assignChangeAuthor + endpoint: + path: /security/metadata/assign + method: POST +- name: assignTag + endpoint: + path: /tags/assign + method: POST +- name: changeUserPassword + endpoint: + path: /users/change-password + method: POST +- name: commitBranch + endpoint: + path: /vcs/git/branches/commit + method: POST +- name: convertWorksheetToModel + endpoint: + path: /metadata/worksheets/convert + method: POST +- name: copyObject + endpoint: + path: /metadata/copyobject + method: POST +- name: createConfig + endpoint: + path: /vcs/git/config/create + method: POST +- name: createConnection + endpoint: + path: /connection/create + method: POST +- name: createConversation + endpoint: + path: /ai/conversation/create + method: POST +- name: createCustomAction + endpoint: + path: /customization/custom-actions + method: POST +- name: createOrg + endpoint: + path: /orgs/create + method: POST +- name: createRole + endpoint: + path: /roles/create + method: POST +- name: createSchedule + endpoint: + path: /schedules/create + method: POST +- name: createTag + endpoint: + path: /tags/create + method: POST +- name: createUser + endpoint: + path: /users/create + method: POST +- name: createUserGroup + endpoint: + path: /groups/create + method: POST +- name: dbtConnection + endpoint: + path: /dbt/dbt-connection + method: POST +- name: dbtGenerateSyncTml + endpoint: + path: /dbt/generate-sync-tml + method: POST +- name: dbtGenerateTml + endpoint: + path: /dbt/generate-tml + method: POST +- name: dbtSearch + endpoint: + path: /dbt/search + method: POST +- name: deactivateUser + endpoint: + path: /users/deactivate + method: POST +- name: deleteConfig + endpoint: + path: /vcs/git/config/delete + method: POST +- name: deleteConnection + endpoint: + path: /connection/delete + method: POST +- name: deleteConnectionV2 + endpoint: + path: /connections/{connection_identifier}/delete + method: POST +- name: deleteCustomAction + endpoint: + path: /customization/custom-actions/{custom_action_identifier}/delete + method: POST +- name: deleteDbtConnection + endpoint: + path: /dbt/{dbt_connection_identifier}/delete + method: POST +- name: deleteMetadata + endpoint: + path: /metadata/delete + method: POST +- name: deleteOrg + endpoint: + path: /orgs/{org_identifier}/delete + method: POST +- name: deleteRole + endpoint: + path: /roles/{role_identifier}/delete + method: POST +- name: deleteSchedule + endpoint: + path: /schedules/{schedule_identifier}/delete + method: POST +- name: deleteTag + endpoint: + path: /tags/{tag_identifier}/delete + method: POST +- name: deleteUser + endpoint: + path: /users/{user_identifier}/delete + method: POST +- name: deleteUserGroup + endpoint: + path: /groups/{group_identifier}/delete + method: POST +- name: deployCommit + endpoint: + path: /vcs/git/commits/deploy + method: POST +- name: downloadConnectionMetadataChanges + endpoint: + path: /connections/download-connection-metadata-changes/{connection_identifier} + method: POST +- name: exportAnswerReport + endpoint: + path: /report/answer + method: POST +- name: exportLiveboardReport + endpoint: + path: /report/liveboard + method: POST +- name: exportMetadataTML + endpoint: + path: /metadata/tml/export + method: POST +- name: exportMetadataTMLBatched + endpoint: + path: /metadata/tml/export/batch + method: POST +- name: fetchAnswerData + endpoint: + path: /metadata/answer/data + method: POST +- name: fetchAnswerSqlQuery + endpoint: + path: /metadata/answer/sql + method: POST +- name: fetchAsyncImportTaskStatus + endpoint: + path: /metadata/tml/async/status + method: POST +- name: fetchConnectionDiffStatus + endpoint: + path: /connections/fetch-connection-diff-status/{connection_identifier} + method: POST +- name: fetchLiveboardData + endpoint: + path: /metadata/liveboard/data + method: POST +- name: fetchLiveboardSqlQuery + endpoint: + path: /metadata/liveboard/sql + method: POST +- name: fetchLogs + endpoint: + path: /logs/fetch + method: POST +- name: fetchPermissionsOfPrincipals + endpoint: + path: /security/principals/fetch-permissions + method: POST +- name: fetchPermissionsOnMetadata + endpoint: + path: /security/metadata/fetch-permissions + method: POST +- name: forceLogoutUsers + endpoint: + path: /users/force-logout + method: POST +- name: getCurrentUserInfo + endpoint: + path: /auth/session/user + method: GET +- name: getCurrentUserToken + endpoint: + path: /auth/session/token + method: GET +- name: getCustomAccessToken + endpoint: + path: /auth/token/custom + method: POST +- name: getFullAccessToken + endpoint: + path: /auth/token/full + method: POST +- name: getObjectAccessToken + endpoint: + path: /auth/token/object + method: POST +- name: getSystemConfig + endpoint: + path: /system/config + method: GET +- name: getSystemInformation + endpoint: + path: /system + method: GET +- name: getSystemOverrideInfo + endpoint: + path: /system/config-overrides + method: GET +- name: importMetadataTML + endpoint: + path: /metadata/tml/import + method: POST +- name: importMetadataTMLAsync + endpoint: + path: /metadata/tml/async/import + method: POST +- name: importUserGroups + endpoint: + path: /groups/import + method: POST +- name: importUsers + endpoint: + path: /users/import + method: POST +- name: login + endpoint: + path: /auth/session/login + method: POST +- name: logout + endpoint: + path: /auth/session/logout + method: POST +- name: queryGetDecomposedQuery + endpoint: + path: /ai/analytical-questions + method: POST +- name: resetUserPassword + endpoint: + path: /users/reset-password + method: POST +- name: revertCommit + endpoint: + path: /vcs/git/commits/{commit_id}/revert + method: POST +- name: revokeToken + endpoint: + path: /auth/token/revoke + method: POST +- name: searchCommits + endpoint: + path: /vcs/git/commits/search + method: POST +- name: searchConfig + endpoint: + path: /vcs/git/config/search + method: POST +- name: searchConnection + endpoint: + path: /connection/search + method: POST +- name: searchCustomActions + endpoint: + path: /customization/custom-actions/search + method: POST +- name: searchData + endpoint: + path: /searchdata + method: POST +- name: searchMetadata + endpoint: + path: /metadata/search + method: POST +- name: searchOrgs + endpoint: + path: /orgs/search + method: POST +- name: searchRoles + endpoint: + path: /roles/search + method: POST +- name: searchSchedules + endpoint: + path: /schedules/search + method: POST +- name: searchTags + endpoint: + path: /tags/search + method: POST +- name: searchUserGroups + endpoint: + path: /groups/search + method: POST +- name: searchUsers + endpoint: + path: /users/search + method: POST +- name: sendMessage + endpoint: + path: /ai/conversation/{conversation_identifier}/converse + method: POST +- name: shareMetadata + endpoint: + path: /security/metadata/share + method: POST +- name: singleAnswer + endpoint: + path: /ai/answer/create + method: POST +- name: unassignTag + endpoint: + path: /tags/unassign + method: POST +- name: updateConfig + endpoint: + path: /vcs/git/config/update + method: POST +- name: updateConnection + endpoint: + path: /connection/update + method: POST +- name: updateConnectionV2 + endpoint: + path: /connections/{connection_identifier}/update + method: POST +- name: create_conversation + endpoint: + path: /api/rest/2.0/ai/conversation/create + method: POST +- name: data_source_suggestions + endpoint: + path: /api/rest/2.0/ai/data-source-suggestions + method: POST +- name: relevant_questions + endpoint: + path: /api/rest/2.0/ai/relevant-questions/ + method: POST +- name: updateCustomAction + endpoint: + path: /api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update + method: POST +- name: updateDbtConnection + endpoint: + path: /api/rest/2.0/dbt/update-dbt-connection + method: POST +- name: updateMetadataHeader + endpoint: + path: /api/rest/2.0/metadata/headers/update + method: POST +- name: updateMetadataObjId + endpoint: + path: /api/rest/2.0/metadata/update-obj-id + method: POST +- name: updateOrg + endpoint: + path: /api/rest/2.0/orgs/{org_identifier}/update + method: POST +- name: updateRole + endpoint: + path: /api/rest/2.0/roles/{role_identifier}/update + method: POST +- name: updateSchedule + endpoint: + path: /api/rest/2.0/schedules/{schedule_identifier}/update + method: POST +- name: updateSystemConfig + endpoint: + path: /api/rest/2.0/system/config-update + method: POST +- name: updateTag + endpoint: + path: /api/rest/2.0/tags/{tag_identifier}/update + method: POST +- name: updateUser + endpoint: + path: /api/rest/2.0/users/{user_identifier}/update + method: POST +- name: updateUserGroup + endpoint: + path: /api/rest/2.0/groups/{group_identifier}/update + method: POST +- name: validateMerge + endpoint: + path: /api/rest/2.0/vcs/git/branches/validate + method: POST +- name: validateToken + endpoint: + path: /api/rest/2.0/auth/token/validate + method: POST +- name: email_customization + endpoint: + path: /api/rest/2.0/customization/email + method: POST +- name: groups + endpoint: + path: /api/rest/2.0/groups/search + method: POST +- name: logs + endpoint: + path: /api/rest/2.0/logs/fetch + method: POST +- name: metadata + endpoint: + path: /api/rest/2.0/metadata/search + method: POST +- name: orgs + endpoint: + path: /api/rest/2.0/orgs/search + method: POST +- name: reports + endpoint: + path: /api/rest/2.0/report/liveboard + method: POST +- name: roles + endpoint: + path: /api/rest/2.0/roles/search + method: POST +- name: schedules + endpoint: + path: /api/rest/2.0/schedules/create + method: POST +- name: security + endpoint: + path: /api/rest/2.0/security/metadata/assign + method: POST +- name: system + endpoint: + path: /api/rest/2.0/system + method: GET +- name: tags + endpoint: + path: /api/rest/2.0/tags/search + method: POST +- name: users + endpoint: + path: /api/rest/2.0/users/search + method: POST +- name: variables + endpoint: + path: /api/rest/2.0/template/variables/search + method: POST +- name: version_control + endpoint: + path: /api/rest/2.0/vcs/git/config/search + method: POST +- name: session_user + endpoint: + path: /api/rest/2.0/auth/session/user + method: GET + data_selector: user_info +- name: session_token + endpoint: + path: /api/rest/2.0/auth/session/token + method: GET + data_selector: token_info +- name: login + endpoint: + path: /api/rest/2.0/auth/session/login + method: POST + data_selector: login_response +- name: search_connection + endpoint: + path: /api/rest/2.0/connection/search + method: POST + data_selector: connections +- name: session_login + endpoint: + path: /tspublic/v1/session/login + method: POST + data_selector: response + params: + username: String + password: String + rememberme: Boolean +- name: auth_token + endpoint: + path: /tspublic/v1/session/auth/token + method: POST +- name: login_token + endpoint: + path: /tspublic/v1/session/login/token + method: POST +- name: email_customization + endpoint: + path: /api/rest/2.0/customization/email + method: POST +- name: groups + endpoint: + path: /api/rest/2.0/groups/search + method: POST +- name: logs + endpoint: + path: /api/rest/2.0/logs/fetch + method: POST +- name: metadata + endpoint: + path: /api/rest/2.0/metadata/search + method: POST +- name: orgs + endpoint: + path: /api/rest/2.0/orgs/search + method: POST +- name: reports + endpoint: + path: /api/rest/2.0/report/liveboard + method: POST +- name: roles + endpoint: + path: /api/rest/2.0/roles/search + method: POST +- name: schedules + endpoint: + path: /api/rest/2.0/schedules/create + method: POST +- name: security + endpoint: + path: /api/rest/2.0/security/metadata/assign + method: POST +- name: system + endpoint: + path: /api/rest/2.0/system + method: GET +- name: metadata_listvizheaders + endpoint: + path: /callosum/v1/tspublic/v1/metadata/listvizheaders + method: GET + data_selector: '' + params: {} +- name: session_logout + endpoint: + path: /callosum/v1/tspublic/v1/session/logout + method: POST + data_selector: '' + params: {} +- name: metadata_list_object_headers + endpoint: + path: /metadata/listobjectheaders + method: GET + data_selector: objectHeaders + params: + batchsize: '-1' +- name: metadata_details + endpoint: + path: /metadata/details + method: GET + data_selector: details + params: {} +- name: object_access + endpoint: + path: /security/metadata/permissions + method: GET +- name: user_privileges + endpoint: + path: /user + method: GET +- name: dependency_tracking + endpoint: + path: /metadata/details + method: GET +- name: pagination_parameters + endpoint: + params: + pagesize: + description: 'pagesize: The number of rows.' + defaultValue: '-1' + type: integer + offset: + description: 'Offset: The starting point' + defaultValue: '-1' + type: integer + pagenumber: + description: 'PageNumber: This is an alternate way to set offset. This is + 1-based indexing. Offset = (pageNumber - 1) * pageSize.' + defaultValue: '-1' + type: integer + formattype: + description: 'FormatType: This sets the JSON format type. Values that are + allowed are FULL and COMPACT.' + defaultValue: COMPACT + type: string +- name: tags_search + endpoint: + path: /api/rest/2.0/tags/search + method: POST +- name: tags_create + endpoint: + path: /api/rest/2.0/tags/create + method: POST +- name: tags_update + endpoint: + path: /api/rest/2.0/tags/{tag_identifier}/update + method: POST +- name: tags_delete + endpoint: + path: /api/rest/2.0/tags/{tag_identifier}/delete + method: POST +- name: tags_assign + endpoint: + path: /api/rest/2.0/tags/assign + method: POST +- name: tags_unassign + endpoint: + path: /api/rest/2.0/tags/unassign + method: POST +- name: users_search + endpoint: + path: /api/rest/2.0/users/search + method: POST +- name: users_create + endpoint: + path: /api/rest/2.0/users/create + method: POST +- name: users_update + endpoint: + path: /api/rest/2.0/users/{user_identifier}/update + method: POST +- name: users_delete + endpoint: + path: /api/rest/2.0/users/{user_identifier}/delete + method: POST +- name: users_import + endpoint: + path: /api/rest/2.0/users/import + method: POST +- name: users_change_password + endpoint: + path: /api/rest/2.0/users/change-password + method: POST +- name: users_reset_password + endpoint: + path: /api/rest/2.0/users/reset-password + method: POST +- name: users_force_logout + endpoint: + path: /api/rest/2.0/users/force-logout + method: POST +- name: users_activate + endpoint: + path: /api/rest/2.0/users/activate + method: POST +- name: users_deactivate + endpoint: + path: /api/rest/2.0/users/deactivate + method: POST +- name: variable_create + endpoint: + path: /api/rest/2.0/template/variables/create + method: POST +- name: variable_search + endpoint: + path: /api/rest/2.0/template/variables/search + method: POST +- name: variable_update + endpoint: + path: /api/rest/2.0/template/variables/update + method: POST +- name: variable_identifier_update + endpoint: + path: /api/rest/2.0/template/variables/{identifier}/update + method: POST +- name: variable_delete + endpoint: + path: /api/rest/2.0/template/variables/{identifier}/delete + method: POST +- name: vcs_git_config_search + endpoint: + path: /api/rest/2.0/vcs/git/config/search + method: POST +- name: vcs_git_commits_search + endpoint: + path: /api/rest/2.0/vcs/git/commits/search + method: POST +- name: vcs_git_config_create + endpoint: + path: /api/rest/2.0/vcs/git/config/create + method: POST +- name: vcs_git_config_update + endpoint: + path: /api/rest/2.0/vcs/git/config/update + method: POST +- name: vcs_git_config_delete + endpoint: + path: /api/rest/2.0/vcs/git/config/delete + method: POST +- name: vcs_git_branches_commit + endpoint: + path: /api/rest/2.0/vcs/git/branches/commit + method: POST +- name: vcs_git_commits_revert + endpoint: + path: /api/rest/2.0/vcs/git/commits/{commit_id}/revert + method: POST +- name: vcs_git_branches_validate + endpoint: + path: /api/rest/2.0/vcs/git/branches/validate + method: POST +- name: vcs_git_commits_deploy + endpoint: + path: /api/rest/2.0/vcs/git/commits/deploy + method: POST +- name: org + endpoint: + path: /tspublic/v1/org/ + method: POST +- name: org + endpoint: + path: /tspublic/v1/org/ + method: GET +- name: org + endpoint: + path: /tspublic/v1/org/ + method: PUT +- name: org + endpoint: + path: /tspublic/v1/org/search + method: POST +- name: org + endpoint: + path: /tspublic/v1/org/ + method: DELETE +- name: users + endpoint: + path: /api/v1/users + method: GET +- name: groups + endpoint: + path: /api/v1/groups + method: GET +- name: user + endpoint: + path: /tspublic/v1/user/ + method: GET + data_selector: records +- name: group + endpoint: + path: /tspublic/v1/group/ + method: GET + data_selector: records +- name: role + endpoint: + path: /tspublic/v1/role/ + method: GET + data_selector: records +- name: session + endpoint: + path: /tspublic/v1/session/login + method: POST + data_selector: records +- name: metadata + endpoint: + path: /tspublic/v1/metadata/details + method: GET + data_selector: records +- name: session_login + endpoint: + path: /tspublic/v1/session/login + method: POST + data_selector: session + params: {} +- name: auth_token + endpoint: + path: /tspublic/v1/session/auth/token + method: POST + data_selector: token + params: {} +- name: login_token + endpoint: + path: /tspublic/v1/session/login/token + method: POST + data_selector: user + params: {} +- name: visualization_headers + endpoint: + path: /tspublic/v1/metadata/listvizheaders + method: GET + data_selector: response + params: {} +- name: logout + endpoint: + path: /tspublic/v1/session/logout + method: POST + data_selector: response + params: {} +- name: security_share + endpoint: + path: /tspublic/v1/security/share + method: POST +- name: security_shareviz + endpoint: + path: /tspublic/v1/security/shareviz + method: POST +- name: security_metadata_permissions + endpoint: + path: /tspublic/v1/security/metadata/permissions + method: GET +- name: security_metadata_id_permissions + endpoint: + path: /tspublic/v1/security/metadata/{id}/permissions + method: GET +- name: effective_permission_bulk + endpoint: + path: /tspublic/v1/security/effectivepermissionbulk + method: GET +- name: logs_topics + endpoint: + path: /tspublic/v1/logs/topics/{topic} + method: GET +- name: materialization_refresh_view + endpoint: + path: /tspublic/v1/materialization/refreshview/{id} + method: POST +- name: database_tables + endpoint: + path: /tspublic/v1/database/tables + method: GET +- name: database_schemas + endpoint: + path: /tspublic/v1/database/schemas + method: GET +- name: database_databases + endpoint: + path: /tspublic/v1/database/databases + method: GET +- name: database_get_table_detail + endpoint: + path: /tspublic/v1/database/getTableDetail + method: GET +- name: database_create_table + endpoint: + path: /tspublic/v1/database/createtable + method: POST +- name: database_run + endpoint: + path: /tspublic/v1/database/run + method: POST +- name: list_metadata_objects + endpoint: + path: /metadata/listobjectheaders + method: GET + data_selector: objectHeaders + params: + batchsize: '-1' +- name: full_object_details + endpoint: + path: /metadata/details + method: GET + data_selector: metadataDetails +- name: org + endpoint: + path: /tspublic/v1/org/ + method: POST + data_selector: Org + params: {} +- name: org_search + endpoint: + path: /tspublic/v1/org/search + method: POST + data_selector: Org + params: {} +- name: object_permissions + endpoint: + path: /security/metadata/permissions + method: GET + data_selector: permissions + params: {} +- name: list_object_headers + endpoint: + path: /metadata/listobjectheaders + method: GET + data_selector: objects + params: {} +- name: user_privileges + endpoint: + path: /user + method: GET + data_selector: privileges + params: {} +- name: group_details + endpoint: + path: /group + method: GET + data_selector: groups + params: {} +- name: dependency_tracking + endpoint: + path: /metadata/details + method: GET + data_selector: dependencies + params: {} +- name: org + endpoint: + path: /tspublic/v1/org/ + method: GET + data_selector: '' + params: + orgScope: ALL +- name: org_search + endpoint: + path: /tspublic/v1/org/search + method: POST + data_selector: '' + params: + orgScope: ALL +- name: paginate_api_response + endpoint: + path: /tspublic/v1/pinboarddata + method: GET + params: + pagesize: + description: 'pagesize: The number of rows.' + defaultValue: '-1' + type: integer + offset: + description: 'Offset: The starting point' + defaultValue: '-1' + type: integer + pagenumber: + description: 'PageNumber: This is an alternate way to set offset. This is + 1-based indexing. Offset = (pageNumber - 1) * pageSize.' + defaultValue: '-1' + type: integer + formattype: + description: 'FormatType: This sets the JSON format type. Values that are + allowed are FULL and COMPACT.' + defaultValue: COMPACT + type: string +- name: org + endpoint: + path: /tspublic/v1/org/ + method: POST +- name: org_get + endpoint: + path: /tspublic/v1/org/ + method: GET +- name: org_edit + endpoint: + path: /tspublic/v1/org/ + method: PUT +- name: org_search + endpoint: + path: /tspublic/v1/org/search + method: POST +- name: org_delete + endpoint: + path: /tspublic/v1/org/ + method: DELETE +- name: create_user + endpoint: + path: /tspublic/v1/user/ + method: POST + data_selector: userContent + params: + sendEmail: 'true' +- name: update_user + endpoint: + path: /tspublic/v1/user/{userid} + method: PUT + data_selector: content + params: {} +- name: update_email + endpoint: + path: /tspublic/v1/user/email + method: PUT + data_selector: emailid + params: {} +- name: user + endpoint: + path: /tspublic/v1/user/ + method: POST + data_selector: records +- name: group + endpoint: + path: /tspublic/v1/group/ + method: GET + data_selector: records +- name: role + endpoint: + path: /tspublic/v1/role/ + method: POST + data_selector: records +- name: session + endpoint: + path: /tspublic/v1/session/ + method: POST + data_selector: records +- name: metadata + endpoint: + path: /tspublic/v1/metadata/ + method: GET + data_selector: records +- name: user_email + endpoint: + path: /tspublic/v1/user/email + method: PUT + data_selector: 'null' + params: {} +- name: add_to_org + endpoint: + path: /tspublic/v1/user/addtoorg + method: POST + data_selector: 'null' + params: {} +- name: get_user_details + endpoint: + path: /tspublic/v1/user/ + method: GET + data_selector: 'null' + params: {} +- name: deactivate_user + endpoint: + path: /tspublic/v1/user/inactivate + method: POST + data_selector: 'null' + params: {} +- name: activate_user + endpoint: + path: /tspublic/v1/user/activate + method: POST + data_selector: 'null' + params: {} +- name: invalidate_user_session + endpoint: + path: /tspublic/v1/user/session/invalidate + method: POST + data_selector: 'null' + params: {} +- name: delete_user + endpoint: + path: /tspublic/v1/user/{userid} + method: DELETE + data_selector: 'null' + params: {} +- name: list_users_groups + endpoint: + path: /tspublic/v1/user/list + method: GET + data_selector: 'null' + params: {} +- name: security_share + endpoint: + path: /tspublic/v1/security/share + method: POST +- name: security_shareviz + endpoint: + path: /tspublic/v1/security/shareviz + method: POST +- name: security_metadata_permissions + endpoint: + path: /tspublic/v1/security/metadata/permissions + method: GET +- name: security_metadata_id_permissions + endpoint: + path: /tspublic/v1/security/metadata/{id}/permissions + method: GET +- name: security_effectivepermissionbulk + endpoint: + path: /tspublic/v1/security/effectivepermissionbulk + method: GET +- name: logs_topics + endpoint: + path: /tspublic/v1/logs/topics/{topic} + method: GET +- name: materialization_refreshview + endpoint: + path: /tspublic/v1/materialization/refreshview/{id} + method: POST +- name: database_tables + endpoint: + path: /tspublic/v1/database/tables + method: GET +- name: database_schemas + endpoint: + path: /tspublic/v1/database/schemas + method: GET +- name: database_databases + endpoint: + path: /tspublic/v1/database/databases + method: GET +- name: database_getTableDetail + endpoint: + path: /tspublic/v1/database/getTableDetail + method: GET +- name: database_createtable + endpoint: + path: /tspublic/v1/database/createtable + method: POST +- name: database_run + endpoint: + path: /tspublic/v1/database/run + method: POST +- name: update_password + endpoint: + path: /callosum/v1/tspublic/v1/user/updatepassword + method: POST + data_selector: '' + params: {} +- name: reset_password + endpoint: + path: /callosum/v1/tspublic/v1/user/resetpassword + method: POST + data_selector: '' + params: {} +- name: update_preference + endpoint: + path: /callosum/v1/tspublic/v1/user/updatepreference + method: POST + data_selector: '' + params: {} +- name: transfer_ownership + endpoint: + path: /callosum/v1/tspublic/v1/user/transfer/ownership + method: POST + data_selector: '' + params: {} +- name: synchronize_principals + endpoint: + path: /callosum/v1/tspublic/v1/user/sync + method: POST + data_selector: '' + params: {} +- name: org + endpoint: + path: /tspublic/v1/org/ + method: POST + data_selector: org + params: {} +- name: org + endpoint: + path: /tspublic/v1/org/ + method: GET + data_selector: '' + params: {} +- name: org_search + endpoint: + path: /tspublic/v1/org/search + method: POST + data_selector: '' + params: {} +- name: sync_user + endpoint: + path: /callosum/v1/tspublic/v1/user/sync + method: POST + data_selector: response + params: {} +- name: assign_user_to_groups + endpoint: + path: /tspublic/v1/user/{userid}/groups + method: POST + data_selector: response + params: {} +- name: get_user_groups + endpoint: + path: /tspublic/v1/user/{userid}/groups + method: GET + data_selector: response + params: {} +- name: update_user_groups + endpoint: + path: /tspublic/v1/user/{userid}/groups + method: PUT + data_selector: response + params: {} +- name: remove_user_from_groups + endpoint: + path: /tspublic/v1/user/{userid}/groups + method: DELETE + data_selector: response + params: {} +- name: user_group + endpoint: + path: /user/group + method: GET + data_selector: groups + params: {} +- name: create_user + endpoint: + path: /tspublic/v1/user/ + method: POST + data_selector: userContent + params: {} +- name: update_user + endpoint: + path: /tspublic/v1/user/{userid} + method: PUT + data_selector: content + params: {} +- name: modify_user_email + endpoint: + path: /tspublic/v1/user/email + method: PUT + data_selector: '' + params: {} +- name: create_user_group + endpoint: + path: /tspublic/v1/group/ + method: POST + data_selector: '' + params: {} +- name: get_user_group + endpoint: + path: /tspublic/v1/group/ + method: GET + data_selector: '' + params: {} +- name: update_user_group + endpoint: + path: /tspublic/v1/group/{groupid} + method: PUT + data_selector: '' + params: {} +- name: add_privilege + endpoint: + path: /tspublic/v1/group/addprivilege + method: POST + data_selector: '' + params: {} +- name: remove_privilege + endpoint: + path: /tspublic/v1/group/removeprivilege + method: POST + data_selector: '' + params: {} +- name: user_email + endpoint: + path: /tspublic/v1/user/email + method: PUT + data_selector: none + params: {} +- name: add_to_org + endpoint: + path: /tspublic/v1/user/addtoorg + method: POST + data_selector: none + params: + orgScope: ALL +- name: get_user_details + endpoint: + path: /tspublic/v1/user/ + method: GET + data_selector: none + params: {} +- name: deactivate_user + endpoint: + path: /tspublic/v1/user/inactivate + method: POST + data_selector: none + params: {} +- name: activate_user + endpoint: + path: /tspublic/v1/user/activate + method: POST + data_selector: none + params: {} +- name: invalidate_user_session + endpoint: + path: /tspublic/v1/user/session/invalidate + method: POST + data_selector: none + params: {} +- name: delete_user + endpoint: + path: /tspublic/v1/user/{userid} + method: DELETE + data_selector: none + params: {} +- name: get_user_list + endpoint: + path: /tspublic/v1/user/list + method: GET + data_selector: none + params: {} +- name: remove_privilege + endpoint: + path: /callosum/v1/tspublic/v1/group/removeprivilege + method: POST + data_selector: '' + params: {} +- name: add_user_to_group + endpoint: + path: /tspublic/v1/group/{groupid}/user/{userid} + method: POST + data_selector: '' + params: {} +- name: list_users_in_group + endpoint: + path: /tspublic/v1/group/listuser/{groupid} + method: GET + data_selector: '' + params: {} +- name: add_users_to_group + endpoint: + path: /tspublic/v1/group/{groupid}/users + method: POST + data_selector: '' + params: {} +- name: update_user_data + endpoint: + path: /tspublic/v1/group/{groupid}/users + method: PUT + data_selector: '' + params: {} +- name: get_users_in_group + endpoint: + path: /tspublic/v1/group/{groupid}/users + method: GET + data_selector: '' + params: {} +- name: remove_users_from_group + endpoint: + path: /tspublic/v1/group/{groupid}/users + method: DELETE + data_selector: '' + params: {} +- name: add_memberships + endpoint: + path: /tspublic/v1/group/addmemberships + method: POST + data_selector: '' + params: {} +- name: assign_groups + endpoint: + path: /tspublic/v1/group/{groupid}/groups + method: POST + data_selector: '' + params: {} +- name: update_subgroups + endpoint: + path: /tspublic/v1/group/{groupid}/groups + method: PUT + data_selector: '' + params: {} +- name: update_password + endpoint: + path: /callosum/v1/tspublic/v1/user/updatepassword + method: POST + data_selector: Response Code + params: {} +- name: reset_password + endpoint: + path: /callosum/v1/tspublic/v1/user/resetpassword + method: POST + data_selector: Response Code + params: {} +- name: update_preference + endpoint: + path: /callosum/v1/tspublic/v1/user/updatepreference + method: POST + data_selector: Response Code + params: {} +- name: transfer_ownership + endpoint: + path: /callosum/v1/tspublic/v1/user/transfer/ownership + method: POST + data_selector: Response Code + params: {} +- name: synchronize_principals + endpoint: + path: /callosum/v1/tspublic/v1/user/sync + method: POST + data_selector: Response Code + params: {} +- name: sync_user + endpoint: + path: /callosum/v1/tspublic/v1/user/sync + method: POST + data_selector: response + params: {} +- name: assign_user_groups + endpoint: + path: /tspublic/v1/user/{userid}/groups + method: POST + data_selector: response + params: {} +- name: get_user_groups + endpoint: + path: /tspublic/v1/user/{userid}/groups + method: GET + data_selector: response + params: {} +- name: update_user_groups + endpoint: + path: /tspublic/v1/user/{userid}/groups + method: PUT + data_selector: response + params: {} +- name: remove_user_groups + endpoint: + path: /tspublic/v1/user/{userid}/groups + method: DELETE + data_selector: response + params: {} +- name: group_subgroups + endpoint: + path: /callosum/v1/tspublic/v1/group/{groupid}/groups + method: GET + data_selector: subgroups +- name: remove_subgroup + endpoint: + path: /callosum/v1/tspublic/v1/group/{groupid}/groups + method: DELETE + data_selector: response + params: + principalids: JSON array of subgroup GUIDs + groupid: GUID of the group +- name: remove_users + endpoint: + path: /callosum/v1/group/removememberships + method: POST + data_selector: response + params: + userids: JSON array of user GUIDs + groupids: JSON array of group GUIDs +- name: delete_user_group + endpoint: + path: /tspublic/v1/group/{groupid} + method: DELETE + data_selector: response +- name: user_group + endpoint: + path: /api/group + method: POST +- name: create_role + endpoint: + path: /tspublic/v1/role + method: POST +- name: edit_role + endpoint: + path: /tspublic/v1/role/{role_identifier} + method: PUT +- name: search_role + endpoint: + path: /tspublic/v1/role/search + method: POST +- name: delete_role + endpoint: + path: /tspublic/v1/role/{role_identifier} + method: DELETE +- name: role + endpoint: + path: /tspublic/v1/role + method: POST +- name: role_search + endpoint: + path: /tspublic/v1/role/search + method: POST +- name: role_update + endpoint: + path: /tspublic/v1/role/{role_identifier} + method: PUT +- name: role_delete + endpoint: + path: /tspublic/v1/role/{role_identifier} + method: DELETE +- name: create_user_group + endpoint: + path: /tspublic/v1/group/ + method: POST + data_selector: userGroupContent + params: {} +- name: get_user_group + endpoint: + path: /tspublic/v1/group/ + method: GET + data_selector: userGroupContent + params: {} +- name: update_user_group + endpoint: + path: /tspublic/v1/group/{groupid} + method: PUT + data_selector: userGroupContent + params: {} +- name: add_privilege + endpoint: + path: /tspublic/v1/group/addprivilege + method: POST + data_selector: privileges + params: {} +- name: remove_privilege + endpoint: + path: /tspublic/v1/group/removeprivilege + method: POST + data_selector: privileges + params: {} +- name: session + endpoint: + path: /session + method: GET +- name: session_login + endpoint: + path: /tspublic/v1/session/login + method: POST + data_selector: '' + params: {} +- name: session_auth_token + endpoint: + path: /tspublic/v1/session/auth/token + method: POST + data_selector: '' + params: {} +- name: remove_privilege + endpoint: + path: /callosum/v1/tspublic/v1/group/removeprivilege + method: POST + data_selector: null + params: {} +- name: add_user_to_group + endpoint: + path: /tspublic/v1/group/{groupid}/user/{userid} + method: POST + data_selector: null + params: {} +- name: list_users_in_group + endpoint: + path: /tspublic/v1/group/listuser/{groupid} + method: GET + data_selector: null + params: {} +- name: add_users_to_group + endpoint: + path: /tspublic/v1/group/{groupid}/users + method: POST + data_selector: null + params: {} +- name: update_users_in_group + endpoint: + path: /tspublic/v1/group/{groupid}/users + method: PUT + data_selector: null + params: {} +- name: get_users_in_group + endpoint: + path: /tspublic/v1/group/{groupid}/users + method: GET + data_selector: null + params: {} +- name: remove_users_from_group + endpoint: + path: /tspublic/v1/group/{groupid}/users + method: DELETE + data_selector: null + params: {} +- name: add_memberships + endpoint: + path: /tspublic/v1/group/addmemberships + method: POST + data_selector: null + params: {} +- name: assign_groups + endpoint: + path: /tspublic/v1/group/{groupid}/groups + method: POST + data_selector: null + params: {} +- name: update_subgroups + endpoint: + path: /tspublic/v1/group/{groupid}/groups + method: PUT + data_selector: null + params: {} +- name: session_login_token + endpoint: + path: /tspublic/v1/session/login/token + method: POST + data_selector: response + params: {} +- name: session_info + endpoint: + path: /tspublic/v1/session/info + method: GET + data_selector: response + params: {} +- name: session_logout + endpoint: + path: /tspublic/v1/session/logout + method: POST + data_selector: response + params: {} +- name: session_orgs + endpoint: + path: /tspublic/v1/session/orgs + method: GET + data_selector: response + params: + batchsize: '-1' + offset: '-1' +- name: get_orgs_for_user + endpoint: + path: /callosum/v1/tspublic/v1/session/orgs/users/{userid} + method: GET + data_selector: orgs + params: + orgScope: ALL +- name: set_home_liveboard + endpoint: + path: /callosum/v1/tspublic/v1/session/homepinboard + method: POST + data_selector: '' + params: + id: '' + userid: '' +- name: get_home_liveboard + endpoint: + path: /callosum/v1/tspublic/v1/session/homepinboard + method: GET + data_selector: '' + params: {} +- name: remove_home_liveboard + endpoint: + path: /callosum/v1/tspublic/v1/session/homepinboard + method: DELETE + data_selector: '' + params: {} +- name: subgroups + endpoint: + path: /callosum/v1/tspublic/v1/group/{groupid}/groups + method: GET + data_selector: subgroups +- name: remove_subgroups + endpoint: + path: /callosum/v1/tspublic/v1/group/{groupid}/groups + method: DELETE + data_selector: remove_subgroups +- name: remove_memberships + endpoint: + path: /callosum/v1/group/removememberships + method: POST + data_selector: remove_memberships +- name: delete_user_from_group + endpoint: + path: /callosum/v1/tspublic/v1/group/{groupid}/user/{userid} + method: DELETE + data_selector: delete_user +- name: delete_user_group + endpoint: + path: /callosum/v1/tspublic/v1/group/{groupid} + method: DELETE + data_selector: delete_group +- name: add_role_to_group + endpoint: + path: /callosum/v1/tspublic/v1/group/addrole + method: POST + data_selector: add_role +- name: remove_role_from_group + endpoint: + path: /callosum/v1/tspublic/v1/group/removerole + method: POST + data_selector: remove_role +- name: create_role + endpoint: + path: /api/rest/2.0/roles/create + method: POST +- name: edit_role + endpoint: + path: /tspublic/v1/role/{role_identifier} + method: PUT +- name: search_role + endpoint: + path: /tspublic/v1/role/search + method: POST +- name: delete_role + endpoint: + path: /tspublic/v1/role/{role_identifier} + method: DELETE +- name: create_connection + endpoint: + path: /tspublic/v1/connection/create + method: POST +- name: update_connection + endpoint: + path: /tspublic/v1/connection/update + method: POST +- name: list_connections + endpoint: + path: /tspublic/v1/connection/list + method: GET +- name: fetch_connection + endpoint: + path: /tspublic/v1/connection/fetchConnection + method: POST +- name: fetch_live_columns + endpoint: + path: /tspublic/v1/connection/fetchLiveColumns + method: POST +- name: export_connection + endpoint: + path: /tspublic/v1/connection/export + method: GET +- name: delete_connection + endpoint: + path: /tspublic/v1/connection/delete + method: POST +- name: create_connection + endpoint: + path: /tspublic/v1/connection/create + method: POST +- name: update_connection + endpoint: + path: /tspublic/v1/connection/update + method: POST +- name: role + endpoint: + path: /callosum/v1/tspublic/v1/role + method: POST + data_selector: data + params: {} +- name: search_role + endpoint: + path: /callosum/v1/tspublic/v1/role/search + method: POST + data_selector: data + params: {} +- name: edit_role + endpoint: + path: /tspublic/v1/role/{role_identifier} + method: PUT + data_selector: data + params: {} +- name: delete_role + endpoint: + path: /tspublic/v1/role/{role_identifier} + method: DELETE + data_selector: data + params: {} +- name: session + endpoint: + path: /session + method: POST +- name: connection_types + endpoint: + path: /tspublic/v1/connection/types + method: GET + data_selector: data + params: {} +- name: live_query_connections + endpoint: + path: /tspublic/v1/connection/list + method: GET + data_selector: headers + params: {} +- name: fetch_connection + endpoint: + path: /tspublic/v1/connection/fetchConnection + method: POST + data_selector: '' + params: + id: GUID_of_the_connection + includeColumns: 'false' +- name: fetchLiveColumns + endpoint: + path: /tspublic/v1/connection/fetchLiveColumns + method: POST + params: + connection_id: String + tables: String + config: String + authentication_type: String +- name: session_login + endpoint: + path: /tspublic/v1/session/login + method: POST + data_selector: null + params: + username: '' + password: '' + rememberme: 'false' +- name: session_auth_token + endpoint: + path: /tspublic/v1/session/auth/token + method: POST + data_selector: null + params: + secret_key: '' + username: '' + access_level: FULL + autocreate: 'false' + groups: null +- name: export_connection + endpoint: + path: /callosum/v1/tspublic/v1/connection/export + method: GET + data_selector: Response body + params: + id: String +- name: delete_connection + endpoint: + path: /callosum/v1/tspublic/v1/connection/delete + method: POST + data_selector: Response code + params: + ids: Array of Strings +- name: session_login_token + endpoint: + path: /tspublic/v1/session/login/token + method: POST + data_selector: response + params: + username: string + auth_token: string + redirect_url: string + no_url_redirection: boolean +- name: session_info + endpoint: + path: /tspublic/v1/session/info + method: GET + data_selector: response + params: {} +- name: session_logout + endpoint: + path: /tspublic/v1/session/logout + method: POST + data_selector: response + params: {} +- name: session_orgs + endpoint: + path: /tspublic/v1/session/orgs + method: GET + data_selector: response + params: + batchsize: integer + offset: integer +- name: assign_tag + endpoint: + path: /tspublic/v1/metadata/assigntag + method: POST +- name: unassign_tag + endpoint: + path: /tspublic/v1/metadata/unassigntag + method: POST +- name: metadata_details + endpoint: + path: /tspublic/v1/metadata/details + method: GET +- name: metadata_list + endpoint: + path: /tspublic/v1/metadata/list + method: GET +- name: metadata_list_as + endpoint: + path: /tspublic/v1/metadata/listas + method: GET +- name: metadata_object_headers + endpoint: + path: /tspublic/v1/metadata/listobjectheaders + method: GET +- name: visualization_headers + endpoint: + path: /tspublic/v1/metadata/listvizheaders + method: GET +- name: mark_unmark_favorite + endpoint: + path: /tspublic/v1/metadata/markunmarkfavoritefor + method: POST +- name: delete_metadata + endpoint: + path: /tspublic/v1/metadata/delete + method: POST +- name: getOrgsForUser + endpoint: + path: /tspublic/v1/session/orgs/users/{userid} + method: GET + data_selector: orgs + params: {} +- name: setHomeLiveboard + endpoint: + path: /tspublic/v1/session/homepinboard + method: POST + data_selector: '' + params: {} +- name: getHomeLiveboard + endpoint: + path: /tspublic/v1/session/homepinboard + method: GET + data_selector: '' + params: {} +- name: removeHomeLiveboard + endpoint: + path: /tspublic/v1/session/homepinboard + method: DELETE + data_selector: '' + params: {} +- name: assign_tag + endpoint: + path: /tspublic/v1/metadata/assigntag + method: POST +- name: unassign_tag + endpoint: + path: /tspublic/v1/metadata/unassigntag + method: POST +- name: get_metadata_details + endpoint: + path: /tspublic/v1/metadata/details + method: GET +- name: metadata_list + endpoint: + path: /callosum/v1/tspublic/v1/metadata/list + method: GET + params: + type: PINBOARD_ANSWER_BOOK + category: ALL + sort: DEFAULT + offset: -1 + showhidden: false +- name: create_connection + endpoint: + path: /tspublic/v1/connection/create + method: POST +- name: update_connection + endpoint: + path: /tspublic/v1/connection/update + method: POST +- name: list_connections + endpoint: + path: /tspublic/v1/connection/list + method: GET +- name: fetch_connection_metadata + endpoint: + path: /tspublic/v1/connection/fetchConnection + method: POST +- name: fetch_live_columns + endpoint: + path: /tspublic/v1/connection/fetchLiveColumns + method: POST +- name: export_connection_map + endpoint: + path: /tspublic/v1/connection/export + method: GET +- name: delete_connection + endpoint: + path: /tspublic/v1/connection/delete + method: POST +- name: metadata_listas + endpoint: + path: /tspublic/v1/metadata/listas + method: GET + data_selector: headers + params: + offset: '-1' + pattern: '%' + minimumaccesslevel: READ_ONLY + type: USER +- name: object_headers + endpoint: + path: /tspublic/v1/metadata/listobjectheaders + method: GET +- name: create_connection + endpoint: + path: /tspublic/v1/connection/create + method: POST + data_selector: header + params: {} +- name: update_connection + endpoint: + path: /tspublic/v1/connection/update + method: POST + data_selector: header + params: {} +- name: metadata_object_headers + endpoint: + path: /callosum/v1/tspublic/v1/metadata/listobjectheaders + method: GET + data_selector: headers + params: + type: LOGICAL_TABLE + subtypes: '[''WORKSHEET'']' + category: ALL + sort: CREATED + offset: '-1' +- name: visualization_headers + endpoint: + path: /callosum/v1/tspublic/v1/metadata/listvizheaders + method: GET + data_selector: headers + params: + id: String +- name: connection_types + endpoint: + path: /tspublic/v1/connection/types + method: GET +- name: live_query_connections + endpoint: + path: /tspublic/v1/connection/list + method: GET +- name: fetch_connection + endpoint: + path: /tspublic/v1/connection/fetchConnection + method: POST +- name: set_favorite + endpoint: + path: /tspublic/v1/metadata/markunmarkfavoritefor + method: POST + data_selector: '' + params: {} +- name: fetchLiveColumns + endpoint: + path: /callosum/v1/tspublic/v1/connection/fetchLiveColumns + method: POST + params: {} +- name: remove_objects_from_favorites + endpoint: + path: /tspublic/v1/metadata/markunmarkfavoritefor + method: DELETE + data_selector: response + params: + ids: String + userid: String +- name: delete_metadata_objects + endpoint: + path: /tspublic/v1/metadata/delete + method: POST + data_selector: response + params: + type: String + id: String + includedisabled: Boolean +- name: export_connection + endpoint: + path: /callosum/v1/tspublic/v1/connection/export + method: GET + params: + id: String +- name: delete_connection + endpoint: + path: /callosum/v1/tspublic/v1/connection/delete + method: POST + params: + ids: Array of Strings +- name: assign_tag + endpoint: + path: /tspublic/v1/metadata/assigntag + method: POST +- name: unassign_tag + endpoint: + path: /tspublic/v1/metadata/unassigntag + method: POST +- name: metadata_details + endpoint: + path: /tspublic/v1/metadata/details + method: GET +- name: metadata_list + endpoint: + path: /tspublic/v1/metadata/list + method: GET +- name: metadata_list_as + endpoint: + path: /tspublic/v1/metadata/listas + method: GET +- name: metadata_object_headers + endpoint: + path: /tspublic/v1/metadata/listobjectheaders + method: GET +- name: visualization_headers + endpoint: + path: /tspublic/v1/metadata/listvizheaders + method: GET +- name: mark_unmark_favorite + endpoint: + path: /tspublic/v1/metadata/markunmarkfavoritefor + method: POST +- name: delete_metadata + endpoint: + path: /tspublic/v1/metadata/delete + method: POST +- name: custom_action_associations + endpoint: + path: /callosum/v1/tspublic/v1/admin/embed/actions/{actionid}/associations + method: GET +- name: embed_actions + endpoint: + path: /callosum/v1/tspublic/v1/admin/embed/actions + method: POST +- name: custom_action_details + endpoint: + path: /callosum/v1/tspublic/v1/admin/embed/actions/{actionid} + method: GET +- name: assign_tag + endpoint: + path: /tspublic/v1/metadata/assigntag + method: POST + data_selector: response + params: {} +- name: unassign_tag + endpoint: + path: /tspublic/v1/metadata/unassigntag + method: POST + data_selector: response + params: {} +- name: get_metadata_details + endpoint: + path: /tspublic/v1/metadata/details + method: GET + data_selector: response + params: {} +- name: delete_custom_action_associations + endpoint: + path: /callosum/v1/tspublic/v1/admin/embed/actions/{actionid}/associations + method: DELETE +- name: metadata_list + endpoint: + path: /callosum/v1/tspublic/v1/metadata/list + method: GET + data_selector: metadata + params: + type: PINBOARD_ANSWER_BOOK + category: ALL + sort: DEFAULT + offset: -1 + showhidden: false +- name: import_tml + endpoint: + path: /tspublic/v1/metadata/tml/import + method: POST +- name: export_tml + endpoint: + path: /tspublic/v1/metadata/tml/export + method: POST +- name: export_batch_tml + endpoint: + path: /tspublic/v1/metadata/tml/export/batch + method: POST +- name: metadata_listas + endpoint: + path: /tspublic/v1/metadata/listas + method: GET + data_selector: headers + params: + offset: -1 + pattern: '%' + minimumaccesslevel: READ_ONLY + type: USER +- name: object_headers + endpoint: + path: /tspublic/v1/metadata/listobjectheaders + method: GET + data_selector: headers +- name: visualization_headers + endpoint: + path: /callosum/v1/tspublic/v1/metadata/listvizheaders + method: GET + data_selector: visualizations + params: {} +- name: object_headers + endpoint: + path: /callosum/v1/tspublic/v1/metadata/listobjectheaders + method: GET + data_selector: objects + params: + type: LOGICAL_TABLE + subtypes: '[''WORKSHEET'']' + category: ALL + sort: CREATED + offset: '-1' +- name: import + endpoint: + path: /import + method: POST + data_selector: object + params: + import_policy: PARTIAL + force_create: 'false' + all_orgs_override: 'false' + skip_cdw_validation_for_tables: 'false' + skip_diff_check: 'false' +- name: export + endpoint: + path: /export + method: POST + data_selector: object + params: + formattype: YAML + export_associated: 'false' + export_fqn: 'false' + export_schema_version: v1 + export_dependent: 'false' + export_connection_as_dependent: 'false' + all_orgs_override: 'false' +- name: export_batch + endpoint: + path: /export/batch + method: POST + data_selector: data.result + params: + batch_size: 20 + batch_offset: 0 + export_dependent: 'false' + edoc_format: JSON + all_orgs_override: 'false' +- name: mark_unmark_favorite + endpoint: + path: /tspublic/v1/metadata/markunmarkfavoritefor + method: POST + data_selector: null + params: {} +- name: dependency + endpoint: + path: /tspublic/v1/dependency + method: GET + data_selector: dependencies + params: {} +- name: mark_unmark_favorite + endpoint: + path: /callosum/v1/tspublic/v1/metadata/markunmarkfavoritefor + method: DELETE + data_selector: null + params: {} +- name: delete_metadata + endpoint: + path: /callosum/v1/tspublic/v1/metadata/delete + method: POST + data_selector: null + params: {} +- name: list_dependents + endpoint: + path: /tspublic/v1/dependency/listdependents + method: POST + data_selector: records + params: {} +- name: logical_column + endpoint: + path: /tspublic/v1/dependency/logicalcolumn + method: GET + data_selector: records + params: {} +- name: logical_table + endpoint: + path: /tspublic/v1/dependency/logicaltable + method: GET + data_selector: records + params: {} +- name: logical_relationship + endpoint: + path: /tspublic/v1/dependency/logicalrelationship + method: GET + data_selector: records + params: {} +- name: physical_column + endpoint: + path: /tspublic/v1/dependency/physicalcolumn + method: GET + data_selector: records + params: {} +- name: physical_table + endpoint: + path: /tspublic/v1/dependency/physicaltable + method: GET + data_selector: records + params: {} +- name: pinboard + endpoint: + path: /tspublic/v1/dependency/pinboard + method: GET + data_selector: records + params: {} +- name: list_incomplete + endpoint: + path: /tspublic/v1/dependency/listincomplete + method: GET + data_selector: records + params: {} +- name: dependent_objects_physical_column + endpoint: + path: /tspublic/v1/dependency/physicalcolumn + method: GET + data_selector: records + params: + id: [] +- name: dependent_objects_physical_table + endpoint: + path: /tspublic/v1/dependency/physicaltable + method: GET + data_selector: records + params: + id: [] +- name: dependent_objects_liveboard + endpoint: + path: /tspublic/v1/dependency/pinboard + method: GET + data_selector: records + params: + id: [] +- name: incomplete_objects + endpoint: + path: /tspublic/v1/dependency/listincomplete + method: GET + data_selector: records +- name: custom_action_associations + endpoint: + path: /callosum/v1/tspublic/v1/admin/embed/actions/{actionid}/associations + method: GET +- name: embed_actions + endpoint: + path: /callosum/v1/tspublic/v1/admin/embed/actions + method: POST +- name: update_config + endpoint: + path: /callosum/v1/tspublic/v1/admin/configinfo/update + method: POST +- name: searchdata + endpoint: + path: /tspublic/v1/searchdata + method: POST +- name: delete_custom_action_associations + endpoint: + path: /tspublic/v1/admin/embed/actions/{actionid}/associations + method: DELETE + params: + actionId: String + actionassociation: String +- name: import_tml + endpoint: + path: /tspublic/v1/metadata/tml/import + method: POST +- name: export_tml + endpoint: + path: /tspublic/v1/metadata/tml/export + method: POST +- name: export_batch_tml + endpoint: + path: /tspublic/v1/metadata/tml/export/batch + method: POST +- name: search_data + endpoint: + path: /callosum/v1/tspublic/v1/searchdata + method: POST + data_selector: data + params: + query_string: '' + data_source_guid: '' + batchsize: -1 + pagenumber: -1 + offset: -1 + formattype: COMPACT +- name: pinboard_data + endpoint: + path: /tspublic/v1/pinboarddata + method: POST + data_selector: data + params: + id: liveboard_id + vizid: optional_visualization_ids + transient_pinboard_content: transient_content + batchsize: -1 + pagenumber: -1 + offset: -1 + formattype: COMPACT +- name: import_tml + endpoint: + path: /tspublic/v1/metadata/tml/import + method: POST + data_selector: object + params: + import_policy: PARTIAL + force_create: 'false' + all_orgs_override: 'false' + skip_cdw_validation_for_tables: 'false' + skip_diff_check: 'false' +- name: export_tml + endpoint: + path: /tspublic/v1/metadata/tml/export + method: POST + data_selector: object + params: + formattype: YAML + export_associated: 'false' + export_fqn: 'false' + export_schema_version: v1 + export_dependent: 'false' + export_connection_as_dependent: 'false' + all_orgs_override: 'false' +- name: export_batch_tml + endpoint: + path: /tspublic/v1/metadata/tml/export/batch + method: POST + data_selector: data.result + params: + batch_size: 20 + batch_offset: 0 + export_dependent: 'false' + edoc_format: JSON + all_orgs_override: 'false' +- name: pinboarddata + endpoint: + path: /callosum/v1/tspublic/v1/pinboarddata + method: POST + data_selector: data + params: + formattype: COMPACT +- name: dependency + endpoint: + path: /tspublic/v1/dependency + method: GET + data_selector: dependencies + params: {} +- name: liveboard_export + endpoint: + path: /tspublic/v1/export/pinboard/pdf + method: POST + data_selector: response + params: {} +- name: export_pinboard_pdf + endpoint: + path: /callosum/v1/tspublic/v1/export/pinboard/pdf + method: POST + params: + layout_type: PINBOARD + orientation: LANDSCAPE + truncate_tables: 'false' + include_logo: 'true' + include_page_number: 'true' + include_filter_page: 'true' + include_cover_page: 'true' +- name: listdependents + endpoint: + path: /tspublic/v1/dependency/listdependents + method: POST + data_selector: dependent_objects + params: {} +- name: logicalcolumn + endpoint: + path: /tspublic/v1/dependency/logicalcolumn + method: GET + data_selector: dependent_objects + params: {} +- name: logicaltable + endpoint: + path: /tspublic/v1/dependency/logicaltable + method: GET + data_selector: dependent_objects + params: {} +- name: logicalrelationship + endpoint: + path: /tspublic/v1/dependency/logicalrelationship + method: GET + data_selector: dependent_objects + params: {} +- name: physicalcolumn + endpoint: + path: /tspublic/v1/dependency/physicalcolumn + method: GET + data_selector: dependent_objects + params: {} +- name: physicaltable + endpoint: + path: /tspublic/v1/dependency/physicaltable + method: GET + data_selector: dependent_objects + params: {} +- name: pinboard + endpoint: + path: /tspublic/v1/dependency/pinboard + method: GET + data_selector: dependent_objects + params: {} +- name: listincomplete + endpoint: + path: /tspublic/v1/dependency/listincomplete + method: GET + data_selector: dependent_objects + params: {} +- name: share_objects + endpoint: + path: /tspublic/v1/security/share + method: POST + data_selector: '' +- name: share_visualization + endpoint: + path: /tspublic/v1/security/shareviz + method: POST + data_selector: '' +- name: get_object_permission_details + endpoint: + path: /tspublic/v1/security/metadata/permissions + method: GET + data_selector: '' +- name: get_permission_details_for_object_id + endpoint: + path: /tspublic/v1/security/metadata/{id}/permissions + method: GET + data_selector: '' +- name: get_permission_details_for_multiple_object_types + endpoint: + path: /tspublic/v1/security/effectivepermissionbulk + method: GET + data_selector: '' +- name: dependent_objects_physical_columns + endpoint: + path: /tspublic/v1/dependency/physicalcolumn + method: GET + data_selector: dependent_objects + params: + id: Array of strings +- name: dependent_objects_physical_tables + endpoint: + path: /tspublic/v1/dependency/physicaltable + method: GET + data_selector: dependent_objects + params: + id: Array of strings +- name: dependent_liveboards + endpoint: + path: /tspublic/v1/dependency/pinboard + method: GET + data_selector: dependent_objects + params: + id: Array of strings +- name: incomplete_objects + endpoint: + path: /tspublic/v1/dependency/listincomplete + method: GET + data_selector: incomplete_metadata +- name: object_permission_details_multiple + endpoint: + path: /tspublic/v1/security/effectivepermissionbulk + method: POST +- name: object_permission_details_single + endpoint: + path: /tspublic/v1/security/metadata/permissions + method: GET +- name: share_visualization + endpoint: + path: /tspublic/v1/security/shareviz + method: POST +- name: search_data + endpoint: + path: /searchdata + method: POST + data_selector: data + params: {} +- name: effective_permission_bulk + endpoint: + path: /callosum/v1/tspublic/v1/security/effectivepermissionbulk + method: POST + data_selector: permissions + params: + idsbytype: '{ "PINBOARD_ANSWER_BOOK": ["d084c256-e284-4fc4-b80c-111cb606449a"], + "QUESTION_ANSWER_BOOK": ["92f48c07-9c62-4bfa-81ac-55f3049165b4"] }' + dependentshare: 'true' +- name: search_data + endpoint: + path: /callosum/v1/tspublic/v1/searchdata + method: POST + data_selector: data + params: + query_string: string + data_source_guid: string + batchsize: -1 + pagenumber: -1 + offset: -1 + formattype: COMPACT +- name: security_logs + endpoint: + path: /callosum/v1/tspublic/v1/logs/topics/security_logs + method: GET + data_selector: logs + params: + topic: security_logs +- name: audit_logs + endpoint: + path: /logs + method: GET + data_selector: log +- name: pinboard_data + endpoint: + path: /pinboarddata + method: POST + data_selector: data + params: + id: String + vizid: Optional String + transient_pinboard_content: String + batchsize: Integer + pagenumber: Integer + offset: Integer + formattype: String +- name: refresh_materialized_view + endpoint: + path: /callosum/v1/tspublic/v1/materialization/refreshview/{id} + method: POST + data_selector: null + params: {} +- name: pinboarddata + endpoint: + path: /callosum/v1/tspublic/v1/pinboarddata + method: POST + data_selector: data + params: + id: f4533461-caa5-4efa-a189-13815ab86770 + batchsize: '-1' + pagenumber: '-1' + offset: '-1' + formattype: COMPACT +- name: liveboard_export + endpoint: + path: /tspublic/v1/export/pinboard/pdf + method: POST + data_selector: response + params: {} +- name: tables + endpoint: + path: /tspublic/v1/database/tables + method: GET + data_selector: '' + params: + database: usage_stats + schema: falcon_default_schema +- name: schemas + endpoint: + path: /tspublic/v1/database/schemas + method: GET + data_selector: '' + params: {} +- name: databases + endpoint: + path: /tspublic/v1/database/databases + method: GET + data_selector: '' + params: {} +- name: getTableDetail + endpoint: + path: /tspublic/v1/database/getTableDetail + method: GET + data_selector: '' + params: {} +- name: createtable + endpoint: + path: /tspublic/v1/database/createtable + method: POST + data_selector: '' + params: {} +- name: run + endpoint: + path: /tspublic/v1/database/run + method: POST + data_selector: '' + params: {} +- name: export_pinboard_pdf + endpoint: + path: /callosum/v1/tspublic/v1/export/pinboard/pdf + method: POST + data_selector: raw pdf file + params: {} +- name: schemas + endpoint: + path: /tspublic/v1/database/schemas + method: GET + data_selector: schemas +- name: databases + endpoint: + path: /tspublic/v1/database/databases + method: GET + data_selector: databases +- name: getTableDetail + endpoint: + path: /tspublic/v1/database/getTableDetail + method: GET + data_selector: table_details +- name: createTable + endpoint: + path: /tspublic/v1/database/createtable/ + method: POST + data_selector: table_creation +- name: runTQL + endpoint: + path: /tspublic/v1/database/run + method: POST + data_selector: tql_execution +- name: share + endpoint: + path: /tspublic/v1/security/share + method: POST +- name: shareviz + endpoint: + path: /tspublic/v1/security/shareviz + method: POST +- name: get_object_permission_details_for_specific_object_type + endpoint: + path: /tspublic/v1/security/metadata/permissions + method: GET +- name: get_permission_details_for_specific_object_id + endpoint: + path: /tspublic/v1/security/metadata/{id}/permissions + method: GET +- name: get_object_permission_details_for_multiple_object_types + endpoint: + path: /tspublic/v1/security/effectivepermissionbulk + method: GET +- name: object_permission_details_bulk + endpoint: + path: /tspublic/v1/security/effectivepermissionbulk + method: POST + data_selector: permissions + params: {} +- name: share_visualization + endpoint: + path: /tspublic/v1/security/shareviz + method: POST + data_selector: result + params: {} +- name: object_permission_details + endpoint: + path: /tspublic/v1/security/metadata/permissions + method: GET + data_selector: permissions + params: {} +- name: answer_report + endpoint: + path: /api/rest/2.0/report/answer + method: POST + data_selector: metadata_identifier + params: {} +- name: liveboard_report + endpoint: + path: /api/rest/2.0/report/liveboard + method: POST + data_selector: metadata_identifier + params: {} +- name: search_data + endpoint: + path: /api/rest/2.0/searchdata + method: POST + data_selector: query_string + params: {} +- name: answer_data + endpoint: + path: /api/rest/2.0/metadata/answer/data + method: POST + data_selector: metadata_identifier + params: {} +- name: liveboard_data + endpoint: + path: /api/rest/2.0/metadata/liveboard/data + method: POST + data_selector: metadata_identifier + params: {} +- name: effective_permission_bulk + endpoint: + path: /callosum/v1/tspublic/v1/security/effectivepermissionbulk + method: POST + data_selector: object permission details + params: + idsbytype: '{"PINBOARD_ANSWER_BOOK":["d084c256-e284-4fc4-b80c-111cb606449a"],"QUESTION_ANSWER_BOOK":["92f48c07-9c62-4bfa-81ac-55f3049165b4"]}' + dependentshare: 'true' +- name: users_create + endpoint: + path: /api/rest/2.0/users/create + method: POST + data_selector: '[]' +- name: security_logs + endpoint: + path: /callosum/v1/tspublic/v1/logs/topics/security_logs + method: GET + data_selector: logs + params: + topic: security_logs +- name: audit_logs + endpoint: + path: /logs + method: GET + data_selector: logs + params: {} +- name: getCurrentUserInfo + endpoint: + path: /api/graphql/2.0 + method: POST + data_selector: data.getCurrentUserInfo + params: {} +- name: refresh_materialized_view + endpoint: + path: /callosum/v1/tspublic/v1/materialization/refreshview/{id} + method: POST + data_selector: '' + params: {} +- name: tables + endpoint: + path: /callosum/v1/tspublic/v1/database/tables + method: GET + data_selector: '' + params: + database: usage_stats + schema: falcon_default_schema +- name: schemas + endpoint: + path: /tspublic/v1/database/schemas + method: GET + data_selector: '' +- name: databases + endpoint: + path: /tspublic/v1/database/databases + method: GET + data_selector: '' +- name: getTableDetail + endpoint: + path: /tspublic/v1/database/getTableDetail + method: GET + data_selector: '' +- name: createTable + endpoint: + path: /tspublic/v1/database/createtable/ + method: POST + data_selector: '' +- name: runTQL + endpoint: + path: /tspublic/v1/database/run + method: POST + data_selector: '' +- name: liveboard_data + endpoint: + path: /api/rest/2.0/metadata/liveboard/data + method: POST + data_selector: data + params: {} +- name: answer_data + endpoint: + path: /api/rest/2.0/metadata/answer/data + method: POST + data_selector: data + params: {} +- name: search_data + endpoint: + path: /api/rest/2.0/searchdata + method: POST + data_selector: data + params: {} +- name: liveboard_report + endpoint: + path: /api/rest/2.0/report/liveboard + method: POST + data_selector: data + params: {} +- name: answer_report + endpoint: + path: /api/rest/2.0/report/answer + method: POST + data_selector: data + params: {} +- name: users_create + endpoint: + path: /api/rest/2.0/users/create + method: POST +- name: user_search + endpoint: + path: /api/rest/2.0/users/search + method: POST +- name: git_config_create + endpoint: + path: /api/rest/2.0/vcs/git/config/create + method: POST + data_selector: config + params: + repository_url: https://github.com/user/repo.git + username: ts-git-user + access_token: '{ACCESS_TOKEN}' + org_identifier: dev + branch_names: + - dev + - main + commit_branch_name: dev + configuration_branch_name: _ts_config +- name: git_config_update + endpoint: + path: /api/rest/2.0/vcs/git/config/update + method: POST +- name: git_config_search + endpoint: + path: /api/rest/2.0/vcs/git/config/search + method: POST +- name: git_config_delete + endpoint: + path: /api/rest/2.0/vcs/git/config/delete + method: POST +- name: current_user_info + endpoint: + path: /api/graphql/2.0 + method: POST + data_selector: getCurrentUserInfo + params: {} +- name: system + endpoint: + path: /system + method: GET + data_selector: data + params: {} +- name: deploy + endpoint: + path: /deploy + method: POST + data_selector: data + params: {} +- name: commit + endpoint: + path: /commit + method: POST + data_selector: data + params: {} +- name: webhook_notification + endpoint: + path: /webhook + method: POST +- name: metadata_import + endpoint: + path: /metadata/tml/import + method: POST + data_selector: object +- name: metadata_list + endpoint: + path: /metadata/list + method: GET + data_selector: objects +- name: metadata_export + endpoint: + path: /metadata/tml/export + method: POST + data_selector: tml +- name: Git configuration + endpoint: + path: /v2.0/git/configuration + method: POST +- name: connection + endpoint: + path: /connections + method: GET + data_selector: connections + params: {} +- name: table + endpoint: + path: /tables + method: GET + data_selector: tables + params: {} +- name: model + endpoint: + path: /models + method: GET + data_selector: models + params: {} +- name: worksheet + endpoint: + path: /worksheets + method: GET + data_selector: worksheets + params: {} +- name: answer + endpoint: + path: /answers + method: GET + data_selector: answers + params: {} +- name: liveboard + endpoint: + path: /liveboards + method: GET + data_selector: liveboards + params: {} +- name: view + endpoint: + path: /views + method: GET + data_selector: views + params: {} +- name: create_git_config + endpoint: + path: /api/rest/2.0/vcs/git/config/create + method: POST + data_selector: repository_url + params: {} +- name: update_git_config + endpoint: + path: /api/rest/2.0/vcs/git/config/update + method: POST + data_selector: repository_url + params: {} +- name: search_git_config + endpoint: + path: /api/rest/2.0/vcs/git/config/search + method: POST + data_selector: '' + params: {} +- name: delete_git_config + endpoint: + path: /api/rest/2.0/vcs/git/config/delete + method: POST + data_selector: '' + params: {} +- name: mapping_files + endpoint: + path: /system + method: GET + data_selector: mapping + params: {} +- name: deploy + endpoint: + path: /deploy + method: POST + data_selector: deploy + params: {} +- name: commit + endpoint: + path: /commit + method: POST + data_selector: commit + params: {} +- name: variables + endpoint: + path: /api/rest/2.0/template/variables/create + method: POST +- name: metadata_import + endpoint: + path: /metadata/tml/import + method: POST + data_selector: object +- name: metadata_list + endpoint: + path: /metadata/list + method: GET + data_selector: objects +- name: metadata_search + endpoint: + path: /metadata/search + method: GET + data_selector: objects +- name: metadata_export + endpoint: + path: /metadata/tml/export + method: POST + data_selector: response +- name: variables_create + endpoint: + path: /api/rest/2.0/template/variables/create + method: POST +- name: variables_update + endpoint: + path: /api/rest/2.0/template/variables/update + method: POST +- name: variable_update_properties + endpoint: + path: /api/rest/2.0/template/variables/{identifier}/update + method: POST +- name: variables_search + endpoint: + path: /api/rest/2.0/template/variables/search + method: POST +- name: variable_delete + endpoint: + path: /api/rest/2.0/template/variables/{identifier}/delete + method: POST +- name: parameterize_metadata + endpoint: + path: /metadata/parameterize + method: POST +- name: connection + endpoint: + path: /connections + method: GET + data_selector: connection + params: {} +- name: tables + endpoint: + path: /tables + method: GET + data_selector: tables + params: {} +- name: models + endpoint: + path: /models + method: GET + data_selector: models + params: {} +- name: views + endpoint: + path: /views + method: GET + data_selector: views + params: {} +- name: parameterize_metadata + endpoint: + path: /api/rest/2.0/metadata/parameterize + method: POST + data_selector: metadata_identifier + params: {} +- name: unparameterize_metadata + endpoint: + path: /api/rest/2.0/metadata/unparameterize + method: POST + data_selector: metadata_identifier + params: {} +- name: publish_metadata + endpoint: + path: /api/rest/2.0/security/metadata/publish + method: POST +- name: variables + endpoint: + path: /api/rest/2.0/template/variables/create + method: POST +- name: publish_metadata + endpoint: + path: /api/rest/2.0/security/metadata/publish + method: POST + data_selector: metadata + params: {} +- name: unpublish_metadata + endpoint: + path: /api/rest/2.0/security/metadata/unpublish + method: POST + data_selector: metadata + params: {} +- name: create_variable + endpoint: + path: /api/rest/2.0/template/variables/create + method: POST + data_selector: null + params: {} +- name: update_variable + endpoint: + path: /api/rest/2.0/template/variables/{identifier}/update + method: POST + data_selector: null + params: {} +- name: search_variables + endpoint: + path: /api/rest/2.0/template/variables/search + method: POST + data_selector: null + params: {} +- name: delete_variable + endpoint: + path: /api/rest/2.0/template/variables/{identifier}/delete + method: POST + data_selector: null + params: {} +- name: parameterize_metadata + endpoint: + path: /api/rest/2.0/metadata/parameterize + method: POST +- name: parameterize_metadata + endpoint: + path: /api/rest/2.0/metadata/parameterize + method: POST + data_selector: '' + params: {} +- name: unparameterize_metadata + endpoint: + path: /api/rest/2.0/metadata/unparameterize + method: POST + data_selector: '' + params: {} +- name: publish_metadata + endpoint: + path: /api/rest/2.0/security/metadata/publish + method: POST + data_selector: metadata + params: {} +- name: prod_template_group + endpoint: + path: /prod/template/group + method: GET + data_selector: template_objects + params: {} +- name: standard_data_groups + endpoint: + path: /standard/data/groups + method: GET + data_selector: tenant_tables + params: {} +- name: standard_content_groups + endpoint: + path: /standard/content/groups + method: GET + data_selector: models_answers_liveboards + params: {} +- name: tenant_content_groups + endpoint: + path: /tenant/content/groups + method: GET + data_selector: tenant_answers_liveboards + params: {} +- name: publish_metadata + endpoint: + path: /api/rest/2.0/security/metadata/publish + method: POST + data_selector: metadata + params: {} +- name: unpublish_metadata + endpoint: + path: /api/rest/2.0/security/metadata/unpublish + method: POST + data_selector: metadata + params: {} +- name: orgs + endpoint: + path: /api/rest/2.0/orgs/create + method: POST +- name: search_orgs + endpoint: + path: /api/rest/2.0/orgs/search + method: GET +- name: update_org + endpoint: + path: /api/rest/2.0/orgs/{org_identifier}/update + method: PUT +- name: delete_org + endpoint: + path: /api/rest/2.0/orgs/{org_identifier}/delete + method: DELETE +- name: org + endpoint: + path: /tspublic/v1/org/ + method: POST + data_selector: Org + params: {} +- name: get_orgs + endpoint: + path: /tspublic/v1/org/search + method: GET + data_selector: Orgs + params: {} +- name: edit_org + endpoint: + path: /tspublic/v1/org/ + method: PUT + data_selector: Org + params: {} +- name: delete_org + endpoint: + path: /tspublic/v1/org/ + method: DELETE + data_selector: Org + params: {} +- name: cluster_status + endpoint: + path: /api/rest/2.0/system/banner + method: GET + data_selector: banner_text + params: {} +- name: cluster_status_v1 + endpoint: + path: /tspublic/v1/admin/banner + method: GET + data_selector: banner_text + params: {} +- name: start_inactive_cluster + endpoint: + path: / + method: GET + params: + tse: 'true' + start_cluster: 'true' +- name: create_org + endpoint: + path: /api/rest/2.0/orgs/create + method: POST +- name: search_orgs + endpoint: + path: /api/rest/2.0/orgs/search + method: GET +- name: update_org + endpoint: + path: /api/rest/2.0/orgs/{org_identifier}/update + method: PATCH +- name: delete_org + endpoint: + path: /api/rest/2.0/orgs/{org_identifier}/delete + method: DELETE +- name: pendoIntegration + endpoint: + path: /integration/script + method: POST + data_selector: script +- name: org + endpoint: + path: /tspublic/v1/org/ + method: POST + data_selector: records +- name: org_search + endpoint: + path: /tspublic/v1/org/search + method: GET + data_selector: records +- name: org_edit + endpoint: + path: /tspublic/v1/org/ + method: PUT + data_selector: records +- name: org_delete + endpoint: + path: /tspublic/v1/org/ + method: DELETE + data_selector: records +- name: admin_banner + endpoint: + path: /callosum/v1/tspublic/v1/admin/banner + method: GET + data_selector: banner_text +- name: system_banner + endpoint: + path: /api/rest/2.0/system/banner + method: GET + data_selector: banner_text +- name: getRelevantQuestions + endpoint: + path: /api/rest/2.0/ai/relevant-questions/ + method: GET +- name: getAnswer + endpoint: + path: /api/rest/2.0/ai/agent/converse/sse + method: GET +- name: createLiveboard + endpoint: + path: /api/rest/2.0/liveboard + method: POST +- name: getDataSourceSuggestions + endpoint: + path: /api/rest/2.0/data-source-suggestions + method: GET +- name: start_inactive_cluster + endpoint: + path: / + method: GET + params: + tse: 'true' + start_cluster: 'true' +- name: ThoughtSpot Object + endpoint: + path: /?embedApp=true&p&col1={field_name}&op1=EQ&val1={!Account.Id}&OrgID={org_id}#/embed/viz/{liveboard_guid} + method: GET + data_selector: ThoughtSpot Content + params: {} +- name: pendoIntegrationScript + endpoint: + path: /docs/pendo-integration + method: GET + data_selector: script +- name: getRelevantQuestions + endpoint: + path: /api/rest/2.0/ai/relevant-questions/ + method: GET +- name: getAnswer + endpoint: + path: /api/rest/2.0/ai/agent/converse/sse + method: GET +- name: createLiveboard + endpoint: + method: POST +- name: getDataSourceSuggestions + endpoint: + method: GET +- name: ThoughtSpot Embed + endpoint: + path: /embed/viz/{liveboard_guid} + method: GET +- name: authentication + endpoint: + path: /docs/rest-apiv2-reference#_authentication + method: GET +- name: users + endpoint: + path: /docs/rest-apiv2-reference#_users + method: GET +- name: system + endpoint: + path: /docs/rest-apiv2-reference#_system + method: GET +- name: orgs + endpoint: + path: /docs/rest-apiv2-reference#_orgs + method: GET +- name: tags + endpoint: + path: /docs/rest-apiv2-reference#_tags + method: GET +- name: groups + endpoint: + path: /docs/rest-apiv2-reference#_groups + method: GET +- name: metadata + endpoint: + path: /docs/rest-apiv2-reference#_metadata + method: GET +- name: reports + endpoint: + path: /docs/rest-apiv2-reference#_reports + method: GET +- name: security + endpoint: + path: /docs/rest-apiv2-reference#_security + method: GET +- name: data + endpoint: + path: /docs/rest-apiv2-reference#_data + method: GET +- name: audit_logs + endpoint: + path: /docs/rest-apiv2-reference#_audit_logs + method: GET +- name: connections + endpoint: + path: /docs/rest-apiv2-reference#_connections + method: GET +- name: version_control + endpoint: + path: /docs/rest-apiv2-reference#_version_control + method: GET +- name: custom_actions + endpoint: + path: /docs/rest-apiv2-reference#_custom_actions + method: GET +- name: schedules + endpoint: + path: /docs/rest-apiv2-reference#_schedules + method: GET +- name: roles + endpoint: + path: /docs/rest-apiv2-reference#rbacRoles + method: GET +- name: dbt + endpoint: + path: /docs/rest-apiv2-reference#_dbt + method: GET +- name: Users + endpoint: + path: /docs/user-api + method: GET +- name: Groups + endpoint: + path: /docs/group-api + method: GET +- name: Session + endpoint: + path: /docs/session-api + method: GET +- name: Connections + endpoint: + path: /docs/connections-api + method: GET +- name: Metadata + endpoint: + path: /docs/metadata-api + method: GET +- name: TML + endpoint: + path: /docs/tml-api + method: GET +- name: System administration + endpoint: + path: /docs/admin-api + method: GET +- name: Custom actions + endpoint: + path: /docs/admin-api#_supported_operations + method: GET +- name: Dependency + endpoint: + path: /docs/dependent-objects-api + method: GET +- name: Search data API + endpoint: + path: /docs/search-data-api + method: GET +- name: Liveboard data API + endpoint: + path: /docs/liveboard-data-api + method: GET +- name: Liveboard Export API + endpoint: + path: /docs/liveboard-export-api + method: GET +- name: Security + endpoint: + path: /docs/security-api + method: GET +- name: Audit logs + endpoint: + path: /docs/logs-api + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Snowflake Performance & Consumption + endpoint: + path: /codespot/snowflake-performance-consumption-tml-block + method: GET +- name: Google Analytics + endpoint: + path: /codespot/google-analytics-tml-blocks + method: GET +- name: session + endpoint: + path: /tspublic/rest/v2/session + method: GET + data_selector: session_details +- name: user + endpoint: + path: /tspublic/rest/v2/user + method: GET + data_selector: user_details +- name: Snowflake Snowpark Loyalty Classification and RFM Analysis + endpoint: + path: /codespot/snowflake-snowpark-loyalty-classification-and-rfm-analysis + method: GET +- name: Snowflake Snowpark Predictive Churn Analysis + endpoint: + path: /codespot/snowflake-snowpark-predictive-churn-analysis + method: GET +- name: Snowflake Snowpark Time Series Forecasting + endpoint: + path: /codespot/snowflake-snowpark-time-series-forecasting + method: GET +- name: Snowflake Snowpark Sentiment Analysis + endpoint: + path: /codespot/snowflake-snowpark-sentiment-analysis + method: GET +- name: Keboola Shopify Template + endpoint: + path: /codespot/keboola-codespot-entry + method: GET +- name: Angular Starter App + endpoint: + path: /codespot/angular-starter-app + method: GET +- name: Databricks Storage & Performance Analytics + endpoint: + path: /codespot/databricks-storage-performance-analytics + method: GET +- name: Google Analytics + endpoint: + path: /codespot/google-analytics-tml-blocks + method: GET +- name: Jira Issue Management + endpoint: + path: /codespot/jira-tmp-hubspot + method: GET +- name: HubSpot Email Marketing SpotApp + endpoint: + path: /codespot/hubspot + method: GET +- name: ServiceNow Incident Management + endpoint: + path: /codespot/servicenow-incident-management + method: GET +- name: Okta Usage + endpoint: + path: /codespot/okta-tml-blocks + method: GET +- name: Redshift Storage & Performance + endpoint: + path: /codespot/redshift-tml-block + method: GET +- name: ThoughtSpot Postman API Collection + endpoint: + path: /codespot/thoughtspot-postman-api-collection + method: GET +- name: User Tools + endpoint: + path: /codespot/user-tools + method: GET +- name: CS Tools + endpoint: + path: /codespot/cs-tools + method: GET +- name: ThoughtSpot Everywhere Reference App + endpoint: + path: /codespot/thoughtspot-everywhere-reference-app + method: GET +- name: Visual Embed SDK + endpoint: + path: /codespot/visual-embed-sdk + method: GET +- name: D3 Sample Showcase + endpoint: + path: /codespot/d3-sample-showcase + method: GET +- name: group + endpoint: + path: /tspublic/rest/v2/group + method: GET +- name: admin_configuration + endpoint: + path: /tspublic/rest/v2/admin/configuration + method: GET +- name: metadata_tag + endpoint: + path: /tspublic/rest/v2/metadata/tag + method: GET +- name: connection + endpoint: + path: /tspublic/rest/v2/connection + method: GET +- name: data_search + endpoint: + path: /tspublic/rest/v2/data/search + method: POST +- name: report_answer + endpoint: + path: /tspublic/rest/v2/report/answer + method: POST +- name: security_permission + endpoint: + path: /tspublic/rest/v2/security/permission/tsobject + method: GET +- name: custom_action + endpoint: + path: /tspublic/rest/v2/customaction + method: GET +- name: logs_events + endpoint: + path: /tspublic/rest/v2/logs/events + method: GET +- name: session + endpoint: + path: /tspublic/rest/v2/session + method: GET +- name: user + endpoint: + path: /tspublic/rest/v2/user + method: GET +- name: group + endpoint: + path: /tspublic/rest/v2/group + method: GET +- name: admin_configuration + endpoint: + path: /tspublic/rest/v2/admin/configuration + method: GET +- name: metadata_tag + endpoint: + path: /tspublic/rest/v2/metadata/tag + method: GET +- name: connection + endpoint: + path: /tspublic/rest/v2/connection + method: GET +- name: data_search + endpoint: + path: /tspublic/rest/v2/data/search + method: POST +- name: report_answer + endpoint: + path: /tspublic/rest/v2/report/answer + method: POST +- name: security_permission_tsobject + endpoint: + path: /tspublic/rest/v2/security/permission/tsobject + method: GET +- name: customaction + endpoint: + path: /tspublic/rest/v2/customaction + method: GET +- name: logs_events + endpoint: + path: /tspublic/rest/v2/logs/events + method: GET +notes: +- The delete_aware property requires you to associate one ThoughtSpot environment + or Org to one commit branch in Git. +- Parallel deployment to multiple organizations within a single cluster is not supported. +- Requires OAuth2 setup for token-based authentication +- API calls may be rate-limited +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Requires setup of connected app in ThoughtSpot +- Ensure proper permissions are granted for API access +- These APIs are currently in beta and turned off by default on ThoughtSpot instances. + To enable this feature on your instance, contact ThoughtSpot Support. +- Some features are in beta and disabled by default. +- Consider security risks when injecting custom scripts. +- These APIs are designed to build context with each interaction, orchestrate reasoning, + and expose tools and skills for natural language analytics. +- IAMv2 is turned off by default. To enable it on your instance, contact ThoughtSpot + Support. +- The RBAC feature is in beta and turned off by default. To enable this feature, contact + ThoughtSpot Support. +- MFA is in beta and disabled by default on ThoughtSpot instances. +- To enable this feature, contact ThoughtSpot support. +- Row-level security via tokens Beta is supported only with the Trusted Authentication + method. +- The ThoughtSpot Developer Portal displays a locked icon next to the customization + menu actions on clusters that do not have the ThoughtSpot Embedded Edition license. +- Users can enable third-party cookies in Safari’s Preferences setting page or use + another web browser. +- When a visualization in Liveboard embed is opened in edit mode, empty spaces appear + beneath or above the visualization area. +- When names are used as identifiers in path parameters, the API requests return `400 + - Bad request` error. +- The `logLevel` property does not suppress ThoughtSpot application logs. +- Uses OAuth2 with refresh token — requires setup of connected app in ThoughtSpot +- The new version of the SDK introduces the `TrustedAuthTokenCookieless` `authType` + property to allow Cookieless embedding. +- The roles APIs work only if the Role-Based Access Control (RBAC) Beta feature is + enabled on your instance. +- The Cookieless authentication method allows using a bearer token to identify the + signed-in user instead of session cookies. +- The 204 response code doesn’t return a response body. +- The `POST /api/rest/2.0/auth/token/custom` API endpoint allows setting attributes + in API requests +- The 204 code doesn’t return a response body. +- IAMv1 will be deprecated tentatively in 10.8.0.cl. +- The roles APIs work only if the Role-Based Access Control (RBAC) Beta feature is + enabled on your instance. The RBAC feature is turned off by default. +- ThoughtSpot automatically assigns an action ID based on the name you assign to a + custom action. +- This feature is in beta and enabled by default on ThoughtSpot clusters. +- Starting with 10.4.0.cl, Worksheets are deprecated and disabled by default in ThoughtSpot. +- All existing Worksheets on your instance will be migrated automatically to Models. +- You can also register for a free trial and evaluate the SDK and APIs on ThoughtSpot + free trial cluster. +- You must add your embedding application domain(s) to the CSP and CORS allowlist + on the Develop > Customizations > Security Settings page in ThoughtSpot. +- Adjust CORS and CSP settings before embedding ThoughtSpot in your app. +- Use either `visibleActions` or `hiddenActions` to show or hide actions in the UI. + The SDK does not support simultaneous execution of `visibleActions` and `hiddenActions` + APIs. +- 'For more information about the configuration settings and parameters, see the following + pages: SearchViewConfig, SageViewConfig, SpotterAgentEmbedViewConfig, LiveboardViewConfig, + AppViewConfig.' +- A ThoughtSpot Liveboard is an interactive dashboard that presents a collection of + visualizations pinned by a user. +- The REST API Playground provides an interactive portal to explore REST API v1 and + v2.0 endpoints. +- When `fullHeight` is set to `true`, the SDK ignores the `isLiveboardHeaderSticky:true` + setting, and the Liveboard header will not be sticky. +- This feature is supported only if compact header is enabled on your Liveboard. +- If you want to display multiple charts or tables that have been saved in a Liveboard, + try to embed a single Liveboard rather than multiple individual visualizations. +- For code examples, see Code samples. +- The 'ConversationEmbed' and 'BodylessConversation' components are deprecated and + replaced with 'SpotterEmbed' and 'SpotterAgentEmbed' respectively in Visual Embed + SDK v1.38.0 and later. +- You have a ThoughtSpot instance with Spotter and Spotter Agent enabled. +- Your host application domain is added to ThoughtSpot CSP and CORS allowlists. +- You have a ThoughtSpot instance with Spotter Agent enabled. +- You have access to the latest version of the Visual Embed SDK or at least v1.33.1. +- This feature is supported only if compact header is enabled on your Liveboard. To + enable compact header, use the `isLiveboardCompactHeaderEnabled` attribute. +- The interface design and styling is controlled by your host app. +- If you must embed multiple visualizations, prefetch static resources before loading + the page. +- The legacy Natural Language Search interface, also referred to as `Sage`, will be + deprecated in July 2025. Customers who want to embed ThoughtSpot’s natural language + search interface are advised to upgrade to Spotter. +- The SageEmbed SDK allows customizing Natural Language Search experience in the embedded + view. +- The ConversationEmbed and BodylessConversation components are deprecated and replaced + with SpotterEmbed and SpotterAgentEmbed respectively in Visual Embed SDK v1.38.0 + and later. +- We do not recommend mixing full app embedding with the SearchEmbed and LiveboardEmbed + components. +- The Develop page and Analyst Studio option are not available in full application + embed. +- The AppEmbed component allows you to embed a specific application page or the entire + application experience. +- Ensure that the SVG hosting server is added to the CSP allowlist on the Develop + > Security Settings page. +- The SDK allows you to customize your +Add menu options by using the visibleActions, + hiddenActions and disabledActions properties. +- Some action enumerations and variables for custom styling are not supported in the + new data panel experience. +- The current version of the SDK doesn’t allow you to hide or collapse the data panel. +- Worksheets are deprecated and replaced by Models in ThoughtSpot Cloud 10.12.0.cl + and later versions. +- Uses ThoughtSpot SDK for embedding components +- Requires proper setup of ThoughtSpot host and authentication +- Currently, Mobile Embed SDKs support only cookieless authentication (`AuthType.TrustedAuthCookieless`) + method to authenticate embed users. +- The mobile embed SDKs currently support embedding only Liveboards in mobile apps. +- 'The following features will not be available on the embedded Liveboard page in + mobile apps: Personalized views, SpotIQ Analysis, AI Highlights, Renaming and making + a copy of a Liveboard, Scheduling Liveboard alerts and notifications, Exporting + or importing Liveboard TML, Request Verification, ThoughtSpot Sync features.' +- The React Native Embed SDK supports embedding a Liveboard component. +- Uses Cookieless Trusted authentication method. +- Ensure ThoughtSpot host URL is correct and accessible. +- Requires setup of ThoughtSpot instance and authentication method. +- Ensure that your host app embedding ThoughtSpot is added to the CSP and CORS allowlists + in ThoughtSpot. +- Uses None authentication method. +- iOS and Android platforms supported +- Ensure host app is added to CSP and CORS allowlists in ThoughtSpot +- Ensure that your ThoughtSpot host URL is correct and accessible. +- Check if the authentication credentials in your code are valid. +- Mobile embedding supports only the Cookieless Trusted authentication method. +- Custom CSS changes take precedence and override the style customization settings + applied via UI. +- Advanced style customization with custom CSS is available only with the ThoughtSpot + Embedded Edition license. +- Custom styles and CSS overrides applied at the Org level take precedence over style + customization settings at the cluster (All Orgs) level. +- The CSS customization framework allows overriding the default styles, color schemes, + design elements, and typography of ThoughtSpot elements to match the look and feel + of your host application. +- While the rules_UNSTABLE option allows granular customization of individual elements, + note that the rule-based style overrides can break when your ThoughtSpot instance + is upgraded to a new release version. +- Verify if custom styles are applied correctly. +- This feature is available only with the ThoughtSpot Embedded Edition license. +- Your icon image should be a square, and the recommended size is 140px by 140px. +- The recommended size for the wide logo is 330px by 100px. +- Before you begin, make sure you have the WOFF files available for the fonts you + want to use. +- Changes to chart and table defaults apply only to charts and features created after + you configure a value. +- If you change table fonts, older tables retain their previous fonts. +- You can declare multiple tags within one SVG file if you are substituting + a number of icons. +- ThoughtSpot provides multiple types of filters for various object types, which can + be applied in a layered fashion. +- Filters and parameter values defined via ABAC token that apply at the data model + layer are locked-in and always apply until changed or removed by a new token request. +- Filters and parameters set for ABAC token cannot be overridden by setting runtime + filters or Parameters in the browser. +- You can customize only the system-generated text in the UI. User-created text such + as object names, titles, or description text are not customizable. +- The strings and substrings in the ThoughtSpot UI are case-sensitive. +- The runtime filters operation returns an error if the URL exceeds 2000 characters. +- Attempting to override existing filter values with runtime filters while exporting + a Liveboard will result in an error. +- Runtime filters work only on Answers and Liveboard visualizations built from Models. +- Runtime filters allow you to apply filters on a Liveboard, Answer, visualization, + or conversation session with Spotter. +- The Visual Embed SDK allows you to customize the menu actions for the ThoughtSpot + components embedded in your app. +- The SDK doesn’t support configuring both `visibleActions` and `hiddenActions`. Use + the appropriate action ID to show or hide a UI action. +- The DATE and DATE_TIME data types must be specified as EPOCH time (Unix or POSIX + time) in runtime filters. +- Runtime parameters can be applied using Visual Embed SDK, REST APIs, or URL query + parameters. +- For DATE and DATE_TIME data types, provide values in Epoch time format. +- Uses OAuth2 with refresh token — requires setup of connected app in ThoughtSpot. +- Parameter values cannot be changed during a conversation session and may result + in unintended effects. +- If a user adds a Parameter to an answer through the edit flow, Spotter may drop + this Parameter and any formulas using it in follow-up interactions. +- Custom actions add a new menu item to various UI elements in an Answer or Liveboard + visualization +- ThoughtSpot users with developer or admin privileges can create various types of + custom actions. +- You can only assign one custom action as a primary button on a visualization or + Answer. +- Any ThoughtSpot user with admin or developer privileges can create URL custom actions + in the Developer portal. +- URL actions are available on both embedded and standalone ThoughtSpot instances + and do not require ThoughtSpot Embedded Edition license. +- Users must have the New Answer Experience enabled to access a URL action. +- For URL actions to work in the embedded mode, you must add the URL domain to the + CORS and CSP connect-src allowlist. +- Only ThoughtSpot users with edit permissions to a Model or visualization can add + a URL action to a Model, visualization, or saved Answer. +- URL-based custom actions do not support the localhost hostname. Use the IP address + 127.0.0.1 instead of localhost. +- Callback custom actions are supported on embedded ThoughtSpot instances only and + require a ThoughtSpot Embedded Edition license. +- Users with developer or admin privileges can create a callback custom action in + the Developer portal. +- Some endpoints may have rate limits +- By default, the global actions are added as a menu action in the More menu the more + options menu on all visualizations and saved answers. +- The local custom actions are not added as a clickable action on any Answer page + or visualization. +- The data payload includes various metrics related to account balances. +- Currency format is set to USD. +- Uses callback custom actions for Liveboard visualizations +- Some browsers (Safari in particular) default to strict settings on cookie origins + that prohibit the standard SSO process. +- Payloads are in JSON format. +- 'Custom actions add a new menu item to one of the following UI elements in an Answer + or Liveboard visualization: the primary menu bar, the More options menu, the contextual + menu that appears when a user right-clicks on an Answer or visualization.' +- Developers or administrators can set a custom action as a global or local action. +- Custom actions are displayed in the Custom actions panel on a saved Answer or visualization + page. +- Local custom actions are not assigned to any visualization by default. +- URL-based custom actions do not support the `localhost` hostname. Therefore, use + the IP address `127.0.0.1` instead of `localhost` when specifying the target URL. +- The authentication information you specify in these fields is visible to other authenticated + users, even if they do not have Developer or Admin privileges. +- Ensure custom actions are set as Local. +- Edit permissions are required to modify the Model. +- The new Answer experience must be enabled on your cluster. +- ThoughtSpot generates system-generated links in email notifications. +- Payloads include detailed information about account balances and related metadata +- The display language of the embedded ThoughtSpot UI is determined by the user’s + system locale. +- The API does not require authentication. +- ThoughtSpot does not translate column names, object titles, description text, formulas, + or metadata entered by the user. +- To ensure that embedding works on browsers that don’t allow third-party cookies, + set the domain name of the ThoughtSpot instance to the same domain as your host + application. +- Contact ThoughtSpot Support for domain-related customizations. +- Custom actions are enabled on your instance. +- ThoughtSpot allows only one primary action on a visualization or saved Answer page. + If you already have a primary action, you need to select another option or override + your current primary action setting. +- ThoughtSpot allows you to place only the URL and callback actions in the context + menu. App actions can be added only to the primary bar or More the more options + menu. +- Make sure the email address you provide is a valid email account that you can access. + When ThoughtSpot support triggers the email verification process, you will receive + a verification email with a link. You must click this link within 24 hours to confirm + your email address and authorize its use. If you don’t complete the email verification + process within 24 hours, contact ThoughtSpot support to start the email verification + process again. +- Make sure the custom actions are set as Local. +- Make sure you have edit permissions to modify the Model. +- Make sure the new Answer experience is enabled on your cluster. +- If you want your ThoughtSpot instance to send email notifications with a custom + domain name and a specific sender ID, contact ThoughtSpot Support. +- To send emails from a specific email account, you must update the Custom admin email + and From ID on the Admin > Application settings > Onboarding page. +- Customizing email settings per Org is not supported. +- These APIs are in beta and disabled by default on ThoughtSpot instances. To enable + these APIs on your instance, contact ThoughtSpot support. +- For overlapping components, customized configuration through these APIs overrides + the email configuration through the Admin > Onboarding page of your ThoughtSpot + instance. +- By default, ThoughtSpot does not translate column names, object titles, description + text, formulas, or metadata entered by the user. +- If you specify a currency when uploading data, that currency format does not change + when the locale changes. +- Validation email delivery requires the mail service to be enabled for the Org. If + email configuration is missing, emails will not be sent or received, regardless + of the API response. +- The embedding app will need routes for pages that dynamically load the ThoughtSpot + embed components. +- Object IDs in ThoughtSpot are GUIDs and unique on every Org or instance. +- To customize these parameters, contact ThoughtSpot Support. +- The endpoint can only request one object type at a time. +- Only users with a valid embed license can add Visual Embed hosts. +- Safari blocks all third-party cookies and does not support partitioned cookies. +- This `AuthType.None` authentication method is not recommended for Production use + cases. +- Many web browsers do not support third-party cookies. +- Validation email delivery requires the mail service to be enabled for the Org. +- Trusted authentication allows a web application to authenticate a user to a ThoughtSpot + instance using login tokens requested from a ThoughtSpot instance. +- The authentication type is defined in the init function. You can configure cookie-based + or cookieless authentication as per your deployment needs. +- The secret_key allows calling the ThoughtSpot token request REST APIs to generate + a token for any user. +- Requests with the secret_key do not require any type of user login or admin permissions. +- When you disable Trusted authentication, the validity of your existing secret key + expires, and your app may become inoperable. +- To a new secret key and generate authentication tokens, you must enable Trusted + authentication. +- The Visual Embed SDK uses the init() function to automate the request to the token + request service. +- ThoughtSpot allows CSP settings only at the cluster level, so you must switch to + the All Orgs context to configure CSP allowlists. +- Cookieless authentication only works with login tokens returned from the REST API + v2 endpoint. +- Cookie-based authentication establishes a browser-wide ThoughtSpot session. +- The token request service is a REST API endpoint added to the web application. +- Providing a REST API service allows the Visual Embed SDK to request new tokens whenever + they are needed to start a new ThoughtSpot session. +- This AuthType.None authentication method is not recommended for Production use cases. +- In cookieless authentication, the bearer token issued by the authentication server + is used to authenticate API requests to ThoughtSpot. +- secret_key must be stored securely; here we assume the ThoughtSpot server name and + secret_key are stored in env file +- CORS and CSP must be configured correctly for any embedding and REST API commands + to work from the browser. +- When implementing trusted authentication with session cookies, check if your browser + allows third-party cookies. +- You need admin privileges to enable SAML authentication on ThoughtSpot. +- When configuring SAML 2.0, make sure you map the SAML user attributes to appropriate + fields. +- Uses OAuth2 with TrustedAuthToken — requires setup of connected app in ThoughtSpot +- You must contact ThoughtSpot Support to enable OIDC authentication support on ThoughtSpot. +- You need admin privileges to enable OIDC authentication with IAMv2 on ThoughtSpot. +- secret_key must be stored securely and never revealed to the user in their browser. +- If the set-cookie response does not come through and actually sets the ThoughtSpot + cookies in the browser, sign-in will not complete. +- Make a note of all of the redirects within the SAML workflow. Each server must be + configured properly to allow the inbound and outbound portions of the SAML flow. +- Avoid using the same group for access control and roles/privileges, unless all users + and groups are definitely set to NOT SHAREABLE. +- OpenID Connect (OIDC) is an authentication protocol that adds an identity layer + to the OAuth 2.0 protocol. +- OIDC allows clients to verify a user’s identity based on the authentication performed + by an authorization server. +- Row-level security (RLS) is the term for filtering down to rows of data based on + a set of entitlements for a user. +- Column-level security (CLS) restricts user access to specific columns of a table. +- Both REST API V1 and V2 tokens support just-in-time provisioning of users. +- The ABAC feature is disabled by default on ThoughtSpot instances. To enable this + feature on your instance, contact ThoughtSpot Support. +- Automatically add SAML users to ThoughtSpot upon first authentication +- ThoughtSpot compresses the size of the JWT token by default to ensure that larger + payloads can be passed via JWT. +- On instances running 10.5.0.cl and 10.4.0.cl versions, if a column is set as hidden, + the is_mandatory_token_filter setting will not be applied to the column. +- The ABAC via tokens method requires using trusted authentication and using Worksheets + or Models as data sources for Liveboards and Answers, rather than individual Table + objects. +- To generate a JWT token with ABAC security rules, use the /api/rest/2.0/auth/token/custom + API endpoint. +- If using /api/rest/2.0/auth/token/full or /api/rest/2.0/auth/token/object, switch + to /api/rest/2.0/auth/token/custom. +- Token generation workflow does not support runtime sorting. +- As this feature directly impacts data security, it’s disabled by default on ThoughtSpot + instances. +- With the GA rollout, ThoughtSpot recommends switching your workflow to the auth/token/custom + API endpoint. +- 'Starting in ThoughtSpot 10.4.0.cl, you can add is_mandatory_token_filter: true + to the TML definition of any column in a Worksheet or Model.' +- Runtime filters require passing the exact ThoughtSpot Worksheet or Model column + name or will not apply to the data set. +- End users of an embedded app cannot have edit access to any worksheet using ABAC + RLS via tokens. +- Currently, the ABAC via tokens method requires using trusted authentication and + using Worksheets as data sources for Liveboards and Answers, rather than individual + Table objects. +- RLS rules are defined using either the ts_username variable or ts_groups variable. +- To generate a JWT token with ABAC security rules, ThoughtSpot recommends using the + /api/rest/2.0/auth/token/custom API endpoint. +- The default persist_option for token requests to the /api/rest/2.0/auth/token/custom + API endpoint is APPEND. +- To replace the persisted attributes, set persist_option to RESET in your POST API + call. +- Requires two containers for rendering the Liveboard. +- ThoughtSpot recommends leaving JWT compression on to ensure proper token interpretation. +- End users cannot have edit access to worksheets using ABAC RLS via tokens. +- Schedules created with JWT using ABAC will not follow the same security rules as + schedules created with standard RLS set up in ThoughtSpot. +- Runtime filter conditions must match the column names in your worksheet to avoid + data leakage. +- Setting fullHeight to true causes all visualizations on the Liveboard to load simultaneously. +- 'Setting lazyLoadFullHeight to true along with fullHeight: true allows lazy loading + for visualizations.' +- RLS rules are defined within ThoughtSpot on table objects, and automatically extend + to all Models, saved answers, and Liveboards based on that table, every time. +- The username or ThoughtSpot group name property must be an exact match to the values + within the database column. +- By default, the lazyLoadingForFullHeight attribute is set to false. +- The names of any ThoughtSpot groups used for access control must not accidentally + match with values in the database columns. +- Prefetching static resources is only effective when you can cache static resources + before rendering the embed. +- Currently, there is no support for selective user access through the APIs. +- The Visual Embed SDK provides configuration options to control how embedded apps + handle the height of frame and loading of visualizations on an embedded Liveboard. +- By default, the fullHeight parameter is set to false. +- This function needs to be called before any ThoughtSpot component like Liveboard + etc can be embedded. +- This feature is primarily intended for developer testing. It is strongly advised + not to use this authentication method in production. +- resetCachedAuthToken() resets the auth token and a new token will be fetched on + the next request. +- Use your own authentication server which returns a bearer token, generated using + the secret_key obtained from ThoughtSpot. +- This uses a cookieless authentication approach, recommended to bypass the third-party + cookie-blocking restriction implemented by some browsers. +- The configuration object containing ThoughtSpot host, authentication mechanism and + so on. +- Event types emitted by the embedded ThoughtSpot application. +- Uses ThoughtSpot Embed SDK for visualization events. +- 'Defined in : types.ts' +- Works with TS 9.8.0 and above +- This service allows you to interact with ThoughtSpot Answers programmatically, making + it easy to customize visualizations, filter data, and extract insights directly + from your application. +- AnswerService provides a simple way to work with ThoughtSpot Answers. +- contextMenuPoints includes clickedPoint and selectedPoints. +- embedAnswerData is a key-value pair structure. +- 'Version : SDK: 1.19.1 | ThoughtSpot: *' +- Destroys the ThoughtSpot embed, and remove any nodes from the DOM. +- 'Deprecated : from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl Use {@link SpotterAgentEmbed} + instead' +- Some objects may return nulls in deeply nested fields +- Embed a ThoughtSpot Liveboard or visualization. +- This option is for advanced use only and is used internally to control embed behavior + in non-regular ways. +- Use supported embed types such as AppEmbed or LiveboardEmbed. +- This option does not apply to the classic homepage. To access the updated modular + homepage, set modularHomeExperience to true (available as Early Access feature in + 9.12.5.cl). +- 'Supported embed types: AppEmbed, LiveboardEmbed' +- This option does not apply to the classic homepage. +- Optional properties for iframe configuration include height, loading, and width. +- This can provide performance benefits due to a lighterweight shell. +- 'Deprecated: If set to true, the context menu in visualizations will be enabled.' +- 'This embed will be deprecated from SDK: 1.40.0 | ThoughtSpot: 10.13.0.cl' +- This is an object (key/val) of override flags which will be applied to the internal + embedded object. +- Imports TML representation of the metadata objects into ThoughtSpot. +- Exports TML representation of the metadata objects from ThoughtSpot in JSON or YAML + format. +- Login failed, please try again +- You can customize styles, text strings, and icons. +- Uses OAuth2 for authentication +- The list of customization css variables. These are the only allowed variables possible. +- Please enable the Liveboard styling and grouping feature in your ThoughtSpot instance + and then set the isLiveboardStylingAndGrouping SDK flag to true to start modifying + this CSS variable. +- Customization options for embedded ThoughtSpot components include styles, text strings, + and icons. +- The Add to Coaching feature is currently in beta and is disabled by default on embed + deployments. +- To enable this feature on your instance, contact ThoughtSpot Support. +- All embedded ThoughtSpot objects require authentication. +- If the host application does not allow custom Javascript, you can use Basic authentication + with username and password or SSO authentication. +- Variable substitution required * `{thoughtspot-server}`. Your ThoughtSpot host + URL. * `{field_name}` represents the column from your ThoughtSpot model to be filtered. + * `{field_value}` sets the value from the column to filter on * `{org_id}`. If using + Orgs in ThoughtSpot, provide your Org identifier. If not using Orgs, set the ID + to 0. * `{liveboard_guid}`. Your Liveboard identifier. +- Any method of sign-in establishes a ThoughtSpot session in the browser. +- Credentials must be included in the request. +- Optional +- Ensure that the browser cookies are included when making the request. +- .withCredentials = true is important - this is what sends the cookies from the browser + session. +- Actions can be defined in the `disabledActions`, `visibleActions`, or `hiddenActions` + array. +- By default, Safari does not allow third-party cookies. +- Specify the domain URL string in the supported format for CORS allowlist. +- Some actions may be disabled based on the context. +- Some API responses may include deprecated fields +- 'Version : SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl' +- 'Version : SDK: 1.41.0 | ThoughtSpot Cloud: 10.13.0.cl' +- 'Version : SDK: 1.18.0| ThoughtSpot: 8.10.0.cl, 9.0.1.sw' +- 'Version : SDK: 1.32.0 | ThoughtSpot Cloud: 10.1.0.cl' +- 'Version : SDK: 1.28.3 | ThoughtSpot: 9.12.0.cl, 10.1.0.sw' +- 'Version : SDK: 1.34.0 | ThoughtSpot: 10.3.0.cl' +- ThoughtSpot supports local management of users. For initial development and testing + purposes, you can create users in ThoughtSpot and manage their profiles locally. +- Variable substitution required for {thoughtspot-server}, {field_name}, {field_value}, + {org_id}, {liveboard_guid}. +- Trusted authentication SSO method issues a REST API sign-in command automatically. +- The Spotter AI APIs are in beta and disabled by default on ThoughtSpot instances. + To enable these APIs on your instance, contact ThoughtSpot Support. +- .withCredentials = true is important - this is what sends the cookies from the browser + session +- The Get data source suggestions feature is not by default on all ThoughtSpot instances. +- ThoughtSpot supports local management of users. +- Administrators can use the security audit logs to detect potential security threats + or compromised user accounts in an organization. +- Requires ADMINISTRATION privilege to fetch logs. +- On Orgs-enabled clusters, fetches logs for the current Org. +- The Super admin role cannot be assigned, modified, or deleted. +- If importing only a Model object, it may take some time for the Model to become + available in the ThoughtSpot system. +- Uses the SSE protocol to deliver data incrementally. +- Requires Authorization Bearer token +- You can poll up to 100 API requests per minute to get details of your TML import + tasks. +- To set up connections with OAuth, make sure your connection metadata includes client + ID, client secret key, auth URL, and access token URL. +- On Orgs-enabled clusters, fetches security logs for the current Org. +- TML is a scriptable format developed by ThoughtSpot for exporting, modifying, and + migrating metadata objects. +- To use OAuth 2.0 authentication method, make sure your ThoughtSpot instance has + the required configuration to support the OpenID Provider or IdP that authenticates + your users. +- To trusted authentication to authenticate REST clients, make sure Trusted authentication + is enabled on your ThoughtSpot instance, and your authenticator service has access + to the secret key. +- You can use basic authentication with username and password for local development + or testing purposes. +- If MFA is enabled on your ThoughtSpot instance then authentication with only `username` + and `password` will return an error. +- REST API v2.0 uses JSON for the request and the response format +- By default, the bearer token is valid for 300 seconds. You can configure the token + expiry duration as per your requirement. +- The auth/token/custom API endpoint allows you to automatically create a user during + token generation. +- You must send some request in the body of the POST, even if this is only `{ }`. +- Obtain a bearer token or set session cookies before making an API request +- The /metadata/search endpoint is the most versatile of all metadata endpoints. +- Must send a request body even if it's just `{ }`. +- The /groups/search API endpoint is used to retrieve details about ThoughtSpot groups. +- Some fields may not be visible depending on user permissions. +- If no object ID or type is specified, the API returns a list of Liveboards. +- The default metadata type is set to LiVEBOARD. +- isConnectionConfigurationDisabled is false +- isExternal is false +- isDeprecated is false +- isSharedViaConnection is false +- syncWithSource is false +- isVerified is false +- isVersioningEnabled is false +- isPublished is false +- csrProtected is false +- Filter revenue manufacturer manufacturer != mfgr#2 mfgr#3 mfgr#4 manufacturer = + mfgr#1 +- To avoid join path ambiguities, a query can use only a single data source. +- Search execution of query strings is not case-sensitive. +- All column names in the data source must have unique names and must pass the case-insensitivity + test. +- Column names cannot contain square brackets. +- Values must be enclosed in quotes, but they cannot contain quotes. +- The API does not support in-query formula definitions. +- isHidden is true +- The downloadable file returned in API response file is extensionless. You need to + rename the downloaded file by typing in the relevant extension. +- HTML rendering is not supported for PDF exports of Answers with tables. +- Disable SSL verification for testing purposes +- Users must be authenticated and have read access to the data source. +- Uses token-based authentication. +- SSL verification is disabled for testing purposes. +- Access to ThoughtSpot data is controlled based on user privileges and object-level + permissions. +- Any completed log-in process will return session cookies from the ThoughtSpot system, + which must be included with any subsequent REST API call. +- Uses trusted authentication with session tokens. +- The API endpoint responds for one type at a time, so you must decide which object + types to bring back and catalog. +- To paginate, set offset in multiples of the batchsize value until you reach a response + that is smaller than the batchsize value or is empty. +- The endpoint requires a list of GUIDs. +- Responses include nested objects with GUIDs. +- Privileges are inherited from groups. +- Session cookies must be included with any subsequent REST API call. +- Some objects like User may return nulls in deeply nested fields +- The Org name string must be unique and does not exceed 48 characters. +- On ThoughtSpot instances running 9.8.0.cl or later, the name supports only [a-z], + [A-Z], [0-9], and [-]. +- You must have administrator access to create, edit, and delete a user. +- All users created are added to ALL. +- The Org name string must be unique. Make sure the name string length does not exceed + 48 characters. +- On ThoughtSpot instances running 9.8.0.cl or later release versions, the name string + supports only [a-z], [A-Z], [0-9], and [-]. Space and other special characters are + not supported. +- To create a user, you require admin user privileges. +- All users created in the ThoughtSpot system are added to ALL. +- ThoughtSpot has a default group called 'All'. +- Ensure to use a JSON file encoded as application/json or text/json for the principals + attribute in sync operation. +- The Group API endpoints allow you to programmatically create and manage user groups, + configure privileges, and assign users to a group. +- To create and manage roles, you need ROLE_ADMINISTRATION. +- To assign roles to a group object, you need GROUP_ADMINISTRATION and ROLE_ADMINISTRATION + privileges. +- ThoughtSpot has a default group called 'All' which cannot be deleted. +- The Session APIs allow ThoughtSpot users to authenticate and manage their sessions. +- You must have data management permissions to create, edit, delete or query data + connection objects. +- Make sure your user account has the DATAMANAGEMENT privilege. +- Requires ThoughtSpot login credentials to create a session object and obtain a login + token. +- Requires data management permissions to create, edit, delete or query data connection + objects. +- Use the connection_id to specify the GUID of the data connection. +- The tables parameter allows fetching one or several tables from multiple external + databases. +- Dependency in ThoughtSpot is defined as a relation between the referenced and referencing + objects. +- You must have edit access to the metadata objects that you want to query. +- You must have view access to the data source objects to run a search query. +- The search data API allows you to pass the search query string as query parameters + in the URL. +- ThoughtSpot recommends using Liveboard data API to embed ThoughtSpot content within + a native mobile app. +- Requires Org administration privileges to access TML objects across all Orgs. +- To remove ThoughtSpot logos from the exported PDFs, contact your ThoughtSpot team. +- To query object permissions, you must have administrator access. +- To share an object or visualization with another user, you must have edit access + to the object. +- Object permission details can be retrieved for multiple types and IDs. +- The API supports sharing visualizations with specified user IDs. +- When fetching logs via API, there can be a 30-minute delay between the actual event + time and when that event is available via the logs API endpoint. +- The PDF layout type can be either PINBOARD or VISUALIZATION. +- The runtime sort operation returns an error if the URL exceeds 2000 characters. +- Querying metadata objects by subtypes is not supported in the current release. +- You can also use your cluster’s secret key here for authentication. +- Apollo caches requests, so it’s recommended to reset the store on logout. +- No authentication is not recommended for production environments. +- ThoughtSpot does not recommend TML export and import across different versions of + ThoughtSpot application because the TML syntax, supported features, and object schemas + can vary between releases and can sometimes lead to compatibility issues and validation + errors. +- The publishing feature Beta enables administrators to create a single main object + in the Primary Org and distribute it to other Orgs within the instance. +- ThoughtSpot currently supports integrating with GitHub / GitHub Enterprise. +- ThoughtSpot’s Git integration does not support moving objects within the same Org. + Use the TML REST APIs directly if you need to make copies with variations within + a single Org. +- ThoughtSpot does not recommend committing changes to Git directly and deploying + these changes back in a ThoughtSpot development environment. +- Git integration requires configuration within both ThoughtSpot and your Git provider + (GitHub currently). +- API v2.0 has fewer endpoints but supports all user administration and CRUD operations + from API v1. +- The `Bearer_token` value must be requested for the desired Org, specified through + the `org_id` value of the full access token REST API request. +- The mapping file is updated when a new object is first created in the destination + Org and receives its automatically generated GUID from the ThoughtSpot instance. +- Mapping is performed with an exact string Find/Replace operation, on the TML objects + directly before the import. +- Your destination application has a callback URL to accept HTTP POST requests. +- If you plan to use OAuth authentication, make sure you have the OAuth credentials + and authorization URL of your application. +- If you plan to use an API key for authentication, ensure that you have a valid API + key. +- ThoughtSpot does not consider object display name for a TML file, but does use name + matching for data object references within a TML file. +- In versions prior to 9.0.0.cl, ThoughtSpot did not consistently use the GUID provided + in the TML file for a new object when that GUID was not already in use on that ThoughtSpot + instance. +- If no branch name is specified, by default, the ts_config_files branch is considered. +- The publishing feature—including the REST APIs for variable creation and update, + metadata parameterization, and publishing content across Orgs—is in beta and turned + off by default on ThoughtSpot instances. +- Only ThoughtSpot administrators with access to all Orgs can publish objects. +- Objects can be published only from the Primary Org to other Orgs. +- In the target Orgs, published objects are available in read-only mode. The original + object in the Primary Org remains editable only by the cluster administrator. +- Spotter functionality is not supported for published objects. +- Search data indexing is disabled for published tables. +- Git integration is not supported for published objects. +- Variables allow you to define dynamic placeholders for specific properties of metadata + objects such as Connections and Tables. +- Data objects can only be joined to other objects from a single connection +- Any single search (an Answer or a visualization on a Liveboard) can only connect + to data objects from a single connection +- Ensure that variables are available on your instance. +- Ensure that you have edit access to the Connections and Tables to which you want + to assign variables. +- The publishing feature—including the REST APIs for variable creation and update, + metadata parameterization, and publishing content across Orgs—is in beta and turned + off by default on ThoughtSpot instances. To enable this feature on your instance, + contact ThoughtSpot Support. +- The API doesn’t support publishing Connections. +- ThoughtSpot is actively working on enhancements to support critical features and + key user scenarios. Some of these existing limitations will be addressed in upcoming + releases. +- Published objects are visible only to administrators of the specific Org. +- The Orgs multi-tenancy features require the ThoughtSpot Analytics Enterprise Edition + or ThoughtSpot Embedded license. +- Orgs will be enabled by default on all new ThoughtSpot Enterprise cloud instances. +- This feature is disabled by default. To enable this option, contact ThoughtSpot + Support. +- To enable Orgs support for SAML authentication on ThoughtSpot, contact ThoughtSpot + Support. +- To enable Orgs support for OIDC authentication on ThoughtSpot, contact ThoughtSpot + Support. +- Orgs multi-tenancy features require the ThoughtSpot Analytics Enterprise Edition + or ThoughtSpot Embedded license. +- For all Org operations, you must set the org scope to ALL in your API request. +- Single-tenant databases require separate connections in ThoughtSpot for each database + in most cases. +- Groups can be set to SHAREABLE or NOT SHAREABLE depending on the content and users. +- Feature for integrating third-party tools is disabled by default. +- Contact ThoughtSpot Support to enable the feature. +- The **CSP script-src domains** section is visible to users with administrative privileges + only if the third-party integration feature is enabled on your instance. +- The **CSP script-src domains** cannot be enabled and configured at the Org level. + When configured, this setting will apply to all the Orgs configured on your instance. +- By default, the third-party tool integration feature is disabled on ThoughtSpot + instances. To enable this feature, contact ThoughtSpot Support. +- ThoughtSpot strongly recommends that you review your organization’s security guidelines + and assess potential security risks associated with the injection of custom scripts + and third-party tools. +- Requires setup of connected app in Pendo +- Ensure the domain hosting the script is allowed in CSP settings +- You must set the org scope to `ALL` in your API request and pass it as a query parameter + in the request URL. +- Users must have at least view access to the data source. +- Ensure that data is modeled. Large or complex data sources may impact response time. +- Simplified integration using Lightning Web Components (LWC) +- Enhanced customization and interactivity +- Support for authentication mechanisms like SAML and Trusted Authentication +- Feature for integrating third-party tools is disabled by default on ThoughtSpot + instances. +- Enabling the feature involves contacting ThoughtSpot Support. +- The CSP script-src domains section is visible to users with administrative privileges + only if the third-party integration feature is enabled on your instance. +- The CSP script-src domains cannot be enabled and configured at the Org level. When + configured, this setting will apply to all the Orgs configured on your instance. +- Use Basic Auth for embedding +- Update CORS settings in Salesforce with ThoughtSpot cluster URL +- To set up Trusted authentication for Vercel integration, Can administer ThoughtSpot + (administrator) privilege is required. +- ThoughtSpot Developer Edition does not offer Trusted Authentication. +- Users upgrading from Free Trial to Developer Edition may have to change the code + samples slightly to use Basic authentication. +- ThoughtSpot recommends using Trusted authentication method to seamlessly authenticate + your application users. +- If you anticipate frequent updates to the script, choose a hosting service that + allows content overrides without changing the URL. +- ThoughtSpot Cloud ts7.may.cl or later required for embedding methods. +- ThoughtSpot’s Agentic Model Context Protocol (MCP) Server enables integrating ThoughtSpot + analytics directly into any AI agent, custom chatbot, or LLM-based systems and platforms + that support MCP. +- Embed using REST APIs supports data APIs to embed ThoughtSpot content. +- By embedding ThoughtSpot Analytics in your app, you can enrich your application + experience with ThoughtSpot’s search and live analytics capabilities. +- Each conversation is session-based. Ensure that session IDs are managed correctly + in your integration. +- Basic Auth used in this LWC, no SSO. +- ThoughtSpot recommends using Trusted authentication method to seamlessly authenticate + application users. +- ThoughtSpot supports embedding Search bar, Search page, Liveboard, visualizations, + and the full ThoughtSpot experience in a web application, product, or portal. +- ThoughtSpot requires a license to embed components. +- The style customization feature allows rebranding UI elements, logo, fonts, and + color scheme of charts. +- Uses Embedded SSO for authentication. +- Your app must allow iFrame embedding +- Your app must support SSO authentication +- Uses OAuth2 with Embedded SSO for authentication. +- ThoughtSpot is the Search & AI-driven Analytics platform for the enterprise. +- REST API v2 endpoints are deprecated. +errors: +- 'ALL_OR_NONE: Reverts all objects; fails if any object fails to revert.' +- 'PARTIAL: Reverts subset of objects that validate successfully.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Check your authentication credentials' +- '403 Forbidden: Insufficient permissions for the requested resource' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '400 - Bad request: If the identifier is a required attribute in the path parameter + and contains a forward slash `/`.' +- 'Invalid YAML/JSON syntax in file: On exporting and reimporting TML in YAML format + in the REST API v2 Playground.' +- '401 Unauthorized: Check authentication setup.' +- '404 Not Found: Ensure the endpoint is correct.' +- 'Error: Ensure authentication credentials in your code are valid.' +- 'Error: Check if the Liveboard ID is correct.' +- 'AuthError: Failed to fetch auth token' +- 'Error: Check if the authentication credentials are valid.' +- 'Error: Verify if the app has the required network permissions.' +- 'Auth initialized: Check if your authentication process is working correctly.' +- 'Reload: Ensure that the reload action is triggered appropriately.' +- The runtime filters operation returns an error if the URL exceeds 2000 characters. +- Attempting to override existing filter values with runtime filters while exporting + a Liveboard will result in an error. +- Error if an object URL with Parameter attributes exceeds 2000 characters. +- 'API: API call failure error.' +- 'FULLSCREEN: Error in presenting a Liveboard or visualization in the full screen + mode.' +- 'SINGLE_VALUE_FILTER: Error in updating filter values.' +- 'NON_EXIST_FILTER: Error in applying filter due to a non-existent filter.' +- 'INVALID_DATE_VALUE: Error due to invalid date value in a filter.' +- 'INVALID_OPERATOR: Error due to an invalid operator in filter properties.' +- '403 Forbidden: Check API permissions' +- '404 Not Found: Verify endpoint URL' +- '500 Internal Server Error: Try again later' +- 'API: API call failure error. This error event occurs when an API request is blocked.' +- 'Unable to get the metadata/list response: Check API parameters or endpoint.' +- 'EXPIRY: Token has expired' +- 'IDLE_SESSION_TIMEOUT: Session has timed out due to inactivity' +- 'NO_COOKIE_ACCESS: Unable to access cookies' +- 'OTHER: General authentication failure' +- 'SDK: SDK related authentication failure' +- 'UNAUTHENTICATED_FAILURE: Authentication failed' +- UNAUTHENTICATED_FAILURE +- 'FAILURE: Emitted when the SDK fails to authenticate' +- 'LOGOUT: Emits when a user logs out' +- 'SAML_POPUP_CLOSED_NO_AUTH: Emitted when the SAML popup is closed without authentication' +- 'SDK_SUCCESS: Emits when the SDK authenticates successfully' +- 'SUCCESS: Emits when the app sends an authentication success message' +- 'FAILURE: Emits when the SDK fails to authenticate' +- 'Unable to get the response: Check your network connection or API endpoint.' +- Refused to frame "" because an ancestor violates the following Content + Security Policy directive. +- The CORS allowlist does not allow wildcard(*) expression for domain URLs. +- My account is locked and I am unable to log in to the app with my SSO credentials. +- '401 Unauthorized: Check if your API requests are authorized. Make sure your ThoughtSpot + user account has edit privileges to access and modify ThoughtSpot objects.' +- '401 Unauthorized: Check OAuth credentials or token expiration' +- 'disabledActions: [Action.ShowUnderlyingData]' +- 'disabledActions: [Action.SpotIQAnalyze]' +- 'hiddenAction: [Action.SpotterFeedback]' +- 'hiddenAction: [Action.SpotterTokenQuickEdit]' +- 'hiddenAction: [Action.SpotterWarningsBanner]' +- 'hiddenAction: [Action.SpotterWarningsOnTokens]' +- 'disabledActions: [Action.Subscription]' +- 'disabledActions: [Action.SyncToOtherApps]' +- 'disabledActions: [Action.SyncToSheets]' +- 'disabledActions: [Action.SyncToSlack]' +- 'disabledActions: [Action.SyncToTeams]' +- 'hiddenAction: [Action.TML]' +- 'disabledActions: [Action.ToggleSize]' +- 'disabledActions: [Action.UnsubscribeScheduleHomepage]' +- 'disabledActions: [Action.UpdateTML]' +- 'hiddenAction: [Action.VerifiedLiveboard]' +- 'disabledActions: [Action.ViewScheduleRunHomepage]' +- Refused to frame '' because an ancestor violates the following Content + Security Policy directive. +- '401 Unauthorized: Check if your API requests are authorized' +- '401 Unauthorized: Check if the user has ADMINISTRATION privilege.' +- '400 Bad Request: Ensure all required parameters are provided.' +- '400: Invalid request' +- '401: Unauthorized access' +- '403: Forbidden access' +- '500: Unexpected Error' +- '200: Async TML import task status fetched successfully' +- '401 Unauthorized: Check your ADMINISTRATION privilege.' +- '400 Bad Request: Verify the parameters provided in the request.' +- '401: Indicates an unauthorized request. Check if you have the required credentials + and object access to send the API request.' +- '403: Indicates forbidden access. Check your access privileges and user account + status.' +- '400: Indicates a bad request. You may have to modify the request before making + another call.' +- 204 Successful logon +- 400 Bad request Invalid username or password +- 401 Unauthorized success +- 500 Operation failed +- '500: Failed operation' +- '204: The user is logged out of ThoughtSpot' +- '400: Indicates a bad request.' +- '401: Indicates an unauthorized request.' +- '403: Indicates forbidden access.' +- '415: Indicates an unsupported media type.' +- '500: Indicates an internal server error.' +- '204: Successful logon' +- '400: Bad request Invalid username or password' +- '401: Unauthorized success' +- '500: Operation failed' +- '500: Failed operation or unauthorized request' +- Received HTTP response {status} with the message {statusText} +- HTTP response indicates an error from the API +- '404 Not Found: The requested resource does not exist.' +- '500 Internal Server Error: An unexpected error occurred on the server.' +- '400: Bad Request - Ensure the parameters are correct.' +- '401: Unauthorized - Check user authentication and permissions.' +- '400: Request failed due to unsupported operations or invalid input.' +- '401: Unauthorized error' +- '400: Incorrect input' +- '401 Unauthorized: Recheck username and password or secret key' +- '415: Indicates an unsupported media type. Check the media type specified in the + Content-Type header.' +- '500: Indicates an internal server error. Check if the data format of the request + is supported. Verify if the server is available and can process the request.' +- '401: Login failure/unauthorized request' +- '400: Invalid parameter value' +- '401: Unauthorized request or invalid token' +- '500: Token-based trusted authentication is not enabled on ThoughtSpot' +- '401: Logout failure/unauthorized request' +- '400: Invalid parameter' +- '403: Unauthorized request' +- '400: Invalid parameter values' +- '409: Username is not unique' +- '500: Incorrect password format' +- '204: Successful operation' +- '400: Invalid user ID' +- '500: Invalid email format' +- '204: Password update is successful.' +- '204: Password reset is successful.' +- '204: Successful update of a user profile' +- '204: The ownership of objects is successfully transferred.' +- '400: Invalid `fromName` or `toName`, or no user in the ThoughtSpot that matches + the specified username.' +- '500: Invalid request' +- '400: Invalid parameter values Unauthorized user addition to an org' +- '401 Unauthorized: Check your admin privileges.' +- 500 Incorrect password format +- 400 Invalid user ID +- 500 Invalid email format +- 403 Unauthorized request +- '415: Invalid content type' +- '401: Unauthorized request' +- '500: Invalid parameter' +- '500: Invalid group or user ID' +- '500: Internal error' +- '200: Successful operation' +- '401 Unauthorized: Unauthorized request or invalid token' +- '204: Successful log out of user' +- 204 Successful operation +- 400 Invalid parameter +- '500: Invalid connection object ID' +- '400: Invalid connection ID' +- '401: Unauthorized request or wrong credentials' +- '500: Invalid connection ID' +- '401 Unauthorized: Invalid token' +- '400 Invalid parameter: Check request parameters' +- '403 Unauthorized request: Access denied' +- '204: Successful application of tag to a metadata object' +- '500: Invalid metadata object ID' +- '500: Invalid metadata type' +- '404: The requested resource could not be found' +- '401 Unauthorized: Unauthorized or wrong credentials' +- '500: The connection could not be created' +- '400: Invalid metadata subtype' +- '500 Invalid parameters: Invalid parameters' +- '400: Invalid object ID' +- '400: Invalid object or user ID' +- '401 Unauthorized: Unauthorized request or wrong credentials' +- '500 Invalid connection ID: The connection could not be deleted due to table dependencies' +- '401 Unauthorized: Unauthorized request' +- '404 Invalid action ID: Invalid action ID' +- '500 Request parsing error: Request parsing error' +- '400: Bad request' +- '401: Unauthorized - wrong credentials' +- '403: Forbidden - incorrect permissions' +- '404: Not found' +- '500: Internal server error' +- '500: Null object ID' +- '404: Invalid action ID' +- '400: Invalid query/data source' +- '400: Invalid Liveboard ID' +- '403: No read access for Liveboard' +- '404: Object not found' +- '500: The specified view is not materialized or the materialized view is not stale' +- '500: Invalid input or server error' +- 'CSP_ERROR: Check the CSP allowlist' +- 'NETWORK_ERROR: Verify the hosting URL is accessible' +- Error loading TS library +- '401 Unauthorized: You must obtain a new access token.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential + - AuthType + - EmbedEvent + - AuthType.EmbeddedSSO + - AuthType.TrustedAuthTokenCookieless + - AuthType.TrustedAuthToken + - AuthType.SAMLRedirect + - AuthType.OIDCRedirect + - AuthType.NONE + - AuthType.Basic + - SAML + - IdP server + - Privileges + - Access Control + - Data Security + - AuthEvent + - AuthFailureType + - AuthStatus + - AuthEventEmitter + - TrustedAuth + - SessionInterface + - VizPoint + - AppViewConfig + - DATAMANAGEMENT + - CAN_CREATE_OR_EDIT_CONNECTIONS + - GetFullAccessTokenRequest + - Token + - User + - ROLE_ADMINISTRATION + - GROUP_ADMINISTRATION + - SERVICE_ACCOUNT + - OAUTH + - IAM + - EXTOAUTH + - TS_HOST + - TS_SECRET_KEY + - SAML SSO + - OpenID connect authentication + - Basic authentication + - Trusted authentication with tokens +client: + base_url: https://{ThoughtSpot-Host} + auth: + type: oauth2 + location: header + header_name: Authorization + headers: + Accept: application/json + Content-Type: application/json +source_metadata: null diff --git a/tikneuron/tikneuron-docs.md b/tikneuron/tikneuron-docs.md new file mode 100644 index 00000000..843ac93e --- /dev/null +++ b/tikneuron/tikneuron-docs.md @@ -0,0 +1,150 @@ +In this guide, we'll set up a complete TikNeuron data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def tikneuron_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "http://tikneuron.com/api/v1/", + "auth": { + "type": "apikey", + "token": "access_token", + }, + }, + "resources": [ + tiktok/subtitle,,tiktok/summarize,,tools/tiktok-comment-picker + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='tikneuron_migration_pipeline', + destination='duckdb', + dataset_name='tikneuron_migration_data', + ) + # Load the data + load_info = pipeline.run(tikneuron_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from tikneuron_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- tiktok: Endpoints related to TikTok functionalities such as subtitles and summaries. +- tools: Tools for managing TikTok comments. + +You will then debug the TikNeuron pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with TikNeuron support. + ```shell + dlt init dlthub:tikneuron_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for TikNeuron API, as specified in @tikneuron_migration-docs.yaml + Start with endpoints tiktok/subtitle and and skip incremental loading for now. + Place the code in tikneuron_migration_pipeline.py and name the pipeline tikneuron_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python tikneuron_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Authentication is done using an API key provided in the header named 'API-KEY'. + + To get the appropriate API keys, please visit the original source at http://tikneuron.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python tikneuron_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline tikneuron_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset tikneuron_migration_data + The duckdb destination used duckdb:/tikneuron_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline tikneuron_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("tikneuron_migration_pipeline").dataset() + # get iktok/subtitl table as Pandas frame + data.iktok/subtitl.df().head() + ``` + +## Running into errors? + +TikNeuron operates on a credit system; each use of the Comment Picker costs 10 credits. The number of API calls depends on the user's subscription plan and available credits. Free users receive a limited number of credits per month. Users may encounter errors such as '401 Unauthorized' for invalid API keys, '404 No Subtitle' for unavailable subtitles, and '422 Validation' for invalid URLs or formats. Additionally, there is a daily limit for free features. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/tikneuron/tikneuron-docs.yaml b/tikneuron/tikneuron-docs.yaml new file mode 100644 index 00000000..59838735 --- /dev/null +++ b/tikneuron/tikneuron-docs.yaml @@ -0,0 +1,82 @@ +resources: +- name: tiktok_summarize + endpoint: + path: /tiktok/summarize + method: POST + data_selector: summary + params: + url: required + summary_type: optional + language: optional +- name: tiktok_subtitle + endpoint: + path: /tiktok/subtitle + method: POST + data_selector: subtitle_content + params: + url: required + format: optional +- name: tiktok_diarization + endpoint: + path: /tiktok/diarization + method: POST + data_selector: transcription_content + params: + url: required + format: optional +- name: tiktok_summary + endpoint: + path: /tiktok/summarize + method: POST + data_selector: summary + params: + url: required + summary_type: optional + language: optional +- name: tiktok_subtitle + endpoint: + path: /tiktok/subtitle + method: POST + data_selector: subtitle_content + params: + url: required + format: optional +- name: tiktok_diarization + endpoint: + path: /tiktok/diarization + method: POST + data_selector: transcription_content + params: + url: required + format: optional +- name: comment_picker + endpoint: + path: /tools/tiktok-comment-picker + method: POST + data_selector: random_comments + params: + credits: 10 +notes: +- Uses a credit system, each use of the Comment Picker costs 10 credits. +- Supports videos with up to 20,000 comments. +- The number of MCP calls you can make depends on your subscription plan and available + credits. Free users receive 20 credits per month, while paid plans offer more. +- Uses Google OAuth for authentication +- Uses Google Authentication for user sign-in +errors: +- '401 Unauthorized: Invalid API Key' +- '404 No Subtitle: No subtitle available for this video' +- '422 Validation: Invalid URL or format' +- '422 Validation: The given data was invalid.' +- 'DAILY_LIMIT_EXCEEDED: You''ve reached your daily limit for TikNeuron''s free features.' +auth_info: + mentioned_objects: [] +client: + base_url: http://tikneuron.com/api/v1 + auth: + type: apikey + location: header + header_name: API-KEY + headers: + Content-Type: application/json +source_metadata: null diff --git a/time_to_reply/time-to-reply-docs.md b/time_to_reply/time-to-reply-docs.md new file mode 100644 index 00000000..43c50444 --- /dev/null +++ b/time_to_reply/time-to-reply-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Time to Reply data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def time_to_reply_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://portal.timetoreply.com/api/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + users,,items,,alerts + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='time_to_reply_migration_pipeline', + destination='duckdb', + dataset_name='time_to_reply_migration_data', + ) + # Load the data + load_info = pipeline.run(time_to_reply_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from time_to_reply_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- General: Includes user-related actions like fetching user details. +- Items: Contains operations related to items within the system. +- Alerts: Endpoints for retrieving alert notifications. +- Emails: Manages email interactions and data. + +You will then debug the Time to Reply pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Time to Reply support. + ```shell + dlt init dlthub:time_to_reply_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Time to Reply API, as specified in @time_to_reply_migration-docs.yaml + Start with endpoints users and and skip incremental loading for now. + Place the code in time_to_reply_migration_pipeline.py and name the pipeline time_to_reply_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python time_to_reply_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The API uses OAuth2 for authentication and requires a valid OAuth token for access. The access token must be passed in the Authorization header. + + To get the appropriate API keys, please visit the original source at https://portal.timetoreply.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python time_to_reply_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline time_to_reply_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset time_to_reply_migration_data + The duckdb destination used duckdb:/time_to_reply_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline time_to_reply_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("time_to_reply_migration_pipeline").dataset() + # get ser table as Pandas frame + data.ser.df().head() + ``` + +## Running into errors? + +Be mindful of the API's rate limits, which can restrict the number of requests you make within a certain timeframe. Tokens have an expiration time of 1 year, and requests are assigned to the user that generated the access token. Ensure proper pagination handling for large datasets as some responses may return paginated data. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/time_to_reply/time-to-reply-docs.yaml b/time_to_reply/time-to-reply-docs.yaml new file mode 100644 index 00000000..d2d65ffc --- /dev/null +++ b/time_to_reply/time-to-reply-docs.yaml @@ -0,0 +1,8560 @@ +resources: +- name: overview + endpoint: + path: /overview + method: GET + data_selector: records + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' + viewId: '1' + showHourOfDayForAgents: '0' +- name: all_agent_stats + endpoint: + path: /api/reports/overview + method: GET + data_selector: data + params: {} +- name: overview_report + endpoint: + path: /reports/overview + method: GET + data_selector: records + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' + viewId: '1' + showHourOfDayForAgents: '0' +- name: all_domain_stats + endpoint: + path: /api/reports/overview + method: GET + data_selector: data +- name: all_customer_stats + endpoint: + path: /api/reports/overview + method: GET + data_selector: data +- name: overview + endpoint: + path: /api/reports/overview + method: GET + data_selector: records + params: + from: '2020-01-01' + to: '2020-01-08' +- name: all_agent_stats + endpoint: + path: /api/reports/overview + method: GET + data_selector: data + params: + page: 1 +- name: overview + endpoint: + path: /overview + method: GET + data_selector: reports + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' + viewId: '1' + showHourOfDayForAgents: '0' + page: '251' +- name: overview + endpoint: + path: /api/reports/overview + method: GET + data_selector: data + params: + per_page: 2 +- name: overview + endpoint: + path: /reports/overview + method: GET + data_selector: data + params: + per_page: 2 +- name: users + endpoint: + path: /api/tools/users + method: GET + headers: + Authorization: Bearer {YOUR_AUTH_KEY} + Content-Type: application/json + Accept: application/json + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: overview + endpoint: + path: /reports/overview + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + sort_by: threads.total + direction: desc + per_page_agents: 2 + page_agents: 1 +- name: productivity_report + endpoint: + path: /reports/productivity + method: GET + data_selector: data + params: + date: '2020-01-01' + model: My Company + model_type: Internal + model_com: '1' + model_type_com: Contact Group + per_page: '2' + page: '1' + sort_by_email_volumes: messages_sent_count + direction_email_volumes: desc + sort_by_conversations: threads_count + direction_conversations: desc + sort_by_average_reply_times: initialTTR + direction_average_reply_times: desc + sort_by_responsiveness: replies_under_7200 + direction_responsiveness: desc + sort_by_activity: first_activity + direction_activity: desc + viewId: '1' +- name: overview + endpoint: + path: /reports/overview + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + sort_by: threads.total + direction: desc + per_page_agents: 2 + page_agents: 1 + per_page_contacts: 2 + page_contacts: 1 + per_page_domains: 2 + page_domains: 1 + closed_over: 15 + viewId: 1 + showHourOfDayForAgents: 0 +- name: email_volumes + endpoint: + path: /email_volumes + method: GET + data_selector: data + params: + per_page: 2 + page: 1 +- name: activity + endpoint: + path: /activity + method: GET + data_selector: data + params: + per_page: 2 + page: 1 +- name: conversations + endpoint: + path: /conversations + method: GET + data_selector: data + params: + per_page: 2 + page: 1 +- name: average_reply_times + endpoint: + path: /average_reply_times + method: GET + data_selector: data +- name: overview + endpoint: + path: /reports/overview + method: null + data_selector: null + params: {} +- name: responses + endpoint: + path: /api/reports/responses + method: GET + data_selector: data + params: + per_page: 2 + page: 1 +- name: stats + endpoint: + path: /api/reports/stats + method: GET + data_selector: stats +- name: users + endpoint: + path: /api/tools/users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: users + endpoint: + path: api/tools/users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: productivity_report + endpoint: + path: /reports/productivity + method: GET + data_selector: data + params: + date: '2020-01-01' + model: My Company + model_type: Internal + model_com: '1' + model_type_com: Contact Group + per_page: '2' + page: '1' + sort_by_email_volumes: messages_sent_count + direction_email_volumes: desc + sort_by_conversations: threads_count + direction_conversations: desc + sort_by_average_reply_times: initialTTR + direction_average_reply_times: desc + sort_by_responsiveness: replies_under_7200 + direction_responsiveness: desc + sort_by_activity: first_activity + direction_activity: desc + viewId: '1' +- name: comparative_report + endpoint: + path: /api/reports/comparative + method: GET + data_selector: records + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: email_volumes + endpoint: + path: /reports/email_volumes + method: GET + data_selector: data + params: + per_page: 2 + page: 1 +- name: activity + endpoint: + path: /reports/activity + method: GET + data_selector: data + params: + per_page: 2 + page: 1 +- name: conversations + endpoint: + path: /reports/conversations + method: GET + data_selector: data + params: + per_page: 2 + page: 1 +- name: average_reply_times + endpoint: + path: /reports/average_reply_times + method: GET + data_selector: data + params: {} +- name: overallTTR.raw + endpoint: + path: /reports/overallTTR/raw + method: GET + data_selector: overallTTR.raw +- name: threads.total + endpoint: + path: /reports/threads/total + method: GET + data_selector: threads.total +- name: data + endpoint: + path: /reports/data + method: GET +- name: responsiveness + endpoint: + path: /reports/responsiveness + method: GET +- name: stats + endpoint: + path: /reports/stats + method: GET +- name: users + endpoint: + path: /api/tools/users + method: GET + headers: + Authorization: Bearer {YOUR_AUTH_KEY} + Content-Type: application/json + Accept: application/json + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: interactions + endpoint: + path: /api/reports/interactions + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Mailbox + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: users + endpoint: + path: /api/tools/users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: '2' + page: '1' + search: peter +- name: comparative_report + endpoint: + path: /reports/comparative + method: GET + data_selector: body + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: overallTTR.raw + endpoint: + path: /reports/overallTTR + method: GET + data_selector: overallTTR.raw + params: {} +- name: threads.total + endpoint: + path: /reports/threads + method: GET + data_selector: threads.total + params: {} +- name: SLA Report + endpoint: + path: /api/reports/sla + method: GET + data_selector: response + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' + viewId: '1' + init_ttr_goal: 02:00:00 + overall_ttr_goal: 02:00:00 + overall_ttc_goal: 02:00:00 +- name: interactions + endpoint: + path: /api/reports/interactions + method: GET + data_selector: [] + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Mailbox + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: [] + params: {} +- name: sla_reports + endpoint: + path: /reports/sla + method: GET + data_selector: reports + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' + viewId: '1' + init_ttr_goal: 02:00:00 + overall_ttr_goal: 02:00:00 + overall_ttc_goal: 02:00:00 + page: '1' +- name: sla_report + endpoint: + path: /reports/sla + method: GET + data_selector: body + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' + viewId: '1' + init_ttr_goal: 02:00:00 + overall_ttr_goal: 02:00:00 + overall_ttc_goal: 02:00:00 +- name: sla_report + endpoint: + path: /reports/sla + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' +- name: threads + endpoint: + path: /threads + method: GET + data_selector: threads +- name: messages + endpoint: + path: /messages + method: GET + data_selector: messages +- name: sla_report + endpoint: + path: / + method: GET + data_selector: reports +- name: reports_sla + endpoint: + path: /reports/sla + method: GET + data_selector: data + params: {} +- name: sla_report + endpoint: + path: /reports/sla + method: GET +- name: sla_reports + endpoint: + path: /reports/sla + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal +- name: sla + endpoint: + path: /reports/sla + method: GET + data_selector: data + params: + per_page: 2 +- name: users + endpoint: + path: api/tools/users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: sla_report + endpoint: + path: /reports/sla + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + sort_by: threads.total + direction: desc + per_page_agents: 2 + page_agents: 1 + per_page_contacts: 2 + page_contacts: 1 + per_page_domains: 2 + page_domains: 1 + closed_over: 15 + viewId: 1 + init_ttr_goal: 02:00:00 + overall_ttr_goal: 02:00:00 + overall_ttc_goal: 02:00:00 +- name: sla + endpoint: + path: /reports/sla + method: GET + data_selector: data + params: + per_page: 2 +- name: trend_report + endpoint: + path: /api/reports/trend + method: GET + data_selector: response + params: + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + date: '2020-01-01' + periods: '12' + period_type: Months + show_agents: '1' + closed_over: '15' + viewId: '1' +- name: users + endpoint: + path: /api/tools/users + method: GET + headers: + Authorization: Bearer {YOUR_AUTH_KEY} + Content-Type: application/json + Accept: application/json + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: users + endpoint: + path: api/tools/users + method: GET + data_selector: users + params: {} +- name: trend_report + endpoint: + path: /reports/trend + method: GET + data_selector: response + params: + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + date: '2020-01-01' + periods: '12' + period_type: Months + show_agents: '1' + closed_over: '15' + viewId: '1' +- name: contacts_report + endpoint: + path: /api/reports/contact + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + page_emails: '1' + direction_emails: desc + sort_by_emails: threads.total + page_domains: '1' + per_page_domains: '2' + direction_domains: desc + sort_by_domains: threads.total + closed_over: '15' + viewId: '1' +- name: users + endpoint: + path: /api/tools/users + method: GET + headers: + Authorization: Bearer {YOUR_AUTH_KEY} + Content-Type: application/json + Accept: application/json + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: emails + endpoint: + path: /api/reports/contact + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + page_emails: 1 + per_page_emails: 2 + direction_emails: desc + sort_by_emails: threads.total + page_domains: 1 + per_page_domains: 2 + direction_domains: desc + sort_by_domains: threads.total + closed_over: 15 + viewId: 1 + page: 1 +- name: contacts_report + endpoint: + path: /reports/contact + method: GET + data_selector: records + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + page_emails: '1' + per_page_emails: '2' + direction_emails: desc + sort_by_emails: threads.total + page_domains: '1' + per_page_domains: '2' + direction_domains: desc + sort_by_domains: threads.total + closed_over: '15' + viewId: '1' +- name: contact_reports + endpoint: + path: /api/reports/contact + method: GET + data_selector: data +- name: contact + endpoint: + path: /api/reports/contact + method: GET +- name: emails + endpoint: + path: /api/reports/contact + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + page_emails: 1 + per_page_emails: 2 + direction_emails: desc + sort_by_emails: threads.total + page_domains: 1 + per_page_domains: 2 + direction_domains: desc + sort_by_domains: threads.total + closed_over: 15 + viewId: 1 + page: 1 +- name: contact + endpoint: + path: /reports/contact + method: GET +- name: contact + endpoint: + path: /reports/contact + method: GET +- name: contact_reports + endpoint: + path: /reports/contact + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' +- name: users + endpoint: + path: /api/tools/users + method: GET + headers: + Authorization: Bearer {YOUR_AUTH_KEY} + Content-Type: application/json + Accept: application/json + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: contact + endpoint: + path: /reports/contact + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + page_emails: '1' +- name: teams_report + endpoint: + path: /teams + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Team + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: threads.total + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: contact_report + endpoint: + path: /reports/contact + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' +- name: contact + endpoint: + path: /reports/contact + method: GET + params: + per_page: 2 +- name: teams + endpoint: + path: /api/reports/teams + method: GET + data_selector: data + params: + model: 1 + model_type: Team +- name: users + endpoint: + path: /api/tools/users + method: GET + headers: + Authorization: Bearer {YOUR_AUTH_KEY} + Content-Type: application/json + Accept: application/json + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: teams_report + endpoint: + path: /api/reports/teams + method: GET + data_selector: response + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Team + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: threads.total + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: users + endpoint: + path: api/tools/users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: teams + endpoint: + path: /api/reports/teams + method: GET + data_selector: records + params: + incremental: from +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: users + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: group_mailboxes + endpoint: + path: /group-mailboxes + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Group Mailbox + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: group_mailboxes + endpoint: + path: /reports/group-mailboxes + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + model: 1 + model_type: Group Mailbox + exclude_cc: 0 + per_page: 2 +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: response + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Group Mailbox + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: threads.total + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: users + endpoint: + path: api/tools/users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + model: 1 + model_type: Group Mailbox + exclude_cc: 0 + per_page: 2 + sort_by: threads.total + direction: desc + viewId: 1 +- name: alerts_report + endpoint: + path: /api/reports/alerts/1 + method: GET + data_selector: response + params: + days: '7' + page: '1' + sort: desc +- name: users + endpoint: + path: /api/tools/users + method: GET + headers: + Authorization: Bearer {YOUR_AUTH_KEY} + Content-Type: application/json + Accept: application/json + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: emails + endpoint: + path: /api/reports/emails + method: GET + data_selector: data + params: {} +- name: alerts + endpoint: + path: /api/reports/alerts/1 + method: GET + data_selector: alerts + params: + days: 7 + per_page: 10 + sort: desc +- name: alerts_report + endpoint: + path: /api/reports/alerts/1 + method: GET + data_selector: response + params: + days: '7' + page: '1' +- name: messages + endpoint: + path: /messages + method: GET + data_selector: data +- name: users + endpoint: + path: /users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: alerts + endpoint: + path: /reports/alerts/1 + method: GET + data_selector: alerts + params: + days: '7' +- name: alerts_report + endpoint: + path: /api/reports/alerts/1 + method: GET + data_selector: response + params: + days: '7' + page: '1' + sort: desc +- name: messages + endpoint: + path: /messages + method: GET + data_selector: data +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: users + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: alerts + endpoint: + path: /reports/alerts/1 + method: GET + params: + days: '7' +- name: alerts_report + endpoint: + path: /api/reports/alerts/1 + method: GET + data_selector: body + params: + days: '7' + page: '1' + sort: desc +- name: messages + endpoint: + path: /messages + method: GET + data_selector: data +- name: users + endpoint: + path: /api/tools/users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: alerts + endpoint: + path: /1 + method: GET + params: + days: '7' + per_page: '10' + sort: desc +- name: users + endpoint: + path: /api/tools/users + method: GET + headers: + Authorization: Bearer {YOUR_AUTH_KEY} + Content-Type: application/json + Accept: application/json + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: conversation_logs + endpoint: + path: /api/logs/conversations + method: GET + data_selector: threads.data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: last_received_at_date_time + direction: desc + page: '1' + closed_over: '15' + columns[0]: id + columns[1]: init_agent_reply_time + viewId: '1' + unfilteredView: '0' +- name: conversations + endpoint: + path: /api/logs/conversations + method: GET + data_selector: threads.data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: last_received_at_date_time + direction: desc + page: '1' + closed_over: '15' + columns[0]: id + columns[1]: init_agent_reply_time + viewId: '1' + unfilteredView: '0' +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: records + params: {} +- name: conversations_get_by_subject_or_email + endpoint: + path: /api/logs/conversations/get-by-subject-or-email + method: GET + data_selector: records + params: + search: Support Query +- name: conversations_get_by_internet_message_id + endpoint: + path: /api/logs/conversations/get-by-internet-message-id + method: GET + data_selector: records + params: + internet_message_id: 1601678270iYOoAwCjDD@TnlYu0KwPhwXxhcTAeHFJMHlI.DrfT +- name: conversations_mark_closed + endpoint: + path: /api/logs/conversations/mark-closed + method: POST + data_selector: records + params: {} +- name: conversations_exclude_from_sla_breach + endpoint: + path: /api/logs/conversations/exclude-from-sla-breach + method: POST + data_selector: records + params: {} +- name: conversations_remove_exclude_from_sla_breach + endpoint: + path: /api/logs/conversations/remove-exclude-from-sla-breach + method: POST + data_selector: records + params: {} +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: records + params: {} +- name: conversations_get_by_subject_or_email + endpoint: + path: /api/logs/conversations/get-by-subject-or-email + method: GET + data_selector: records + params: + search: Support Query +- name: conversations_get_by_internet_message_id + endpoint: + path: /api/logs/conversations/get-by-internet-message-id + method: GET + data_selector: records + params: + internet_message_id: 1601678270iYOoAwCjDD@TnlYu0KwPhwXxhcTAeHFJMHlI.DrfT +- name: conversations_mark_closed + endpoint: + path: /api/logs/conversations/mark-closed + method: POST + data_selector: records + params: + ids: + - 8 + - 6 + - 7 + - 5 + - 3 + - 0 + - 9 +- name: conversations_exclude_from_sla_breach + endpoint: + path: /api/logs/conversations/exclude-from-sla-breach + method: POST + data_selector: records + params: + ids: + - 8 + - 6 + - 7 + - 5 + - 3 + - 0 + - 9 +- name: conversations_remove_exclude_from_sla_breach + endpoint: + path: /api/logs/conversations/remove-exclude-from-sla-breach + method: POST + data_selector: records + params: + ids: + - 8 + - 6 + - 7 + - 5 + - 3 + - 0 + - 9 +- name: users + endpoint: + path: /tools/users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: messages + endpoint: + path: /api/logs/messages + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: date_time + direction: desc + page: '1' + closed_over: '15' + columns[0]: date_time + columns[1]: subject + viewId: '1' + unfilteredView: '0' +- name: users + endpoint: + path: /api/tools/users + method: GET + params: {} +- name: exclude_from_sla_breach + endpoint: + path: /api/logs/messages/exclude-from-sla-breach + method: POST + data_selector: ids + params: {} +- name: remove_exclude_from_sla_breach + endpoint: + path: /api/logs/messages/remove-exclude-from-sla-breach + method: POST + data_selector: ids + params: {} +- name: stat_breakdown + endpoint: + path: /api/logs/stat-breakdown + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: users + params: {} +- name: exclude_from_sla_breach + endpoint: + path: /api/logs/messages/exclude-from-sla-breach + method: POST + data_selector: ids + params: {} +- name: remove_exclude_from_sla_breach + endpoint: + path: /api/logs/messages/remove-exclude-from-sla-breach + method: POST + data_selector: ids + params: {} +- name: stat_breakdown + endpoint: + path: /api/logs/stat-breakdown + method: GET + data_selector: data + params: + stat: threads.total + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: last_received_at_date_time + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: users + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: search + endpoint: + path: /entities/search + method: GET + data_selector: data + params: + per_page: '2' + page: '1' + search: Top Revenue + type: all +- name: search + endpoint: + path: /entities/search + method: GET + data_selector: data + params: + per_page: '2' + page: '1' + search: Top Revenue + type: all +- name: users + endpoint: + path: /tools/users + method: GET + data_selector: data + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 +- name: mailbox_invites + endpoint: + path: /entities/agents/invites + method: GET + data_selector: data + params: + sort_by: name + direction: desc + page: 1 + per_page: 15 +- name: load_bulk_agents + endpoint: + path: /entities/agents/microsoft/load-bulk-agents + method: GET + data_selector: users +- name: mailbox_list + endpoint: + path: /entities/agents + method: GET + data_selector: data + params: + sort_by: name + direction: asc + per_page: '2' + page: '1' +- name: mailbox_invite_list + endpoint: + path: /entities/agents/invites + method: GET + data_selector: data + params: + sort_by: name + direction: desc + per_page: '15' + page: '1' +- name: bulk_agents + endpoint: + path: /entities/agents/microsoft/load-bulk-agents + method: GET + data_selector: users +- name: users + endpoint: + path: api/tools/users + method: GET + data_selector: users + params: {} +- name: bulk_add + endpoint: + path: api/entities/agents/microsoft/select-bulk + method: POST + data_selector: success + params: {} +- name: bulk_add_gmail + endpoint: + path: api/entities/agents/gmail/select-bulk + method: POST + data_selector: success + params: {} +- name: update_ews + endpoint: + path: api/entities/agents/1/ews + method: PATCH + data_selector: status + params: {} +- name: delete + endpoint: + path: api/entities/agents/1 + method: DELETE + data_selector: status + params: {} +- name: delete_multiple + endpoint: + path: api/entities/agents/delete-multiple + method: POST + data_selector: status + params: {} +- name: search_bulk_agents + endpoint: + path: /entities/agents/microsoft/search-bulk-agents + method: GET + data_selector: users + params: + search: peter +- name: select_bulk + endpoint: + path: /entities/agents/microsoft/select-bulk + method: POST + data_selector: success + params: + users: + - email: peter.rabbit@o365.com + name: Peter Rabbit + userPrincipalName: peter.rabbit@o365.com +- name: load_bulk_agents_gmail + endpoint: + path: /entities/agents/gmail/load-bulk-agents + method: GET + data_selector: users +- name: select_bulk_gmail + endpoint: + path: /entities/agents/gmail/select-bulk + method: POST + data_selector: success + params: + users: + - email: peter.rabbit@gmail.com + name: Peter Rabbit +- name: update_ews + endpoint: + path: /entities/agents/1/ews + method: PATCH + data_selector: status + params: + host: outlook.office365.com/EWS/Exchange.asmx + version: Exchange2013 + username: example@example.com + password: secret +- name: delete_mailbox + endpoint: + path: /entities/agents/1 + method: DELETE + data_selector: status +- name: delete_multiple_mailboxes + endpoint: + path: /entities/agents/delete-multiple + method: POST + data_selector: status + params: + ids: + - 1 + - 2 + - 3 +- name: re_authenticate_mailbox + endpoint: + path: /api/entities/agents/1/re-auth + method: GET +- name: update_mailbox + endpoint: + path: /api/entities/agents/1/update + method: PATCH +- name: search_all_mailboxes + endpoint: + path: /api/entities/agents/search-all-company-mailboxes + method: GET + params: + per_page: '2' + page: '1' + search: Peter Rabbit +- name: invite_as_users + endpoint: + path: /api/tools/users/invite-as-users + method: POST +- name: remind_auth_invitation + endpoint: + path: /api/entities/agents/remind/1 + method: PATCH +- name: delete_auth_invitation + endpoint: + path: /api/entities/agents/invite/1 + method: DELETE +- name: get_users + endpoint: + path: /api/tools/users + method: GET +- name: re_authenticate_mailbox + endpoint: + path: /api/entities/agents/1/re-auth + method: GET + data_selector: null + params: {} +- name: update_mailbox + endpoint: + path: /api/entities/agents/1/update + method: PATCH + data_selector: null + params: {} +- name: search_all_mailboxes + endpoint: + path: /api/entities/agents/search-all-company-mailboxes + method: GET + data_selector: null + params: + per_page: '2' + page: '1' + search: Peter Rabbit +- name: invite_as_users + endpoint: + path: /api/tools/users/invite-as-users + method: POST + data_selector: null + params: {} +- name: remind_auth_invite + endpoint: + path: /api/entities/agents/remind/1 + method: PATCH + data_selector: null + params: {} +- name: delete_auth_invite + endpoint: + path: /api/entities/agents/invite/1 + method: DELETE + data_selector: null + params: {} +- name: get_users + endpoint: + path: /api/tools/users + method: GET + data_selector: null + params: {} +- name: contacts + endpoint: + path: /entities/contacts + method: GET + data_selector: data.data + params: + sort_by: name + direction: asc + per_page: 25 + page: 1 +- name: contacts_store + endpoint: + path: /entities/contacts + method: POST + data_selector: data + params: {} +- name: contacts_delete + endpoint: + path: /entities/contacts/{id} + method: DELETE + data_selector: data + params: {} +- name: contacts_delete_multiple + endpoint: + path: /entities/contacts/delete-multiple + method: POST + data_selector: data + params: {} +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: records + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: contacts + endpoint: + path: /api/entities/contacts/create-multi + method: POST + data_selector: customers + params: {} +- name: contacts + endpoint: + path: /api/entities/contacts + method: GET + data_selector: data + params: + sort_by: name + direction: asc + per_page: 25 + page: 1 +- name: contacts_store + endpoint: + path: /api/entities/contacts + method: POST + data_selector: data +- name: contacts_delete + endpoint: + path: /api/entities/contacts/{id} + method: DELETE + data_selector: data +- name: contacts_delete_multiple + endpoint: + path: /api/entities/contacts/delete-multiple + method: POST + data_selector: data +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: data + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 +- name: contact_groups + endpoint: + path: /entities/contact-groups + method: GET + data_selector: records + params: + sort_by: name + direction: asc + per_page: '15' + page: '1' +- name: users + endpoint: + path: /tools/users + method: GET + data_selector: null + params: + sort_by: null + direction: null + per_page: null + page: null + search: null +- name: contacts + endpoint: + path: /entities/contacts/create-multi + method: POST + data_selector: null + params: {} +- name: Constant Contact Customer Group + endpoint: + path: /services/data/vXX.X/sobjects/ConstantContactCustomerGroup + method: GET + data_selector: records +- name: contact_groups + endpoint: + path: /entities/contact-groups + method: GET + data_selector: tracking-events + params: + sort_by: name + direction: asc + per_page: '15' + page: '1' +- name: customer_domains + endpoint: + path: /api/v1/customer_domains + method: GET + data_selector: domains +- name: customer_emails + endpoint: + path: /api/v1/customer_emails + method: GET + data_selector: emails +- name: customer_group + endpoint: + path: /api/v1/customer_groups + method: GET + data_selector: data + params: {} +- name: customer_domains + endpoint: + path: /customer_domains + method: GET + data_selector: customer_domains +- name: customer_emails + endpoint: + path: /customer_emails + method: GET + data_selector: customer_emails +- name: customer_emails + endpoint: + path: /services/data/vXX.X/objects/CustomerEmails + method: GET + data_selector: records +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomains + method: GET + data_selector: records + params: {} +- name: customer_emails + endpoint: + path: /services/data/vXX.X/sobjects/CustomerEmails + method: GET + data_selector: records + params: {} +- name: contact-groups + endpoint: + path: /entities/contact-groups + method: GET + params: + sort_by: name + direction: asc + per_page: 15 + page: 1 +- name: customer_emails + endpoint: + path: /services/data/vXX.X/sobjects/CustomerEmails + method: GET + data_selector: records + params: + incremental: updated_at +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: '' + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: contact_groups + endpoint: + path: /api/entities/contact-groups + method: POST + data_selector: '' + params: {} +- name: users + endpoint: + path: /tools/users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: customer_emails + endpoint: + path: /services/data/vXX.X/sobjects/CustomerEmails + method: GET + data_selector: emails + params: {} +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomains + method: GET + data_selector: domains + params: {} +- name: contact_groups + endpoint: + path: /entities/contact-groups + method: GET + data_selector: records + params: {} +- name: contact_groups_update + endpoint: + path: /entities/contact-groups/1 + method: PUT + data_selector: records +- name: contact_groups_delete + endpoint: + path: /entities/contact-groups/1 + method: DELETE + data_selector: records +- name: contact_groups_add_email + endpoint: + path: /entities/contact-groups/1/pushEmail + method: PATCH + data_selector: records +- name: contact_groups_remove_email + endpoint: + path: /entities/contact-groups/1/removeEmail + method: PATCH + data_selector: records +- name: contact_groups_remove_members + endpoint: + path: /entities/contact-groups/1/removeMembers + method: PATCH + data_selector: records +- name: contact_groups_add_domain + endpoint: + path: /entities/contact-groups/1/pushDomain + method: PATCH + data_selector: records +- name: contact_groups_remove_domain + endpoint: + path: /entities/contact-groups/1/removeDomain + method: PATCH + data_selector: records +- name: contact_groups + endpoint: + path: /entities/contact-groups + method: POST + data_selector: response + params: {} +- name: users + endpoint: + path: /tools/users + method: GET + data_selector: response + params: {} +- name: contact_groups + endpoint: + path: /entities/contact-groups/1 + method: GET + data_selector: response + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: group_mailboxes + endpoint: + path: /entities/group-mailboxes + method: GET + data_selector: data + params: + per_page: '25' + page: '1' + search: Sales + sort_by: name + direction: asc +- name: user + endpoint: + path: /tools/users + method: GET + data_selector: data + params: + sort_by: complete_name + direction: asc + per_page: '2' + page: '1' + search: peter +- name: group_mailbox_members_list + endpoint: + path: /entities/group-mailboxes/1/agents + method: GET + data_selector: data + params: + sort_by: name + direction: asc + per_page: '2' + page: '1' +- name: teams_list + endpoint: + path: /entities/teams + method: GET + data_selector: data + params: + per_page: '25' + page: '1' + sort_by: name + direction: asc + search: ACME + include_emails: '0' +- name: store_team + endpoint: + path: /entities/teams + method: POST + data_selector: data + params: {} +- name: contact_groups_update + endpoint: + path: /api/entities/contact-groups/1 + method: PUT +- name: contact_groups_delete + endpoint: + path: /api/entities/contact-groups/1 + method: DELETE +- name: contact_groups_add_email + endpoint: + path: /api/entities/contact-groups/1/pushEmail + method: PATCH +- name: contact_groups_remove_email + endpoint: + path: /api/entities/contact-groups/1/removeEmail + method: PATCH +- name: contact_groups_remove_members + endpoint: + path: /api/entities/contact-groups/1/removeMembers + method: PATCH +- name: contact_groups_add_domain + endpoint: + path: /api/entities/contact-groups/1/pushDomain + method: PATCH +- name: contact_groups_remove_domain + endpoint: + path: /api/entities/contact-groups/1/removeDomain + method: PATCH +- name: teams + endpoint: + path: /entities/teams + method: GET + data_selector: data + params: {} +- name: team_members + endpoint: + path: /entities/teams/1/agents + method: GET + data_selector: data + params: + sort_by: name + direction: asc + per_page: '2' + page: '1' +- name: group_mailboxes + endpoint: + path: /entities/group-mailboxes + method: GET + data_selector: data + params: + per_page: '25' + page: '1' + search: Sales + sort_by: name + direction: asc +- name: group_mailbox + endpoint: + path: /entities/group-mailboxes/1 + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /api/tools/users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: 2 + page: 1 + search: peter +- name: labels_search + endpoint: + path: /api/entities/labels/search + method: GET + params: + search: test + per_page: '5' + page: '1' + force: '1' +- name: message_filters + endpoint: + path: /tools/settings/message-filters/all-thread-filter-data + method: GET + params: + view_id: '1' +- name: group_mailbox_members + endpoint: + path: /entities/group-mailboxes/1/agents + method: GET + data_selector: data + params: + sort_by: name + direction: asc + per_page: '2' + page: '1' +- name: teams + endpoint: + path: /entities/teams + method: GET + data_selector: data + params: + per_page: '25' + page: '1' + sort_by: name + direction: asc + search: ACME + include_emails: '0' +- name: agents + endpoint: + path: /agents + method: GET + data_selector: agents +- name: teams + endpoint: + path: /teams + method: GET + data_selector: teams +- name: group_mailboxes + endpoint: + path: /group_mailboxes + method: GET + data_selector: group_mailboxes +- name: customer_groups + endpoint: + path: /customer_groups + method: GET + data_selector: customer_groups +- name: Contact Group + endpoint: + path: /contact_group + method: GET +- name: Constant Contact Customer Group + endpoint: + path: /constant_contact_customer_group + method: GET +- name: teams + endpoint: + path: /entities/teams/1 + method: GET +- name: team_members + endpoint: + path: /entities/teams/1/agents + method: GET +- name: Hubspot Customer Group +- name: Maropost Customer Group +- name: customer_domains +- name: email_usernames +- name: users + endpoint: + path: /tools/users + method: GET + data_selector: data + params: {} +- name: labels_search + endpoint: + path: /entities/labels/search + method: GET + data_selector: data + params: + search: test + per_page: '5' + page: '1' + force: '1' +- name: message_filters + endpoint: + path: /api/tools/settings/message-filters/all-thread-filter-data + method: GET + data_selector: response + params: + view_id: '1' +- name: Contact Group + endpoint: + path: /contact/group + method: GET + data_selector: contacts +- name: Top Revenue Customers + endpoint: + path: /customers/top_revenue + method: GET + data_selector: customers +- name: agents + endpoint: + path: /agents + method: GET + data_selector: agents + params: {} +- name: teams + endpoint: + path: /teams + method: GET + data_selector: teams + params: {} +- name: group_mailboxes + endpoint: + path: /group_mailboxes + method: GET + data_selector: group_mailboxes + params: {} +- name: customer_groups + endpoint: + path: /customer_groups + method: GET + data_selector: customer_groups + params: {} +- name: Contact Group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET + data_selector: records +- name: customer_domains + endpoint: + path: /api/customer_domains + method: GET + data_selector: domains +- name: customers + endpoint: + path: /api/customers + method: GET + data_selector: customers +- name: Hubspot Customer Group + endpoint: + path: /services/data/vXX.X/sobjects/HubspotCustomerGroup + method: GET + data_selector: records +- name: Maropost Customer Group + endpoint: + path: /services/data/vXX.X/sobjects/MaropostCustomerGroup + method: GET + data_selector: records +- name: customer_domains + endpoint: + path: /customer_domains + method: GET + data_selector: domains +- name: email_usernames + endpoint: + path: /email_usernames + method: GET + data_selector: usernames +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Contact Group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET + data_selector: records +- name: Zoho Customer Group + endpoint: + path: /services/data/vXX.X/sobjects/ZohoCustomerGroup + method: GET + data_selector: records +- name: Contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: customer_domains + endpoint: + path: /api/customer_domains + method: GET + data_selector: data + params: {} +- name: customers + endpoint: + path: /api/customers + method: GET + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: data + params: {} +- name: domain_filters + endpoint: + path: /api/tools/settings/message-filters/domains + method: GET + data_selector: domains + params: + sort_by: domain + direction: asc + page: '1' + per_page: '5' + search: spam +- name: max_reply_time + endpoint: + path: /api/tools/settings/message-filters/max-reply-time + method: GET + data_selector: max_reply_time_enabled + params: {} +- name: Contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET +- name: Contact + endpoint: + path: /api/v1/contacts + method: GET + data_selector: contacts +- name: max_reply_time + endpoint: + path: /api/tools/settings/message-filters/max-reply-time + method: PATCH + data_selector: '' + params: {} +- name: email_filters_list + endpoint: + path: /api/tools/settings/message-filters/usernames + method: GET + data_selector: '' + params: {} +- name: email_filters_store + endpoint: + path: /api/tools/settings/message-filters/usernames/block + method: POST + data_selector: '' + params: {} +- name: email_filters_delete + endpoint: + path: /api/tools/settings/message-filters/usernames/unblock + method: POST + data_selector: '' + params: {} +- name: advanced_filters_list + endpoint: + path: /api/tools/settings/message-filters/advanced + method: GET + data_selector: '' + params: {} +- name: advanced_filters_store + endpoint: + path: /api/tools/settings/message-filters/advanced + method: POST + data_selector: '' + params: {} +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: data + params: {} +- name: domain_filters + endpoint: + path: /api/tools/settings/message-filters/domains + method: GET + data_selector: domains.data + params: {} +- name: max_reply_time + endpoint: + path: /api/tools/settings/message-filters/max-reply-time + method: GET + data_selector: max_reply_time_enabled + params: {} +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: '' + params: + sort_by: '' + direction: '' + per_page: '' + page: '' + search: '' +- name: reply_time_goals + endpoint: + path: /api/tools/settings/reply-time-goals + method: GET + data_selector: '' + params: {} +- name: profile + endpoint: + path: /api/me + method: GET + data_selector: '' + params: {} +- name: max_reply_time + endpoint: + path: /tools/settings/message-filters/max-reply-time + method: PATCH + data_selector: max_reply_time_enabled + params: {} +- name: email_filters_list + endpoint: + path: /tools/settings/message-filters/usernames + method: GET + data_selector: data + params: {} +- name: advanced_filters_list + endpoint: + path: /tools/settings/message-filters/advanced + method: GET + data_selector: data + params: {} +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: '' + params: {} +- name: reply_time_goals + endpoint: + path: /api/tools/settings/reply-time-goals + method: GET + data_selector: '' + params: {} +- name: profile + endpoint: + path: /api/me + method: GET + data_selector: '' + params: {} +- name: internal_domains + endpoint: + path: /company/internal-domains + method: GET + data_selector: data + params: + sort_by: domain + direction: asc + per_page: '2' + page: '1' +- name: users + endpoint: + path: /users + method: GET + data_selector: data + params: + sort_by: complete_name + direction: asc + per_page: '2' + page: '1' +- name: close_conversation_emails + endpoint: + path: /company/close-conversation-emails + method: GET + data_selector: data + params: + sort_by: username + direction: asc + per_page: '2' + page: '1' +- name: internal_domains_list + endpoint: + path: internal-domains + method: GET + params: + sort_by: domain + direction: asc + per_page: '2' + page: '1' +- name: users + endpoint: + path: users + method: GET + params: + sort_by: complete_name + direction: asc + per_page: '2' + page: '1' +- name: close_conversation_emails + endpoint: + path: close-conversation-emails + method: GET + params: + sort_by: username + direction: asc + per_page: '2' + page: '1' +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: records + params: {} +- name: business_hours + endpoint: + path: /api/tools/company/business-hours + method: GET + data_selector: records + params: {} +- name: calendar_sync_settings + endpoint: + path: /api/tools/company/calendar-sync-settings + method: GET + data_selector: records + params: {} +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: data + params: {} +- name: business_hours + endpoint: + path: /api/tools/company/business-hours + method: GET + data_selector: data + params: {} +- name: calendar_sync_settings + endpoint: + path: /api/tools/company/calendar-sync-settings + method: GET + data_selector: data + params: {} +- name: calendar_sync_settings + endpoint: + path: /tools/company/calendar-sync-settings/1 + method: PUT + data_selector: response + params: {} +- name: users + endpoint: + path: /tools/users + method: GET + data_selector: response + params: {} +- name: leave_days_range + endpoint: + path: /tools/company/leave-days/range + method: POST + data_selector: response + params: {} +- name: leave_days + endpoint: + path: /tools/company/leave-days + method: POST + data_selector: response + params: {} +- name: invite_user + endpoint: + path: /tools/users/invite-user + method: POST + data_selector: response + params: {} +- name: resend_invite_user + endpoint: + path: /tools/users/invite-user/1 + method: POST + data_selector: response + params: {} +- name: calendar_sync_settings + endpoint: + path: /api/tools/company/calendar-sync-settings/1 + method: PUT + data_selector: response + params: {} +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: response + params: {} +- name: leave_days_range + endpoint: + path: /api/tools/company/leave-days/range + method: POST + data_selector: response + params: {} +- name: leave_days + endpoint: + path: /api/tools/company/leave-days + method: POST + data_selector: response + params: {} +- name: invite_user + endpoint: + path: /api/tools/users/invite-user + method: POST + data_selector: response + params: {} +- name: resend_invite + endpoint: + path: /api/tools/users/invite-user/1 + method: POST + data_selector: response + params: {} +- name: delete_leave_day + endpoint: + path: /api/tools/company/leave-days/1 + method: DELETE + data_selector: response + params: + forModel: company +- name: users + endpoint: + path: /api/tools/users + method: GET + data_selector: data + params: + sort_by: complete_name + direction: asc + per_page: '2' + page: '1' + search: peter +- name: roles + endpoint: + path: /api/tools/users/roles + method: GET + data_selector: records +- name: user_show + endpoint: + path: /api/tools/users/1 + method: GET + data_selector: user +- name: user_delete + endpoint: + path: /api/tools/users/1 + method: DELETE + data_selector: status +- name: user_update + endpoint: + path: /api/tools/users/1 + method: PATCH + data_selector: user +- name: users + endpoint: + path: /tools/users + method: GET + data_selector: data + params: + sort_by: complete_name + direction: asc + per_page: '2' + page: '1' + search: peter +- name: roles + endpoint: + path: /tools/users/roles + method: GET + data_selector: records +- name: user_invite + endpoint: + path: /tools/users/invite-user/{id} + method: DELETE +- name: user_show + endpoint: + path: /tools/users/{id} + method: GET +- name: user_update + endpoint: + path: /tools/users/{id} + method: PATCH +- name: user_delete + endpoint: + path: /tools/users/{id} + method: DELETE +- name: Overview - Report + endpoint: + path: api/reports/overview + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' +- name: overview_report_data + endpoint: + path: /api/reports/overview + method: GET +- name: Overview - Report + endpoint: + path: api/reports/overview + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' + viewId: '1' +- name: overview_report + endpoint: + path: /api/reports/overview + method: GET +- name: reports_overview + endpoint: + path: /api/reports/overview + method: GET + data_selector: data +- name: productivity_report + endpoint: + path: /api/reports/productivity + method: GET + params: + per_page: '2' + page: '1' + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + sort_by_email_volumes: messages_sent_count + direction_email_volumes: desc + sort_by_conversations: threads_count + direction_conversations: desc + sort_by_average_reply_times: initialTTR + direction_average_reply_times: desc + sort_by_responsiveness: replies_under_7200 + direction_responsiveness: desc + sort_by_activity: first_activity + direction_activity: desc + viewId: '1' +- name: responsiveness + endpoint: + path: /api/v1/responsiveness + method: GET + data_selector: data + params: {} +- name: stats + endpoint: + path: /api/v1/stats + method: GET + data_selector: stats + params: {} +- name: statistics + endpoint: + params: + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: comparative_report_data + endpoint: + path: /api/reports/comparative + method: GET +- name: Interactions - Report + endpoint: + path: api/reports/interactions + method: GET +- name: Interactions Report + endpoint: + path: api/reports/interactions + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Mailbox + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: SLA Report + endpoint: + path: api/reports/sla + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' + viewId: '1' +- name: sla_report + endpoint: + path: /api/reports/sla + method: GET + data_selector: body +- name: sla_report + endpoint: + path: /api/reports/sla + method: GET + data_selector: reports + params: {} +- name: trend_report_data + endpoint: + path: /api/reports/trend + method: GET + params: + model: My Company + model_type: Internal + model_com: '1' + model_type_com: Contact Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + date: '2020-01-01' + periods: '12' + period_type: Months + show_agents: '1' + closed_over: '15' + viewId: '1' +- name: Contacts - Report + endpoint: + path: api/reports/contact + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward,follow-up + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + page_emails: '1' + per_page_emails: '2' + direction_emails: desc + sort_by_emails: threads.total +- name: contacts_report + endpoint: + path: /reports/contact + method: GET + data_selector: emails.data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '' + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: '' + exclusive: '' + search: '' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + page_emails: 1 +- name: reports_overview + endpoint: + path: /reports/overview + method: GET +- name: model_statistics + endpoint: + params: + from: '' + to: '2020-01-08' + model: '1' + model_type: Team + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: threads.total + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: productivity_report + endpoint: + path: /api/reports/productivity + method: GET + params: + date: '2020-01-01' + model: My Company + model_type: Internal + model_com: '1' + model_type_com: Contact Group + per_page: '2' + page: '1' + sort_by_email_volumes: messages_sent_count + direction_email_volumes: desc + sort_by_conversations: threads_count + direction_conversations: desc + sort_by_average_reply_times: initialTTR + direction_average_reply_times: desc + sort_by_responsiveness: replies_under_7200 + direction_responsiveness: desc + sort_by_activity: first_activity + direction_activity: desc + viewId: '1' +- name: teams_report + endpoint: + path: /api/reports/teams + method: GET + data_selector: body + params: + from: '2020-01-01' + to: '2020-01-08' + model: 1 + model_type: Team + per_page: 2 + page: 1 +- name: mailbox_stats + endpoint: + path: /api/v1/mailbox/stats + method: GET + data_selector: data + params: + incremental: updated_at +- name: customer_domains + endpoint: + path: /api/v1/customer/domains + method: GET + data_selector: data + params: {} +- name: model + endpoint: + params: + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: comparative_report + endpoint: + path: /api/reports/comparative + method: GET +- name: Interactions - Report + endpoint: + path: api/reports/interactions + method: GET +- name: statistics + endpoint: + params: + to: '2020-01-08' + model: '1' + model_type: Group+Mailbox + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: threads.total + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: group_mailboxes_report + endpoint: + path: /group-mailboxes + method: GET +- name: Interactions Report + endpoint: + path: api/reports/interactions + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Mailbox + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: SLA - Report + endpoint: + path: api/reports/sla + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' + viewId: '1' +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: records + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Group Mailbox + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: threads.total + direction: desc + closed_over: '15' + viewId: '1' + page: '1' +- name: alerts + endpoint: + path: /api/reports/alerts + method: GET + params: + days: '7' + team: '1' + agent: '1' +- name: alerts_report + endpoint: + path: /api/reports/alerts + method: GET + params: + days: '7' + team: '1' + agent: '1' + page_live: '1' + per_page_live: '10' + page_handled: '1' + per_page_handled: '10' + sort: desc +- name: SLA Report Data + endpoint: + path: /api/reports/sla + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '' + exclusive: '' + search: '' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' + viewId: '1' + init_ttr_goal: 02%3A00%3A00 + overall_ttr_goal: 02%3A00%3A00 + overall_ttc_goal: 02%3A00%3A00 +- name: Alerts - Report + endpoint: + path: api/reports/alerts/:agent_id + method: GET + data_selector: messages + params: + days: '7' + page: '1' + per_page: '10' + sort: desc +- name: sla_reports + endpoint: + path: /reports/sla + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal +- name: alerts + endpoint: + path: /api/reports/alerts/1 + method: GET + data_selector: data + params: + days: '7' +- name: conversations + endpoint: + path: /api/logs/conversations + method: GET + data_selector: data +- name: trend_report + endpoint: + path: /api/reports/trend + method: GET + params: + model: My Company + model_type: Internal + model_com: '1' + model_type_com: Contact Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + date: '2020-01-01' + periods: '12' + period_type: Months + show_agents: '1' + closed_over: '15' + viewId: '1' +- name: statistics + endpoint: + params: + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: last_received_at_date_time + direction: desc + page: '1' + closed_over: '15' + columns[0]: id + columns[1]: init_agent_reply_time + viewId: '1' +- name: Contacts - Report + endpoint: + path: api/reports/contact + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + page_emails: '1' + direction_emails: desc + sort_by_emails: threads.total +- name: Conversations - Find + endpoint: + path: api/logs/conversations/get-by-internet-message-id + method: GET + data_selector: '[]' + params: + internet_message_id: 1601678270iYOoAwCjDD%40TnlYu0KwPhwXxhcTAeHFJMHlI.DrfT +- name: Conversations - Find by subject or email + endpoint: + path: api/logs/conversations/get-by-subject-or-email + method: GET + data_selector: '[]' + params: + search: Support+Query +- name: Conversations - Close + endpoint: + path: api/logs/conversations/close + method: GET + data_selector: '[]' + params: {} +- name: statistics + endpoint: + path: /statistics + method: GET + data_selector: results + params: + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: date_time + direction: desc + page: '1' + closed_over: '15' + columns[0]: date_time + columns[1]: subject + viewId: '1' +- name: contacts_report + endpoint: + path: /api/reports/contact + method: GET + data_selector: emails.data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '' + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: '' + exclusive: '' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + page_emails: 1 +- name: statistics + endpoint: + params: + to: '2020-01-08' + model: '1' + model_type: Team + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: threads.total + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: teams_report + endpoint: + path: /api/reports/teams + method: GET +- name: Messages + endpoint: + path: api/logs/messages + method: GET + data_selector: messages.data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + model_com: '1' + model_type_com: Contact Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: date_time + direction: desc +- name: Stats - Breakdown + endpoint: + path: api/logs/stat-breakdown + method: GET + data_selector: stats + params: + stat: threads.total + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + model_com: '1' + model_type_com: Contact Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: last_received_at_date_time + direction: desc +- name: Group Mailboxes + endpoint: + path: api/reports/group-mailboxes + method: GET +- name: statistics + endpoint: + path: /statistics + method: GET + params: + to: '2020-01-08' + model: '1' + model_type: Group+Mailbox + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: threads.total + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: stat_breakdown + endpoint: + path: /api/logs/stat-breakdown + method: GET + params: + stat: threads.total + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '' + exclusive: '' + search: '' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: last_received_at_date_time + direction: desc + page: '1' + closed_over: '15' + viewId: '1' +- name: entities_search + endpoint: + path: /api/entities/search + method: GET + params: + per_page: '2' + page: '1' + search: Top Revenue + type: all +- name: group_mailboxes_report + endpoint: + path: /group-mailboxes + method: GET +- name: Mailboxes - List + endpoint: + path: entities/agents + method: GET + data_selector: data + params: + sort_by: name + direction: asc + per_page: 2 + page: 1 +- name: entities - search + endpoint: + path: entities/search + method: GET + data_selector: data + params: + per_page: 2 + page: 1 + search: Top Revenue + type: all +- name: agents + endpoint: + path: /api/entities/agents + method: GET + data_selector: data + params: {} +- name: mailboxes_invite_list + endpoint: + path: /api/entities/agents/invites + method: GET + data_selector: data + params: + sort_by: name +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: data.records + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Group Mailbox + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: threads.total + direction: desc + closed_over: '15' + viewId: '1' + page: '1' +- name: alerts + endpoint: + path: /api/reports/alerts + method: GET + data_selector: data.records + params: + days: '7' + team: '1' + agent: '1' +- name: alerts_report + endpoint: + path: /api/reports/alerts + method: GET + params: + days: 7 + team: 1 + agent: 1 + page_live: 1 + per_page_live: 10 + page_handled: 1 + per_page_handled: 10 + sort: desc +- name: Mailbox Alerts + endpoint: + path: /api/reports/alerts/:agent_id + method: GET + data_selector: messages + params: + days: '7' + page: '1' + per_page: '10' + sort: desc +- name: Mailboxes - Invite + endpoint: + path: api/entities/agents/invite + method: POST + data_selector: response + params: {} +- name: Mailboxes - O365 - List + endpoint: + path: api/entities/agents/microsoft/load-bulk-agents + method: GET + data_selector: response + params: {} +- name: Mailboxes - O365 - Search + endpoint: + path: api/entities/agents/microsoft/search-bulk-agents + method: GET + data_selector: response + params: + search: peter +- name: Mailboxes - Gmail - List + endpoint: + path: api/entities/agents/gmail/load-bulk-agents + method: GET + data_selector: response + params: {} +- name: Mailboxes - Gmail - Bulk Add + endpoint: + path: api/entities/agents/gmail/select-bulk + method: POST + data_selector: response + params: {} +- name: Mailboxes - Delete + endpoint: + path: api/entities/agents/:id + method: DELETE + data_selector: response + params: {} +- name: Mailboxes - Update + endpoint: + path: api/entities/agents/:id/update + method: PATCH + data_selector: response + params: {} +- name: Mailboxes - Search all + endpoint: + path: api/entities/agents/search-all-company-mailboxes + method: GET + data_selector: response + params: + per_page: '2' + page: '1' + search: Peter+Rabbit +- name: alerts + endpoint: + path: /api/reports/alerts/1 + method: GET + data_selector: alerts + params: + days: '7' +- name: conversations + endpoint: + path: /api/logs/conversations + method: GET + data_selector: conversations + params: + from: '2020-01-01' +- name: contacts + endpoint: + path: api/entities/contacts + method: GET + data_selector: data.data + params: + sort_by: name + direction: asc + per_page: 25 + page: 1 +- name: contact_groups + endpoint: + path: api/entities/contact-groups + method: GET + data_selector: data.data + params: + sort_by: name + direction: asc + per_page: 15 + page: 1 +- name: contact_groups + endpoint: + path: /contact_groups + method: GET + data_selector: data +- name: statistics + endpoint: + params: + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: last_received_at_date_time + direction: desc + page: '1' + closed_over: '15' + columns[0]: id + columns[1]: init_agent_reply_time + viewId: '1' +- name: customer_group + endpoint: + path: /v2/customer_groups + method: GET + data_selector: customer_groups +- name: Conversations - Find + endpoint: + path: api/logs/conversations/get-by-internet-message-id + method: GET + data_selector: '[]' + params: + internet_message_id: 1601678270iYOoAwCjDD%40TnlYu0KwPhwXxhcTAeHFJMHlI.DrfT +- name: Conversations - Find by subject or email + endpoint: + path: api/logs/conversations/get-by-subject-or-email + method: GET + data_selector: '[]' + params: + search: Support+Query +- name: customer_group + endpoint: + path: /v1/customer_groups + method: GET + data_selector: data + params: {} +- name: statistics + endpoint: + params: + to: '2020-01-08' + model: My+Company + model_type: Internal + model_com: '1' + model_type_com: Contact+Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound%2Coutbound%2Cinternal + thread_status: internal%2Cawait-customer%2Cclosed%2Cawait-agent + has_replies: hasReplies%2ChasForwards%2ChasNoRepliesOrForwards + classification: calculating%2Cfirst%2Creply%2Creply-all%2Cforward + messageType: inbound%2Coutbound%2Cinternal + waiting_for_response: customer-has-response%2Cwaiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: date_time + direction: desc + page: '1' + closed_over: '15' + columns[0]: date_time + columns[1]: subject + viewId: '1' +- name: customer_emails + endpoint: + path: /services/data/vXX.X/sobjects/CustomerEmails + method: GET + data_selector: records + params: {} +- name: customer_domain + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomain + method: GET + data_selector: records + params: {} +- name: user_permission + endpoint: + path: /services/data/vXX.X/sobjects/UserPermission + method: GET + data_selector: records + params: {} +- name: Message Logs + endpoint: + path: api/logs/messages + method: GET + data_selector: messages.data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + model_com: '1' + model_type_com: Contact Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: date_time + direction: desc +- name: Exclude from SLA Breach + endpoint: + path: api/logs/messages/exclude-from-sla-breach + method: POST + data_selector: ids +- name: Remove Exclude from SLA Breach + endpoint: + path: api/logs/messages/remove-exclude-from-sla-breach + method: POST + data_selector: ids +- name: Stats - Breakdown + endpoint: + path: api/logs/stat-breakdown + method: GET + data_selector: stats + params: + stat: threads.total + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + model_com: '1' + model_type_com: Contact Group + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + per_page: '2' + sort_by: last_received_at_date_time + direction: desc +- name: customer_emails + endpoint: + path: /services/data/vXX.X/sobjects/CustomerEmails + method: GET + data_selector: records + params: {} +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomains + method: GET + data_selector: records + params: {} +- name: customer_group + endpoint: + path: /services/data/vXX.X/sobjects/CustomerGroup + method: GET + data_selector: records +- name: stat_breakdown + endpoint: + path: /api/logs/stat-breakdown + method: GET + params: + stat: threads.total + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '' + exclusive: '' + search: '' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + page: '1' + closed_over: '15' + viewId: '1' +- name: entities_search + endpoint: + path: /api/entities/search + method: GET + params: + per_page: '2' + page: '1' + search: Top+Revenue + type: all +- name: Mailboxes - List + endpoint: + path: api/entities/agents + method: GET + params: + sort_by: name + direction: asc + per_page: '2' + page: '1' + search: '' +- name: Search Entities + endpoint: + path: api/entities/search + method: GET + params: + per_page: '2' + page: '1' + search: Top Revenue + type: all +- name: Contact Groups - List + endpoint: + path: /api/entities/contact-groups + method: GET + data_selector: data + params: {} +- name: Contact Groups - Store + endpoint: + path: /api/entities/contact-groups + method: POST + data_selector: null + params: {} +- name: Contact Groups - Show + endpoint: + path: /api/entities/contact-groups/:id + method: GET + data_selector: null + params: {} +- name: agents + endpoint: + path: api/entities/agents + method: GET + data_selector: data + params: {} +- name: invite_list + endpoint: + path: api/entities/agents/invites + method: GET + data_selector: data + params: + sort_by: name +- name: Contact Groups - Update + endpoint: + path: api/entities/contact-groups/:id + method: PUT + data_selector: body +- name: Contact Groups - Delete + endpoint: + path: api/entities/contact-groups/:id + method: DELETE + data_selector: body +- name: Contact Groups - Add Email + endpoint: + path: api/entities/contact-groups/:contact_group_id/pushEmail + method: PATCH + data_selector: body +- name: Contact Groups - Delete Email + endpoint: + path: api/entities/contact-groups/:contact_group_id/removeEmail + method: PATCH + data_selector: body +- name: Contact Groups - Remove Members + endpoint: + path: api/entities/contact-groups/:contact_group_id/removeMembers + method: PATCH + data_selector: body +- name: Contact Groups - Add Domain + endpoint: + path: api/entities/contact-groups/:contact_group_id/pushDomain + method: PATCH + data_selector: body +- name: Contact Groups - Delete Domain + endpoint: + path: api/entities/contact-groups/:contact_group_id/removeDomain + method: PATCH + data_selector: body + params: {} +- name: Group Mailboxes - List + endpoint: + path: api/entities/group-mailboxes + method: GET + data_selector: body + params: + per_page: '25' +- name: Mailboxes - Invite + endpoint: + path: api/entities/agents/invite + method: POST + data_selector: null + params: {} +- name: Mailboxes - O365 - List + endpoint: + path: api/entities/agents/microsoft/load-bulk-agents + method: GET + data_selector: null + params: {} +- name: Mailboxes - O365 - Search + endpoint: + path: api/entities/agents/microsoft/search-bulk-agents + method: GET + data_selector: null + params: + search: peter +- name: Mailboxes - O365 - Bulk Add + endpoint: + path: api/entities/agents/microsoft/select-bulk + method: POST + data_selector: null + params: {} +- name: Mailboxes - Gmail - List + endpoint: + path: api/entities/agents/gmail/load-bulk-agents + method: GET + data_selector: null + params: {} +- name: Mailboxes - Gmail - Bulk Add + endpoint: + path: api/entities/agents/gmail/select-bulk + method: POST + data_selector: null + params: {} +- name: Mailboxes - EWS - Update + endpoint: + path: api/entities/agents/:agent_id/ews + method: PATCH + data_selector: null + params: {} +- name: Mailboxes - Delete + endpoint: + path: api/entities/agents/:id + method: DELETE + data_selector: null + params: {} +- name: Mailboxes - Delete Multiple + endpoint: + path: api/entities/agents/delete-multiple + method: POST + data_selector: null + params: {} +- name: Mailboxes - Re-authenticate + endpoint: + path: api/entities/agents/:agent_id/re-auth + method: GET + data_selector: null + params: {} +- name: Mailboxes - Update + endpoint: + path: api/entities/agents/:id/update + method: PATCH + data_selector: null + params: {} +- name: Mailboxes - Search all + endpoint: + path: api/entities/agents/search-all-company-mailboxes + method: GET + data_selector: null + params: + per_page: '2' + page: '1' + search: Peter+Rabbit +- name: Mailboxes - Invite As Users + endpoint: + path: api/tools/users/invite-as-users + method: POST + data_selector: null + params: {} +- name: Authentication Invites - Remind + endpoint: + path: api/entities/agents/remind/:authentication_invite_id + method: PATCH + data_selector: null + params: {} +- name: Authentication Invites - Delete + endpoint: + path: api/entities/agents/invite/:authentication_invite_id + method: DELETE + data_selector: null + params: {} +- name: Contacts - List + endpoint: + path: api/entities/contacts + method: GET + data_selector: null + params: + sort_by: name + direction: asc + per_page: '25' +- name: Group Mailboxes - List + endpoint: + path: api/entities/group-mailboxes + method: GET + data_selector: data + params: + per_page: '25' + page: '1' + search: Sales + sort_by: name + direction: asc +- name: Group Mailboxes - Show + endpoint: + path: api/entities/group-mailboxes/:id + method: GET + data_selector: body +- name: Group Mailboxes - Update + endpoint: + path: api/entities/group-mailboxes/:id + method: PUT + data_selector: body +- name: Group Mailboxes - Delete + endpoint: + path: api/entities/group-mailboxes/:id + method: DELETE + data_selector: body +- name: Group Mailbox Members - List + endpoint: + path: api/entities/group-mailboxes/:group_mailbox_id/agents + method: GET + data_selector: data + params: + sort_by: name + direction: asc + per_page: '2' + page: '1' +- name: Group Mailbox Members - Store + endpoint: + path: api/entities/group-mailboxes/:group_mailbox_id/agents + method: POST + data_selector: body +- name: Group Mailbox Members - Delete + endpoint: + path: api/entities/group-mailboxes/:group_mailbox_id/agents + method: DELETE + data_selector: body +- name: contacts + endpoint: + path: api/entities/contacts + method: GET + data_selector: data + params: + per_page: 25 + page: 1 + sort_by: name + direction: asc +- name: contact_groups + endpoint: + path: api/entities/contact-groups + method: GET + data_selector: data + params: + per_page: 15 + page: 1 + sort_by: name + direction: asc +- name: teams + endpoint: + path: api/entities/teams + method: GET + data_selector: data +- name: team_members + endpoint: + path: api/entities/teams/:team_id/agents + method: GET + data_selector: data +- name: Contact Groups + endpoint: + path: /contact_groups + method: GET +- name: Team Members - List + endpoint: + path: api/entities/teams/:team_id/agents + method: GET + data_selector: data + params: {} +- name: Labels - Search + endpoint: + path: api/entities/labels/search + method: GET + data_selector: data + params: + search: test + per_page: '5' + page: '1' + force: '1' +- name: Filters - List + endpoint: + path: api/tools/settings/message-filters/all-thread-filter-data + method: GET + data_selector: data + params: + view_id: '1' +- name: customer_group + endpoint: + path: /v2/customer_groups + method: GET + data_selector: groups + params: {} +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomain + method: GET + data_selector: records + params: {} +- name: customer_group + endpoint: + path: /api/v1/customer_groups + method: GET + data_selector: data + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Top Revenue Customers + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: Zoho Customer Group + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: customers + endpoint: + path: /services/data/vXX.X/sobjects/Customer + method: GET + data_selector: records + params: {} +- name: Contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: customer_emails + endpoint: + path: /customers/emails + method: GET + data_selector: emails + params: {} +- name: customer_domains + endpoint: + path: /customers/domains + method: GET + data_selector: domains + params: {} +- name: Domain Filters - List + endpoint: + path: api/tools/settings/message-filters/domains + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Domain Filters - List + endpoint: + path: api/tools/settings/message-filters/domains + method: GET + data_selector: domains.data + params: + sort_by: domain + direction: asc + page: '1' + per_page: '5' + search: spam +- name: Max Reply Time - Get + endpoint: + path: api/tools/settings/message-filters/max-reply-time + method: GET + data_selector: max_reply_time_enabled + params: {} +- name: Email Filters - List + endpoint: + path: api/tools/settings/message-filters/usernames + method: GET + data_selector: current_page + params: + sort_by: email_address + direction: asc + page: '1' + per_page: '5' + search: spam +- name: Contact Groups - List + endpoint: + path: /api/entities/contact-groups + method: GET + data_selector: records +- name: Contact Groups - Store + endpoint: + path: /api/entities/contact-groups + method: POST + data_selector: null +- name: Contact Groups - Show + endpoint: + path: /api/entities/contact-groups/:id + method: GET + data_selector: null +- name: Contact Groups - Update + endpoint: + path: api/entities/contact-groups/:id + method: PUT +- name: Contact Groups - Delete + endpoint: + path: api/entities/contact-groups/:id + method: DELETE +- name: Contact Groups - Add Email + endpoint: + path: api/entities/contact-groups/:contact_group_id/pushEmail + method: PATCH +- name: Contact Groups - Delete Email + endpoint: + path: api/entities/contact-groups/:contact_group_id/removeEmail + method: PATCH +- name: Contact Groups - Remove Members + endpoint: + path: api/entities/contact-groups/:contact_group_id/removeMembers + method: PATCH +- name: Contact Groups - Add Domain + endpoint: + path: api/entities/contact-groups/:contact_group_id/pushDomain + method: PATCH +- name: Advanced Filters - List + endpoint: + path: api/tools/settings/message-filters/advanced + method: GET +- name: Advanced Filters - Store + endpoint: + path: api/tools/settings/message-filters/advanced + method: POST +- name: Advanced Filters - Update + endpoint: + path: api/tools/settings/message-filters/advanced/:message_filter_group_id + method: PATCH +- name: Advanced Filters - Delete + endpoint: + path: api/tools/settings/message-filters/advanced/:message_filter_group_id + method: DELETE +- name: Advanced Filters - Toggle + endpoint: + path: api/tools/settings/message-filters/advanced/:message_filter_group_id/toggle + method: PATCH +- name: Reply Time Goals - List + endpoint: + path: api/tools/settings/reply-time-goals + method: GET +- name: Reply Time Goals - Update + endpoint: + path: api/tools/settings/reply-time-goals + method: PATCH +- name: Profile - Get + endpoint: + path: api/me + method: GET +- name: Internal Domains - List + endpoint: + path: api/tools/company/internal-domains + method: GET +- name: Internal Domains - Store + endpoint: + path: api/tools/company/internal-domains + method: POST +- name: Internal Domains - Delete + endpoint: + path: api/tools/company/internal-domains/:id + method: DELETE +- name: Conversation Threading Style - Set + endpoint: + path: api/tools/company/conversation-threading-style + method: POST +- name: Contact Groups - Delete Domain + endpoint: + path: api/entities/contact-groups/:contact_group_id/removeDomain + method: PATCH + data_selector: body + params: {} +- name: Group Mailboxes - List + endpoint: + path: api/entities/group-mailboxes + method: GET + data_selector: body + params: + per_page: '25' +- name: Group Mailboxes - List + endpoint: + path: api/entities/group-mailboxes + method: GET + data_selector: data + params: + per_page: '25' + page: '1' + search: Sales + sort_by: name + direction: asc +- name: Group Mailboxes - Show + endpoint: + path: api/entities/group-mailboxes/:id + method: GET + data_selector: data +- name: Group Mailboxes - Store + endpoint: + path: api/entities/group-mailboxes + method: POST +- name: Group Mailboxes - Update + endpoint: + path: api/entities/group-mailboxes/:id + method: PUT +- name: Group Mailboxes - Delete + endpoint: + path: api/entities/group-mailboxes/:id + method: DELETE +- name: Group Mailbox Members - List + endpoint: + path: api/entities/group-mailboxes/:group_mailbox_id/agents + method: GET + data_selector: data + params: + sort_by: name + direction: asc + per_page: '2' + page: '1' +- name: Group Mailbox Members - Store + endpoint: + path: api/entities/group-mailboxes/:group_mailbox_id/agents + method: POST +- name: Group Mailbox Members - Delete + endpoint: + path: api/entities/group-mailboxes/:group_mailbox_id/agents + method: DELETE +- name: Closing Email Addresses - List + endpoint: + path: api/tools/company/close-conversation-emails + method: GET + data_selector: data + params: + sort_by: username + direction: asc + per_page: '2' + page: '1' +- name: Closing Email Addresses - Store + endpoint: + path: api/tools/company/close-conversation-emails + method: POST + data_selector: null + params: {} +- name: Closing Email Addresses - Delete + endpoint: + path: api/tools/company/close-conversation-emails/:email_username_id + method: DELETE + data_selector: null + params: {} +- name: Business Hours - List + endpoint: + path: api/tools/company/business-hours + method: GET + data_selector: null + params: + forModel: company +- name: Business Hours - Store + endpoint: + path: api/tools/company/business-hours + method: POST + data_selector: null + params: {} +- name: Business Hours - Delete + endpoint: + path: api/tools/company/business-hours/:id + method: DELETE + data_selector: null + params: {} +- name: Calendar Sync Settings - Index + endpoint: + path: api/tools/company/calendar-sync-settings + method: GET + data_selector: data + params: + sort_by: operator + direction: asc + page: '1' + per_page: '10' + search: Google +- name: Calendar Sync Settings - Store + endpoint: + path: api/tools/company/calendar-sync-settings + method: POST + data_selector: null + params: {} +- name: Calendar Sync Settings - Update + endpoint: + path: api/tools/company/calendar-sync-settings/:id + method: PUT + data_selector: null + params: {} +- name: Calendar Sync Settings - Delete + endpoint: + path: api/tools/company/calendar-sync-settings/:id + method: DELETE + data_selector: null + params: {} +- name: Leave Days - Store Range + endpoint: + path: api/tools/company/leave-days/range + method: POST + data_selector: null + params: {} +- name: Teams - List + endpoint: + path: api/entities/teams + method: GET + data_selector: data + params: + per_page: '25' + page: '1' + sort_by: name + direction: asc + search: ACME +- name: Teams - Show + endpoint: + path: api/entities/teams/:id + method: GET + data_selector: data +- name: Teams - Store + endpoint: + path: api/entities/teams + method: POST +- name: Teams - Update + endpoint: + path: api/entities/teams/:id + method: PUT +- name: Teams - Delete + endpoint: + path: api/entities/teams/:id + method: DELETE +- name: Team Members - List + endpoint: + path: api/entities/teams/:team_id/agents + method: GET + data_selector: data + params: + sort_by: name + direction: asc + per_page: '2' + page: '1' +- name: agents + endpoint: + path: api/entities/teams/:team_id/agents + method: POST + data_selector: agents + params: {} +- name: labels + endpoint: + path: api/entities/labels/search + method: GET + data_selector: data + params: + search: test + per_page: '5' + page: '1' + force: '1' +- name: filters + endpoint: + path: api/tools/settings/message-filters/all-thread-filter-data + method: GET + data_selector: filters + params: + view_id: '1' +- name: Constant Contact Customer Group + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: overview_report + endpoint: + path: /api/reports/overview + method: GET +- name: Contact Group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET + data_selector: records + params: {} +- name: Maropost Customer Group + endpoint: + path: /services/data/vXX.X/sobjects/MaropostCustomerGroup + method: GET + data_selector: records + params: {} +- name: overview + endpoint: + path: /api/reports/overview + method: GET + data_selector: stats + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + sort_by: threads.total + direction: desc + per_page_agents: 2 + page_agents: 1 + per_page_contacts: 2 + page_contacts: 1 + per_page_domains: 2 + page_domains: 1 + closed_over: 15 + viewId: 1 + showHourOfDayForAgents: 0 + page: 1 +- name: all_customer_stats + endpoint: + path: /api/reports/overview + method: GET +- name: all_domain_stats + endpoint: + path: /api/reports/overview + method: GET +- name: reports_overview + endpoint: + path: /reports/overview + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: customer_group + endpoint: + path: /services/data/vXX.X/sobjects/CustomerGroup + method: GET + data_selector: records +- name: reports_overview + endpoint: + path: /reports/overview + method: GET + data_selector: reports + params: + from: '2020-01-01' + to: '2020-01-08' +- name: customers + endpoint: + path: /customers + method: GET + data_selector: customers + params: {} +- name: email_usernames + endpoint: + path: /email_usernames + method: GET + data_selector: email_usernames + params: {} +- name: overview + endpoint: + path: /reports/overview + method: GET + data_selector: items + params: {} +- name: all_domain_stats + endpoint: + path: /api/reports/overview + method: GET + data_selector: data + params: {} +- name: all_customer_stats + endpoint: + path: /api/reports/overview + method: GET + data_selector: data + params: {} +- name: overallTTR + endpoint: + path: /api/reports/overview + method: GET + data_selector: overallTTR + params: {} +- name: initialTTR + endpoint: + path: /api/reports/overview + method: GET + data_selector: initialTTR + params: {} +- name: overallTTF + endpoint: + path: /api/reports/overview + method: GET + data_selector: overallTTF + params: {} +- name: overallTTC + endpoint: + path: /api/reports/overview + method: GET + data_selector: overallTTC + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: reports_overview + endpoint: + path: /api/reports/overview + method: GET + data_selector: items + params: {} +- name: Domain Filters - List + endpoint: + path: api/tools/settings/message-filters/domains + method: GET +- name: productivity_report + endpoint: + path: /api/reports/productivity + method: GET + data_selector: data + params: + date: '2020-01-01' +- name: Domain Filters + endpoint: + path: api/tools/settings/message-filters/domains + method: GET + data_selector: domains.data + params: + sort_by: domain + direction: asc + page: '1' + per_page: '5' + search: spam +- name: Max Reply Time + endpoint: + path: api/tools/settings/message-filters/max-reply-time + method: GET + data_selector: max_reply_time_enabled + params: {} +- name: Email Filters + endpoint: + path: api/tools/settings/message-filters/usernames + method: GET + data_selector: current_page + params: + sort_by: email_address + direction: asc + page: '1' + per_page: '5' + search: spam +- name: email_volumes + endpoint: + path: /models/email_volumes + method: GET + data_selector: email_volumes + params: + per_page: 2 +- name: activity + endpoint: + path: /models/activity + method: GET + data_selector: activity + params: + per_page: 2 +- name: conversations + endpoint: + path: /models/conversations + method: GET + data_selector: conversations + params: + per_page: 2 +- name: average_reply_times + endpoint: + path: /models/average_reply_times + method: GET + data_selector: average_reply_times + params: + per_page: 2 +- name: Advanced Filters - List + endpoint: + path: api/tools/settings/message-filters/advanced + method: GET + data_selector: data + params: + per_page: '15' + page: '1' + sort_by: name + direction: asc +- name: Reply Time Goals - List + endpoint: + path: api/tools/settings/reply-time-goals + method: GET + data_selector: body +- name: Profile - Get + endpoint: + path: api/me + method: GET + data_selector: body +- name: Internal Domains - List + endpoint: + path: api/tools/company/internal-domains + method: GET + data_selector: data + params: + sort_by: domain + direction: asc + per_page: '2' + page: '1' +- name: mailbox_stats + endpoint: + path: /api/mailbox/stats + method: GET + data_selector: data + params: + per_page: 2 +- name: close-conversation-emails + endpoint: + path: api/tools/company/close-conversation-emails + method: GET + data_selector: data + params: + sort_by: username + direction: asc + per_page: '2' + page: '1' +- name: business-hours + endpoint: + path: api/tools/company/business-hours + method: GET + data_selector: data + params: + forModel: company +- name: calendar-sync-settings + endpoint: + path: api/tools/company/calendar-sync-settings + method: GET + data_selector: data + params: + sort_by: operator + direction: asc + page: '1' + per_page: '10' + search: Google +- name: email_volumes + endpoint: + path: /services/data/vXX.X/sobjects/EmailVolumes + method: GET + data_selector: records + params: {} +- name: Leave Days - Store + endpoint: + path: api/tools/company/leave-days + method: POST +- name: Leave Days - Delete + endpoint: + path: api/tools/company/leave-days/:id + method: DELETE +- name: Users - Invite + endpoint: + path: api/tools/users/invite-user + method: POST +- name: Users - Resend Invite + endpoint: + path: api/tools/users/invite-user/:user_invite_id + method: POST +- name: Users - Delete Invite + endpoint: + path: api/tools/users/invite-user/:user_invite_id + method: DELETE +- name: Roles - List + endpoint: + path: api/tools/users/roles + method: GET +- name: Users - Show + endpoint: + path: api/tools/users/:id + method: GET +- name: Users - Update + endpoint: + path: api/tools/users/:id + method: PATCH +- name: Users - Delete + endpoint: + path: api/tools/users/:user_id + method: DELETE +- name: Users - List + endpoint: + path: api/tools/users + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: overview_report + endpoint: + path: /api/reports/overview + method: GET + data_selector: data +- name: initialTTR + endpoint: + path: /initialTTR + method: GET + data_selector: properties +- name: overallTTF + endpoint: + path: /overallTTF + method: GET + data_selector: properties +- name: overallTTC + endpoint: + path: /overallTTC + method: GET + data_selector: properties +- name: dailyStats + endpoint: + path: /dailyStats + method: GET + data_selector: array +- name: overview + endpoint: + path: /reports/overview + method: GET + data_selector: stats +- name: comparative_report + endpoint: + path: /api/reports/comparative + method: GET + data_selector: data + params: + from: YYYY-MM-DD +- name: all_domain_stats + endpoint: + path: /api/reports/overview + method: GET +- name: all_customer_stats + endpoint: + path: /api/reports/overview + method: GET +- name: reports_overview + endpoint: + path: /reports/overview + method: GET + data_selector: records + params: + from: '2020-01-01' + to: '2020-01-08' +- name: statistics + endpoint: + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: false + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: false + exclusive: false + search: null + label: + - INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + per_page: 2 + direction: desc + page: 1 + closed_over: 15 + viewId: 1 +- name: overview_report + endpoint: + path: /reports/overview + method: GET + data_selector: records + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + sort_by: threads.total + direction: desc + per_page_agents: 2 + page_agents: 1 + per_page_contacts: 2 + page_contacts: 1 + per_page_domains: 2 + page_domains: 1 + closed_over: 15 + viewId: 1 + showHourOfDayForAgents: 0 +- name: overview + endpoint: + path: /reports/overview + method: GET + data_selector: items +- name: overview + endpoint: + path: /reports/overview + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: reports_overview + endpoint: + path: /reports/overview + method: GET + data_selector: data + params: + from: 1 + per_page: 10 +- name: items + endpoint: + path: /items + method: GET + data_selector: items +- name: interactions + endpoint: + path: /api/reports/interactions + method: GET + data_selector: data + params: + from: YYYY-MM-DD +- name: sla_report + endpoint: + path: /api/reports/sla + method: GET + data_selector: records + params: {} +- endpoint: + params: + per_page_contacts: '200' + page_contacts: '1' +- endpoint: + params: + per_page_domains: '200' + page_domains: '1' +- endpoint: + params: + closed_over: '15' +- endpoint: + params: + viewId: '1' +- name: reports_overview + endpoint: + path: /reports/overview + method: GET + data_selector: items + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + sort_by: threads.total + direction: desc + per_page_agents: 2 + page_agents: 1 + per_page_contacts: 2 + page_contacts: 1 + per_page_domains: 2 + page_domains: 1 + closed_over: 15 + viewId: 1 + showHourOfDayForAgents: 0 +- name: sla_report + endpoint: + path: /reports/sla + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' +- name: productivity_report + endpoint: + path: /api/reports/productivity + method: GET + data_selector: data + params: + date: YYYY-MM-DD +- name: sla_report + endpoint: + path: /api/reports/sla + method: GET +- name: email_volumes + endpoint: + path: /models/email_volumes + method: GET + data_selector: email_volumes + params: + per_page: 2 + page: 1 + sort_by_email_volumes: messages_sent_count + direction_email_volumes: desc +- name: activity + endpoint: + path: /models/activity + method: GET + data_selector: activity + params: + per_page: 2 + page: 1 + sort_by_activity: first_activity + direction_activity: desc +- name: conversations + endpoint: + path: /models/conversations + method: GET + data_selector: conversations + params: + per_page: 2 + page: 1 + sort_by_conversations: threads_count + direction_conversations: desc +- name: average_reply_times + endpoint: + path: /models/average_reply_times + method: GET + data_selector: average_reply_times + params: {} +- name: mailbox_stats + endpoint: + path: /api/mailbox/stats + method: GET + data_selector: data + params: + per_page: 2 + page: 1 +- name: sla_report + endpoint: + path: /reports/sla + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + sort_by: threads.total + direction: desc + per_page_agents: 2 + page_agents: 1 + per_page_contacts: 2 + page_contacts: 1 + per_page_domains: 2 + page_domains: 1 + closed_over: 15 + viewId: 1 + init_ttr_goal: 02:00:00 + overall_ttr_goal: 02:00:00 + overall_ttc_goal: 02:00:00 + page: 2 +- name: email_volumes + endpoint: + path: /services/data/vXX.X/sobjects/EmailVolumes + method: GET + data_selector: records +- name: sla_report + endpoint: + path: https://portal.timetoreply.com/api/reports/sla + method: GET + data_selector: reports + params: + per_page: 2 +- name: sla_report + endpoint: + path: /reports/sla + method: GET + data_selector: data + params: {} +- name: email_activity + endpoint: + path: /api/v1/email_activity + method: GET + data_selector: data +- name: email_conversations + endpoint: + path: /api/v1/email_conversations + method: GET + data_selector: data +- name: average_reply_times + endpoint: + path: /api/v1/average_reply_times + method: GET + data_selector: data +- name: customer_stats + endpoint: + path: /api/reports/sla + method: GET + data_selector: data + params: {} +- name: sla_report + endpoint: + path: /api/reports/sla + method: GET + data_selector: items + params: {} +- name: report + endpoint: + path: /reports/sla + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: sla_report + endpoint: + path: /api/reports/sla + method: GET + data_selector: items + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + sort_by: threads.total + direction: desc + per_page_agents: 2 + page_agents: 1 + per_page_contacts: 2 + page_contacts: 1 + per_page_domains: 2 + page_domains: 1 + closed_over: 15 + viewId: 1 + init_ttr_goal: 02:00:00 + overall_ttr_goal: 02:00:00 + overall_ttc_goal: 02:00:00 + page: 250 +- name: trend_report + endpoint: + path: /api/reports/trend + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: models + endpoint: + path: /models + method: GET + data_selector: data + params: {} +- endpoint: + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: false + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: false + exclusive: false + search: null + label: + - INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + per_page: 2 + direction: desc + page: 1 + closed_over: 15 + viewId: 1 +- name: contacts_report + endpoint: + path: /api/reports/contact + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: false + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: false + exclusive: false + search: null + label: + - INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + page_emails: 1 + per_page_emails: 2 + direction_emails: desc + sort_by_emails: threads.total + page_domains: 1 + per_page_domains: 2 + direction_domains: desc + sort_by_domains: threads.total + closed_over: 15 + viewId: 1 +- name: contact + endpoint: + path: /reports/contact + method: GET + data_selector: data +- name: overallTTR + endpoint: + path: /overallTTR + method: GET + data_selector: records +- name: overallTTF + endpoint: + path: /overallTTF + method: GET + data_selector: records +- name: overallTTC + endpoint: + path: /overallTTC + method: GET + data_selector: records +- name: threads.total + endpoint: + path: /threads.total + method: GET + data_selector: records +- name: items + endpoint: + path: /api/items + method: GET + data_selector: items +- name: interactions_report + endpoint: + path: /api/reports/interactions + method: GET + data_selector: items + params: + from: YYYY-MM-DD +- name: sla_report + endpoint: + path: /api/reports/sla + method: GET + data_selector: items + params: {} +- endpoint: + params: + page_agents: 1 + per_page_contacts: 2 + page_contacts: 1 + per_page_domains: 2 + page_domains: 1 + closed_over: 15 + viewId: 1 +- name: contact_reports + endpoint: + path: /api/reports/contact + method: GET + data_selector: null + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + page_emails: 1 + per_page_emails: 2 + direction_emails: desc + sort_by_emails: threads.total + page_domains: 1 + per_page_domains: 2 + direction_domains: desc + sort_by_domains: threads.total + closed_over: 15 + viewId: 1 + page: 8 +- name: contact_reports + endpoint: + path: /api/reports/contact + method: GET + data_selector: data +- name: sla_report + endpoint: + path: /reports/sla + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' +- name: sla_report + endpoint: + path: /reports/sla + method: GET + data_selector: data + params: {} +- name: contact_reports + endpoint: + path: /reports/contact + method: GET + data_selector: reports + params: + from: '2020-01-01' + to: '2020-01-08' +- name: contact_reports + endpoint: + path: /reports/contact + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' +- name: contact + endpoint: + path: /api/reports/contact + method: GET +- name: sla_report + endpoint: + path: /reports/sla + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + sort_by: threads.total + direction: desc +- name: sla_report + endpoint: + path: /api/reports/sla + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal +- name: contact_reports + endpoint: + path: /reports/contact + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' +- name: contact + endpoint: + path: /api/reports/contact + method: GET +- name: sla_reports + endpoint: + path: /reports/sla + method: GET + data_selector: data + params: + from: 1 + to: 2 + per_page: 2 +- name: sla_report + endpoint: + path: /api/reports/sla + method: GET + data_selector: data + params: + from: null + to: null +- name: contact_report + endpoint: + path: /reports/contact + method: GET + data_selector: items + params: {} +- name: teams_report + endpoint: + path: /reports/teams + method: GET + data_selector: items + params: {} +- name: reports + endpoint: + path: /reports/sla + method: GET + data_selector: items + params: + from: 1 +- name: teams + endpoint: + path: /reports/teams + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' +- name: teams_report + endpoint: + path: /api/reports/teams + method: GET + data_selector: items + params: {} +- name: reports + endpoint: + path: /reports/teams + method: GET + data_selector: items + params: + from: 1 +- name: sla_report + endpoint: + path: /api/reports/sla + method: GET + data_selector: records + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + sort_by: threads.total + direction: desc + per_page_agents: '2' + page_agents: '1' + per_page_contacts: '2' + page_contacts: '1' + per_page_domains: '2' + page_domains: '1' + closed_over: '15' + viewId: '1' + init_ttr_goal: 02:00:00 + overall_ttr_goal: 02:00:00 + overall_ttc_goal: 02:00:00 + page: '1' +- name: teams + endpoint: + path: /api/reports/teams + method: GET + data_selector: data + params: + per_page: 2 +- name: sla_report + endpoint: + path: /api/reports/sla + method: GET + data_selector: items + params: {} +- name: group_mailboxes_report + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: data + params: + from: YYYY-MM-DD +- name: trend_report + endpoint: + path: /api/reports/trend + method: GET + data_selector: data + params: {} +- name: models + endpoint: + path: /models + method: GET + data_selector: data + params: {} +- name: contactsReport + endpoint: + path: /api/reports/contact + method: GET + params: {} +- endpoint: + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Group Mailbox + exclude_cc: false + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: false + exclusive: false + search: null + label: + - INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + per_page: 2 + sort_by: threads.total + direction: desc + page: 1 + closed_over: 15 + viewId: 1 +- name: emails + endpoint: + path: /emails + method: GET + data_selector: data +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: data + params: {} +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + per_page: 2 + sort_by: threads.total + direction: desc +- name: contact_report + endpoint: + path: /api/reports/contact + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: '0' + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: '0' + exclusive: '0' + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: '15' + message_replies_over: '15' + message_replies_under: '15' + no_reply_for: '15' + page_emails: '1' + per_page_emails: '2' + direction_emails: desc + sort_by_emails: threads.total + page_domains: '1' + per_page_domains: '2' + direction_domains: desc + sort_by_domains: threads.total + closed_over: '15' + viewId: '1' + page: '8' +- name: contact_reports + endpoint: + path: /api/reports/contact + method: GET + data_selector: data + params: + per_page: 2 +- name: group_mailboxes + endpoint: + path: /reports/group-mailboxes + method: GET + data_selector: items +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: items +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: items + params: + per_page: 2 +- name: contact_report + endpoint: + path: /reports/contact + method: GET + data_selector: report_data + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: 0 + model_com: 1 + model_type_com: Contact Group + exclude_cc_com: 0 + exclusive: 0 + label[0]: INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 +- name: emails + endpoint: + path: /api/reports/contact + method: GET + data_selector: data +- name: alerts + endpoint: + path: /api/reports/alerts + method: GET + data_selector: records + params: {} +- name: contact + endpoint: + path: /contact + method: GET + data_selector: records + params: {} +- name: contact_report + endpoint: + path: /reports/contact + method: GET + data_selector: data + params: {} +- name: live_messages + endpoint: + path: /api/v1/messages + method: GET + data_selector: liveMessages +- name: contact + endpoint: + path: /reports/contact + method: GET + data_selector: data + params: {} +- name: alerts + endpoint: + path: /alerts + method: GET + data_selector: rted_recipients +- name: alerts + endpoint: + path: /api/reports/alerts + method: GET + data_selector: data + params: + days: 7 + team: 1 + agent: 1 +- name: alerts_report + endpoint: + path: /api/reports/alerts/{agent_id} + method: GET + params: + days: 7 + page: 1 + per_page: 10 + sort: desc +- name: contact_report + endpoint: + path: /api/reports/contact + method: GET + params: + from: '2020-01-01' + to: '2020-01-08' + model: '1' + model_type: Internal + exclude_cc: false + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: false + exclusive: false + per_page: 2 + page: 1 +- name: teams_report + endpoint: + path: /api/reports/teams + method: GET + params: {} +- name: teams + endpoint: + path: /reports/teams + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' + model: 1 + model_type: Team +- name: alerts + endpoint: + path: /api/reports/alerts/1 + method: GET + data_selector: data + params: + days: 7 +- name: teams + endpoint: + path: /reports/teams + method: GET + data_selector: items + params: {} +- name: items + endpoint: + path: /api/reports/teams + method: GET + data_selector: items +- name: teams_report + endpoint: + path: /api/reports/teams + method: GET + data_selector: data + params: + per_page: 2 +- name: group_mailboxes_report + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: data +- name: email_thread + endpoint: + path: /api/v1/threads + method: GET + data_selector: items + params: {} +- name: query_parameters + endpoint: + params: + from: null + to: null + model: null + model_type: null + exclude_cc: null + model_com: null + model_type_com: null + exclude_cc_com: null + exclusive: null + search: null + label: [] + labels_and_or: null + thread_type: null + thread_status: null + has_replies: null + classification: null + messageType: null + waiting_for_response: null + replies_over: null + message_replies_over: null + message_replies_under: null + no_reply_for: null + per_page: null + sort_by: null + direction: null + page: null + closed_over: null + viewId: null +- name: conversations + endpoint: + path: /logs/conversations + method: GET + data_selector: data + params: {} +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: data + params: + from: '2020-01-01' + to: '2020-01-08' +- name: request_dates + endpoint: + params: + from: '' + to: '' + model: '' + model_type: '' + exclude_cc: false + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: false + exclusive: false + search: null + label: + - INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + per_page: 2 + sort_by: last_received_at_date_time + direction: desc + page: 1 + closed_over: 15 + columns: + - id + - init_agent_reply_time + viewId: 1 +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: records + params: {} +- name: conversations + endpoint: + path: /api/logs/conversations + method: GET + data_selector: threads + params: + unfilteredView: 'false' + per_page: 2 +- name: group_mailboxes + endpoint: + path: /reports/group-mailboxes + method: GET + data_selector: items + params: + viewId: '1' + page: '1' +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET +- name: conversationsFindBySubjectOrEmail + endpoint: + path: /api/logs/conversations/get-by-subject-or-email + method: GET + data_selector: items + params: + search: Support Query +- name: conversationsFind + endpoint: + path: /api/logs/conversations/get-by-internet-message-id + method: GET + data_selector: messages + params: + internet_message_id: 1601678270iYOoAwCjDD@TnlYu0KwPhwXxhcTAeHFJMHlI.DrfT +- name: conversationsClose + endpoint: + path: /api/logs/conversations/mark-closed + method: POST + data_selector: ids + params: {} +- name: conversationsExcludeFromSLABreach + endpoint: + path: /api/logs/conversations/exclude-from-sla-breach + method: POST + data_selector: ids + params: {} +- name: conversationsRemoveExcludeFromSLABreach + endpoint: + path: /api/logs/conversations/remove-exclude-from-sla-breach + method: POST + data_selector: ids + params: {} +- name: messagesReport + endpoint: + path: /api/logs/messages + method: GET + data_selector: messages + params: + from: YYYY-MM-DD +- name: group_mailboxes + endpoint: + path: /api/reports/group-mailboxes + method: GET + data_selector: items + params: + per_page: 2 +- name: titles + endpoint: + path: /titles + method: GET + data_selector: records + params: {} +- name: alerts + endpoint: + path: /api/reports/alerts + method: GET + params: + days: 7 + team: 1 + agent: 1 + page_live: 1 + per_page_live: 10 + page_handled: 1 + per_page_handled: 10 +- name: messages + endpoint: + path: /messages + method: GET + data_selector: messages + params: {} +- name: liveMessages + endpoint: + path: /messages + method: GET + data_selector: data +- name: messages_exclude_from_sla_breach + endpoint: + path: /api/logs/messages/exclude-from-sla-breach + method: POST + data_selector: ids + params: {} +- name: messages_remove_exclude_from_sla_breach + endpoint: + path: /api/logs/messages/remove-exclude-from-sla-breach + method: POST + data_selector: ids + params: {} +- name: stats_breakdown + endpoint: + path: /api/logs/stat-breakdown + method: GET + data_selector: stat + params: {} +- name: alerts + endpoint: + path: /reports/alerts + method: GET + params: + days: 7 + team: 1 + agent: 1 + page_live: 1 + per_page_live: 10 + page_handled: 1 + per_page_handled: 10 + sort: desc +- name: alerts + endpoint: + path: /api/reports/alerts + method: GET + data_selector: data + params: + days: 7 + team: 1 + agent: 1 +- name: alerts_report + endpoint: + path: /api/reports/alerts/{agent_id} + method: GET + data_selector: messages + params: + days: 7 + page: 1 + per_page: 10 + sort: desc +- name: alerts + endpoint: + path: /api/reports/alerts/1 + method: GET + data_selector: data + params: + days: 7 + per_page: 10 + sort: desc +- name: request_dates + endpoint: + params: + from: + description: The start date of your request in the format "YYYY-MM-DD". + required: false + to: + description: The end date of your request in the format "YYYY-MM-DD". + required: false +- name: model_stats + endpoint: + params: + model: + description: The ID, Name, email address or domain you want statistics for. + required: false + model_type: + description: Model Type of the model being queried. + required: false + exclude_cc: + description: Should we exclude CC messages from the statistics. + required: false + model_com: + description: Model Communicating With. + required: false + model_type_com: + description: Model Type of the model you are communicating with. + required: false + exclude_cc_com: + description: Should we exclude CC messages from the statistics for the communicating + with model. + required: false + exclusive: + description: Should we only focus on statistics where exclusively Model and + ModelCom were involved?. + required: false + search: + description: Search a specific email subject line. + required: false + label: + description: Label to filter results using them. + required: false + labels_and_or: + description: Should we filter by all labels or any labels. + required: false + thread_type: + description: 'A comma separated list of any combination of the following: + inbound,outbound,internal.' + required: false + thread_status: + description: 'A comma separated list of any combination of the following: + internal,await-customer,closed,await-agent.' + required: false + has_replies: + description: 'A comma separated list of any combination of the following: + hasReplies,hasForwards,hasNoRepliesOrForwards.' + required: false + classification: + description: 'A comma separated list of any combination of the following: + calculating,first,reply,reply-all,forward,follow-up.' + required: false + messageType: + description: 'A comma separated list of any combination of the following: + inbound,outbound,internal.' + required: false + waiting_for_response: + description: 'A comma separated list of any combination of the following: + customer-has-response,waiting-for-response.' + required: false + replies_over: + description: Limit results to conversations with first reply times over X + minutes. + required: false + message_replies_over: + description: Limit results to messages where the reply time was over X minutes. + required: false + message_replies_under: + description: Limit results to messages where the reply time was under X minutes. + required: false + no_reply_for: + description: Limit results to messages that have not had a reply for at least + X minutes. + required: false + per_page: + description: For paginated results, how many results per page. Max 200. + required: false + sort_by: + description: Field Name to sort conversations by. + required: false + direction: + description: Direction in which to sort paginated results. + required: false + page: + description: For paginated results, which page to get. + required: false + closed_over: + description: Limit results to conversations closed over X minutes. + required: false + viewId: + description: The ID of the view you want to use. + required: false +- name: email_thread + endpoint: + path: /api/v1/email_threads + method: GET + data_selector: threads +- name: stat_breakdown + endpoint: + path: /api/logs/stat-breakdown + method: GET + data_selector: data + params: + per_page: '2' +- name: entities_search + endpoint: + path: /api/entities/search + method: GET + data_selector: results + params: + per_page: '2' + page: '1' +- name: entities_search + endpoint: + path: /api/entities/search + method: GET + data_selector: data +- name: email_messages + endpoint: + path: /api/v1/email/messages + method: GET + data_selector: items + params: {} +- name: conversations + endpoint: + path: /logs/conversations + method: GET + data_selector: logs + params: {} +- name: customer_domains + endpoint: + path: /customer/domains + method: GET + data_selector: domains + params: {} +- name: statistics + endpoint: + params: {} +- name: mailboxes + endpoint: + path: /api/entities/agents + method: GET + data_selector: data + params: {} +- name: conversations + endpoint: + path: /api/logs/conversations + method: GET + data_selector: threads + params: + viewId: 1 + unfilteredView: 0 +- name: agents + endpoint: + path: /api/entities/agents + method: GET + data_selector: data + params: + per_page: 2 +- name: invite + endpoint: + path: /api/entities/agents/invite + method: POST +- name: mailboxesO365List + endpoint: + path: /api/entities/agents/microsoft/load-bulk-agents + method: GET +- name: mailboxesO365Search + endpoint: + path: /api/entities/agents/microsoft/search-bulk-agents + method: GET + params: + search: '' +- name: mailboxesO365BulkAdd + endpoint: + path: /api/entities/agents/microsoft/select-bulk + method: POST +- name: mailboxesGmailList + endpoint: + path: /api/entities/agents/gmail/load-bulk-agents + method: GET +- name: mailboxesGmailBulkAdd + endpoint: + path: /api/entities/agents/gmail/select-bulk + method: POST +- name: mailboxesEWSUpdate + endpoint: + path: /api/entities/agents/{agent_id}/ews + method: PATCH +- name: mailboxesDelete + endpoint: + path: /api/entities/agents/{id} + method: DELETE +- name: mailboxesDeleteMultiple + endpoint: + path: /api/entities/agents/delete-multiple + method: POST +- name: mailboxesReAuthenticate + endpoint: + path: /api/entities/agents/{agent_id}/re-auth + method: GET +- name: conversationsFindBySubjectOrEmail + endpoint: + path: /api/logs/conversations/get-by-subject-or-email + method: GET + data_selector: items + params: {} +- name: conversationsFind + endpoint: + path: /api/logs/conversations/get-by-internet-message-id + method: GET + data_selector: messages + params: + internet_message_id: required +- name: conversationsClose + endpoint: + path: /api/logs/conversations/mark-closed + method: POST + data_selector: ids + params: {} +- name: conversationsExcludeFromSLABreach + endpoint: + path: /api/logs/conversations/exclude-from-sla-breach + method: POST + data_selector: ids + params: {} +- name: conversationsRemoveExcludeFromSLABreach + endpoint: + path: /api/logs/conversations/remove-exclude-from-sla-breach + method: POST + data_selector: ids + params: {} +- name: messagesReport + endpoint: + path: /api/logs/messages + method: GET + data_selector: messages + params: {} +- name: agents_update + endpoint: + path: /api/entities/agents/{id}/update + method: PATCH + data_selector: status + params: {} +- name: agents_search_all + endpoint: + path: /api/entities/agents/search-all-company-mailboxes + method: GET + data_selector: data + params: {} +- name: contacts_list + endpoint: + path: /api/entities/contacts + method: GET + data_selector: data + params: {} +- name: contacts + endpoint: + path: /entities/contacts + method: GET + data_selector: data + params: + sort_by: name + direction: asc + per_page: 25 + page: 1 +- name: request_dates + endpoint: + params: + from: '2020-01-01' + to: '2020-01-08' + model: My Company + model_type: Internal + exclude_cc: false + model_com: '1' + model_type_com: Contact Group + exclude_cc_com: false + exclusive: false + search: null + label: + - INBOX + labels_and_or: AND + thread_type: inbound,outbound,internal + thread_status: internal,await-customer,closed,await-agent + has_replies: hasReplies,hasForwards,hasNoRepliesOrForwards + classification: calculating,first,reply,reply-all,forward + messageType: inbound,outbound,internal + waiting_for_response: customer-has-response,waiting-for-response + replies_over: 15 + message_replies_over: 15 + message_replies_under: 15 + no_reply_for: 15 + per_page: 2 + sort_by: date_time + direction: desc + page: 1 + closed_over: 15 + columns: + - date_time + - subject + viewId: 1 +- name: contacts + endpoint: + path: /api/entities/contacts + method: GET + data_selector: data + params: + per_page: 25 + page: 1 +- name: contact_groups + endpoint: + path: /api/entities/contact-groups + method: GET + data_selector: data + params: + per_page: 15 + page: 1 +- name: messages + endpoint: + path: /logs/messages + method: GET + data_selector: messages + params: + unfilteredView: '0' + viewId: '1' +- name: customer_emails + endpoint: + path: /customer_emails + method: GET + data_selector: emails +- name: customer_domains + endpoint: + path: /customer_domains + method: GET + data_selector: domains +- name: messages_exclude_from_sla_breach + endpoint: + path: /api/logs/messages/exclude-from-sla-breach + method: POST + data_selector: ids +- name: messages_remove_exclude_from_sla_breach + endpoint: + path: /api/logs/messages/remove-exclude-from-sla-breach + method: POST + data_selector: ids +- name: stats_breakdown + endpoint: + path: /api/logs/stat-breakdown + method: GET + data_selector: stat +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomain + method: GET + data_selector: records + params: {} +- name: user_permissions + endpoint: + path: /services/data/vXX.X/sobjects/UserPermission + method: GET + data_selector: records + params: {} +- name: customer_emails + endpoint: + path: /services/data/vXX.X/sobjects/CustomerEmails + method: GET + data_selector: records + params: {} +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomain + method: GET + data_selector: records + params: {} +- name: user_permissions + endpoint: + path: /services/data/vXX.X/sobjects/UserPermission + method: GET + data_selector: records + params: {} +- name: request_dates + endpoint: + params: + from: + description: The start date of your request in the format "YYYY-MM-DD". Must + be less than or equal to "to". + required: false + to: + description: The end date of your request in the format "YYYY-MM-DD". Must + be greater than or equal to "from". + required: false +- name: model_statistics + endpoint: + params: + model: + description: The ID, Name, email address or domain you want statistics for. + Use the models endpoint to get a list. + required: false + model_type: + description: Model Type of the model being queried. Use "Contact" for email + address and domain. + required: false + exclude_cc: + description: Should we exclude CC messages from the statistics. + required: false + model_com: + description: Model Communicating With, same as Model, except now for who/what + the Model is communicating with. + required: false + model_type_com: + description: Model Type of the model you are communicating with. Use "Contact" + for email address and domain. + required: false + exclude_cc_com: + description: Should we exclude CC messages from the statistics for the communicating + with model. + required: false + exclusive: + description: Should we only focus on statistics where exclusively Model and + ModelCom were involved?. + required: false + search: + description: Search a specific email subject line (warning this is very slow!). + required: false + label: + description: Label, if your mail provider supports labels/categories, you + can filter your results using them. + required: false + labels_and_or: + description: Should we filter by all labels or any labels. Must be either + "AND" or "OR". + required: false + thread_type: + description: 'A comma separated list (no spaces) of any combination of the + following: inbound,outbound,internal.' + required: false + thread_status: + description: 'A comma separated list (no spaces) of any combination of the + following: internal,await-customer,closed,await-agent.' + required: false + has_replies: + description: 'A comma separated list (no spaces) of any combination of the + following: hasReplies,hasForwards,hasNoRepliesOrForwards.' + required: false + classification: + description: 'A comma separated list (no spaces) of any combination of the + following: calculating,first,reply,reply-all,forward,follow-up.' + required: false + messageType: + description: 'A comma separated list (no spaces) of any combination of the + following: inbound,outbound,internal.' + required: false + waiting_for_response: + description: 'A comma separated list (no spaces) of any combination of the + following: customer-has-response,waiting-for-response.' + required: false + replies_over: + description: Limit results to conversations with first reply times over X + minutes. Should not be used at same time as message_replies_over. + required: false + message_replies_over: + description: Limit results to messages where the reply time was over X minutes. + Should not be used at same time as replies_over. + required: false + message_replies_under: + description: Limit results to messages where the reply time was under X minutes. + required: false + no_reply_for: + description: Limit results to messages that have not had a reply for at least + X minutes. + required: false + per_page: + description: For paginated results, how many results per page. Max 200. + required: false + sort_by: + description: Field Name to sort conversations (threads) by. Defaults to last_received_at_date_time. + required: false + direction: + description: Direction in which to sort paginated results. Must be either + asc or desc. + required: false + page: + description: For paginated results, which page to get. + required: false + closed_over: + description: Limit results to conversations closed over X minutes. + required: false + viewId: + description: The ID of the view you want to use. This will pull in all the + filters and settings from that view. + required: false +- name: Top Revenue Customers + endpoint: + path: /services/data/vXX.X/sobjects/TopRevenueCustomers + method: GET + data_selector: records + params: {} +- name: stat_breakdown + endpoint: + path: /logs/stat-breakdown + method: GET + data_selector: data.data + params: {} +- name: entities_search + endpoint: + path: /entities/search + method: GET + data_selector: results + params: + per_page: '2' + page: '1' + search: Top Revenue + type: all +- name: customer_emails + endpoint: + path: /services/data/vXX.X/sobjects/CustomerEmails + method: GET + data_selector: records + params: {} +- name: contact_group + endpoint: + path: /api/entities/search + method: GET + data_selector: data +- name: contact + endpoint: + path: /api/entities/search + method: GET + data_selector: data +- name: customer_domains + endpoint: + path: /customer_domains + method: GET + data_selector: domains +- name: user_permissions + endpoint: + path: /user_permissions + method: GET + data_selector: permissions +- name: Contact Group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET +- name: Contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET +- name: contact_groups + endpoint: + path: /api/entities/contact-groups + method: GET + data_selector: data +- name: customer_emails + endpoint: + path: /path/to/customer_emails + method: GET + data_selector: emails + params: {} +- name: mailboxes + endpoint: + path: /api/entities/agents + method: GET + data_selector: data + params: + per_page: 2 + page: 1 +- name: agents + endpoint: + path: /api/entities/agents + method: GET + data_selector: data + params: + per_page: 2 +- name: mailboxes_invite_list + endpoint: + path: /api/entities/agents/invites + method: GET + data_selector: invitations +- name: contacts + endpoint: + path: /contacts + method: GET + data_selector: results +- name: invite + endpoint: + path: /api/entities/agents/invite + method: POST +- name: load-bulk-agents-o365 + endpoint: + path: /api/entities/agents/microsoft/load-bulk-agents + method: GET +- name: search-bulk-agents-o365 + endpoint: + path: /api/entities/agents/microsoft/search-bulk-agents + method: GET + params: + search: '' +- name: select-bulk-o365 + endpoint: + path: /api/entities/agents/microsoft/select-bulk + method: POST +- name: load-bulk-agents-gmail + endpoint: + path: /api/entities/agents/gmail/load-bulk-agents + method: GET +- name: select-bulk-gmail + endpoint: + path: /api/entities/agents/gmail/select-bulk + method: POST +- name: update-ews + endpoint: + path: /api/entities/agents/{agent_id}/ews + method: PATCH +- name: delete-mailbox + endpoint: + path: /api/entities/agents/{id} + method: DELETE +- name: delete-multiple-mailboxes + endpoint: + path: /api/entities/agents/delete-multiple + method: POST +- name: re-authenticate + endpoint: + path: /api/entities/agents/{agent_id}/re-auth + method: GET +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomains + method: GET + data_selector: domains + params: {} +- name: user_permissions + endpoint: + path: /services/data/vXX.X/sobjects/UserPermissions + method: GET + data_selector: permissions + params: {} +- name: Top Revenue Customers +- name: agents_update + endpoint: + path: /api/entities/agents/{id}/update + method: PATCH +- name: agents_search_all + endpoint: + path: /api/entities/agents/search-all-company-mailboxes + method: GET +- name: contacts_list + endpoint: + path: /api/entities/contacts + method: GET + params: + sort_by: name + direction: asc + per_page: 25 + page: 1 +- name: contacts + endpoint: + path: /api/entities/contacts + method: GET + data_selector: data + params: + per_page: 25 + page: 1 +- name: contacts + endpoint: + path: /api/entities/contacts + method: GET + data_selector: data + params: + per_page: 25 + page: 1 + sort_by: name + direction: asc +- name: contact_groups + endpoint: + path: /api/entities/contact-groups + method: GET + data_selector: data +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: customer_emails + endpoint: + path: /contacts + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: contacts + endpoint: + path: /v2/contacts + method: GET + data_selector: results + params: {} +- name: customer_group + endpoint: + path: /api/v1/customer_groups + method: GET + data_selector: data +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomains + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: contact_groups + endpoint: + path: /api/entities/contact-groups + method: GET + data_selector: data + params: {} +- name: contact_group_show + endpoint: + path: /api/entities/contact-groups/{id} + method: GET + data_selector: data + params: {} +- name: Top Revenue Customers + endpoint: + path: /services/data/vXX.X/sobjects/TopRevenueCustomers + method: GET + data_selector: records + params: {} +- name: Contact Group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET + data_selector: records +- name: contact_groups + endpoint: + path: /contact-groups + method: GET + data_selector: items +- name: group_mailboxes + endpoint: + path: /group-mailboxes + method: GET + data_selector: items +- name: customer_emails + endpoint: + path: /services/data/vXX.X/sobjects/CustomerEmails + method: GET + data_selector: records + params: + incremental: updated_at +- name: customer_domains + endpoint: + path: /customer_domains + method: GET + data_selector: domains +- name: user_permissions + endpoint: + path: /user_permissions + method: GET + data_selector: permissions +- name: group_mailboxes + endpoint: + path: /api/entities/group-mailboxes + method: GET + data_selector: data + params: {} +- name: group_mailbox_members + endpoint: + path: /api/entities/group-mailboxes/{group_mailbox_id}/agents + method: GET + data_selector: data + params: {} +- name: group_mailbox_members_store + endpoint: + path: /api/entities/group-mailboxes/{group_mailbox_id}/members + method: POST + data_selector: '' + params: {} +- name: group_mailbox_members_delete + endpoint: + path: /api/entities/group-mailboxes/{group_mailbox_id}/members + method: DELETE + data_selector: '' + params: {} +- name: teams_list + endpoint: + path: /api/entities/teams + method: GET + data_selector: '' + params: + per_page: 2 +- name: contact_groups + endpoint: + path: /entities/contact-groups + method: GET + data_selector: data + params: {} +- name: teams + endpoint: + path: /api/entities/teams + method: GET + data_selector: data + params: {} +- name: team_members + endpoint: + path: /api/entities/teams/{team_id}/agents + method: GET + data_selector: data + params: {} +- name: customer_emails + endpoint: + path: /services/data/vXX.X/sobjects/CustomerEmails + method: GET + data_selector: records +- name: team_members_store + endpoint: + path: /api/entities/team_members/store + method: POST + data_selector: responses + params: {} +- name: team_members_delete + endpoint: + path: /api/entities/team_members/delete + method: DELETE + data_selector: responses + params: {} +- name: labels_search + endpoint: + path: /api/entities/labels/search + method: GET + data_selector: data + params: + search: test + per_page: 5 + page: 1 + force: true +- name: filters_list + endpoint: + path: /api/tools/settings/message-filters/all-thread-filter-data + method: GET + data_selector: responses + params: + view_id: 1 +- name: customer_domains +- name: contacts + endpoint: + path: /v2/contacts + method: GET + data_selector: results +- name: Contact Group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET + data_selector: records +- name: Contact Group + endpoint: + path: /contact_group + method: GET + data_selector: model_type +- name: Salesforce Customer Group + endpoint: + path: /salesforce_customer_group + method: GET + data_selector: model_type +- name: customer_emails + endpoint: + path: /services/data/vXX.X/sobjects/CustomerEmails + method: GET + data_selector: records +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomains + method: GET + data_selector: records + params: {} +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomains + method: GET + data_selector: records + params: {} +- name: user_permissions + endpoint: + path: /services/data/vXX.X/sobjects/UserPermissions + method: GET + data_selector: records + params: {} +- name: customers + endpoint: + path: /customers + method: GET + data_selector: records + params: {} +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: contact + endpoint: + path: /contact + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: customer_emails + endpoint: + path: /api/customer_emails + method: GET + data_selector: items +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomains + method: GET + data_selector: records + params: {} +- name: Contact Group + endpoint: + path: /ContactGroup + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: contact_groups + endpoint: + path: /api/entities/contact-groups + method: GET + data_selector: records +- name: contact_group + endpoint: + path: /api/entities/contact-groups/{id} + method: GET + data_selector: records +- name: Contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Top Revenue Customers + endpoint: + path: /customer_domains + method: GET +- name: contact_groups + endpoint: + path: /api/entities/contact-groups + method: GET + data_selector: items +- name: group_mailboxes + endpoint: + path: /api/entities/group-mailboxes + method: GET + data_selector: items +- name: group_mailboxes + endpoint: + path: /api/entities/group-mailboxes + method: GET + data_selector: data + params: {} +- name: group_mailbox_members + endpoint: + path: /api/entities/group-mailboxes/{group_mailbox_id}/agents + method: GET + data_selector: data + params: {} +- name: Contact Group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET + data_selector: records + params: {} +- name: contact_group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET + data_selector: records +- name: group_mailbox_members_store + endpoint: + path: /entities/group-mailboxes/{group_mailbox_id}/agents + method: POST + data_selector: responses + params: {} +- name: group_mailbox_members_delete + endpoint: + path: /entities/group-mailboxes/{group_mailbox_id}/agents + method: DELETE + data_selector: responses + params: {} +- name: teams_list + endpoint: + path: /entities/teams + method: GET + data_selector: responses + params: + per_page: '2' +- name: customers + endpoint: + path: /customers + method: GET + data_selector: customers +- name: teams + endpoint: + path: /entities/teams + method: GET + data_selector: data + params: {} +- name: team_members + endpoint: + path: /entities/teams/{team_id}/agents + method: GET + data_selector: data + params: {} +- name: Contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: domain_filters + endpoint: + path: /api/tools/settings/message-filters/domains + method: GET + data_selector: items + params: {} +- name: team_members_store + endpoint: + path: /api/entities/team_members/store + method: POST + data_selector: responses + params: {} +- name: team_members_delete + endpoint: + path: /api/entities/team_members/delete + method: DELETE + data_selector: responses + params: {} +- name: labels_search + endpoint: + path: /api/entities/labels/search + method: GET + data_selector: data + params: + search: test + per_page: 5 + page: 1 + force: true +- name: filters_list + endpoint: + path: /api/tools/settings/message-filters/all-thread-filter-data + method: GET + data_selector: responses + params: + view_id: 1 +- name: domains + endpoint: + path: /api/tools/settings/message-filters/domains + method: GET + data_selector: domains.data + params: + per_page: '5' +- name: usernames + endpoint: + path: /api/tools/settings/message-filters/usernames + method: GET + data_selector: current_page + params: + per_page: '5' +- name: advanced_filters + endpoint: + path: /api/tools/settings/message-filters/advanced + method: GET + data_selector: current_page + params: + per_page: '15' +- name: Constant Contact Customer Group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET + data_selector: records + params: {} +- name: advanced_filters_update + endpoint: + path: /api/tools/settings/message-filters/advanced/{message_filter_group_id} + method: PATCH + data_selector: id + params: {} +- name: Contact Group + endpoint: + path: /contact-group + method: GET +- name: Contact Group + endpoint: + path: /contact_group + method: GET + data_selector: records + params: {} +- name: Salesforce Customer Group + endpoint: + path: /salesforce_customer_group + method: GET + data_selector: records + params: {} +- name: reply_time_goals + endpoint: + path: /api/tools/settings/reply-time-goals + method: GET + data_selector: first_reply_time_goal + params: {} +- name: profile + endpoint: + path: /api/me + method: GET + data_selector: id + params: {} +- name: internal_domains + endpoint: + path: /api/tools/company/internal-domains + method: GET + data_selector: data + params: + per_page: 2 + page: 1 +- name: closing_email_addresses + endpoint: + path: /api/tools/company/close-conversation-emails + method: GET + data_selector: data + params: + per_page: 2 + page: 1 +- name: Top Revenue Customers + endpoint: + path: /services/data/vXX.X/sobjects/TopRevenueCustomers + method: GET + data_selector: records + params: {} +- name: closing_email_addresses + endpoint: + path: /api/tools/company/close-conversation-emails + method: POST + data_selector: data + params: {} +- name: business_hours + endpoint: + path: /api/tools/company/business-hours + method: GET + data_selector: data + params: {} +- name: calendar_sync_settings + endpoint: + path: /api/tools/company/calendar-sync-settings + method: GET + data_selector: data + params: {} +- name: leave_days_range + endpoint: + path: /api/tools/company/leave-days/range + method: POST + data_selector: data + params: {} +- name: Contact Group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET + data_selector: records +- name: customers + endpoint: + path: /customers + method: GET + data_selector: customers +- name: leave_days_store + endpoint: + path: /api/tools/company/leave-days + method: POST + data_selector: application/json +- name: leave_days_delete + endpoint: + path: /api/tools/company/leave-days/{id} + method: DELETE + data_selector: application/json +- name: users_invite + endpoint: + path: /api/tools/users/invite-user + method: POST + data_selector: application/json +- name: users_resend_invite + endpoint: + path: /api/tools/users/invite-user/{user_invite_id} + method: POST + data_selector: application/json +- name: users_list + endpoint: + path: /api/tools/users + method: GET + data_selector: application/json +- name: users_show + endpoint: + path: /api/tools/users/{id} + method: GET + data_selector: application/json +- name: users_update + endpoint: + path: /api/tools/users/{id} + method: PATCH + data_selector: application/json +- name: users_delete + endpoint: + path: /api/tools/users/{user_id} + method: DELETE + data_selector: application/json +- name: roles_list + endpoint: + path: /api/tools/users/roles + method: GET + data_selector: application/json +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: contact + endpoint: + path: /email_usernames + method: GET + data_selector: email_usernames + params: {} +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomains + method: GET + data_selector: records + params: {} +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: Contact Group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET + data_selector: records +- name: customer_domains + endpoint: + path: /services/data/vXX.X/sobjects/CustomerDomain + method: GET + data_selector: records +- name: Contact Group + endpoint: + path: /services/data/vXX.X/sobjects/ContactGroup + method: GET + data_selector: records +- name: customers + endpoint: + path: /customers + method: GET + data_selector: customers +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: domains + endpoint: + path: /api/tools/settings/message-filters/domains + method: GET + data_selector: domains + params: + per_page: '5' +- name: usernames + endpoint: + path: /api/tools/settings/message-filters/usernames + method: GET + data_selector: data + params: + per_page: '5' +- name: advanced_filters + endpoint: + path: /api/tools/settings/message-filters/advanced + method: GET + data_selector: data + params: + per_page: '15' +- name: advanced_filters_update + endpoint: + path: /api/tools/settings/message-filters/advanced/{message_filter_group_id} + method: PATCH + data_selector: application/json + params: + filterName: From Does Not Contain no-reply filter + filters: [] +- name: reply_time_goals + endpoint: + path: /api/tools/settings/reply-time-goals + method: GET + data_selector: properties + params: {} +- name: internal_domains + endpoint: + path: /api/tools/company/internal-domains + method: GET + data_selector: data + params: {} +- name: closing_email_addresses + endpoint: + path: /api/tools/company/close-conversation-emails + method: GET + data_selector: data + params: {} +- name: closing_email_addresses + endpoint: + path: /tools/company/close-conversation-emails + method: GET + data_selector: data + params: + per_page: 15 +- name: business_hours + endpoint: + path: /tools/company/business-hours + method: GET + data_selector: data + params: {} +- name: calendar_sync_settings + endpoint: + path: /tools/company/calendar-sync-settings + method: GET + data_selector: data + params: + per_page: 10 +- name: leave_days_store + endpoint: + path: /api/tools/company/leave-days + method: POST + data_selector: leave_day + params: {} +- name: leave_days_delete + endpoint: + path: /api/tools/company/leave-days/{id} + method: DELETE + data_selector: status + params: {} +- name: users_invite + endpoint: + path: /api/tools/users/invite-user + method: POST + data_selector: user_invite + params: {} +- name: users_resend_invite + endpoint: + path: /api/tools/users/invite-user/{user_invite_id} + method: POST + data_selector: invite_status + params: {} +- name: users_delete_invite + endpoint: + path: /api/tools/users/invite-user/{user_invite_id} + method: DELETE + data_selector: status + params: {} +- name: roles_list + endpoint: + path: /api/tools/users/roles + method: GET + data_selector: roles + params: {} +- name: users_show + endpoint: + path: /api/tools/users/{id} + method: GET + data_selector: user + params: {} +- name: users_update + endpoint: + path: /api/tools/users/{id} + method: PATCH + data_selector: updated_user + params: {} +- name: users_delete + endpoint: + path: /api/tools/users/{user_id} + method: DELETE + data_selector: status + params: {} +- name: users_list + endpoint: + path: /api/tools/users + method: GET + data_selector: users + params: {} +notes: +- Tokens have an expiration time of 1 year. +- All requests made to our api with these generated access tokens will be assigned + to the user that generated the access token. +- Pagination is handled via 'per_page' and page parameters. +- This average takes business hours into account, and only calculates the time that + has elapsed during business hours when calculating the average. +- All fields in reports may return 'N/A' or null values. +- Pagination supports per_page parameter. +- The endpoint supports pagination with per_page parameter. +- Pagination supported with per_page parameter +- Pagination is done using page number and per_page parameter. +- Pagination is handled via page parameters. +- Some objects may return nulls in specific fields +- Pagination is implemented with page number and per_page parameter +- Some objects like Contact may return nulls in deeply nested fields +- The message data includes various fields related to emails. +- Requires authentication. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects may return nulls in deeply nested fields +- Some objects like CustomerEmails may return nulls in deeply nested fields +- 'Tip: Check that you''re properly connected to the network.' +- If you're a maintainer of this API, verify that your API is running and you've enabled + CORS. +- Check that you're properly connected to the network. +- Requires authentication for all operations +- Check network connection and API status if requests fail +- Requires authentication +- Check network connection and API status if issues arise +- Some objects may have rate limits on API calls +- Requires authentication for all requests. +- Pagination is handled with page and per_page parameters. +- Uses OAuth2 with refresh token — requires setup of connected app in timetoreply +- Some data fields may return N/A values +- This will pull in all the filters and settings from that view. +- The report provides trend data based on various filters. +- Pagination is supported with per_page parameter. +- Uses OAuth2 for authentication. +- Requires setup of connected app in API +- Pagination is handled using page number with default page size. +- Requires setup of connected app in timetoreply +- Requires setup of API key for authentication +- Ensure to handle pagination for large datasets +- Pagination is supported with page size of 10. +- Requires setup of API key and OAuth2 for authentication +- Be mindful of API rate limits to avoid being throttled +- Requires a valid OAuth2 token +- Some endpoints may return paginated data +- Some objects like CustomerDomain may return nulls in deeply nested fields +- The API supports pagination with a per_page parameter. +- For paginated results, how many results per page. +- List all Contact Groups +- Uses OAuth2 with refresh token — requires setup of connected app in Constant Contact +- Requires OAuth2 authentication setup +- Field Name to sort domains by. +- Pagination is handled via next_page_url provided in the response. +- You can generate your token by logging in and visiting TOOLS > API +- Should we show the hour of day for agents. +- Pagination available with page parameter. +- Pagination is based on page number with per_page as a query parameter. +- Uses pagination with per_page parameter. +- Pagination is supported with multiple pages available. +- Pagination is based on page numbers. +- Pagination is based on page number and page size. +- Uses business hours to calculate average response times. +- Some parameters are required for reports. +- Uses pagination with per_page parameter +- Pagination is supported through next_page_url and previous_page_url +- Use the appropriate query parameters for filtering and pagination. +- Pagination is handled via next_page_url and prev_page_url +- Pagination is done via page parameter. +- Pagination uses page number and page size as parameters +- Pagination is supported but requires additional query parameters. +- Pagination is supported through page parameters. +- Pagination is based on page number and number of items per page. +- Pagination is based on pages and supports a per_page query parameter. +- Requires setup of API access in the timetoreply portal +- Pagination may affect performance; review page size and overall data volume. +- Pagination is implemented using page number and per_page parameter. +- API requires setup of connected app in timetoreply +- Pagination is based on page number with a per_page parameter. +- Pagination is handled via the 'page' parameter. +- Per page limit is set to 25. +- Pagination links are available in the response. +- API requires setup of connected app in api +- Pagination is implemented with page size of 2. +- Pagination links provided for navigating through pages. +- Requires authentication to access messages. +- Pagination available with links to navigate through pages +- Pagination available via page parameter +- The endpoint supports pagination. +- Uses OAuth2 with refresh token — requires setup of connected app in API +- Conversation (Thread) Logs data available with various columns. +- Pagination is handled by per_page parameter. +- Should we use the unfiltered view. +- Pagination uses a page parameter with a default of 25 items per page. +- Requires setup of connected app in api +- Pagination is based on page number +- Data can be filtered using various parameters +- Pagination is based on pages with a default size of 10. +- Requires OAuth2 setup for API access +- Data may return nulls in certain fields +- Use of email domains and usernames for tracking replies and threads. +- Some email fields may return nulls in deeply nested structures +- The full list of available columns for the "columns" parameter are provided in the + documentation. +- Pagination is done through page number. +- Requires admin credentials for some operations +- Pagination is done using page parameter with a default of 25 items per page. +- Pagination is based on page number and per_page parameter +- Pagination is based on page number with a default of 2 items per page. +- Some endpoints may have rate limits. +- Requires setup of admin credentials for authentication. +- Requires setup of OAuth2 credentials in Constant Contact +- Requires OAuth2 authentication +- API rate limits may apply +- Ensure that correct permissions are assigned for API access +- Some objects like Top Revenue Customers may return nulls in deeply nested fields +- Some endpoints may require specific user permissions. +- Paginated results can be retrieved using page parameter. +- Pagination is provided with a total count of items. +- Paginated results can be sorted by fields like 'name'. +- Uses OAuth2 with refresh token — requires setup of connected app in Maropost +- Uses OAuth2 with refresh token +- For paginated results, the default number of mailboxes to show per page is 25. +errors: +- 'RATE_LIMIT_EXCEEDED: Wait for the Retry-After header time before trying again.' +- 'Rate limit exceeded: 30 requests per minute and 900 requests per hour.' +- 'REQUEST_FAILED: Check that you''re properly connected to the network' +- 'API_NOT_RUNNING: Verify that your API is running and you''ve enabled CORS' +- 'Tip: Check that you''re properly connected to the network.' +- If you're a maintainer of this API, verify that your API is running and you've enabled + CORS. +- You can check the Dev Tools console for debugging information. +- 'Invalid request: Ensure all required parameters are provided.' +- 'Unauthorized: Check your API key or access permissions.' +- 'API_RUNNING: Verify that your API is running and you''ve enabled CORS' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'REQUEST_FAILED: Check that you''re properly connected to the network.' +- 'API_NOT_RUNNING: Verify that your API is running and you''ve enabled CORS.' +- '401 Unauthorized: Check API key or token.' +- 'DEBUG_INFO: Check the Dev Tools console for debugging information' +- 'CORS_ERROR: Verify that your API is running and you''ve enabled CORS.' +- 'REQUEST_LIMIT_EXCEEDED: Check that you''re properly connected to the network.' +- Check that your API is running and you've enabled CORS. +- Request failed with error +- 'Request failed with error: Tip: Check that you''re properly connected to the network.' +- 'Request failed with error: If you''re a maintainer of ths API, verify that your + API is running and you''ve enabled CORS.' +- Check network connection or API status. +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- '200: Successful request' +- '400: Bad request' +- '401: Unauthorized' +- '404: Not found' +- '401 Unauthorized: Check your API key and OAuth token' +- '429 Too Many Requests: Rate limit exceeded, retry later' +- 'INVALID_TOKEN: Check if the token is valid and not expired' +- 'RATE_LIMIT_EXCEEDED: Reduce the number of requests per second' +- '404 NOT FOUND: Check the endpoint URL and parameters' +- '200: Success' +- '401 Unauthorized: Invalid or expired token' +- '404 Not Found: Check endpoint path' +- '400 Bad Request: Check the request body format.' +- '401 Unauthorized: Ensure authentication token is valid.' +- '404 Not Found: Verify the endpoint path.' +- '400 Bad Request: Check your query parameters for correctness' +- '401 Unauthorized: Ensure you have the correct API key' +- '404 Not Found: Verify the endpoint URL' +- '401 Unauthorized: Check API Key or Authentication Token' +- '404 Not Found: Verify the endpoint path and parameters' +- '401 Unauthorized: Check credentials.' +- '400 Bad Request: Check query parameters for correctness' +- '401 Unauthorized: Verify authentication credentials' +- '404 Not Found: Ensure the endpoint path is correct' +- '401 Unauthorized: Ensure valid authentication credentials.' +- '400 Bad Request: Check query parameters for validity' +- '404 Not Found: Ensure the endpoint is correct' +- '400 Bad Request: Check request parameters.' +- '404 Not Found: Verify endpoint URL.' +- '401 Unauthorized: Check your credentials' +- '404 Not Found: Verify the agent ID' +- '400 Bad Request: Check request parameters' +- '401 Unauthorized: Verify credentials.' +- '429 Too Many Requests: Rate limit exceeded.' +- '401 Unauthorized: Check your client ID and secret' +- '429 Too Many Requests: Slow down your request rate' +- '400 Bad Request: Check request parameters and payload' +- '401 Unauthorized: Verify OAuth token' +- '404 Not Found: Resource does not exist' +- '401 Unauthorized: Check API key and OAuth token validity' +- '429 Too Many Requests: Rate limit exceeded' +- '400 Bad Request: Check the request parameters' +- '404 Not Found: Ensure the resource exists' +- '401 Unauthorized: Recheck API key or token expiration' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential + - OAuthToken +client: + base_url: https://portal.timetoreply.com/api + auth: + type: oauth2 + location: header + header_name: Authorization + headers: + Content-Type: application/json + Accept: application/json +source_metadata: null diff --git a/trackier_publisher_api/trackier-publisher-api-docs.md b/trackier_publisher_api/trackier-publisher-api-docs.md new file mode 100644 index 00000000..91e078ac --- /dev/null +++ b/trackier_publisher_api/trackier-publisher-api-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Trackier data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def trackier_ads_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.trackier.io/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + click,campaigns,offers + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='trackier_ads_migrations_pipeline', + destination='duckdb', + dataset_name='trackier_ads_migrations_data', + ) + # Load the data + load_info = pipeline.run(trackier_ads_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from trackier_ads_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Click Tracking: Endpoints for tracking clicks and conversions. +- Campaign Management: Endpoints to manage and retrieve campaign data. +- Offer Management: Endpoints to manage offers and their statuses. + +You will then debug the Trackier pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Trackier support. + ```shell + dlt init dlthub:trackier_ads_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Trackier API, as specified in @trackier_ads_migrations-docs.yaml + Start with endpoints click and campaigns and skip incremental loading for now. + Place the code in trackier_ads_migrations_pipeline.py and name the pipeline trackier_ads_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python trackier_ads_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + Trackier uses OAuth2 for authentication, requiring a refresh token for access. The access token must be included in the header of API requests for authorization. + + To get the appropriate API keys, please visit the original source at https://www.trackier.io/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python trackier_ads_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline trackier_ads_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset trackier_ads_migrations_data + The duckdb destination used duckdb:/trackier_ads_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline trackier_ads_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("trackier_ads_migrations_pipeline").dataset() + # get lic table as Pandas frame + data.lic.df().head() + ``` + +## Running into errors? + +Ensure to handle token expiration properly, as the API requires a valid access token for each request. Additionally, there are rate limits on API calls that must be adhered to avoid request throttling. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/trackier_publisher_api/trackier-publisher-api-docs.yaml b/trackier_publisher_api/trackier-publisher-api-docs.yaml new file mode 100644 index 00000000..56a27079 --- /dev/null +++ b/trackier_publisher_api/trackier-publisher-api-docs.yaml @@ -0,0 +1,2163 @@ +resources: +- name: campaigns + endpoint: + path: /publisher/campaigns + method: GET +- name: campaigns + endpoint: + path: /v1/campaigns + method: GET + data_selector: data + params: {} +- name: Campaign Advertiser Global Postback + endpoint: + path: /advertiser/global_postback + method: GET + data_selector: postback_url + params: {} +- name: Network Global Postback + endpoint: + path: /network/global_postback + method: GET + data_selector: postback_url + params: {} +- name: pixel + endpoint: + path: /api/pixel + method: GET + data_selector: data + params: {} +- name: offers + endpoint: + path: /api/offers + method: GET + data_selector: data +- name: campaign + endpoint: + path: /campaigns + method: POST + data_selector: data + params: {} +- name: publisher_tracking_link + endpoint: + path: /tracking/link + method: GET + data_selector: tracking_link + params: {} +- name: smart_link + endpoint: + path: /api/smartlink + method: POST + data_selector: data + params: {} +- name: publisher_tracking_link_parameters + endpoint: + path: /api/publisher/tracking/parameters + method: GET + data_selector: parameters + params: {} +- name: publisher_postback_macros + endpoint: + path: /api/publisher/postback/macros + method: GET + data_selector: macros + params: {} +- name: postback_url + endpoint: + path: /trackier/postback + method: POST +- name: tracking_link + endpoint: + path: /trackier/tracking-link + method: GET +- name: Publisher Postback + endpoint: + path: /PublisherPostbackDomain/acquisition + method: GET + data_selector: click_id={p1}&security_token=xxxxx +- name: Publisher Tracking Link + endpoint: + path: /YourDomain/click + method: GET + data_selector: campaign_id=xx&pub_id=xx&p1={click_id} +- name: Advertiser Postback + endpoint: + path: /YourDomain/acquisition + method: GET + data_selector: click_id={subid4}&security_token=xxx +- name: conversion_pixel + endpoint: + path: /conversion/pixel + method: POST + data_selector: pixel_data +- name: errors + endpoint: + path: /errors + method: GET + data_selector: errors + params: {} +- name: pixel_verification + endpoint: + path: /pixel_verification + method: GET + data_selector: verification_results + params: {} +- name: whitelisting_process + endpoint: + path: /whitelisting + method: GET + data_selector: whitelisting_info + params: {} +- name: publisher + endpoint: + path: /api/publisher + method: GET + data_selector: publishers + params: {} +- name: publisher + endpoint: + path: /v1/publisher + method: GET + data_selector: data +- name: targeting_variables + endpoint: + path: /api/v1/targeting/variables + method: GET + data_selector: variables +- name: targeting_rule + endpoint: + path: /api/v1/targeting/rules + method: POST + data_selector: rules +- name: privacy_postback + endpoint: + path: /acquisition + method: GET + data_selector: data + params: + click_id: CLICK_ID + security_token: b50346a1c529c82dac33 + p8: '{af_adset_id}' +- name: create_campaign + endpoint: + path: /api/campaigns + method: POST + data_selector: data + params: {} +- name: Fallback Campaign + endpoint: + path: /api/v1/fallback_campaign + method: GET + data_selector: data + params: {} +- name: Fallback URL + endpoint: + path: /api/v1/fallback_url + method: GET + data_selector: data + params: {} +- name: publisher_privacy_postback + endpoint: + path: /click + method: GET + data_selector: conversion + params: + campaign_id: fixed_value + pub_id: fixed_value + pub_camp_id: publisher + sub_source: '38389393' + p1: '{pub_click_id}' + source: xyz +- name: smart_link + endpoint: + path: /smartlink + method: POST + data_selector: data + params: {} +- name: Publisher Tracking Link + endpoint: + path: /generate/tracking/link + method: POST + data_selector: tracking_link + params: {} +- name: smart_link + endpoint: + path: /api/v1/smartlink + method: POST + data_selector: smart_link_data + params: {} +- name: publisher_tracking_link_parameters + endpoint: + path: /api/publisher/tracking/parameters + method: GET + data_selector: parameters + params: {} +- name: publisher_postback_macros + endpoint: + path: /api/publisher/postback/macros + method: GET + data_selector: macros + params: {} +- name: tracking_link + endpoint: + path: /tracking + method: POST + data_selector: tracking_link + params: {} +- name: publisher_postback + endpoint: + path: /acquisition + method: GET + data_selector: postback + params: {} +- name: advertiser_postback + endpoint: + path: /acquisition + method: GET + data_selector: postback + params: {} +- name: tracking_link + endpoint: + path: /click + method: GET + data_selector: tracking_link + params: {} +- name: conversion_pixel + endpoint: + path: /conversion/pixel + method: POST + data_selector: data + params: {} +- name: advertisers + endpoint: + path: /api/v1/advertisers + method: GET + data_selector: data + params: {} +- name: publishers + endpoint: + path: /api/v1/publishers + method: GET + data_selector: data + params: {} +- name: campaigns + endpoint: + path: /api/v1/campaigns + method: GET + data_selector: data + params: {} +- name: ftp_uploads + endpoint: + path: /ftp/uploads + method: POST +- name: postback + endpoint: + path: /postback + method: POST + data_selector: data + params: {} +- name: whitelisting_process + endpoint: + path: /domain/whitelisting + method: POST + data_selector: response + params: {} +- name: publisher + endpoint: + path: /v1/publisher + method: GET + data_selector: data + params: {} +- name: advertiser + endpoint: + path: /advertiser + method: GET + data_selector: data +- name: privacy_postback + endpoint: + path: /acquisition + method: GET + data_selector: postback_data + params: {} +- name: campaigns + endpoint: + path: /publisher/campaigns + method: GET +- name: postback + endpoint: + path: /acquisition + method: GET + data_selector: none + params: + click_id: '{source}' + sale_amount: '{revenue}' + security_token: b50346a1c529c82dac33 +- name: advertiser_settings + endpoint: + path: /advertiser/settings + method: GET + data_selector: settings + params: {} +- name: Publisher Privacy Postback + endpoint: + path: /click + method: GET + data_selector: conversion + params: + campaign_id: fixed_value + pub_id: fixed_value + pub_camp_id: publisher + sub_source: '38389393' + p1: '{pub_click_id}' + source: xyz +- name: postback + endpoint: + path: /postback + method: POST + data_selector: data + params: {} +- name: advertiser_postback + endpoint: + path: /acquisition + method: GET + data_selector: parameters + params: {} +- name: pixel_integration + endpoint: + path: /trackier/pixel/integration + method: GET + data_selector: pixels + params: {} +- name: campaign + endpoint: + path: /api/v1/campaigns + method: GET + data_selector: data + params: {} +- name: Server Postback + endpoint: + path: https://demo.trackier.co/acquisition + method: GET + data_selector: null + params: + click_id: CLICK_ID + security_token: b503xxxxxxxxxxxxac33 + sale_amount: AMOUNT + currency: INR +- name: Image Pixel + endpoint: + path: https://demo.vnative.net/pixel + method: GET + data_selector: null + params: + adid: 64bexxxxxxxxxxxxxxxx4e28 + sale_amount: AMOUNT + currency: INR +- name: IFrame Pixel + endpoint: + path: https://demo.gotrackier.com/pixel + method: GET + data_selector: null + params: + adid: 5fcfxxxxxxxxxxxxxxx0dc3 +- name: google_capi + endpoint: + path: /google/capi + method: POST + data_selector: data + params: {} +- name: amazon_integration + endpoint: + path: /amazon/integration + method: GET + data_selector: data + params: {} +- name: flipkart_integration + endpoint: + path: /flipkart/integration + method: GET + data_selector: data + params: {} +- name: zid_integration + endpoint: + path: /zid/integration + method: GET + data_selector: data + params: {} +- name: pixel + endpoint: + path: /api/v1/pixel + method: POST + data_selector: data + params: {} +- name: invoice_edit + endpoint: + path: /invoice/edit + method: POST +- name: multiple_currencies_invoice_edit + endpoint: + path: /invoice/multiple-currencies/edit + method: POST +- name: google_ads_link_feature + endpoint: + path: /google/ads/link + method: POST +- name: bulk_download_invoices + endpoint: + path: /invoices/bulk/download + method: GET +- name: upload_lp_id_csv + endpoint: + path: /landing-pages/upload/csv + method: POST +- name: campaign_expiry_date_filter + endpoint: + path: /campaigns/filter/expiry-date + method: GET +- name: multiple_category_payout_feature + endpoint: + path: /campaigns/payout/multiple-category + method: POST +- name: goal_report + endpoint: + path: /goal/report + method: GET + data_selector: reports +- name: campaign_report + endpoint: + path: /api/campaign/report + method: GET + data_selector: results +- name: postback + endpoint: + path: /postback + method: POST + data_selector: data + params: {} +- name: cohort_report + endpoint: + path: /cohort/report + method: GET + data_selector: data + params: {} +- name: click_report + endpoint: + path: /report/clicks + method: GET + data_selector: clicks +- name: advertisers + endpoint: + path: /api/v1/advertisers + method: GET + data_selector: data + params: {} +- name: publishers + endpoint: + path: /api/v1/publishers + method: GET + data_selector: data + params: {} +- name: campaigns + endpoint: + path: /api/v1/campaigns + method: GET + data_selector: data + params: {} +- name: subid_report + endpoint: + path: /subid/report + method: GET + data_selector: data + params: {} +- name: ftp_uploads + endpoint: + path: /ftp/uploads + method: POST +- name: conversion_report + endpoint: + path: /conversion/report + method: GET + data_selector: data + params: {} +- name: team_members + endpoint: + path: /team_members + method: GET + data_selector: records +- name: domains + endpoint: + path: /domains + method: GET + data_selector: records +- name: partners + endpoint: + path: /partners + method: GET + data_selector: records +- name: hourly_report + endpoint: + path: /api/v1/hourly_report + method: GET + data_selector: data + params: {} +- name: performance_report + endpoint: + path: /performance/report + method: GET + data_selector: data + params: {} +- name: click_conversion_impressions + endpoint: + path: /performance/clicks-conversions-impressions + method: GET + data_selector: data + params: {} +- name: goal_based_view + endpoint: + path: /performance/goal-based-view + method: GET + data_selector: data + params: {} +- name: hourly_data + endpoint: + path: /performance/hourly-data + method: GET + data_selector: data + params: {} +- name: daily_report + endpoint: + path: /daily_report + method: GET + data_selector: reports + params: {} +- name: advertiser + endpoint: + path: /advertisers + method: GET + data_selector: data + params: {} +- name: campaigns + endpoint: + path: /publisher/campaigns + method: GET +- name: publisher_report + endpoint: + path: /api/v1/publisher/report + method: GET + data_selector: data + params: {} +- name: postback + endpoint: + path: /acquisition + method: GET + data_selector: '' + params: {} +- name: advertiser_settings + endpoint: + path: /advertiser/settings + method: GET + data_selector: data + params: {} +- name: Leads + endpoint: + path: /services/data/vXX.X/sobjects/Lead + method: GET + data_selector: records +- name: Advertiser Postback + endpoint: + path: /acquisition + method: GET + data_selector: parameters + params: {} +- name: pixel_integration + endpoint: + path: /api/v1/pixels + method: POST + data_selector: pixel_data + params: {} +- name: FTP Setup + endpoint: + path: /setup/ftp + method: POST + data_selector: integration + params: {} +- name: Postback Setup + endpoint: + path: /setup/postback + method: POST + data_selector: integration + params: {} +- name: Server Postback + endpoint: + path: /acquisition + method: GET + data_selector: null + params: + click_id: CLICK_ID + security_token: b503xxxxxxxxxxxxac33 + sale_amount: AMOUNT + currency: INR +- name: Image Pixel + endpoint: + path: /pixel + method: GET + data_selector: null + params: + adid: 64bexxxxxxxxxxxxxxxx4e28 + sale_amount: AMOUNT + currency: INR +- name: IFrame Pixel + endpoint: + path: /pixel + method: GET + data_selector: null + params: + adid: 5fcfxxxxxxxxxxxxxxx0dc3 +- name: click_data + endpoint: + path: /path/to/click/data + method: GET + data_selector: clicks +- name: conversion_data + endpoint: + path: /path/to/conversion/data + method: GET + data_selector: conversions +- name: conversions + endpoint: + path: /datafeed/listReports + method: GET + data_selector: conversions + params: {} +- name: pixel + endpoint: + path: /pixel + method: GET + data_selector: pixels + params: {} +- name: integration + endpoint: + path: /integration + method: POST + data_selector: data + params: + incremental: updated_at +- name: Shopify App Install + endpoint: + path: /api/v1/shopify/install + method: POST +- name: Cancelled Orders + endpoint: + path: /api/v1/shopify/cancelled_orders + method: POST +- name: integration + endpoint: + path: /integration/setup + method: POST +- name: custom_reports + endpoint: + path: /reports/custom + method: GET + data_selector: data + params: {} +- name: campaigns + endpoint: + path: /path/to/campaigns + method: GET +- name: conversion_data + endpoint: + path: /path/to/conversion_data + method: GET +- name: goal_report + endpoint: + path: /goal/report + method: GET + data_selector: data +- name: campaign_report + endpoint: + path: /api/campaign/report + method: GET + data_selector: data + params: {} +- name: postback_install + endpoint: + path: /acquisition + method: POST + data_selector: install + params: {} +- name: postback_event + endpoint: + path: /acquisition + method: POST + data_selector: event + params: {} +- name: install_postback + endpoint: + path: /acquisition + method: GET + data_selector: '' + params: + click_id: '{clickid}' + security_token: xxxxxxxxxxxxxxx + idfa: '{idfa}' + gaid: '{gaid}' +- name: event_postback + endpoint: + path: /acquisition + method: GET + data_selector: '' + params: + click_id: '{clickid}' + security_token: xxxxxxxxxxxxxxx + idfa: '{idfa}' + gaid: '{gaid}' + goal_value: '{event_name}' +- name: install_postback + endpoint: + path: /acquisition + method: GET + data_selector: records + params: + click_id: '{cl?Network Name}' + security_token: xxxxxxxxxxxxxxx + idfa: '{IDFA}' + gaid: '{AIFA}' +- name: event_postback + endpoint: + path: /acquisition + method: GET + data_selector: records + params: + click_id: '{cl?Network Name}' + security_token: xxxxxxxxxxxxxxx + idfa: '{IDFA}' + gaid: '{AIFA}' + goal_value: '{EVTNAME}' +- name: subid_report + endpoint: + path: /api/v1/subid/report + method: GET + data_selector: data + params: + incremental: date +- name: event_postback + endpoint: + path: /event/postback + method: POST + data_selector: data + params: {} +- name: install_postback + endpoint: + path: /install/postback + method: POST + data_selector: data + params: {} +- name: install_callback + endpoint: + path: /install/callback + method: POST +- name: conversion_report + endpoint: + path: /conversion/report + method: GET + data_selector: data + params: {} +- name: clicks + endpoint: + path: /api/clicks + method: POST + data_selector: data + params: {} +- name: impressions + endpoint: + path: /api/impressions + method: POST + data_selector: data + params: {} +- name: daily_report + endpoint: + path: /api/daily-report + method: GET + data_selector: data + params: {} +- name: install_postback + endpoint: + path: /install_postback + method: GET + data_selector: response + params: {} +- name: event_postback + endpoint: + path: /event_postback + method: GET + data_selector: response + params: {} +- name: advertiser_report + endpoint: + path: /api/v1/advertiser/report + method: GET + data_selector: data + params: {} +- name: partner_daily_report + endpoint: + path: /partner/daily/report + method: GET +- name: publisher_report + endpoint: + path: /v1/publisher/report + method: GET + data_selector: data + params: {} +- name: tracking_link + endpoint: + path: /Tracking/CreateTracker + method: POST + data_selector: tracker + params: {} +- name: postback + endpoint: + path: /Postbacks + method: POST + data_selector: postback + params: {} +- name: privacy_postback + endpoint: + path: /privacy_postback + method: GET + data_selector: records + params: {} +- name: Leads + endpoint: + path: /services/data/vXX.X/sobjects/Leads + method: GET + data_selector: records +- name: campaign + endpoint: + path: /campaigns + method: GET + data_selector: data +- name: product_feed + endpoint: + path: /api/v1/product_feed + method: GET + data_selector: data +- name: campaign + endpoint: + path: /services/data/vXX.X/sobjects/Campaign + method: GET + data_selector: records +- name: FTP Setup + endpoint: + path: /setup/ftp + method: POST + data_selector: integration + params: {} +- name: Postback Setup + endpoint: + path: /setup/postback + method: POST + data_selector: integration + params: {} +- name: skadnetwork_id + endpoint: + path: /contact/request/ad-network-id + method: GET + data_selector: skadnetwork_id + params: {} +- name: integration + endpoint: + path: /integration/awin + method: POST + data_selector: data + params: + publisher_id: your_publisher_id + key: your_authentication_key + click_id: your_click_id_param +- name: privacy_postback + endpoint: + path: /privacy_postback + method: GET + data_selector: records + params: {} +- name: conversion_data + endpoint: + path: /datafeed/listReports + method: GET + params: + format: text +- name: track_event + endpoint: + path: /track_event + method: POST + data_selector: data +- name: integration + endpoint: + path: /integration + method: POST +- name: track_data + endpoint: + path: /tracking/setup + method: POST +- name: Shopify App Install + endpoint: + path: /admin/api/auth/access_token + method: POST + data_selector: access_token +- name: mixpanel_integration + endpoint: + path: /integration/mixpanel + method: POST + params: + api_key: API Key + api_secret: API Secret + api_token: API Token + status: active +- name: LinkConnectorIntegration + endpoint: + path: /api/integration + method: POST +- name: AWS S3 Integration + endpoint: + path: /integration/aws-s3 + method: POST +- name: campaigns + endpoint: + path: /campaigns + method: GET + data_selector: data + params: {} +- name: conversions + endpoint: + path: /conversions + method: GET + data_selector: data + params: {} +- name: install_postback + endpoint: + path: /acquisition + method: POST + data_selector: postback + params: {} +- name: in_app_event_postback + endpoint: + path: /acquisition + method: POST + data_selector: postback + params: {} +- name: bulk_targeting + endpoint: + path: /campaigns/bulk_targeting + method: POST + data_selector: results + params: + max_rows: 500 +- name: install_postback + endpoint: + path: /acquisition + method: GET + data_selector: postbacks + params: + click_id: '{clickid}' + security_token: xxxxxxxxxxxxxxx + idfa: '{idfa}' + gaid: '{gaid}' +- name: event_postback + endpoint: + path: /acquisition + method: GET + data_selector: postbacks + params: + click_id: '{clickid}' + security_token: xxxxxxxxxxxxxxx + idfa: '{idfa}' + gaid: '{gaid}' + goal_value: '{event_name}' +- name: attribution_link + endpoint: + path: /acquisition + method: GET + data_selector: data + params: {} +- name: landing_pages + endpoint: + path: /bulk-upload/landing-pages + method: POST + data_selector: data + params: {} +- name: Adjust Integration + endpoint: + path: /api/integration + method: GET + data_selector: data + params: {} +- name: conversion_data + endpoint: + path: /data/import/conversion + method: POST + data_selector: conversion_records +- name: clicks + endpoint: + path: /clicks + method: POST + data_selector: click_data +- name: impressions + endpoint: + path: /impressions + method: POST + data_selector: impression_data +- name: advertiser + endpoint: + path: /advertisers + method: POST + data_selector: data + params: {} +- name: partner_report + endpoint: + path: /reports/partner + method: GET + data_selector: data + params: {} +- name: bulk_campaigns + endpoint: + path: /bulk-upload/campaigns + method: POST + data_selector: data + params: {} +- name: privacy_postback + endpoint: + path: /privacy_postback + method: GET + data_selector: records + params: {} +- name: fraud_rule + endpoint: + path: /api/fraud/rules + method: POST +- name: campaign + endpoint: + path: /v1/campaigns + method: GET + data_selector: data + params: {} +- name: integration + endpoint: + path: /Anti-FraudTools/Botman.ninja/Config + method: GET +- name: Fraud Score + endpoint: + path: /fraudscore + method: POST + data_selector: data +- name: skadnetwork_registration + endpoint: + path: /register/skadnetwork + method: POST + data_selector: response + params: {} +- name: skadnetwork_details + endpoint: + path: /settings/skadnetwork + method: GET + data_selector: details + params: {} +- name: fraud_rule + endpoint: + path: /api/fraud_rule + method: POST + data_selector: result + params: {} +- name: privacy_postback + endpoint: + path: /privacy_postback + method: GET + data_selector: records + params: {} +- name: fraud_rules + endpoint: + path: /api/v1/fraud_rules + method: POST +- name: fraud_rule + endpoint: + path: /api/v1/fraud_rule + method: POST +- name: Mixpanel + endpoint: + path: /integration/mixpanel + method: POST + data_selector: data +- name: Send PIN + endpoint: + path: /send-pin + method: POST +- name: Verify PIN + endpoint: + path: /verify-pin + method: POST +- name: AWS S3 + endpoint: + path: /integration/aws-s3 + method: POST + data_selector: data + params: {} +- name: offers + endpoint: + path: /api/offers + method: GET + data_selector: offers +- name: payouts + endpoint: + path: /payouts/upload + method: POST +- name: offers + endpoint: + path: /offers + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: email_notifications + endpoint: + path: /api/email/notifications + method: POST + data_selector: notifications + params: {} +- name: landing_pages + endpoint: + path: /api/v1/landing_pages + method: POST + data_selector: data + params: + incremental: updated_at +- name: notifications + endpoint: + path: /notifications + method: POST + data_selector: notification + params: {} +- name: notification_settings + endpoint: + path: /api/notification_settings + method: GET + data_selector: notifications + params: {} +- name: campaigns + endpoint: + path: /api/campaigns + method: GET + data_selector: campaigns + params: {} +- name: advertiser + endpoint: + path: /api/advertiser + method: GET + data_selector: advertisers + params: {} +- name: publisher + endpoint: + path: /api/publisher + method: GET + data_selector: publishers + params: {} +- name: invoice + endpoint: + path: /api/invoice + method: GET + data_selector: invoices + params: {} +- name: team_members + endpoint: + path: /api/team_members + method: GET + data_selector: members + params: {} +- name: advertisers + endpoint: + path: /api/v1/advertisers + method: POST + data_selector: data + params: {} +- name: whitelabel_login + endpoint: + path: /services/data/vXX.X/whitelabel/login + method: GET +- name: whitelabel_postback + endpoint: + path: /services/data/vXX.X/whitelabel/postback + method: GET +- name: whitelabel_api + endpoint: + path: /services/data/vXX.X/whitelabel/api + method: GET +- name: affiliate + endpoint: + path: /affiliate + method: GET + data_selector: data +- name: fraud_rule + endpoint: + path: /api/fraud_rule + method: POST +- name: fraud_rule + endpoint: + path: /anti-fraud/rules + method: POST + data_selector: rules + params: {} +- name: fraud_score + endpoint: + path: /api/v1/fraudscore + method: POST + data_selector: data + params: {} +- name: fraud_rule + endpoint: + path: /api/fraud_rule + method: POST + data_selector: data + params: {} +- name: campaign + endpoint: + path: /api/campaigns + method: GET + data_selector: data +- name: conversion + endpoint: + path: /api/conversions + method: GET + data_selector: data +- name: fraud_rule + endpoint: + path: /api/v1/fraud/rules + method: POST + data_selector: rules + params: {} +- name: reports + endpoint: + path: /v2/publishers/reports + method: GET +- name: fraud_rules + endpoint: + path: /api/fraud/rules + method: POST + data_selector: ruleData +- name: Send PIN + endpoint: + path: /send_pin + method: POST + data_selector: response + params: {} +- name: Verify PIN + endpoint: + path: /verify_pin + method: POST + data_selector: response + params: {} +- name: account_updates + endpoint: + path: /api/v1/account/updates + method: GET + data_selector: data + params: {} +- name: offers + endpoint: + path: /offers + method: GET + data_selector: data +- name: offers + endpoint: + path: /offers + method: GET + data_selector: offers +- name: personal_access_token + endpoint: + path: /authentication/personal_access_tokens + method: POST + data_selector: token + params: {} +- name: requestor_cid + endpoint: + path: /account/requestor_cid + method: GET + data_selector: cid + params: {} +- name: website_id + endpoint: + path: /account/websites + method: GET + data_selector: website_id + params: {} +- name: notifications + endpoint: + path: /api/v1/notifications + method: POST + data_selector: notifications + params: {} +- name: campaigns + endpoint: + path: /campaigns + method: GET + data_selector: records +- name: advertiser + endpoint: + path: /advertiser + method: GET + data_selector: records +- name: publisher + endpoint: + path: /publisher + method: GET + data_selector: records +- name: invoice + endpoint: + path: /invoice + method: GET + data_selector: records +- name: team_members + endpoint: + path: /team_members + method: GET + data_selector: records +- name: campaign + endpoint: + path: /api/campaigns + method: GET + data_selector: data +- name: custom_tracking_domain + endpoint: + path: /customize/domain + method: POST + data_selector: domain_setup +- name: postback + endpoint: + path: /acquisition + method: POST + data_selector: conversion_data + params: + click_id: click_id + security_token: security_token +- name: custom_domains + endpoint: + path: /custom/domains + method: GET + data_selector: domains +- name: tracking_invoices + endpoint: + path: /tracking/invoices + method: GET + data_selector: invoices +- name: campaign + endpoint: + path: /services/data/vXX.X/sobjects/Campaign + method: GET + data_selector: records + params: {} +- name: SSO Configuration + endpoint: + path: /sso/configuration + method: POST + data_selector: response + params: {} +- name: campaign_member + endpoint: + path: /campaign_member + method: GET + data_selector: records +- name: contact + endpoint: + path: /contact + method: GET + data_selector: records +- name: reports + endpoint: + path: /v2/publishers/reports + method: GET +- name: publishers + endpoint: + path: /v2/publishers + method: GET +- name: Cname for API domain + endpoint: + path: /api/domain/cname + method: POST + data_selector: response + params: {} +- name: Cname for tracking domain + endpoint: + path: /api/domain/cname/tracking + method: POST + data_selector: response + params: {} +- name: Cname for postback/Pixel domain + endpoint: + path: /api/domain/cname/postback + method: POST + data_selector: response + params: {} +- name: Login domain + endpoint: + path: /api/domain/login + method: POST + data_selector: response + params: {} +- name: SSL enablement + endpoint: + path: /api/domain/ssl + method: POST + data_selector: response + params: {} +- name: conversion_report + endpoint: + path: /conversion/report + method: GET + data_selector: records + params: {} +- name: conversion_report + endpoint: + path: /api/conversion_report + method: GET + data_selector: data + params: {} +- name: conversion_report + endpoint: + path: /conversion/report + method: GET + data_selector: data +- name: global_postback + endpoint: + path: /global_postback + method: GET +- name: event_postback + endpoint: + path: /event_postback + method: GET +- name: campaign_settings + endpoint: + path: /api/v1/campaigns/settings + method: GET + data_selector: data + params: {} +- name: allowed_publishers + endpoint: + path: /campaigns/allowed_publishers + method: POST + data_selector: publishers +- name: blocked_publishers + endpoint: + path: /campaigns/blocked_publishers + method: POST + data_selector: publishers +- name: postback + endpoint: + path: /acquisition + method: POST + data_selector: conversion tracking + params: + click_id: click_id +- name: Publisher KPI Display Settings + endpoint: + path: /api/publisher/kpi/display + method: GET +- name: Publisher General Settings + endpoint: + path: /api/publisher/general/settings + method: GET +- name: campaigns + endpoint: + path: /publisher/campaigns + method: GET +- name: customization + endpoint: + path: /api/customization + method: GET + data_selector: customSettings +- name: reports + endpoint: + path: /v2/publishers/reports + method: GET +- name: notifications + endpoint: + path: /notifications + method: GET + data_selector: data + params: {} +- name: publishers + endpoint: + path: /v2/publishers + method: GET +- name: conversion_report + endpoint: + path: /conversion/report + method: GET + data_selector: records +- name: conversion_report + endpoint: + path: /conversion/report + method: GET + data_selector: data + params: {} +- name: conversion_report + endpoint: + path: /conversion/report + method: GET + data_selector: report_data +- name: campaign + endpoint: + path: /api/v1/campaigns + method: GET + data_selector: data + params: {} +- name: allowed_publishers + endpoint: + path: /api/v1/allowed_publishers + method: GET + data_selector: data +- name: blocked_publishers + endpoint: + path: /api/v1/blocked_publishers + method: GET + data_selector: data +- name: campaigns + endpoint: + path: /publisher/campaigns + method: GET + data_selector: '' +- name: reports + endpoint: + path: /v2/publishers/reports + method: GET + data_selector: data +notes: +- Campaigns can generate tracking links, set multiple targeting options, select revenue + and payout, and set different goals. +- You can track the conversions through either global-level postback or advertiser-level + postback. +- Advertiser-level postback is generally recommended by our tech experts. +- Ensure pixels are placed in the tag of the thank-you page. +- API Key is required for authentication. +- Ensure to get advertiser approval for at least one offer. +- If you select certain offers, then only those offers will be fetched on Trackier, + and only those will be checked when the API refreshes. +- If you want all offers to be fetched, then do not select any particular offer and + move to the next step to review the API setup. +- The API will instantly fetch offers based on the settings. If more offers are approved + afterwards, then they will be fetched on the next refresh based on the frequency + set while creating integration. +- You can add multiple rules by clicking on add new rule block. +- You can upload a CSV for bulk allow/deny source, GAID, and IDFA. +- Campaigns can generate tracking links and set multiple targeting options. +- Trackier provides an in-house customer support team available for instant query + resolution. +- You can reach out to us via email at support@trackier.com. +- 'The priority of the fallback level is set as: campaign level, then advertiser level, + then global level.' +- The fallback mechanism works only once, and chaining multiple fallbacks is not allowed. +- Publisher can generate a smart link from the publisher interface. +- You can only generate a Smart Link after it has been set up. +- When creating a Smart Link using the Category type, Country targeting is applied + by default, so the Country checkbox is not shown. +- Automatically optimizes the smart link by monitoring campaign performance. +- Allows customizing traffic flow to campaigns based on performance. +- A publisher tracking link is a unique URL generated within every campaign. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- If you are not able to find a value corresponding to the parameter in the report, + that means the publisher is not sending you the data correctly. +- When you retrieve the tracking link from the Trackier panel and paste it into the + target URL field in the Propeller Ads panel, then please include the Propeller Ads + macro for ${SUBID} against the Trackier p1 parameter. +- If manually adding multiple postbacks feels time-consuming, you also have the option + to upload them via a CSV file. +- Ensure to pass Trackier click Id in the landing page URL +- Integration code must be placed in the and tags +- Always use Javascript Pixel while integrating with Google Tag Manager. +- Please ensure that the domain used in your campaign URL matches the one in your + tracking link for Google Ads. +- Please do not include sub-domains in the Google Ads link, as they will not function + under the specified domain in the campaign URL. +- If you encounter an error where the {lpurl} is missing, there's a straightforward + solution. Simply add the same macro {lpurl} to the parameter you're not currently + utilizing, from p1 to p10, and the issue should be resolved. +- Clients need to provide their privacy policy URL. +- All campaigns created in Google Ads must include a 'force transparent' parameter + in their tracking links. +- Google Ads may disapprove your ads due to invalid tracking templates or destination + mismatch. +- Ensure all URLs, including the final destination and redirect links, use secure + HTTPS protocols. +- Some API endpoints may require additional parameters based on the request type. +- Some endpoints may have rate limits. +- Append &vta=1 in your privacy postback to record impression conversions. +- Requires setup of connected app in Trackier +- The most important macro to place in the publisher's postback is {p1}. This is the + parameter in which we receive the click ID from the publisher; hence, the same needs + to be passed in the postback to send back the click IDs. +- If the server status is 200 and still the postbacks are not received at the publisher's + end, there is a possibility that the publisher's server is not accepting those conversions + and hence needs to be checked at their end. +- If both fallback URL and fallback campaign are specified, the fallback campaign + takes priority. +- Postbacks do not fire for private goals. +- There is no need to pass the click ID parameters. Postback will be sent via the + campaign ID and the source ID. +- When creating a Smart Link using the Category type, Country targeting is applied + by default. +- All the added postbacks will be saved in the pending state until your account manager + approves them. +- Publishers can add the postback by navigating to the 'Integration' section and selecting + 'Postback.' +- To view the sent postback logs, click on 'See Logs.' +- Check back regularly for all the newest updates! +- You can now create and perform CRUD operations on Smartlink via API. The timeline + will be updated for the changes you have made via API. Update and delete operations + can be performed via the smart-link sort ID. +- This feature can be enabled from the backend if you desire us to do so. +- Include the Propeller Ads macro for ${SUBID} against the Trackier p1 parameter. +- Uses OAuth2 with refresh token — requires setup of connected app in Trackier +- Trackier can route conversions recorded against the click ID of your old platform. +- Ensure to pass the Trackier click Id in the landing page URL +- Add the script mentioned on all landing pages +- Trackier provides you with an option to reject the pixel if a particular required + information is not received. +- Trackier provides an in-house customer support team, available for instant query + resolutions. +- FTP allows for user authentication, ensuring that only authorized individuals have + access to the files. +- You have the ability to enable 2-FA for yourself as an admin, but not for your team + members. +- Both advertisers and publishers have the option to utilize 2-FA authentication. +- Ensure that the domain used in your campaign URL matches the one in your tracking + link for Google Ads. +- Ensure all URLs use secure HTTPS protocols. +- Avoid using undefined variables in tracking templates. +- The widgets mentioned above are the most commonly used and are typically enabled + by Admins for their advertisers. +- Ensure proper OAuth setup for authentication. +- Ensure to whitelist advertiser IP for secure tracking +- Uses new parameters for tracking conversions without click IDs +- Every API request must have a valid API key. +- Ensure that your Trackier campaign is configured to generate a unique click ID for + each affiliate click. +- Map the Click ID custom field to Trackier's 'click_id' parameter and the sale amount + to Trackier's 'sale_amount' parameter. +- The most important macro to place in the publisher's postback is {p1}. This is the + parameter in which we receive the click ID from the publisher; hence, the same needs + to be passed in the postback to send back the click IDs. In publisher's transactionid/clickid + parameter, pass the macro {p1} +- In the postback edit section, make sure the conversion status is always set to approved + in order for the postback to be sent to the publisher. +- Postbacks do not fire for the private goals. +- Enabling 2FA will require additional OTP verification. +- The publisher postback for iOS 14 requires the inclusion of PUB_CAMP_ID_PARA and + PUB_SOURCE_ID_PARA as mentioned by the publisher. +- You need to ask the advertiser to place their macro against Trackier's parameter. +- Use Server Postback when the advertiser is using some tracking network, and Pixel + when it is a direct advertiser/brand without any tracking platform. +- iFrame and Image pixel are used when you are working with a direct Advertiser and + they don't have any tracking platform. +- The pixel doesn't work for CPI campaigns. +- If you are creating a pixel-based campaign, then while creating the campaign, you + have to select either the iframe pixel or image pixel option while selecting the + conversion tracking option. +- Pixels need to be placed on the Thank-You page of the website inside the + tag. +- 'Note: The maximum number of unique source grouping reports is 512' +- Uses OAuth2 authentication. +- Uses various filters for campaign reporting such as Campaign Name, Campaign ID, + Publisher ID, etc. +- Make sure to replace the tokens with the corresponding values received via the Trackier + Postback URL. +- Some click reports may return nulls in deeply nested fields +- Ensure to set up the OAuth2 credentials in the Trackier dashboard. +- This API provides insights into campaign performance via SubID reports. +- You have the ability to enable 2-FA for yourself as an admin, but not for your team + members. You can advise your team members to enable 2FA for themselves. +- You can save the conversion report and create a quick link to access it whenever + you want. +- Ensure all team members have their own accounts with the correct access levels +- Use built-in features to protect data and sensitive information +- Campaigns can be monitored hourly for performance insights. +- Please ensure to set up OAuth2 for authentication. +- The publisher report provides insights on traffic, conversions, and revenue. +- Ensure Trackier campaign is configured to generate a unique click ID for each affiliate + click. +- Configure the Postback in LeadByte, mapping the Click ID custom field to Trackier's + 'click_id' parameter and the sale amount to Trackier's 'sale_amount' parameter. +- This feature helps optimize offer conversion rates by monitoring performance, sending + alerts, and automatically blocking sources based on rules. +- Create a connected app in Salesforce with the name Trackier. +- Choose 'All users can authorize themselves' for Permitted Users. +- 'To use status in the postback: Approved, Cancelled, Rejected, Pending' +- Product feeds are updated every 24 hours to reflect any changes in the product feed + made by the brand. +- You need to provide the correct host address to ensure a successful connection. +- You can only fetch data up to a day ago in AWIN integration. +- Make sure the security token in the error log matches with the advertiser-level + global postback. +- The Amazon integration will only function on the website and not on the app. +- The conversion is retrieved from the store ID provided by Amazon. +- Select either the iframe pixel or image pixel option while creating the campaign. +- When adding pixels to an advertiser's website via Tag Manager, make sure you have + white-labeled the tracking domain. +- Integration requires Publisher ID and Domain from Partnerize. +- Ensure to replace placeholders in tracking links correctly. +- 'Post-back URL: An exchange of data between servers that is used to attribute and + report on a user''s action and behaviour on a website, app, or network.' +- Ensure to select the required scopes in Shopify Admin API. +- Custom reports help measure performance across different publishers, campaigns, + and conversions. +- To get an API key for your Cuelinks account, you must be a registered publisher + earning at least ₹10,000 per month in commissions. +- Campaign data can be filtered by various parameters such as advertiser, publisher, + city, device, etc. +- Campaign reports include fields like gross clicks, approved conversions, payout, + revenue, and profit. +- Filters can be applied for conditions like gross clicks. +- Integration will be done with Network Level Event and Install Postback. +- You do not need to change the Postback if you are working with multiple advertisers. +- If you want to approve the clicks received from pixel, you can contact your account + manager as Trackier has a workaround for that request. +- The maximum number of unique source grouping reports is 512 +- The integration will be done with Network Level Event and Install Postback. +- Filters available for unique clicks, pending conversions, rejected conversions, + CTR, etc. +- No pre-integration setup is needed with Adjust. +- You can find the install postback in your Trackier panel under Automation > Integration + > Mobile App Tracking > Adjust Setup. +- You can save the conversion report and create a quick link to access it whenever + you want with zero hassle. +- Integration requires filling out a form with business details and click/impression + macros. +- Ensure correct setup of authentication to access reports +- Once you submit the form, the process is complete, and you will need to wait to + hear back from Kochava in 3–4 business days. +- To prevent fraud liabilities and ensure that your ad network is not attributed to + fraudulent clicks, it is advisable to implement signature validation for clicks. +- In certain instances, traffic may originate from multiple sources within an ad-network. +- Enter the API token received from your Appsflyer account. +- Report can be filtered by date range and other criteria. +- This article is intended for ad networks that want to integrate with the Appmetrica + MMP platform. +- The CR rule is set up at the advertiser level. +- Ensure that you have completed the SKAdNetwork Setup with Apple in order to receive + conversions on Trackier. +- Your postbacks may vary depending on the integration you select. +- Create a connected app using the name Trackier on the Salesforce website. +- Allow data management rights for Trackier on the Salesforce website. +- Ensure accurate mapping of AppsFlyer parameters and Trackier macros in the tracking + URL. +- Product feeds are updated every 24 hours. +- It might take up to 24 hours to get the postback from the MMP partner. +- Uploading a CSV file is entirely optional and depends on your specific requirements. +- Secure your private keys as you would other credentials, such as passwords. +- Share only your public key. +- Connect with the Adjust team to place the postback at their end. +- Only conversions received through our tracking link will be counted. +- Enable Server Postback as a conversion tracking method inside a campaign +- Enter the Global Postback URL Security Token in Segment for integration +- Ensure to replace INSERT_CLICKID with {click_id} in the tracking link. +- Requires setup of API scopes in Shopify. +- Enable toggle to activate the LinkConnector integration. +- API Key can be found from your LinkConnector account. +- Access and Secret Key credentials authenticate and authorise the platform to access + your S3 bucket. +- The AWS Secret Access Key can only be viewed once, immediately after it’s created. +- You need to add an API token, which you will get after signup on Mobrand +- CSV upload system supports up to 50,000 rows, if there are more than 50,000 rows + we recommend splitting the file in two different parts and uploading them. +- You can also delete the manually uploaded data. You will have a window of '90 days' + to delete the manually uploaded files post which you won't be able to do it yourself. +- Supports up to 50,000 rows for CSV upload +- You can upload a maximum of 500 rows per CSV. +- You can go to the Automation section, click on Integrations, and navigate to mobile + app tracking. +- CSV upload system supports up to 50,000 rows, if there are more than 50,000 rows + we recommend splitting the file into two different parts and uploading them. +- There is no need for a pre-integration setup with the Adjust platform. +- If you have included IP whitelisting in the advertiser settings, then priority will + be given to those specific IPs instead of the entire list of IPs provided and updated + by Adjust. +- If the payout or revenue is uploaded in percentage format, the system will not accept + the upload. +- Trackier supports both server-side and client-side data for impressions. +- System supports uploading up to 50,000 rows in CSV files. +- If there are more than 50,000 rows, split the file into two parts. +- CSV upload system supports up to 50 thousand rows, if there are more than 50,000 + rows, we recommend that the file be split into two parts and uploaded separately. +- You can delete the manually uploaded data. You will have a window of '90 days' to + delete the manually uploaded files post which you won't be able to do it yourself. +- Enter the API token that you received from your Appsflyer account. +- Enter the App ID of the one you want to view reports on Trackier. +- CSV upload system supports up to 50 thousand rows, if there are more than 50,000 + rows, we recommend that the file be split in two parts and uploaded separately. +- This article will help you understand how to use the anti-fraud tool to combat fraudulent + activities in your campaigns. +- Ensure that all fields are correctly filled and mapped before running to avoid any + issues during the integration process. +- Ensure all fields are correctly filled and mapped before running to avoid any issues + during the integration process. +- It might take up to 24 hours to get the postback from the MMP partner +- The Fraudscore Key can be obtained from the Fraud Score. +- The API key for 'FraudScore Realtime' is separate from the FraudScore API key. +- You must register on Apple to get your SKadnetwork ID. +- Secure your private keys as you would other credentials. +- Please ensure that all fields are correctly filled and mapped before running to + avoid any issues during the integration process. +- You need to connect with the Adjust team to place the postback at their end. +- It is suggested that you enter the Global Postback URL Security Token to get the + integration to work. +- Select 'Server to Server' as your tracking method. +- Make sure to append the {P1} macro to the end of the link. +- Ensure Click Pixel setting is enabled for proper tracking. +- Impact does not allow the panel to automatically fetch goals; therefore, they need + to be created manually. +- The API will instantly fetch offers based on the settings. +- If more offers are approved afterwards, then they will be fetched on the next refresh + based on the frequency set while creating integration. +- Default visibility is Private. +- Default offer status is Active. +- Please remove the unwanted column while uploading it. +- The CSV upload system supports up to 50,000 rows, if there are more than 50,000 + rows, we recommend splitting the file into two different parts and uploading them. +- You can delete the manually uploaded data. You will have a window of '90 days' to + delete the manually uploaded files, which you won't be able to do yourself. +- If you lose or forget your token, you’ll need to generate a new one. +- Email notifications can be triggered automatically or manually. +- SMTP details must be configured in the panel to send email notifications. +- If the payout or revenue is uploaded in percentage format, the system will not accept + the upload and will display an error. +- CSV upload system supports up to 50 thousand rows. +- You can delete the manually uploaded data within 90 days. +- The publisher access section will only be visible when the campaign is private. +- The most important macro to place in the publisher's postback is {p1}. This is the + parameter in which we receive the click ID from the publisher; hence, the same needs + to be passed in the postback to send back the click IDs. In publisher's transactionid/clickid + parameter, pass the macro {p1} * **&transactionid={p1}** +- Customers on the Trackier Agency and Enterprise Plans have access to the white-label + feature. +- Once uploaded, it takes 1 min to 4 hours for the data to get processed depending + on CSV size. +- Trackier offers an integrated anti-fraud solution designed to address the issue + of fraudulent traffic. +- It is mandatory to give your rule a name, otherwise you will not be able to move + on to the next step. +- Whitelabeling allows you to customize domains for login, postback, and API. +- Trackier provides SSL for your customised domain only in the Enterprise Plan. +- The API has rate limits that may affect integration. +- Ensure to handle token expiration appropriately. +- Once you have added a personal tracking domain and set it as the default tracking + domain, it will be visible to you and your publishers in any new campaigns that + are created after the tracking domain has been added. +- The organisation ID can be obtained from the traffic guard. +- The API Token can be obtained from the traffic guard. +- By default, all publishers are whitelisted. +- By default, all campaigns are whitelisted. +- Even if the user logs out, they will be redirected to your custom login page. +- Trackier also provides you with the ability to show invalid credentials when entered + by any user. +- You can get all the information you need from your SMTP server, and if you're adding + an Amazon or Google SMTP server, make sure 2-step authentication is turned off. +- The Botman Key/ID can be obtained from the Botman.ninja +- The click-level integration requires a Biz ID, which is only provided by Botman.ninja +- Use the Google Workspace SMTP relay service to send mail from these devices, as + it authenticates with IP addresses. +- For enabling any of the settings, make sure you have administrator rights; otherwise, + you won't be able to make any changes or set up anything. +- Fraudscore Key obtained from the Fraud Score. +- Token is provided solely by Fraud Score. +- Default status for campaigns and publishers is whitelisted. +- API requires proper OAuth2 setup for authentication +- Generate API key from the panel, which will be visible on publisher's panel under + API section. +- Ensure Click Pixel is enabled for smooth functionality. +- Reach out to support@trackier.com for assistance with account issues. +- Cname must be added correctly. +- SSL for your domain should be enabled. +- The API will instantly fetch offers based on the settings. If more offers are approved + afterwards, then they will be fetched on the next refresh based on the frequency + set while creating integration on step 4. +- You need to check with your advertiser whether the offers that you are referring + to are approved by your advertiser or not. +- Offers will be fetched as per basic details and integration settings. +- By default, the status is set to Active. +- The default visibility is Private. +- By default, All offer models are selected and will be imported. +- 'Once you click on Register, you''ll see a message: ''New Personal Access Token + Created''.' +- Global Postback notifies conversions across all offers for an advertiser, while + standard postbacks are specific to a single offer. +- If publishers and advertisers are uploaded by CSV, the email notification will not + be triggered. +- The request email will be sent to the account manager of the publisher only. +- This email will be sent to the publisher when any of its campaign import integration + is completed. +- This will send email to publisher only. +- This will send email to advertiser only. +- Ensure proper access is assigned to the publisher for campaign visibility. +- For event postback, you can add &goal_value={event_name} +- The revenue can be set to 100% if you own the entire commission in sale_amount. +- Is data transferred outside the EU? No +- click_id the most important and mandatory information to track the conversions +- Customers on the Trackier Agency and Enterprise Plans have access to white-labeling + features. +- Whitelabeling your login and postback domains allows you to give partners, advertisers, + and publishers a more professional experience. +- SSL will be automatically provided if the domain is purchased through Cloudflare. +- Advertisers need to ensure they include a click_id when firing an API request with + a POST method. +- Your advertiser needs to send the correct macros against our parameters. +- Custom applications are accessible to account admin and sub-administrators. +- Some objects may return nulls in deeply nested fields +- Before submitting the form, Base64 encode the password to ensure special characters + are preserved. +- Make sure to include a hidden input field named is_pass_encoded and set its value + to true. +- Non-Targeted Campaign Status can be set as either 'Cancelled' or 'Rejected'. +- CAPs to Publishers can be set to visible or hidden. +- Ensure administrator rights to make changes. +- Turn off 2-factor authentication. +- Key settings include Entity ID, Assertion Consumer Service (ACS) URL, XML file, + and certificates. +- Admins can control whether login via email and password is allowed or completely + disabled for users, publishers, or advertisers. +- Integrating Slack with Trackier sends real-time updates, automated reports, and + budget alerts directly to Slack. +- Trackier will automatically fetch your available Slack channels along with their + respective Channel IDs. +- Some objects like Contact may return nulls in deeply nested fields +- Trackier identifies and anonymizes any Personally Identifiable Information (PII) + or sensitive data of users before storing the data on its servers. +- For deleted or expired accounts, the data is deleted within 45 to 90 days from the + date of expiry. +- You can generate API key from the panel, which will be visible on publisher's panel + under API section. +- Trackier is fully committed to complying with the General Data Protection Regulation + (GDPR). +- Data is encrypted both in transit and at rest. +- Reach out to support@trackier.com for assistance with account updates. +- Users can export the conversion log CSV file for offline report. +- Traffic that does not meet the targeting condition will be visible in the rejected + state. +- To view all the filters, please access the admin's conversion report. +- Ensure cookies are allowed for testing pixels +- Test the pixel using the Trackier tracking link +- You can export the conversion log CSV file from the Export CSV button to view the + reports offline. +- Contact support at support@trackier.com for inquiries. +- There is a certain impression quota provided in each plan. There will be overage + charges for extra impressions tracked. +- The {imp_id} macro is mandatory to be placed on the advertiser URL with the impression + parameter. +- Trackier collects user IP and User Agent. +- Data is not transferred outside the EU. +- Ensure to check the tracking settings for accurate data. +- click_id the most important and mandatory information to track the conversions. +- Campaign visibility must be set to private to allow or block publishers. +- If not a single KPI is selected, then by default, the system assumes all the KPIs + are selected. +- API key must be used as a header request with the parameter X-API-Key. +- IP addresses can be whitelisted for additional security. +- Customization options available for admins and sub-administrators. +- Advertiser panel settings can be customized directly from the panel. +- From the manage publishers section, you can generate API key from the panel, which + will be visible on publisher's panel under API section. +- Campaign settings include options for non-targeted status, CAP visibility, and conversion + payout overrides. +- Custom questions can be set for permission-driven campaigns. +- SSO Configuration in Trackier enhances security and user convenience by centralizing + authentication. +- Proper setup ensures seamless login experiences, reduces password fatigue, and provides + flexibility in managing access for publishers, advertisers, and team members. +- Integrates with Slack for real-time updates. +- Requires Slack app creation and permission setup. +- If you’ve added new channels in Slack, don’t forget to click on refresh to ensure + the channels are updated. +- Trackier is fully committed to complying with the General Data Protection Regulation + (GDPR) to ensure the privacy, security, and proper handling of visitor and campaign + data. +- Performance Report allows viewing aggregated campaign performance based on various + parameters. +- The {imp_id} macro is mandatory to be placed on the advertiser URL with the impression + parameter. This will help you capture the impression ID effectively. +- Ensure campaigns are configured correctly for optimal performance. +- When campaign visibility is set to private, provide access to publishers by adding + them to 'Approved' publishers. +- There is no limit on the number of publishers that can be added to the blocked list. +- API key must be included in every request as a header. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '400 Bad Request: Check the request parameters and body.' +- '401 Unauthorized: Recheck OAuth token.' +- '404 Not Found: Ensure the endpoint is correct.' +- '400 Bad Request: Check the request parameters' +- '401 Unauthorized: Ensure API key is valid' +- '404 Not Found: Verify the endpoint path' +- 'BLANK: It means no pixel is placed on the advertiser''s end or is not in the + tag.' +- 'NO_SESSION_ID: Users have not landed on the landing page from the tracking link; + it might be an organic conversion.' +- 'NO_CLICK_FOR_SESSION: It means no valid click is available against this pixel firing.' +- 'DUPLICATE_CLICK_ID: It means conversion is already recorded with the same click + id.' +- 'INVALID_CLICK_ID: It means the click ID doesn''t belong to the Trackier platform.' +- 'INVALID_CAMPAIGN_ID: It means a pixel from another campaign is placed on the advertiser''s + end.' +- 'INVALID_GOAL_VALUE: The goal value created in the campaign does not match what + we are getting in the fired pixel log.' +- 'ORDER_DATE_IN_PAST: This error can arise if the click time is before the conversion + time.' +- 'destination mismatch url: occurs when targeting is set at a click level within + the campaign.' +- 'Malicious Software: Verify the tracking template and check for malware.' +- 'Compromised Website: Scan for security issues and request a review after resolving.' +- '400 Bad Request: Check the request format and parameters.' +- '401 Unauthorized: Verify the authentication credentials.' +- '404 Not Found: Ensure the endpoint exists.' +- '401 Unauthorized: Check the provided credentials.' +- '429 Too Many Requests: Slow down the request rate.' +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity.' +- 'BLANK (there is nothing on the page): It means no pixel is placed on the advertiser''s + end or is not in the tag.' +- 'DUPLICATE_CLICK_ID: It means conversion is already recorded with the same click + id if it is a purchase-type campaign; then enable tracking multiple conversions + from the same click id from the campaign setting.' +- 'INVALID_CLICK_ID: It means the click ID doesn''t belong to the Trackier platform, + and it is not a genuine test with the Trackier tracking link.' +- 'INVALID_CAMPAIGN_ID: It means a pixel from another campaign is placed on the advertiser''s + end; please check and share the pixel again.' +- 'ORDER_DATE_IN_PAST: This error can arise because of two situations: If the click + time is before the conversion time or if the time in &order_date in the pixel tag + is before the actual time of the conversion.' +- 'Malicious Software: Check for malware and ensure URLs are correct.' +- 'Compromised Website: Scan for security issues and request a review.' +- '401 Unauthorized: Check your API credentials' +- '403 Forbidden: No permission for this action' +- If the server status is 200 and still the postbacks are not received at the publisher's + end, there is a possibility that the publisher's server is not accepting those conversions + and hence needs to be checked at their end. +- 'INVALID_CLICK_ID: Click doesn''t belong to the Trackier platform' +- 'DUPLICATE_CLICK_ID: Tracking multiple conversions from the same click ID not enabled' +- 'INVALID_SECURITY_TOKEN: Incorrect postback shared with the advertiser' +- 'INVALID_GOAL_VALUE: Incorrect goal value provided in postback' +- '400 Bad Request: Check for missing or invalid parameters' +- '401 Unauthorized: Verify credentials and access permissions' +- '401 Unauthorized: Check your OAuth token and scopes.' +- '429 Too Many Requests: Rate limit exceeded, please try again later.' +- '401 Unauthorized: Verify your authentication credentials.' +- '404 Not Found: Check the endpoint path.' +- 'Global Targeting doesn’t allow conversion to be approved: The conversion originated + from outside the campaign''s targeted areas.' +- 'Campaign Targeting doesn’t allow conversion to be approved: The conversion originated + from outside the campaign''s targeted areas.' +- 'The CAP does not allow the conversion to be approved: The conversion cancelled + because the conversion cap has reached.' +- '401 Unauthorized: Check your client credentials and token.' +- '401 Unauthorized: Check API credentials and permissions.' +- 'Invalid Client ID: Recheck Consumer Key.' +- 'Unauthorized: Ensure correct OAuth scopes are set.' +- 'INVALID_CLICK_ID: Click doesn''t belong to the Trackier platform, advertiser tried + to manually fire postback with a random click ID.' +- 'DUPLICATE_CLICK_ID: When you are tracking multiple conversions from the same click + ID and you have not enabled the option to track multiple conversions.' +- 'INVALID_SECURITY_TOKEN: You have shared the incorrect postback with the advertiser.' +- 'INVALID_GOAL_VALUE: You have created a goal with the incorrect goal value.' +- 'Invalid Access Token: Verify the token or permissions.' +- 'API Scope Error: Ensure appropriate scopes are selected.' +- 'Due to campaign status ''paused,'' the conversion stands cancelled: If a conversion + is generated while the campaign is paused, the conversion status will be marked + as canceled.' +- '400 Bad Request: Check the parameters sent in the request.' +- '401 Unauthorized: Verify credentials and access rights.' +- '401 Unauthorized: Check your API key or token' +- '404 Not Found: Verify the endpoint URL' +- '500 Internal Server Error: Server issues, try again later' +- '401 Unauthorized: Check credentials.' +- '429 Too Many Requests: Rate limit exceeded.' +- '500 Internal Server Error: Check server logs for more details' +- '400 Bad Request: Ensure CSV format is correct and required columns are filled' +- '401 Unauthorized: Check your API key or token.' +- '401 Unauthorized: Recheck OAuth scopes or token expiration.' +- 'PUBLISHER_NOT_ACTIVE: The publisher you have added to the campaign is not active.' +- 'INVALID_PUBLISHER_ID: The publisher has changed the publisher ID in the tracking + link.' +- 'INVALID_OFFER_ID: The publisher has changed the offer ID in the tracking link.' +- 'OFFER_NOT_ACTIVE: The campaign is either paused or disabled.' +- 'INSUFFICIENT_PERMISSION: Publisher does not have permission to run the campaign.' +- 'LP_PAUSED_OR_TARGETING: The landing page and targeting are mismatched.' +- 'LINK_DISABLED OR CAP_REACHED: The campaign has reached the limit of the ''CAP.''' +- 'ADV_INACTIVE: The advertiser you have added to the campaign is not active.' +- 'PUB_BLOCKED_ON_ADV OR PUB_BLOCKED_ON_CAMP: The publisher is blocked by the respective + advertiser.' +- 'ADV_NOT_WHITELISTED_ON_PUB: Advertiser is not being whitelisted by the publisher.' +- '401 Unauthorized: Invalid credentials or token expired.' +- 'Invalid Credentials: Check for special characters in the password.' +- '400 Bad Request: Check for required fields in the request.' +- '401 Unauthorized: Verify API Key.' +- '401 Unauthorized: Check client credentials' +- '404 Not Found: Verify endpoint URL' +- If offers are not reflecting, check if they have been approved by the publisher. +- 'Resource not found: Check the API URL.' +- '400 Bad Request: Invalid request parameters.' +- '401 Unauthorized: Invalid or expired credentials.' +- 'LP_PAUSED_OR_TARGETING: There can be multiple reasons for this error.' +- The DNS record has not propagated fully. +- The CNAME record was added at the wrong domain level. +- The host field was entered incorrectly, resulting in a mismatch. +- '401 Unauthorized: Recheck API request parameters or authorization' +- 'Invalid Credentials: Check for special characters in the password that may cause + a mismatch.' +- 'The clicks have reached cap: If conversions are received but display as cancelled + after the cap is reached, it may be because the clicks were attributed before the + cap was reached.' +- 'The advertiser may/may not write a note: Conversions that do not meet agreed upon + terms can be manually cancelled by the advertiser.' +- 'The Fraud detection rules do not allow the conversion to be approved: If the system + detects fraudulent conversions as per the rules, the conversions will be cancelled.' +- '401 Unauthorized: Check OAuth token validity.' +- '404 Not Found: Verify the endpoint URL.' +- 'Unauthorized: Check API key validity.' +- '401 Unauthorized: Check credentials and permissions' +- '400 Bad Request: Validate request parameters' +- '401 Unauthorized: Check token and permissions' +- '404 Not Found: Verify endpoint and parameters' +- 'Due to campaign status “paused,” the conversion stands cancelled: If a conversion + is generated while the campaign is paused, the conversion status will be marked + as canceled.' +- 'INVALID_REQUEST: Check the request parameters.' +- 'AUTHENTICATION_FAILED: Verify client credentials.' +- 'RESOURCE_NOT_FOUND: Ensure the requested resource exists.' +- '403 Forbidden: Check if publisher access is allowed.' +- '404 Not Found: Ensure the publisher ID is correct.' +- 'Unauthorized: Check API key' +auth_info: + mentioned_objects: + - OAuthToken + - AuthProvider + - NamedCredential + - OauthToken + - Publisher ID + - Domain + - User Application Key + - User API Key +client: + base_url: https://api.trackier.io + auth: + type: oauth2 + flow: refresh_token + token_url: https://login.trackier.com/oauth2/token + client_id: '{{ dlt.secrets[''trackier_client_id''] }}' + client_secret: '{{ dlt.secrets[''trackier_client_secret''] }}' + refresh_token: '{{ dlt.secrets[''trackier_refresh_token''] }}' + location: header + header_name: Authorization + headers: + Accept: application/json +source_metadata: null diff --git a/travconn/travconn-docs.md b/travconn/travconn-docs.md new file mode 100644 index 00000000..4a37cb22 --- /dev/null +++ b/travconn/travconn-docs.md @@ -0,0 +1,151 @@ +In this guide, we'll set up a complete Client Info data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def client_info_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "http://domain.com/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + token,,integration/Lists/GetBoardList,,integration/Lists/GetHotelList + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='client_info_migration_pipeline', + destination='duckdb', + dataset_name='client_info_migration_data', + ) + # Load the data + load_info = pipeline.run(client_info_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from client_info_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Token Management: Manage authentication tokens for accessing the API. +- Integration Lists: Retrieve lists related to various integrations, such as boards, hotels, and room types. +- Source Operations: Handle actions related to reservations and cancellations, including inserting new reservations. + +You will then debug the Client Info pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Client Info support. + ```shell + dlt init dlthub:client_info_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Client Info API, as specified in @client_info_migration-docs.yaml + Start with endpoints token and and skip incremental loading for now. + Place the code in client_info_migration_pipeline.py and name the pipeline client_info_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python client_info_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The API uses OAuth2 for authentication. Initially, an email-password combination is required to obtain a bearer token, which must be included in the header for subsequent requests. + + To get the appropriate API keys, please visit the original source at http://domain.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python client_info_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline client_info_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset client_info_migration_data + The duckdb destination used duckdb:/client_info_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline client_info_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("client_info_migration_pipeline").dataset() + # get oke table as Pandas frame + data.oke.df().head() + ``` + +## Running into errors? + +The API requires an initial email-password combination for token acquisition and subsequent requests must include the bearer token in the Authorization header. Additionally, ensure that the API key is correctly included in the headers. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/travconn/travconn-docs.yaml b/travconn/travconn-docs.yaml new file mode 100644 index 00000000..c74d9191 --- /dev/null +++ b/travconn/travconn-docs.yaml @@ -0,0 +1,68 @@ +resources: +- name: Get Token + endpoint: + path: /token + method: POST + data_selector: access_token +- name: Price Search + endpoint: + path: /integration/price/HotelPriceSearch + method: POST + data_selector: response +- name: Insert Reservation + endpoint: + path: /integration/source/InsertReservation + method: POST + data_selector: response +- name: Get Reservations + endpoint: + path: /integration/source/GetReservations + method: POST + data_selector: response +- name: Get Region List + endpoint: + path: /integration/Lists/GetRegionList + method: POST + data_selector: response +- name: Get SubRegion List + endpoint: + path: /integration/Lists/GetSubRegionList + method: GET + data_selector: response +- name: Get Hotel List + endpoint: + path: /integration/Lists/GetHotelList + method: GET + data_selector: response + params: + IsActive: 'true' +- name: Get RoomType List + endpoint: + path: /integration/Lists/GetRoomTypeList + method: GET + data_selector: response +- name: Get BoardList + endpoint: + path: /integration/Lists/GetBoardList + method: GET + data_selector: response +- name: Cancel Request + endpoint: + path: /integration/source/CancelRequest + method: POST + data_selector: response +notes: +- Requires Email-Password combination in the request body for token authorization. +- Bearer Token required for subsequent requests. +errors: [] +auth_info: + mentioned_objects: [] +client: + base_url: http://domain.com + auth: + type: oauth2 + location: header + header_name: Authorization + headers: + ApiKey: your_key +source_metadata: null diff --git a/tripadvisor/tripadvisor-docs.md b/tripadvisor/tripadvisor-docs.md new file mode 100644 index 00000000..f84cbab0 --- /dev/null +++ b/tripadvisor/tripadvisor-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Tripadvisor Content data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def tripadvisor_content_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.content.tripadvisor.com/api/v1/", + "auth": { + "type": "apikey", + "token": access_token, + }, + }, + "resources": [ + location/search,,location/nearby_search,,searchforlocations + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='tripadvisor_content_migration_pipeline', + destination='duckdb', + dataset_name='tripadvisor_content_migration_data', + ) + # Load the data + load_info = pipeline.run(tripadvisor_content_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from tripadvisor_content_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Location Search: Allows searching for locations based on various parameters. +- Nearby Search: Retrieves nearby locations based on a specified location. +- Location Details: Provides detailed information about a specific location. +- Location Photos: Retrieves photos associated with a specific location. +- Location Reviews: Fetches reviews for a specified location. + +You will then debug the Tripadvisor Content pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Tripadvisor Content support. + ```shell + dlt init dlthub:tripadvisor_content_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Tripadvisor Content API, as specified in @tripadvisor_content_migration-docs.yaml + Start with endpoints location/search and and skip incremental loading for now. + Place the code in tripadvisor_content_migration_pipeline.py and name the pipeline tripadvisor_content_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python tripadvisor_content_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + API keys are used to authenticate and authorize access to the Tripadvisor Content API. You must include the HTTP Referer header as a URL of a whitelisted domain to send requests to the API. + + To get the appropriate API keys, please visit the original source at https://www.tripadvisor.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python tripadvisor_content_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline tripadvisor_content_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset tripadvisor_content_migration_data + The duckdb destination used duckdb:/tripadvisor_content_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline tripadvisor_content_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("tripadvisor_content_migration_pipeline").dataset() + # get ocation/searc table as Pandas frame + data.ocation/searc.df().head() + ``` + +## Running into errors? + +Be aware of the daily and per-second call limits imposed by Tripadvisor on API usage. You must credit Tripadvisor when using their Locations API product and safeguard your access key. Additionally, caching, storing, or indexing is not permitted for most content, with specific exceptions. Failure to adhere to these guidelines may result in rate limiting or revocation of access. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/tripadvisor/tripadvisor-docs.yaml b/tripadvisor/tripadvisor-docs.yaml new file mode 100644 index 00000000..6a23edad --- /dev/null +++ b/tripadvisor/tripadvisor-docs.yaml @@ -0,0 +1,96 @@ +resources: +- name: location_search + endpoint: + path: /api/v1/location/search + method: GET +- name: Location Details + endpoint: + path: /reference/getlocationdetails + method: GET +- name: Location Photos + endpoint: + path: /reference/getlocationphotos + method: GET +- name: Location Reviews + endpoint: + path: /reference/getlocationreviews + method: GET +- name: Location Search + endpoint: + path: /reference/searchforlocations + method: GET +- name: Nearby Location Search + endpoint: + path: /reference/searchfornearbylocations + method: GET +- name: location_details + endpoint: + path: /api/v1/location/{locationId}/details + method: GET +- name: location_details + endpoint: + path: /api/v1/location/{locationId}/details + method: GET + data_selector: response +- name: location_photos + endpoint: + path: /api/v1/location/{locationId}/photos + method: GET +- name: location_photos + endpoint: + path: /api/v1/location/{locationId}/photos + method: GET +- name: location_reviews + endpoint: + path: /api/v1/location/{locationId}/reviews + method: GET +- name: location_reviews + endpoint: + path: /api/v1/location/{locationId}/reviews + method: GET +- name: nearby_search + endpoint: + path: /api/v1/location/nearby_search + method: GET +- name: nearby_search + endpoint: + path: /api/v1/location/nearby_search + method: GET +notes: +- Up to 50 calls per second +- You must credit Tripadvisor when using our Locations API product. +- You are required to select a max daily budget when you sign up. +- Any call made beyond the daily limit will get back a response with status code 429 + (Too Many Requests). +- All API requests must be made over https. +- Please safeguard your access key. +- Tripadvisor sets daily and per-second call limits on each key used to access the + Content API. +- The rate limit measures on a 24-hour rolling window. +- Caching, storing or indexing is not permitted for any content except Location ID + attribute that can be cached to improve performance of your application. +- API keys are used to authenticate and authorize access to our APIs. +- You must include the HTTP Referer header as a URL of the whitelisted domain to send + requests to the API. +- You must provide your public IP address and not the local IP address. +- API keys are used to authenticate and authorize access to APIs. +- Wildcards are not supported and Protocol specifications are not allowed. +- ALL SERVICES AND TA MATERIALS THAT MAY BE PROVIDED BY TRIPADVISOR ARE PROVIDED "AS + IS". +- Tripadvisor makes no warranties, express or implied, including without limitation, + any warranties of merchantability, fitness for a particular purpose, non-infringement + or title. +- Tripadvisor disclaims and shall not be liable for any loss, injury, cost or damage + suffered by Customer or any third party and shall in no event be liable for consequential, + special or incidental damages, including lost profits. +errors: +- '429: Too Many Requests' +- Tripadvisor reserves the right to revoke an access key at any time. +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +auth_info: + mentioned_objects: [] +client: + base_url: https://api.content.tripadvisor.com + auth: + type: apikey +source_metadata: null diff --git a/ucontact/ucontact-docs.md b/ucontact/ucontact-docs.md new file mode 100644 index 00000000..efa1bf7e --- /dev/null +++ b/ucontact/ucontact-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete uContact data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def ucontact_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "http://172.19.18.132:8082/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + send,,users,,campaigns + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='ucontact_migrations_pipeline', + destination='duckdb', + dataset_name='ucontact_migrations_data', + ) + # Load the data + load_info = pipeline.run(ucontact_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from ucontact_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Users: Manage user accounts and permissions. +- Campaigns: Handle campaign data and operations. +- Messages: Send and receive messages via various channels. +- Contacts: Manage contact information and interactions. +- Templates: Create and manage email and SMS templates. + +You will then debug the uContact pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with uContact support. + ```shell + dlt init dlthub:ucontact_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for uContact API, as specified in @ucontact_migrations-docs.yaml + Start with endpoints send and and skip incremental loading for now. + Place the code in ucontact_migrations_pipeline.py and name the pipeline ucontact_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python ucontact_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The source uses OAuth2 for authentication with a refresh token, requiring the setup of a connected app for proper access. + + To get the appropriate API keys, please visit the original source at https://www.ucontact.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python ucontact_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline ucontact_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset ucontact_migrations_data + The duckdb destination used duckdb:/ucontact_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline ucontact_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("ucontact_migrations_pipeline").dataset() + # get en table as Pandas frame + data.en.df().head() + ``` + +## Running into errors? + +Be aware that some objects may return nulls in deeply nested fields. Running multiple instances simultaneously is not allowed, and there are limits on the rate of messages and interactions that can be processed. Ensure that you have appropriate permissions for wallboards and other features. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/ucontact/ucontact-docs.yaml b/ucontact/ucontact-docs.yaml new file mode 100644 index 00000000..80c5bece --- /dev/null +++ b/ucontact/ucontact-docs.yaml @@ -0,0 +1,681 @@ +resources: +- name: messengerActivatorUrl + endpoint: + path: /api/connectors/id/{name}/messengerActivatorUrl + method: GET +- name: outlookActivatorUrl + endpoint: + path: /api/connectors/id/{name}/outlookActivatorUrl + method: GET +- name: net2PhoneActivatorUrl + endpoint: + path: /api/connectors/id/{name}/net2PhoneActivatorUrl + method: GET +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: user_analytics + endpoint: + path: /user/analytics + method: GET + data_selector: records +- name: campaign + endpoint: + path: /campaigns + method: GET + data_selector: records +- name: campaigns + endpoint: + path: /campaigns + method: GET + data_selector: campaigns + params: {} +- name: dispositions + endpoint: + path: /dispositions + method: GET + data_selector: dispositions + params: {} +- name: holidays + endpoint: + path: /holidays + method: GET + data_selector: holidays + params: {} +- name: templates + endpoint: + path: /templates + method: GET + data_selector: templates + params: {} +- name: states + endpoint: + path: /states + method: GET + data_selector: states + params: {} +- name: blacklist + endpoint: + path: /blacklist + method: GET + data_selector: blacklist + params: {} +- name: contacts + endpoint: + path: /contacts + method: GET + data_selector: contacts + params: {} +- name: campaign + endpoint: + path: /services/data/vXX.X/sobjects/Campaign + method: GET + data_selector: records + params: {} +- name: disposition + endpoint: + path: /services/data/vXX.X/sobjects/Disposition + method: GET + data_selector: records + params: {} +- name: holiday + endpoint: + path: /services/data/vXX.X/sobjects/Holiday + method: GET + data_selector: records + params: {} +- name: template + endpoint: + path: /services/data/vXX.X/sobjects/Template + method: GET + data_selector: records + params: {} +- name: state + endpoint: + path: /services/data/vXX.X/sobjects/State + method: GET + data_selector: records + params: {} +- name: blacklist + endpoint: + path: /services/data/vXX.X/sobjects/Blacklist + method: GET + data_selector: records + params: {} +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaigns + endpoint: + path: /api/campaigns + method: GET + data_selector: data + params: {} +- name: Campaigns + endpoint: + path: /supervisor/campaigns + method: GET +- name: Agents + endpoint: + path: /supervisor/agents + method: GET +- name: Dialers + endpoint: + path: /supervisor/dialers + method: GET +- name: Custom queries + endpoint: + path: /supervisor/custom-queries + method: POST +- name: interactions + endpoint: + path: /api/v1/interactions + method: GET + data_selector: records +- name: webhook + endpoint: + path: /api/webhook/{WebhookName} + method: GET + data_selector: records + params: {} +- name: campaigns + endpoint: + path: /api/v1/campaigns + method: GET + data_selector: data + params: {} +- name: agents + endpoint: + path: /api/v1/agents + method: GET + data_selector: data + params: {} +- name: dialers + endpoint: + path: /api/v1/dialers + method: GET + data_selector: data + params: {} +- name: campaign + endpoint: + path: /services/data/vXX.X/sobjects/Campaign + method: GET + data_selector: records + params: {} +- name: ccdata + endpoint: + path: /database/ccdata + method: GET + data_selector: tables + params: {} +- name: ccrepo + endpoint: + path: /database/ccrepo + method: GET + data_selector: tables + params: {} +- name: cccustom + endpoint: + path: /database/cccustom + method: GET + data_selector: tables + params: {} +- name: webhook + endpoint: + path: /api/webhook/{WebhookName} + method: GET +- name: bots + endpoint: + path: /developer/bots/bots-designer + method: GET + data_selector: bots + params: {} +- name: gmail_account + endpoint: + path: /gmail/account + method: POST + data_selector: data + params: {} +- name: email + endpoint: + path: /outlook/emails + method: POST + data_selector: response + params: {} +- name: ccdata + endpoint: + path: /ccdata + method: GET + data_selector: records +- name: ccrepo + endpoint: + path: /ccrepo + method: GET + data_selector: records +- name: cccustom + endpoint: + path: /cccustom + method: GET + data_selector: records +- name: WhatsApp Business Configuration + endpoint: + params: + Application ID: WhatsApp Business application ID + Application Client Secret: Password for the WhatsApp Business account + Messages per Second: 1000 +- name: users + endpoint: + path: /users + method: GET + data_selector: records +- name: campaigns + endpoint: + path: /campaigns + method: GET + data_selector: records +- name: email_interactions + endpoint: + path: /gmail/interactions + method: GET + data_selector: interactions +- name: email + endpoint: + path: /send + method: POST +- name: users + endpoint: + path: /supervisor/users + method: GET + data_selector: metrics + params: {} +- name: export + endpoint: + path: /supervisor/users/export + method: POST + data_selector: report + params: {} +- name: messages + endpoint: + path: /messages + method: POST + data_selector: data + params: + messages_per_second: 1000 +- name: campañas + endpoint: + path: /supervisor/wallboards/campanas + method: GET +- name: agentes + endpoint: + path: /supervisor/wallboards/agentes + method: GET +- name: hub_saliente + endpoint: + path: /supervisor/wallboards/hubs_salientes + method: GET +- name: queries_personalizadas + endpoint: + path: /supervisor/wallboards/queries_personalizadas + method: GET +- name: campaigns + endpoint: + path: /supervisor/campaigns + method: GET + data_selector: campaigns +- name: campañas + endpoint: + path: /campañas + method: GET + data_selector: datos +- name: agentes + endpoint: + path: /agentes + method: GET + data_selector: datos +- name: hub_saliente + endpoint: + path: /hub_saliente + method: GET + data_selector: datos +- name: queries_personalizadas + endpoint: + path: /queries_personalizadas + method: GET + data_selector: datos +- name: gmail_connector + endpoint: + path: /gmail/connect + method: POST + data_selector: connector + params: {} +- name: email + endpoint: + path: /sendEmail + method: POST + data_selector: response + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Net2Phone-Unite + endpoint: + path: /net2phone/unite + method: POST + data_selector: data + params: {} +- name: email + endpoint: + path: /email/send + method: POST +- name: connector_status + endpoint: + path: /api/connectors/status + method: GET +- name: messages + endpoint: + params: + messages_per_second: 1000 +- name: connector_configuration + endpoint: + path: /connectors/net2phone/configuration + method: POST + data_selector: configuration + params: + account_id: Net2phone account ID + password: Net2phone account password + host: SIP provider’s IP address +- name: Webhook for messages and status + endpoint: + path: /api/inbound/gupshupWpp/event + method: POST +- name: Net2Phone-Unite + endpoint: + path: /Net2Phone-Unite + method: GET +- name: sip_provider + endpoint: + path: /api/v1/sip_providers + method: POST + data_selector: provider + params: {} +- name: telephony_configuration + endpoint: + path: /integrations/net2phone/telephony + method: POST + data_selector: configuration + params: + account_id: Net2phone account ID + password: Net2phone account password + host: SIP provider’s IP address +- name: configuration + endpoint: + path: /smtp-imap/configuration + method: GET +- name: messages + endpoint: + path: /api/inbound/twilioWpp/message + method: POST + data_selector: messages +- name: statuses + endpoint: + path: /api/inbound/twilioWpp/status + method: POST + data_selector: statuses +- name: messages_status + endpoint: + path: /api/inbound/gupshupWpp/event + method: POST +- name: sms + endpoint: + path: /sms/send + method: POST +- name: webhook_messages + endpoint: + path: /api/inbound/infobipWpp/message + method: POST +- name: webhook_status + endpoint: + path: /api/inbound/infobipWpp/status + method: POST +- name: contact + endpoint: + path: /crm/Contacts/contacts_contactsview.html + method: GET + data_selector: '' + params: {} +- name: connectors + endpoint: + path: /api/connectors + method: GET + data_selector: result + params: {} +- name: connector_info + endpoint: + path: /api/connectors/id/{name} + method: GET + data_selector: name + params: {} +- name: create_connector + endpoint: + path: /api/connectors + method: POST + data_selector: {} + params: {} +- name: update_connector + endpoint: + path: /api/connectors + method: PUT + data_selector: {} + params: {} +- name: remove_connector + endpoint: + path: /api/connectors + method: DELETE + data_selector: {} + params: {} +- name: connector_statuses + endpoint: + path: /api/connectors/statuses + method: GET + data_selector: result +- name: specific_connector_status + endpoint: + path: /api/connectors/id/{name}/status + method: GET + data_selector: result +- name: messengerActivatorUrl + endpoint: + path: /api/connectors/id/{name}/messengerActivatorUrl + method: GET + data_selector: result.url + params: {} +- name: outlookActivatorUrl + endpoint: + path: /api/connectors/id/{name}/outlookActivatorUrl + method: GET + data_selector: result.url + params: {} +- name: net2PhoneActivatorUrl + endpoint: + path: /api/connectors/id/{name}/net2PhoneActivatorUrl + method: GET + data_selector: result.url + params: {} +- name: user_analytics + endpoint: + path: /user/analytics + method: GET + data_selector: records + params: {} +- name: connectors + endpoint: + path: /api/connectors + method: GET + data_selector: result + params: {} +- name: connector_info + endpoint: + path: /api/connectors/id/{name} + method: GET + data_selector: result + params: {} +- name: create_connector + endpoint: + path: /api/connectors + method: POST + data_selector: {} + params: {} +- name: update_connector + endpoint: + path: /api/connectors + method: PUT + data_selector: {} + params: {} +- name: remove_connector + endpoint: + path: /api/connectors + method: DELETE + data_selector: {} + params: {} +- name: connector_statuses + endpoint: + path: /api/connectors/statuses + method: GET + data_selector: result +- name: specific_connector_status + endpoint: + path: /api/connectors/id/{name}/status + method: GET + data_selector: result +- name: messengerActivatorUrl + endpoint: + path: /api/connectors/id/{name}/messengerActivatorUrl + method: GET + data_selector: result.url +- name: outlookActivatorUrl + endpoint: + path: /api/connectors/id/{name}/outlookActivatorUrl + method: GET + data_selector: result.url +- name: net2PhoneActivatorUrl + endpoint: + path: /api/connectors/id/{name}/net2PhoneActivatorUrl + method: GET + data_selector: result.url +notes: +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Some objects like Contact may return nulls in deeply nested fields +- Double your security with 2FA in uContact +- Export user information feature available +- Metrics are vital for Contact Centers, so you can export the dashboard data for + further analysis or reporting. +- Once you enter this module, you will see the list of interactions for today. +- If you previously used filters in this module, the system will retain those criteria, + displaying only the interactions that match the selected filters. +- Some objects may return nulls in deeply nested fields +- Wallboards allows visualization of information graphically in panels. +- 'Error: "No metrics selected" occurs when no metric is selected for the panel.' +- 'Error: "No resources selected" occurs when no resource is selected in either global + or local filters.' +- 'Error: "No resources available" occurs when no resource has been created.' +- Custom webhooks can be created. +- Flows can be accessed from the Automation module. +- Wallboards require specific permissions for viewing, creating, editing, and deleting. +- Each active Bot consumes one license. +- Bot Functions do not consume a license. +- Access is read-only for ccdata and ccrepo. +- cccustom allows create, insert, update, and delete operations. +- Access contact information through the interaction menu. +- Contact details may include phone number or email address depending on the channel. +- 'Interactions per Second: The maximum number of emails that can be sent per second, + with a default of 1000.' +- Requires email address and password for Outlook account. +- Can set maximum emails sent per second using Outbound Hub. +- Uses OAuth2 with refresh token — requires setup of connected app in uContact +- Interactions per second is limited to 1000. +- All incoming emails will enter the channel's queue if enabled. +- Account is required to be an Outlook email address. +- Sender Name is visible to customers in emails. +- The maximum number of messages that can be sent per second is configurable. +- Los paneles son aquellos que nos permiten visualizar información dentro de un wallboard. +- Los filtros se emplean para refinar los datos mostrados ya sea dentro de un panel + específico o en todo el wallboard. +- Puedes personalizar la vista de este dashboard a través de los filtros para ver + solamente la información y métricas que necesitas. +- Solamente se puede tener un ambiente de desarrollo corriendo al mismo tiempo. +- Los filtros se dividen en filtros comunitarios y filtros personales. +- Los filtros globales afectan a todos los paneles dentro del wallboard. +- Necesitarás tener acceso a la cuenta para dar los permisos. +- Si se habilita, ingresarán a la cola del canal todos los correos entrantes que lleguen + a la cuenta. +- Requires email address and password for the Outlook account. +- The connector can send and receive emails. +- 'Mensajes por segundo: 1000' +- Requires integration setup with Outlook account credentials. +- Contact support team to add IPs to the Firewall. +- Maximum number of messages that can be sent per second; by default, this is 1000. +- Webhook for messages and status URL needs to replace instance with your instance + name. +- API Key is required for integration. +- Default Messages per second is set to 1000. +- 'Webhook for messages: https://instance.ucontactcloud.com/api/inbound/infobipWpp/message' +- 'Webhook for status: https://instance.ucontactcloud.com/api/inbound/infobipWpp/status' +- 'Messages per second: 1000' +- Required information includes Account ID, Token, and Host. +- You will need the credentials for your Instagram account to log in and accept the + necessary permissions. +- Requires configuration of SIP account details provided by the supplier. +- Contact support to add IP addresses to the Firewall. +- Requires setup of connected app in Facebook +- If the integration fails, we recommend contacting Support to verify the issue +- Account ID, Password, and Host are required for configuration. +- Maximum number of messages that can be sent per second is 1000. +- 'Messages per second: The maximum number of messages that can be sent per second + is set to 1000.' +- API Key generated in your Infobip account is required. +- 'Maximum messages per second: 1000.' +- uCRM automatically detects and highlights conflicting contacts. +- Conflicts can be resolved automatically or manually. +- Global & individual actions allow flexible conflict resolution. +- A final preview ensures data integrity before saving. +- Allows administrators to define which fields are mandatory during contact creation +- Changes will be applied to all new contact forms +- Form validation will prevent submission if required fields are empty +- Some objects might return nulls in deeply nested fields +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- 'No metrics selected: Select at least one metric to resolve this error.' +- 'No resources selected: Ensure at least one resource is selected in global or local + filters.' +- 'No resources available: Create at least one resource to resolve this error.' +- 'The user is already logged in: Log out from the device where your account is currently + active.' +- 'Incorrect username or password: Try logging in again with your credentials.' +- '403 Forbidden: Check user permissions for wallboards' +- 'No metrics selected: Select at least one metric for the panel.' +- 'No resources selected: Select at least one resource in the global or local filters.' +- 'No resources available: Create at least one resource.' +- 'Permiso de vista: Permite al usuario ver los wallboards existentes.' +- 'Create permission: Permite al usuario crear nuevos wallboards.' +- 'Edit permission: Permite al usuario trabajar en wallboards existentes.' +- No metrics selected +- No resources selected +- No resources available +- 'El usuario ya ha iniciado sesión: debes cerrar la sesión en el dispositivo que + tengas uContact abierto' +- 'Usuario o contraseña incorrectos: intenta nuevamente con tus credenciales y contacta + a tu Administrador si el error persiste' +- 'No metrics selected: This error occurs when we have not selected any metric for + the panel.' +- 'No resources selected: Este error ocurre cuando no hemos seleccionado ningún recurso + para el panel.' +- 'No resources available: Este error ocurre cuando no hemos creado ningún recurso.' +- El usuario ya ha iniciado sesión +- Usuario o contraseña incorrectos +- '400: Error getting connectors' +- '400: Connector does not exist' +- '400: Error creating new connector' +- '400: Error removing connector' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - NamedCredential +client: + base_url: http://172.19.18.132:8082 +source_metadata: null diff --git a/upvest/upvest-docs.md b/upvest/upvest-docs.md new file mode 100644 index 00000000..81b5e26e --- /dev/null +++ b/upvest/upvest-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Upvest data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def upvest_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.upvest.co/v", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + isa,,users,,orders + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='upvest_migrations_pipeline', + destination='duckdb', + dataset_name='upvest_migrations_data', + ) + # Load the data + load_info = pipeline.run(upvest_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from upvest_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- User Management: Manage user accounts and their details. +- Transactions: Handle transactions such as payments and withdrawals. +- Orders: Manage orders and their respective details. +- Reports: Generate various reports related to user activities or transactions. + +You will then debug the Upvest pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Upvest support. + ```shell + dlt init dlthub:upvest_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Upvest API, as specified in @upvest_migrations-docs.yaml + Start with endpoints isa and and skip incremental loading for now. + Place the code in upvest_migrations_pipeline.py and name the pipeline upvest_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python upvest_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication method used is OAuth2, which typically requires obtaining an access token to authorize API calls. + + To get the appropriate API keys, please visit the original source at https://www.upvest.co/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python upvest_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline upvest_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset upvest_migrations_data + The duckdb destination used duckdb:/upvest_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline upvest_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("upvest_migrations_pipeline").dataset() + # get s table as Pandas frame + data.s.df().head() + ``` + +## Running into errors? + +It's important to be aware of rate limits and to handle errors gracefully. Common issues include '401 Unauthorized' for token expiration and '429 Too Many Requests' for hitting rate limits. Additionally, ensure that required headers like 'idempotency-key' and 'upvest-client-id' are included in requests to avoid errors. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/upvest/upvest-docs.yaml b/upvest/upvest-docs.yaml new file mode 100644 index 00000000..9deab872 --- /dev/null +++ b/upvest/upvest-docs.yaml @@ -0,0 +1,606 @@ +resources: +- name: Authentication + endpoint: + path: /auth/token + method: POST +- name: Fees + endpoint: + path: /fees/collections + method: GET +- name: Files + endpoint: + path: /files/* + method: GET +- name: Instruments + endpoint: + path: /instruments + method: GET +- name: Orders + endpoint: + path: /orders + method: GET +- name: Payments + endpoint: + path: /payments/topups + method: GET +- name: Portfolios + endpoint: + path: /portfolios/configurations + method: GET +- name: Positions + endpoint: + path: /accounts/{id}/positions + method: GET +- name: Price Data + endpoint: + path: /instruments/{isin}/venues/{id}/prices/latest + method: GET +- name: Reports + endpoint: + path: /reports + method: GET +- name: Savings Plans + endpoint: + path: /savings_plans + method: GET +- name: Tax Exemptions + endpoint: + path: /tax_exemptions + method: GET +- name: Users & Accounts + endpoint: + path: /accounts + method: GET +- name: Valuations + endpoint: + path: /accounts/{id}/valuations + method: GET +- name: Webhooks + endpoint: + path: /webhooks + method: GET +- name: Authentication + endpoint: + path: /auth/token + method: POST +- name: Fees + endpoint: + path: /fees/collections + method: GET +- name: Files + endpoint: + path: /files/* + method: GET +- name: Instruments + endpoint: + path: /instruments + method: GET +- name: Orders + endpoint: + path: /orders + method: GET +- name: Payments + endpoint: + path: /payments/topups + method: GET +- name: Portfolios + endpoint: + path: /portfolios/configurations + method: GET +- name: Positions + endpoint: + path: /accounts/{id}/positions + method: GET +- name: Price Data + endpoint: + path: /instruments/{isin}/venues/{id}/prices/latest + method: GET +- name: Reports + endpoint: + path: /reports + method: GET +- name: Savings Plans + endpoint: + path: /savings_plans + method: GET +- name: Tax Exemptions + endpoint: + path: /tax_exemptions + method: GET +- name: Users & Accounts + endpoint: + path: /accounts + method: GET +- name: Valuations + endpoint: + path: /accounts/{id}/valuations/current + method: GET +- name: Webhooks + endpoint: + path: /webhooks + method: GET +- name: isa + endpoint: + path: /isa + method: GET + data_selector: records +- name: pea + endpoint: + path: /pea + method: GET + data_selector: records +- name: users + endpoint: + path: /users + method: get +- name: accounts + endpoint: + path: /accounts + method: get +- name: tax_residencies + endpoint: + path: /tax_residencies + method: get +- name: users + endpoint: + path: /users + method: get + data_selector: records +- name: accounts + endpoint: + path: /accounts + method: get + data_selector: records +- name: tax_residencies + endpoint: + path: /tax_residencies + method: get + data_selector: records +- name: tax_exemptions + endpoint: + path: /tax_exemptions + method: get + data_selector: records +- name: tax_collections + endpoint: + path: /tax_collections + method: get + data_selector: records +- name: instruments + endpoint: + path: /instruments + method: get + data_selector: records +- name: orders + endpoint: + path: /orders + method: get + data_selector: records +- name: portfolios_allocations + endpoint: + path: /portfolios/allocations + method: GET + data_selector: '' + params: {} +- name: portfolios_configurations + endpoint: + path: /portfolios/configurations + method: GET + data_selector: '' + params: {} +- name: savings_plans + endpoint: + path: /savings_plans + method: GET + data_selector: '' + params: {} +- name: liquidations + endpoint: + path: /accounts/{account_id}/liquidations + method: GET + data_selector: '' + params: {} +- name: direct_debits + endpoint: + path: /payments/direct_debits + method: GET + data_selector: '' + params: {} +- name: topups + endpoint: + path: /payments/topups + method: GET + data_selector: '' + params: {} +- name: withdrawals + endpoint: + path: /payments/withdrawals + method: GET + data_selector: '' + params: {} +- name: reference_accounts + endpoint: + path: /payments/reference_accounts + method: GET + data_selector: '' + params: {} +- name: mandates + endpoint: + path: /payments/mandates + method: GET + data_selector: '' + params: {} +- name: cash_balances + endpoint: + path: /account_groups/{account_group_id}/payments/cash_balances/{currency} + method: GET + data_selector: '' + params: {} +- name: positions + endpoint: + path: /accounts/{account_id}/positions + method: GET + data_selector: '' + params: {} +- name: valuations + endpoint: + path: /accounts/{account_id}/valuations/current + method: GET + data_selector: '' + params: {} +- name: returns + endpoint: + path: /accounts/{account_id}/returns + method: GET + data_selector: '' + params: {} +- name: virtual_cash_balances + endpoint: + path: /virtual_cash_balances/increases + method: POST + data_selector: '' + params: {} +- name: fees + endpoint: + path: /fees/collections + method: GET + data_selector: '' + params: {} +- name: fees_configurations + endpoint: + path: /fees/configurations + method: GET + data_selector: '' + params: {} +- name: reports + endpoint: + path: /reports + method: POST + data_selector: '' + params: {} +- name: transactions_cash + endpoint: + path: /transactions/cash + method: GET + data_selector: '' + params: {} +- name: files + endpoint: + path: /files/{folder}/{file_name} + method: GET + data_selector: '' + params: {} +- name: webhook_subscriptions + endpoint: + path: /webhooks + method: GET + data_selector: '' + params: {} +- name: portfolios_allocations + endpoint: + path: /portfolios/allocations + method: GET +- name: portfolios_configurations + endpoint: + path: /portfolios/configurations + method: GET +- name: savings_plans + endpoint: + path: /savings_plans + method: GET +- name: liquidations + endpoint: + path: /accounts/{account_id}/liquidations + method: GET +- name: direct_debits + endpoint: + path: /payments/direct_debits + method: GET +- name: top_ups + endpoint: + path: /payments/topups + method: GET +- name: withdrawals + endpoint: + path: /payments/withdrawals + method: GET +- name: reference_accounts + endpoint: + path: /payments/reference_accounts + method: GET +- name: mandates + endpoint: + path: /payments/mandates + method: GET +- name: cash_balances + endpoint: + path: /account_groups/{account_group_id}/payments/cash_balances/{currency} + method: GET +- name: positions + endpoint: + path: /accounts/{account_id}/positions + method: GET +- name: valuations + endpoint: + path: /accounts/{account_id}/valuations/current + method: GET +- name: returns + endpoint: + path: /accounts/{account_id}/returns + method: GET +- name: virtual_cash_balances + endpoint: + path: /virtual_cash_balances/increases + method: POST +- name: fees + endpoint: + path: /fees/collections + method: GET +- name: fees_configurations + endpoint: + path: /fees/configurations + method: GET +- name: reports + endpoint: + path: /reports + method: POST +- name: transactions + endpoint: + path: /transactions/cash + method: GET +- name: files + endpoint: + path: /files/{folder}/{file_name} + method: GET +- name: webhook_subscriptions + endpoint: + path: /webhooks + method: GET +- name: virtual_bank_accounts + endpoint: + path: /payments/virtual_bank_accounts + method: GET +- name: account_group_payments + endpoint: + path: /account_groups/{account_group_id}/payments/virtual_bank_accounts + method: GET +- name: virtual_bank_account_details + endpoint: + path: /payments/virtual_bank_accounts/{virtual_bank_account_id} + method: GET +- name: post_virtual_bank_accounts + endpoint: + path: /payments/virtual_bank_accounts + method: POST +- name: post_virtual_bank_accounts_events + endpoint: + path: /virtual_bank_accounts/events + method: POST +- name: transactions + endpoint: + path: /tests/payments/transactions + method: POST +- name: virtual_bank_accounts + endpoint: + path: /payments/virtual_bank_accounts + method: GET +- name: virtual_bank_account_details + endpoint: + path: /payments/virtual_bank_accounts/{virtual_bank_account_id} + method: GET +- name: create_virtual_bank_account + endpoint: + path: /payments/virtual_bank_accounts + method: POST +- name: account_group_payments + endpoint: + path: /account_groups/{account_group_id}/payments/virtual_bank_accounts + method: GET +- name: virtual_bank_account_events + endpoint: + path: /virtual_bank_accounts/events + method: POST +- name: transaction_tests + endpoint: + path: /tests/payments/transactions + method: POST +- name: Authentication + endpoint: + path: /auth/token + method: GET +- name: Fees + endpoint: + path: /fees/collections + method: GET +- name: Files + endpoint: + path: /files/* + method: GET +- name: Instruments + endpoint: + path: /instruments + method: GET +- name: Orders + endpoint: + path: /orders + method: GET +- name: Payments + endpoint: + path: /payments/topups + method: GET +- name: Portfolios + endpoint: + path: /portfolios/configurations + method: GET +- name: Positions + endpoint: + path: /accounts/{id}/positions + method: GET +- name: Price Data + endpoint: + path: /instruments/{isin}/venues/{id}/prices/ohlc + method: GET +- name: Reports + endpoint: + path: /reports + method: GET +- name: Savings Plans + endpoint: + path: /savings_plans + method: GET +- name: Tax Exemptions + endpoint: + path: /tax_exemptions + method: GET +- name: Users & Accounts + endpoint: + path: /accounts + method: GET +- name: Valuations + endpoint: + path: /accounts/{id}/valuations + method: GET +- name: Webhooks + endpoint: + path: /webhooks + method: GET +- name: Authentication + endpoint: + path: /auth/token + method: POST +- name: Fees + endpoint: + path: /fees/collections + method: GET +- name: Files + endpoint: + path: /files/* + method: GET +- name: Instruments + endpoint: + path: /instruments + method: GET +- name: Orders + endpoint: + path: /orders + method: GET +- name: Payments + endpoint: + path: /payments/topups + method: GET +- name: Portfolios + endpoint: + path: /portfolios/configurations + method: GET +- name: Positions + endpoint: + path: /accounts/{id}/positions + method: GET +- name: Price Data + endpoint: + path: /instruments/{isin}/venues/{id}/prices/ohlc + method: GET +- name: Reports + endpoint: + path: /reports + method: GET +- name: Savings Plans + endpoint: + path: /savings_plans + method: GET +- name: Tax Exemptions + endpoint: + path: /tax_exemptions + method: GET +- name: Users & Accounts + endpoint: + path: /accounts + method: GET +- name: Valuations + endpoint: + path: /accounts/{id}/valuations + method: GET +- name: Webhooks + endpoint: + path: /webhooks + method: GET +notes: +- New tax wrapper functionality introduced with ISAs and PEAs. +- Testing portfolio rebalancing is a useful way to verify the effectiveness and accuracy + of rebalancing executions. +- Version 1.75.0 introduces our tax wrapper functionality. +- It is now possible to specify the transaction fees for the BUY and SELL order sides + separately. +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '400: Bad Request: The request contains some data which format does not conform + to one that we expect.' +- '400: Missing Client ID: The upvest-client-id header is missing in the request.' +- '400: Missing Idempotency Key: The request you are trying to execute requires idempotency-key + in the header of the request.' +- '401: Unauthorised: The call can not be authorised.' +- '403: Forbidden: The request you are trying to execute requires certain authorisations + associated with the access token you pass to the call.' +- '404: Not Found: The server cannot find the requested resource.' +- '406: Not Acceptable: The server cannot generate a response that matches the list + of acceptable values defined in the request''s proactive content negotiation headers.' +- '409: Conflict: An operation is not available for the current status of the resource.' +- '422: Unprocessable Entity: An entity could not be processed due to a semantic error.' +- '429: Too Many Requests: You have sent too many requests in a given amount of time + (rate limiting).' +- '500: Internal Server Error: The call has failed due to an internal problem.' +- '502: Bad Gateway: In very rare cases, a temporary error may occur.' +- '503: Service Unavailable: The server is not ready to handle the request.' +- '504: Gateway Timeout: The server acted as a gateway or proxy and did not receive + a timely response from the upstream server.' +- '400: The request contains some data which format does not conform to one that we + expect. Check details value of the response to get additional information.' +- '400: The upvest-client-id header is missing in the request.' +- '400: The request you are trying to execute requires idempotency-key in the header + of the request.' +- '401: The call can not be authorised.' +- '403: The request you are trying to execute requires certain authorisations associated + with the access token you pass to the call.' +- '404: The server cannot find the requested resource.' +- '406: The server cannot generate a response that matches the list of acceptable + values defined in the request''s proactive content negotiation headers, also the + server is unwilling to provide a default representation.' +- '409: An operation is not available for the current status of the resource.' +- '422: An entity could not be processed due to a semantic error.' +- '429: You have sent too many requests in a given amount of time ("rate limiting").' +- '500: The call has failed due to an internal problem. Our monitoring system has + triggered an alert, and the issue is being investigated and resolved by our engineering + team.' +- '502: In very rare cases, a temporary error may occur.' +- '503: The server is not ready to handle the request.' +- '504: The server acted as a gateway or proxy and did not receive a timely response + from the upstream server.' +auth_info: + mentioned_objects: [] +client: + base_url: https://api.upvest.co + auth: + type: oauth2 +source_metadata: null diff --git a/validic_inform_api/validic-inform-api-docs.md b/validic_inform_api/validic-inform-api-docs.md new file mode 100644 index 00000000..97970cc9 --- /dev/null +++ b/validic_inform_api/validic-inform-api-docs.md @@ -0,0 +1,147 @@ +In this guide, we'll set up a complete Validic data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def validic_inform_api_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://streams.v2.validic.com/streams", + "auth": { + "type": "bearer", + "token": access_token, + } + }, + "resources": [ + "598372650b11e700018284ab", "5978dc880b11e700010ae88b" + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='validic_inform_api_pipeline', + destination='duckdb', + dataset_name='validic_inform_api_data', + ) + # Load the data + load_info = pipeline.run(validic_inform_api_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from validic_inform_api’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- **Replay Endpoints**: Allows retrieval of summaries and measurement data for specified dates using a token. +- **Stream Connection Endpoints**: Enable connection to specific streams using a unique identifier and a token for authentication. +- **Stream Retrieval Endpoints**: Provides access to lists or specific information about streams, requiring a token for validation. + +You will then debug the Validic pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Validic support. + ```shell + dlt init dlthub:validic_inform_api duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Validic API, as specified in @validic_inform_api-docs.yaml + Start with endpoints 598372650b11e700018284ab and 5978dc880b11e700010ae88b and skip incremental loading for now. + Place the code in validic_inform_api_pipeline.py and name the pipeline validic_inform_api_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python validic_inform_api_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The snippets provide links to authentication documentation for various mobile inform SDKs, specifically for Android, iOS, Cordova, Flutter, and React Native, but do not mention any specific auth information such as keys, tokens, client IDs, or other authentication details. + + To get the appropriate API keys, please visit the original source at https://validicinform.readme.io/docs/inform-rest-api. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python validic_inform_api_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline validic_inform_api load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset validic_inform_api_data + The duckdb destination used duckdb:/validic_inform_api.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline validic_inform_api_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("validic_inform_api_pipeline").dataset() + # get "598372650b11e700018284ab" table as Pandas frame + data."598372650b11e700018284ab".df().head() + ``` + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) diff --git a/validic_inform_api/validic-inform-api-docs.yaml b/validic_inform_api/validic-inform-api-docs.yaml new file mode 100644 index 00000000..b9d77ffc --- /dev/null +++ b/validic_inform_api/validic-inform-api-docs.yaml @@ -0,0 +1,145 @@ +client: + auth: The snippets provide links to authentication documentation for various mobile + inform SDKs, specifically for Android, iOS, Cordova, Flutter, and React Native, + but do not mention any specific auth information such as keys, tokens, client + IDs, or other authentication details. + most_recurring_base_url: https://streams.v2.validic.com + paginator: Pagination is required for this API, and it supports `offset` and `limit` + methods; a page size is required, which can be applied using the `?limit=number_of_results` + parameter (default is 100 and maximum is 1000), and a cursor is not mentioned. +endpoints: +- 'endpoints source: https://validicinform.readme.io/docs/inform-rest-api': + - https://api.v2.validic.com/organizations/:org_id/users/demotestuser1/measurements?start_date=2017-03-29&end_date=2017-03-29&source=jawbone&token=SAMPLETOKENbcb4928c72b4 + - https://api.v2.validic.com/organizations/:org_id/users/demotestuser1/measurements?start_date=2017-03-29&end_date=2017-03-29&source=jawbon&token=abeed1ffSAMPLETOKENbcb4928c72b4 +- 'endpoints source: https://validicinform.readme.io/reference': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/docs/inform-tldr': + - https://api.v2.validic.com/organizations/your_org_id/users/user123/measurements?start_date=2023-01-01&end_date=2023-01-07&token=your_api_token + - https://api.v2.validic.com/organizations/your_org_id/users/test_user/workouts?token=your_api_token + - /replay?resources=summary,measurement&token=:token&date=2023-01-01 + - /streams/:id/connect?token=:token + - /streams?token=:token + - https://api.v2.validic.com/organizations/:org_id/users?token=:token + - https://api.v2.validic.com/organizations/:org_id/users/:uid/:object_type?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD&token=:token +- 'endpoints source: https://validicinform.readme.io/docs/provision-and-managing-users': + - https://api.v2.validic.com/organizations/59b02bbSAMPLE00001e13e75/users?token=5cf04ad4a94dSAMPLE1653cfc28a26 +- 'endpoints source: https://validicinform.readme.io/docs/unified-marketplace': + - https://syncmydevice.com/unified?token=ae4fdfd364e42137af14b207eSAMPLEbcdefaae7b99e3e49361SAMPLE1eb0d&format=json&redirect_uri=https%3A%2F%2Fwww.google.com + - https://` + - https://syncmydevice.com/unified?token=4deee4c7c81e9b652d22c8999beaf7c972daa513c6cf6aaa6af636f8117bf929&format=json + - https://syncmydevice.com/unified?token=4deee4c7c81e9b652d22c8999beaf7c972daa513c6cf6aaa6af636f8117bf929&format=json&redirect_uri=https%3A%2F%2Fwww.google.com +- 'endpoints source: https://validicinform.readme.io/docs/custom-marketplace': + - https://syncmydevice.com/?token=4deee4c7c81e9b652d22c8999beaf7c972daa513c6cf6aaa6af636f8117bf929&format=json&redirect_uri=https%3A%2F%2Fwww.google.com + - https://` + - https://syncmydevice.com/?token=4deee4c7c81e9b652d22c8999beaf7c972daa513c6cf6aaa6af636f8117bf929&format=json + - https://syncmydevice.com/?token=ae4fdfd364e42137af14b207eSAMPLEbcdefaae7b99e3e49361SAMPLE1eb0d&format=json&redirect_uri=https%3A%2F%2Fwww.google.com +- 'endpoints source: https://validicinform.readme.io/docs/inform-streaming-api': + - /streams?token=6f46db3SAMPLEb82d91698fcd0896 + - /streams?token=:yourAPIKey + - /streams/59778dSAMPLE70001565a2d/connect?token=6f46db36dSAMPLEb82d91698fcd0896 + - /streams/:ID/connect?token=:yourAPIKey +- 'endpoints source: https://validicinform.readme.io/docs/testing': + - https://api.v2.validic.com/organizations/59bYOURORGID00001e13e75/users/vptYOURUID5sp/workouts?token=6a433824YOURTOKEN84b24ad0 + - /streams/?token=6a433824YOURTOKEN84b24ad0 +- 'endpoints source: https://validicinform.readme.io/docs/creating-a-stream': + - /streams?token=6f46db36dd6543d2b82d91698fcd0896 + - /streams +- 'endpoints source: https://validicinform.readme.io/docs/get-a-stream-1': + - /streams + - /streams/?token=6f46db36dd6543d2b82d91698fcd0896 +- 'endpoints source: https://validicinform.readme.io/docs/get-a-stream-by-id': + - /streams/5978dc880b11e700010ae88b + - /streams/5978dc880b11e700010ae88b?token=6f46db36dd6543d2b82d91698fcd0896 +- 'endpoints source: https://validicinform.readme.io/docs/update-a-stream': + - /streams/5978dc880b11e700010ae88b + - /streams/5978dc880b11e700010ae88b?token=6f46db36dd6543d2b82d91698fcd0896 +- 'endpoints source: https://validicinform.readme.io/docs/delete-a-stream': + - /streams/5978dc880b11e700010ae88b + - /streams/5978dc880b11e700010ae88b?token=6f46db36dd6543d2b82d91698fcd0896 +- 'endpoints source: https://validicinform.readme.io/docs/connect-to-a-stream': + - /streams/598372650b11e700018284ab/connect?token=6f46db36dd6543d2b82d91698fcd0896 +- 'endpoints source: https://validicinform.readme.io/docs/replay-a-stream': + - /replay?resources=summary,measurement&token=6f46db36dd6543d2b82d91698fcd0896&date=2017-07-30 +- 'endpoints source: https://validicinform.readme.io/docs/using-the-status-event-api': + - https://api.prod.validic.com/organizations/{organization\_id +- 'endpoints source: https://validicinform.readme.io/docs/native-android-mobile-inform-sdk-installation': + - https://validic.jfrog.io/artifactory/mobile-release + - https://validic.jfrog.io/artifactory/mobile-raw +- 'endpoints source: https://validicinform.readme.io/docs/native-android-mobile-inform-sdk-health-connect-installation': + - https://validic.jfrog.io/artifactory/mobile-release +- 'endpoints source: https://validicinform.readme.io/docs/cordova-inform-migration-guide': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/docs/cordova-mobile-inform-wrapper-installation': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/docs/cordova-mobile-inform-wrapper-apple-health-installation': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/docs/cordova-mobile-inform-wrapper-health-connect-installation': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/docs/cordova-mobile-inform-wrapper-bluetooth-installation': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/docs/cordova-mobile-inform-wrapper-vitalsnap-installation': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/docs/flutter-mobile-inform-wrapper-installation': + - https://validic.jfrog.io/artifactory/api/pub/mobile-pub + - https://validic.jfrog.io/artifactory/api/pub/mobile-pub/` +- 'endpoints source: https://validicinform.readme.io/docs/flutter-mobile-inform-wrapper-apple-health-installation': + - https://validic.jfrog.io/artifactory/api/pub/mobile-pub +- 'endpoints source: https://validicinform.readme.io/docs/flutter-mobile-inform-wrapper-health-connect-installation': + - https://validic.jfrog.io/artifactory/api/pub/mobile-pub +- 'endpoints source: https://validicinform.readme.io/docs/flutter-mobile-inform-wrapper-bluetooth-installation': + - https://validic.jfrog.io/artifactory/api/pub/mobile-pub +- 'endpoints source: https://validicinform.readme.io/docs/react-native-mobile-inform-migration-guide': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/docs/react-native-mobile-inform-wrapper-installation': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/docs/react-native-mobile-inform-wrapper-apple-health-installation': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/docs/react-native-mobile-inform-wrapper-health-connect-installation': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/docs/react-native-mobile-inform-wrapper-bluetooth-installation': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/docs/react-native-mobile-inform-wrapper-vitalsnap-installation': + - https://validic.jfrog.io/artifactory/api/npm/mobile-npm-release +- 'endpoints source: https://validicinform.readme.io/reference/provision-a-user': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/get-user-profile': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/update-user': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/delete-user': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/generate-new-marketplace-token': + - https://api.v2.validic.com/organizations/{org\_id + - https://api.v2.validic.com/organizations/597752338a5da500014a1f9a/users/277040620-sel/marketplace?token=6f46db36dd6543d2b82d91698fcd0896 +- 'endpoints source: https://validicinform.readme.io/reference/get-all-user-profiles': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/summaries': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/workouts': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/measurements': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/nutrition': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/sleep': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/intraday-2': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/cgm': + - https://api.v2.validic.com/organizations/{org\_id +- 'endpoints source: https://validicinform.readme.io/reference/create-a-stream': + - /streams?token={token +- 'endpoints source: https://validicinform.readme.io/reference/get-a-stream': + - /streams?token={token +- 'endpoints source: https://validicinform.readme.io/reference/get-a-stream-by-id-1': + - /streams/{id +- 'endpoints source: https://validicinform.readme.io/reference/update-a-stream-1': + - /streams/{id +- 'endpoints source: https://validicinform.readme.io/reference/delete-a-stream-1': + - /streams/{id +- 'endpoints source: https://validicinform.readme.io/v2.0/docs/connect-to-a-stream': + - /streams/598372650b11e700018284ab/connect?token=6f46db36dd6543d2b82d91698fcd0896 +- 'endpoints source: https://validicinform.readme.io/v2.0/docs/replay-a-stream': + - /replay?resources=summary,measurement&token=6f46db36dd6543d2b82d91698fcd0896&date=2017-07-30 +- 'endpoints source: https://validicinform.readme.io/reference/get-connection-events-by-orgid': + - https://api.v2.validic.com/organizations/{org\_id diff --git a/veratad/veratad-docs.md b/veratad/veratad-docs.md new file mode 100644 index 00000000..a5f9fee0 --- /dev/null +++ b/veratad/veratad-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete IDResponse data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def idresponse_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://production.idresponse.com/v1/", + "auth": { + "type": "apikey", + "token": access_token, + }, + }, + "resources": [ + testing,,bouncer,,age-match + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='idresponse_migration_pipeline', + destination='duckdb', + dataset_name='idresponse_migration_data', + ) + # Load the data + load_info = pipeline.run(idresponse_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from idresponse_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Testing: Provides various testing functionalities. +- Bouncer: Offers identity verification and fraud prevention services. +- AgeMatch: Estimates age based on provided selfies. +- Session Management: Handles the creation and management of sessions. +- Document Verification: Verifies identity documents. + +You will then debug the IDResponse pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with IDResponse support. + ```shell + dlt init dlthub:idresponse_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for IDResponse API, as specified in @idresponse_migration-docs.yaml + Start with endpoints testing and and skip incremental loading for now. + Place the code in idresponse_migration_pipeline.py and name the pipeline idresponse_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python idresponse_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The IDResponse service employs an API key for authentication, ensuring secure access to its resources. Users must provide a valid API key with each request to authenticate and authorize their access to the service's functionalities. + + To get the appropriate API keys, please visit the original source at https://www.idresponse.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python idresponse_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline idresponse_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset idresponse_migration_data + The duckdb destination used duckdb:/idresponse_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline idresponse_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("idresponse_migration_pipeline").dataset() + # get estin table as Pandas frame + data.estin.df().head() + ``` + +## Running into errors? + +It is crucial to note that transactions are not billable when a valid test_key attribute is included. The service imposes a limit of 1,000 requests per minute for the create session endpoint. Additionally, the token provided for authentication is valid for only 90 seconds, necessitating frequent renewal. Users should be aware that live data access requires omitting the test_key attribute. The service may involve asynchronous processes, requiring multiple requests for completion. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/veratad/veratad-docs.yaml b/veratad/veratad-docs.yaml new file mode 100644 index 00000000..4d91ad0c --- /dev/null +++ b/veratad/veratad-docs.yaml @@ -0,0 +1,955 @@ +resources: +- name: AgeMatch + endpoint: + path: /age_match + method: POST + data_selector: response + params: + user: USERNAME + pass: PASSWORD + service: AgeMatch5.0 + reference: 12345 {A UNIQUE ID} + rules: AgeMatch5_0_RuleSet_YOB_SSN +- name: AgeMatch + endpoint: + path: /agematch + method: GET +- name: IDMatch + endpoint: + path: /identity-verification/idmatch + method: GET +- name: DCAMS + endpoint: + path: /id-document-verification + method: GET +- name: PhoneMatch + endpoint: + path: /phone-verification-and-validation + method: GET +- name: EmailMatch + endpoint: + path: /email-verification-and-validation + method: GET +- name: Testing + endpoint: + path: /testing + method: GET +- name: AgeMatch + endpoint: + path: /age-match + method: POST + data_selector: target + params: {} +- name: create_session + endpoint: + path: /api/session/create_session + method: POST + data_selector: message + params: {} +- name: create_session + endpoint: + path: /api/session/create_session + method: POST + data_selector: message + params: {} +- name: session_result + endpoint: + path: /api/session/result/:request_id + method: GET + data_selector: response +- name: webhook + endpoint: + path: /vx/api-methods/webhook + method: POST +- name: session_result + endpoint: + path: /api/session/result/:request_id + method: GET + data_selector: '' +- name: AgeMatch5.0 + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: AgeMatch5.0.DMV + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: AgeMatch5.0 + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: AgeMatch + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: AgeMatch5.0.DMV + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: AgeMatch International + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: initial_query + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: submit_answers + endpoint: + path: /process/continue + method: POST + data_selector: result + params: {} +- name: age_estimate + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: age_verification + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: submit_answers + endpoint: + path: /process/continue + method: POST + data_selector: result + params: {} +- name: IDMatch5.0 + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: age_estimation + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: output + params: + user: username + pass: password + service: AgeMatch5.0.Estimate +- name: IDMatch5.0 + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: IDMatch5.0.Escalate + endpoint: + path: /process/escalate/gateway + method: POST + data_selector: result + params: {} +- name: Continue + endpoint: + path: /process/continue + method: POST + data_selector: result + params: {} +- name: IDMatchCOMPLY5.1 + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: IDMatch5.0.Escalate + endpoint: + path: /process/escalate/gateway + method: POST + data_selector: result + params: {} +- name: Submit Answers + endpoint: + path: /process/continue + method: POST + data_selector: result + params: {} +- name: IDMatchCOPPA5.0 + endpoint: + path: /process/5/gateway + method: POST + data_selector: result + params: {} +- name: IDMatchCOMPLY5.1 + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: IDMatchCOPPA + endpoint: + path: /process/5/gateway + method: POST + data_selector: result + params: {} +- name: IDMatch5.0.{CountryName} + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: IDMatch5.0.{CountryName} + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: IDMatchPLUS5.0.MULTI + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: Submit Answers + endpoint: + path: /process/continue + method: POST + data_selector: final + params: {} +- name: fraud_score + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: phone_verification + endpoint: + path: /phone-verification-and-validation/verification-and-validation/phone-verification + method: GET +- name: phone_validation + endpoint: + path: /phone-verification-and-validation/verification-and-validation/phone-validation + method: GET +- name: IDMatchPLUS5.0.MULTI + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: Quiz Submission + endpoint: + path: /process/continue + method: POST + data_selector: result + params: {} +- name: Fraud Score + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: phone_verification + endpoint: + path: /phone-verification-and-validation/verification-and-validation/phone-verification + method: GET +- name: phone_validation + endpoint: + path: /phone-verification-and-validation/verification-and-validation/phone-validation + method: GET +- name: initial_request + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: secondary_request + endpoint: + path: /process/continue + method: POST + data_selector: result + params: {} +- name: initial_request + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: output + params: {} +- name: secondary_request + endpoint: + path: /process/continue + method: POST + data_selector: output + params: {} +- name: PhoneMatch5.0 + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: PhoneMatch5.0.Validate + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: PhoneMatch5.0 + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: sms_otp + endpoint: + path: /phone-verification-and-validation/one-time-passwords/sms-otp + method: POST +- name: call_otp + endpoint: + path: /phone-verification-and-validation/one-time-passwords/call-otp + method: POST +- name: PhoneMatch5.0.Validate + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: output.data + params: {} +- name: PhoneMatch5.0.SMS Initial Request + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: output + params: {} +- name: PhoneMatch5.0.SMS OTP Validation Request + endpoint: + path: /process/continue + method: POST + data_selector: final + params: {} +- name: SMS + endpoint: + path: /phone-verification-and-validation/one-time-passwords/sms-otp + method: POST +- name: Call + endpoint: + path: /phone-verification-and-validation/one-time-passwords/call-otp + method: POST +- name: phonematch_call + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: output + params: {} +- name: phonematch_otp_validation + endpoint: + path: /process/continue + method: POST + data_selector: final + params: {} +- name: PhoneMatch5.0.SMS + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: OTP Validation + endpoint: + path: /process/continue + method: POST + data_selector: result + params: {} +- name: dialer + endpoint: + path: /phone-verification-and-validation/message-delivery/dialer + method: GET +- name: PhoneMatch5.0.Call + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: OTP Validation + endpoint: + path: /process/continue + method: POST + data_selector: result + params: {} +- name: Dialer + endpoint: + path: /phone-verification-and-validation/message-delivery/dialer + method: GET +- name: PhoneMatch5.0.Dialer + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: PhoneMatch5.0.Dialer Status + endpoint: + path: /process/continue + method: POST + data_selector: result + params: {} +- name: PhoneMatch5.0.Dialer + endpoint: + path: /process/comprehensive/gateway + method: POST +- name: PhoneMatch5.0.Dialer Status + endpoint: + path: /process/continue + method: POST +- name: emailmatch + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: emailmatch + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: dcams + endpoint: + path: /id-document-verification/overview + method: GET + data_selector: records +- name: dcamsplus + endpoint: + path: /id-document-verification/overview/dcamsplus + method: GET + data_selector: records +- name: dcamsplus_enhanced + endpoint: + path: /id-document-verification/overview/dcamsplus/enhanced + method: GET + data_selector: records +- name: dcams_manual + endpoint: + path: /id-document-verification/overview/id-document-manual-review + method: GET + data_selector: records +- name: dcams + endpoint: + path: /id-document-verification/overview + method: GET + data_selector: records +- name: dcamsplus + endpoint: + path: /id-document-verification/overview/dcamsplus + method: GET + data_selector: records +- name: dcamsplus_enhanced + endpoint: + path: /id-document-verification/overview/dcamsplus/enhanced + method: GET + data_selector: records +- name: dcams_manual + endpoint: + path: /id-document-verification/overview/id-document-manual-review + method: GET + data_selector: records +- name: dcamsplus + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: output.documents + params: {} +- name: DCAMSPLUS5.0.Enhanced + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: dcamsplus + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: output.documents + params: {} +- name: manual_review + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: output + params: {} +- name: manual_review_polling + endpoint: + path: /process/continue + method: POST + data_selector: output + params: {} +- name: dcams_plus_5.0_enhanced + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: output + params: {} +- name: create_or_update_customer + endpoint: + path: /id-document-verification/overview/id-document-storage/create-or-update-customer + method: POST +- name: get_customer_status + endpoint: + path: /id-document-verification/overview/id-document-storage/getcustomerstatus + method: GET +- name: get_customer_document_images + endpoint: + path: /id-document-verification/overview/id-document-storage/get-customer-document-images + method: GET +- name: update_customer_status + endpoint: + path: /id-document-verification/overview/id-document-storage/update-customer-status + method: PUT +- name: manual_review + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: output + params: {} +- name: manual_review_polling + endpoint: + path: /process/continue + method: POST + data_selector: output + params: {} +- name: dcams + endpoint: + path: /id-document-verification/overview + method: POST + data_selector: document_data +- name: create_or_update_customer + endpoint: + path: /id-document-verification/overview/id-document-storage/create-or-update-customer + method: POST +- name: get_customer_status + endpoint: + path: /id-document-verification/overview/id-document-storage/getcustomerstatus + method: GET +- name: get_customer_document_images + endpoint: + path: /id-document-verification/overview/id-document-storage/get-customer-document-images + method: GET +- name: update_customer_status + endpoint: + path: /id-document-verification/overview/id-document-storage/update-customer-status + method: PUT +- name: dcams + endpoint: + path: /id-document-verification + method: GET + data_selector: records + params: {} +- name: dcams + endpoint: + path: /id-document-verification + method: POST + data_selector: records +- name: bouncer + endpoint: + path: /IDMatch5.0.Bouncer + method: POST + data_selector: result + params: {} +- name: vpin + endpoint: + path: /vx/api-methods/vpin + method: POST + data_selector: output.vpin +- name: Bouncer + endpoint: + path: /bouncer + method: POST + data_selector: result + params: {} +- name: VPINMatch5.0 + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: vpin + endpoint: + path: /IDMatch5.0.VPIN + method: POST + data_selector: output.vpin + params: {} +- name: webhook_subscriptions + endpoint: + path: /v1/vpin/webhooks/subscriptions + method: POST + data_selector: id + params: {} +- name: resolve_vpin + endpoint: + path: /v1/vpin/resolve/{vpin} + method: GET + data_selector: canonical_vpin + params: {} +- name: VPINMatch5.0 + endpoint: + path: /process/comprehensive/gateway + method: POST + data_selector: result + params: {} +- name: webhook_registration + endpoint: + path: /v1/vpin/webhooks/subscriptions + method: POST + data_selector: id + params: + url: https://api.yourcompany.com/veratad/webhooks + event_types: + - vpin.merged + - vpin.retired + secret: (one-time-generated secret) + enabled: true +- name: resolution + endpoint: + path: /v1/vpin/resolve/{vpin} + method: GET + data_selector: canonical_vpin +- name: vpin_merged + endpoint: + path: /v1/vpin/webhooks + method: POST + data_selector: data + params: {} +- name: vpin_split + endpoint: + path: /v1/vpin/webhooks + method: POST + data_selector: data + params: {} +- name: vpin_retired + endpoint: + path: /v1/vpin/webhooks + method: POST + data_selector: data + params: {} +- name: test_event + endpoint: + path: /v1/vpin/webhooks/subscriptions/{id}:test + method: POST + data_selector: null + params: {} +- name: replay_event + endpoint: + path: /v1/vpin/webhooks/events/{event_id}:replay + method: POST + data_selector: null + params: {} +- name: countries_covered + endpoint: + path: /coverage/international + method: GET + data_selector: countries + params: {} +- name: test_event + endpoint: + path: /v1/vpin/webhooks/subscriptions/{id}:test + method: POST + data_selector: '' + params: {} +- name: replay_event + endpoint: + path: /v1/vpin/webhooks/events/{event_id}:replay + method: POST + data_selector: '' + params: {} +- name: audit_trail + endpoint: + path: /api/audit + method: POST + data_selector: data + params: + user: yourUsername + pass: yourPassword + day: YYYY-MM-DD +- name: audit_trail + endpoint: + path: /api/audit + method: POST + data_selector: data + params: + user: yourUsername + pass: yourPassword + day: YYYY-MM-DD +- name: providers + endpoint: + path: /vx/api-methods + method: GET + data_selector: providers + params: {} +- name: providers + endpoint: + path: /vx/api-methods/providers + method: GET + data_selector: providers +notes: +- Whenever the test_key attribute is sent with a valid value then those transactions + are not billable. +- Testing transactions are not billable when the test_key attribute is sent with a + valid value. +- You are limited to 1,000 requests per minute to the create session endpoint. +- VX will fire a webhook to your defined endpoint after each components execution + through the journey. +- VX uses device fingerprinting to link sessions back to the same device. +- The iFrame will post messages to the parent window based on specific events that + occur during the verification process. +- VX uses device fingerprinting to link sessions back to the same device, even when + a person rotates emails, phone numbers, or other personally identifiable information. +- Use the test_key attribute to test the service. +- Make sure to set the allow properly in case one of your verification components + needs access +- Service testing is done with the live data source. Veratad will provide you with + an amount of free transactions for testing purposes. +- To access live data do not send the test_key attribute. +- Service name must include the country name as per the coverage section. +- Test key can be used for testing purposes. +- Requires a valid Veratad username and password for authentication. +- Initial call to /process/comprehensive/gateway returns a quiz. +- Second call to /process/continue submits answers for scoring. +- The AgeMatch 5.0 Estimate API provides an estimate of the age based on a provided + selfie. +- The token is only valid for 90 seconds by default. +- Use the test_key attribute to test the service. When the test_key is provided the + system will dynamically drop the live data sources and use the testing database. +- Uses API key for authentication +- Responses may vary based on identity attributes provided +- IDR Calc is Veratad's patented process that allows the user to sum up at least two + digits from their SSN to prove they know the variable without collecting sensitive + PII. +- A PASS will still occur if the only issue is ADDRESS DISCREPANCY. +- The service name must match the value in the international coverage section. +- The service name should match the value in the international coverage section. +- The test_key allows dynamic testing without using live data. +- IDMatchPredict5.0.FraudScore assesses the overall risk of an applicant for a new + account. +- Each token is only valid for 90 seconds with this service. +- IDMatchPredict5.0.FraudScore will process with the default base ruleset unless a + different rule set is specified in the query. +- When the test_key is provided the system will dynamically drop the live data sources + and use the testing database. +- This service is asynchronous and requires two requests for completion. +- This service is asynchronous and may involve multiple requests. +- The service requires a first name, last name, and phone number on input to process. +- This service will continue to search sources until that goal can either be confirmed + or denied. +- The service only requires a first name, last name, and phone number on input to + process. +- The number should be a string with the country code followed by the number. +- If you send the number with any characters that is fine. They will be stripped out. +- This service is asynchronous +- The total payload may not exceed 10 MB in size. +- The minimum image size is 400 pixels on each side of the document. +- The total payload of the initial request cannot be greater than 10mb in size. +- The majority of manual reviews will take 90 seconds to complete, but this is not + guaranteed. +- The total payload of the initial request can not be greater than 10mb in size. +- Tokens are only valid for 6 hours. +- It is recommended that you get a new token on each iFrame build. +- Requires a valid set of credentials stored in Veratad.plist +- Veratad SDK for Android requires a valid set of credentials. +- Tokens are only valid for 6 hours. It is recommended that you get a new token on + each iFrame build. +- Bouncer offers a powerful, machine learning-driven approach to storing, analyzing, + and applying rules to transaction data. +- Requires a valid set of credentials from Veratad +- Additional plist file named Veratad.plist is needed +- All rules are customizable, please discuss with your Veratad professional services + team member. +- Businesses can share V-PINs with partners or vendors to discuss customer preferences, + behavior, or issues without exposing sensitive data. +- With a unique V-PIN, businesses can track customer interactions across platforms, + enabling more accurate and personalized marketing strategies. +- The V-PIN is solely used for tracking and identification purposes, and it is not + an endorsement or confirmation of the user's validity or identity. +- Bouncer excels when added to existing verification services. +- Use the test_key attribute to test the service. When the test_key is provided the + system will use the dummy data provider and return a VPIN value. +- V-PIN is solely used for tracking and identification purposes, not an endorsement + or confirmation of the user's validity or identity. +- 'Early Access: This is an early version for select partners. Interfaces and payloads + may change.' +- 'Retries: Up to five attempts with exponential backoff (1m, 5m, 15m, 60m, 120m).' +- 'Idempotency: Use X-Veratad-Event-Id to dedupe.' +- 'Ordering: Best-effort in-order per subscription; do not rely on strict global ordering.' +- 'Idempotency: Use `X-Veratad-Event-Id` to dedupe.' +- Requires setup of connected app in api +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Veratad does not store any sensitive PII information from your request. +- Provides identity verification services using CLEAR systems. +- Specializes in securely connecting financial accounts for identity verification. +errors: +- '400 Bad Request: Please check your JSON and try again' +- '401 Unauthorized: Missing a required input' +- '403 Forbidden: Invalid API Key or missing token' +- '429 Too Many Requests: You have exceeded the amount of requests' +- '500 Internal Server Error: {{The reason for error if known}}' +- 'IN PROGRESS: Session result not found, but user started the process.' +- 'NOT FOUND: Session result not found, user did not start the process or your request_id + is invalid.' +- 'INTERNAL SERVER ERROR: An unexpected error occurred while processing your request.' +- '404: Session result not found, user did not start the process or your request_id + is invalid.' +- '500: An unexpected error occurred while processing your request.' +- 'FAIL: NO MATCH: No matching identity found in the data sources' +- 'FAIL: AGE NOT VERIFIED: Target found, but no DOB information available' +- 'FAIL: TARGET IS DECEASED: Target found as a deceased identity' +- 'FAIL: AGE NOT SUBMITTED: No age to check was provided in the query' +- 'FAIL: POSSIBLE MINOR: Target found, but a minor age detected' +- 'PASS: ALL CHECKS PASSED: Target was found is not deceased and meets the age requirement' +- 'FAIL: NO MATCH' +- 'REVIEW: TRANSACTION REQUIRES FURTHER ATTENTION' +- 'PASS: ALL CHECKS PASSED' +- 'FAIL - NO MATCH: No matching identity found in the data sources' +- 'FAIL - AGE NOT VERIFIED: Target found, but no DOB information available or the + DOB did not match' +- 'FAIL - POSSIBLE MINOR: Input DOB is under the age to check' +- 'FAIL - SERVICE CANNOT BE COMPLETED: The underlying data sources are having a processing + issue. Resubmit this query at a later time' +- 'PASS - ALL CHECKS PASSED: Target was found and meets the age requirement' +- 'FAIL: AGE NOT VERIFIED: Target found, but no DOB information available or the DOB + did not match' +- 'FAIL: POSSIBLE MINOR: Input DOB is under the age to check' +- 'FAIL: SERVICE CANNOT BE COMPLETED: The underlying data sources are having a processing + issue.' +- 200 Transaction processed and result returned +- 'FAIL: NO MATCH - No matching identity found in the data sources' +- 'FAIL: AGE NOT VERIFIED - Target found, but no DOB information available' +- 'FAIL: TARGET IS DECEASED - Target found as a deceased identity' +- 'FAIL: POSSIBLE MINOR - Target found, but a minor age detected' +- 'FAIL: QUESTION CHECK FAILED - The user did not answer at least 3/4 questions correctly.' +- 'FAIL: QUIZ NOT GENERABLE - The target did not have enough data to generate a quiz.' +- 'PENDING: MORE INFORMATION IS REQUIRED - Target was found is not deceased and meets + the age requirement, but they have not yet answered the quiz.' +- 'PASS: ALL CHECKS PASSED - Target was found is not deceased, passed the verification + quiz and meets the age requirement' +- '401 Unauthorized: Verify username and password.' +- '400 Bad Request: Check required fields in the request.' +- 'EXPIRED_TOKEN: Token is only valid for 300 seconds.' +- 'NO_MATCH: No matching identity found.' +- 'AGE_NOT_VERIFIED: No DOB information available.' +- 'FAIL: TARGET IS DECEASED' +- 'REVIEW: TRANSACTION REQUIRES FURTHER ATTENTION - Target found and not deceased, + but at least one identity attribute provided does not match.' +- 'PENDING: MORE INFORMATION IS REQUIRED' +- 'FAIL: MINOR SUBMITTED' +- 'NO MATCH: No matching identity found in the data sources' +- 'TARGET IS DECEASED: Target found as a deceased identity' +- 'TRANSACTION REQUIRES FURTHER ATTENTION: At least one identity attribute provided + does not match.' +- 'FAIL: MINOR SUBMITTED: The target''s submitted DOB is under 18' +- 'REVIEW: TRANSACTION REQUIRES FURTHER ATTENTION: The service was completed and a + match was found, but not all of the identity attributes matched.' +- 'PASS: ALL CHECKS PASSED: The service was complete, the target was found and all + identity attributes provided matched.' +- 'FAIL: SERVICE CANNOT BE COMPLETED: The underlying data sources are having a processing + issue' +- 'REVIEW: TRANSACTION REQUIRES FURTHER ATTENTION: The service was completed but not + all identity attributes matched' +- 'TOKEN_EXPIRED: Each token is only valid for 90 seconds.' +- 'REVIEW: TRANSACTION REQUIRES FURTHER ATTENTION: Target found and not deceased, + but at least one identity attribute provided does not match.' +- 'PENDING: MORE INFORMATION IS REQUIRED: Target was found is not deceased and meets + the age requirement, but they have not yet answered the quiz.' +- 'FAIL: RISKY CUSTOMER' +- 'FAIL: FAILED OUT-OF-BAND CHECK: The OTP entered did not match what was sent to + the user' +- 'FAIL: PHONE CHECK FAILED' +- 'FAIL: PHONE TYPE CHECK FAILED' +- 'REVIEW: TRANSACTION REQUIRES FURTHER ATTENTION: At least one identity attribute + provided does not match.' +- 'FAIL: PHONE CHECK FAILED - The phone number is not valid' +- 'FAIL: PHONE TYPE CHECK FAILED - The phone number type is in the exclusion list' +- 'PASS: ALL CHECKS PASSED - The phone number is valid and the type is not excluded' +- 'FAIL: SUPPRESSED SENDING CODE' +- 'FAIL: FAILED TO SEND TO NUMBER' +- 'FAIL: DATA CHECK FAILED' +- 'PENDING: TRANSACTION REQUIRES FURTHER ATTENTION' +- 'FAIL: SUPPRESSED SENDING CODE: The phone line type was detected as one of the line + types passed in the options object in the `do_not_send_to_types` array' +- 'FAIL: FAILED TO SEND TO NUMBER: An issue occurred during password delivery and + it never reached the user' +- 'FAIL: DATA CHECK FAILED: The phone number is invalid and the code could not be + sent' +- 'PENDING: TRANSACTION REQUIRES FURTHER ATTENTION: The line type is not in the `do_not_send_to_types` + array, the number is valid and the message was sent to the user' +- 'FAIL: MESSAGE COULD NOT BE DELIVERED' +- 'EMAIL DELIVERY CHECK FAILED: The email address is not deliverable' +- 'EMAIL RISK CHECK FAILED: The email address risk is high' +- 'TRANSACTION REQUIRES FURTHER ATTENTION: The email has one of the below issues' +- 'FAIL: NOT A VALID DOCUMENT' +- 'FAIL: DOCUMENT NOT VERIFIED' +- 'FAIL: DOCUMENT IS EXPIRED' +- 'FAIL: DOCUMENT AGE CHECK FAILED' +- 'FAIL: SERVICE CANNOT BE COMPLETED' +- 'FAIL: SELFIE MATCH FAILED' +- 'ERROR: The manual review resulted in error' +- 'FAIL: SERVICE CANNOT BE COMPLETED: There was an issue with the submitted document + and it cannot go through the manual review process.' +- 'Bad or Expired Token: This document scan instance is using a bad or expired token. + Please contact customer service.' +- 'You Are Already Verified: You have already passed this process and are not able + to upload a new document at this time. Please call Customer Service.' +- 'Your Document is Currently Pending Manual Review: Your document is currently pending + manual review and you may not provide another document at this time. Please call + Customer Service.' +- 'Too Many Attempts: You have exceeded the amount of verification attempts. Please + call Customer Service.' +- 'FAIL: TARGET ALREADY VERIFIED' +- 'FAIL: TARGET ATTEMPTS EXCEED THE LIMIT' +- 'FAIL: TOO MANY QUIZZES' +- 'FAIL: QUIZ CANNOT BE GENERATED' +- 'VPIN_NOT_FOUND: Check if the V-PIN exists.' +- '409: V-PIN was split.' +- 'VPIN_NOT_FOUND: The provided V-PIN was not found.' +- Non-2xx status codes will be treated as a failure and retried. +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: Invalid username or password.' +- '404 Not Found: Data for the requested day is not yet available.' +- '404 Not Found: Data for the specified day is not available.' +- '400 Bad Request: Date should be in YYYY-MM-DD format.' +- '500 Internal Server Error: An internal server error occurred.' +- '400: Bad Request' +- 'No Query: No payload provided in the body of the request.' +- 'Query Not Parsable: Input JSON not valid.' +- 'Bad Login: Invalid username or password.' +- 'No Target: No target object provided in the body of the request.' +- 'Missing Required Input: One or more of the required input attributes are missing + or empty.' +- 'Input Failed Validation: One or more of the input fields are not being sent as + described.' +- 'Token Bad or Expired: The token you are sending for quiz scoring is either invalid + or has expired.' +- '403: Forbidden' +- 'User Not Active: The API user is not an active account.' +- '404: Not Found' +- 'No Such Service: Invalid or empty service name provided.' +- 'IN0: No Query' +- 'IN1: Query Not Parsable' +- 'AUTH0: Bad Login' +- 'QRY0: No Target' +- 'QRY1: Missing Required Input' +- 'QRY2: Input Failed Validation' +- 'QRY6: Token Bad or Expired' +- 'AUTH3: User Not Active' +- 'AUTH1: No Such Service' +auth_info: + mentioned_objects: [] +client: + base_url: https://production.idresponse.com + auth: + type: apikey +source_metadata: null diff --git a/vibe_d/vibe-d-docs.md b/vibe_d/vibe-d-docs.md new file mode 100644 index 00000000..02bdcfd4 --- /dev/null +++ b/vibe_d/vibe-d-docs.md @@ -0,0 +1,152 @@ +In this guide, we'll set up a complete Vibe.d data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def vibe_d_migrations_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://vibed.org/v", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + tr,,log,,api/foo + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='vibe_d_migrations_pipeline', + destination='duckdb', + dataset_name='vibe_d_migrations_data', + ) + # Load the data + load_info = pipeline.run(vibe_d_migrations_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from vibe_d_migrations’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- General: Basic endpoint for general access. +- Logging: Endpoints related to logging activities. +- API: Endpoints for various API interactions like read, write, and execute. +- Filtering: Endpoints for filtering data and receiving specific results. + +You will then debug the Vibe.d pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Vibe.d support. + ```shell + dlt init dlthub:vibe_d_migrations duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Vibe.d API, as specified in @vibe_d_migrations-docs.yaml + Start with endpoints tr and and skip incremental loading for now. + Place the code in vibe_d_migrations_pipeline.py and name the pipeline vibe_d_migrations_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python vibe_d_migrations_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + The authentication mechanism provided is API key based. It utilizes an API key that must be included in the request headers to authorize API calls. + + To get the appropriate API keys, please visit the original source at https://www.vibed.org/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python vibe_d_migrations_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline vibe_d_migrations load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset vibe_d_migrations_data + The duckdb destination used duckdb:/vibe_d_migrations.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline vibe_d_migrations_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("vibe_d_migrations_pipeline").dataset() + # get table as Pandas frame + data..df().head() + ``` + +## Running into errors? + +The API is still subject to change, and some endpoints may throw exceptions if conditions are not met. Additionally, it utilizes a class-based declarative approach which might have a learning curve. Proper handling of exceptions is essential to prevent internal server errors and unauthorized access responses. It may also be necessary to monitor network traffic due to incomplete documentation. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/vibe_d/vibe-d-docs.yaml b/vibe_d/vibe-d-docs.yaml new file mode 100644 index 00000000..933159ba --- /dev/null +++ b/vibe_d/vibe-d-docs.yaml @@ -0,0 +1,1766 @@ +resources: +- name: http_server + endpoint: + path: / + method: GET + data_selector: response + params: {} +- name: TaskPipe + endpoint: + path: /api/vibe.stream.taskpipe/TaskPipe + method: GET +- name: Document + endpoint: + path: /vibe.d/Document + method: GET + data_selector: classes +- name: Node + endpoint: + path: /vibe.d/Node + method: GET + data_selector: classes +- name: Attribute + endpoint: + path: /vibe.d/Attribute + method: GET + data_selector: structs +- name: AttributeContent + endpoint: + path: /vibe.d/AttributeContent + method: GET + data_selector: structs +- name: Location + endpoint: + path: /vibe.d/Location + method: GET + data_selector: structs +- name: NodeContent + endpoint: + path: /vibe.d/NodeContent + method: GET + data_selector: structs +- name: NodeAttribs + endpoint: + path: /vibe.d/NodeAttribs + method: GET + data_selector: enums +- name: getHTMLLiveMixin + endpoint: + path: /getHTMLLiveMixin + method: GET + data_selector: description + params: {} +- name: getHTMLMixin + endpoint: + path: /getHTMLMixin + method: GET + data_selector: description + params: {} +- name: getHTMLRawTextOnly + endpoint: + path: /getHTMLRawTextOnly + method: GET + data_selector: description + params: {} +- name: HTMLOutputStyle + endpoint: + path: /HTMLOutputStyle + method: GET + data_selector: description + params: {} +- name: compileHTMLDietFileString + endpoint: + path: /compileHTMLDietFileString + method: GET + data_selector: description + params: {} +- name: compileHTMLDietString + endpoint: + path: /compileHTMLDietString + method: GET + data_selector: description + params: {} +- name: compileHTMLDietStrings + endpoint: + path: /compileHTMLDietStrings + method: GET + data_selector: description + params: {} +- name: applyTraits + endpoint: + path: /applyTraits + method: GET + data_selector: traits + params: {} +- name: dietTraits + endpoint: + path: /dietTraits + method: GET + data_selector: traits + params: {} +- name: filter + endpoint: + path: /filter + method: GET + data_selector: traits + params: {} +- name: translate + endpoint: + path: /translate + method: GET + data_selector: traits + params: {} +- name: functions + endpoint: + path: /functions + method: GET + data_selector: functions + params: {} +- name: structs + endpoint: + path: /structs + method: GET + data_selector: structs + params: {} +- name: command_line_options + endpoint: + path: /api/vibe.core.args/ + method: GET + data_selector: options + params: {} +- name: configuration_file + endpoint: + path: /api/vibe.core.args/vibe.conf + method: GET + data_selector: config + params: {} +- name: loggers + endpoint: + path: /core/loggers + method: GET + data_selector: loggers +- name: logLevel + endpoint: + path: /core/logLevel + method: GET + data_selector: logLevel +- name: log + endpoint: + path: /core/log + method: POST + data_selector: log +- name: PathValidationException + endpoint: + path: /path/PathValidationException + method: GET + data_selector: description +- name: GenericPath + endpoint: + path: /path/GenericPath + method: GET + data_selector: description +- name: InetPathFormat + endpoint: + path: /path/InetPathFormat + method: GET + data_selector: description +- name: PosixPathFormat + endpoint: + path: /path/PosixPathFormat + method: GET + data_selector: description +- name: WindowsPathFormat + endpoint: + path: /path/WindowsPathFormat + method: GET + data_selector: description +- name: execute + endpoint: + path: execute + method: GET + data_selector: functions + params: {} +- name: pipe + endpoint: + path: pipe + method: GET + data_selector: functions + params: {} +- name: spawnProcess + endpoint: + path: spawnProcess + method: GET + data_selector: functions + params: {} +- name: secureRNG + endpoint: + path: /vibe.crypto.cryptorand/secureRNG + method: GET + data_selector: secureRNG +- name: Bson + endpoint: + path: /vibe/data/bson + method: GET + data_selector: bson_objects +- name: MongoClientSettings + endpoint: + path: /api/vibe.db.mongo.settings + method: GET + data_selector: settings + params: {} +- name: MongoHost + endpoint: + path: /api/vibe.db.mongo.settings + method: GET + data_selector: hosts + params: {} +- name: MongoAuthMechanism + endpoint: + path: /api/vibe.db.mongo.settings + method: GET + data_selector: authMechanisms + params: {} +- name: HTTPConsoleLogger + endpoint: + path: /vibe/http/log/HTTPConsoleLogger + method: GET +- name: HTTPFileLogger + endpoint: + path: /vibe/http/log/HTTPFileLogger + method: GET +- name: HTTPLogger + endpoint: + path: /vibe/http/log/HTTPLogger + method: GET +- name: forwardProxyRequest + endpoint: + path: /forwardProxyRequest + method: GET +- name: listenHTTPForwardProxy + endpoint: + path: /listenHTTPForwardProxy + method: GET +- name: listenHTTPProxy + endpoint: + path: /listenHTTPProxy + method: GET +- name: listenHTTPReverseProxy + endpoint: + path: /listenHTTPReverseProxy + method: GET +- name: proxyRequest + endpoint: + path: /proxyRequest + method: GET +- name: reverseProxyRequest + endpoint: + path: /reverseProxyRequest + method: GET +- name: URLRouter + endpoint: + path: /api/vibe.http.router/URLRouter + method: GET + data_selector: routes + params: {} +- name: SessionStore + endpoint: + path: /vibe/http/session + method: GET + data_selector: records + params: {} +- name: http_status_codes + endpoint: + path: /api/vibe.http.status/ + method: GET +- name: getMimeTypeForFile + endpoint: + path: /getMimeTypeForFile + method: GET + data_selector: mime_type + params: {} +- name: isCompressedFormat + endpoint: + path: /isCompressedFormat + method: GET + data_selector: is_compressed + params: {} +- name: URL + endpoint: + path: /api/vibe.inet.url/ + method: GET + data_selector: functions + params: {} +- name: sendMail + endpoint: + path: /sendMail + method: POST + data_selector: settings, mail + params: {} +- name: Base64OutputStream + endpoint: + path: /vibe.stream.base64/Base64OutputStream + method: GET + data_selector: Base64OutputStreamImpl + params: {} +- name: Base64URLOutputStream + endpoint: + path: /vibe.stream.base64/Base64URLOutputStream + method: GET + data_selector: Base64OutputStreamImpl + params: {} +- name: bufferedStream + endpoint: + path: /api/vibe.stream.bufferedstream/ + method: GET + data_selector: functions + params: {} +- name: CachedFileStream + endpoint: + path: /api/vibe.stream.cached/ + method: GET + data_selector: CachedStream + params: {} +- name: MemoryOutputStream + endpoint: + path: /api/vibe.stream.memory/MemoryOutputStream + method: GET + data_selector: functions + params: {} +- name: MemoryStream + endpoint: + path: /api/vibe.stream.memory/MemoryStream + method: GET + data_selector: functions + params: {} +- name: OpenSSLContext + endpoint: + path: /vibe.stream.openssl/OpenSSLContext + method: GET + data_selector: description +- name: OpenSSLStream + endpoint: + path: /vibe.stream.openssl/OpenSSLStream + method: GET + data_selector: description +- name: StderrStream + endpoint: {} +- name: StdFileStream + endpoint: {} +- name: StdinStream + endpoint: {} +- name: StdoutStream + endpoint: {} +- name: ConnectionProxyStream + endpoint: + path: /vibe/stream/wrapper/ConnectionProxyStream + method: GET + data_selector: records +- name: ProxyStream + endpoint: + path: /vibe/stream/wrapper/ProxyStream + method: GET + data_selector: records +- name: ZlibInputStream + endpoint: + path: /createDeflateInputStream + method: GET + data_selector: stream + params: {} +- name: ZlibOutputStream + endpoint: + path: /createDeflateOutputStream + method: GET + data_selector: stream + params: {} +- name: filterHTMLAllEscape + endpoint: + path: /filterHTMLAllEscape + method: GET + data_selector: function + params: {} +- name: filterHTMLAttribEscape + endpoint: + path: /filterHTMLAttribEscape + method: GET + data_selector: function + params: {} +- name: filterHTMLEscape + endpoint: + path: /filterHTMLEscape + method: GET + data_selector: function + params: {} +- name: htmlAllEscape + endpoint: + path: /htmlAllEscape + method: GET + data_selector: function + params: {} +- name: htmlAttribEscape + endpoint: + path: /htmlAttribEscape + method: GET + data_selector: function + params: {} +- name: htmlEscape + endpoint: + path: /htmlEscape + method: GET + data_selector: function + params: {} +- name: htmlEscapeMin + endpoint: + path: /htmlEscapeMin + method: GET + data_selector: function + params: {} +- name: markdown + endpoint: + path: /api/vibe.textfilter.markdown/ + method: GET +- name: validateEmail + endpoint: + path: /validateEmail + method: GET + data_selector: response + params: {} +- name: validateIdent + endpoint: + path: /validateIdent + method: GET + data_selector: response + params: {} +- name: validatePassword + endpoint: + path: /validatePassword + method: GET + data_selector: response + params: {} +- name: validateString + endpoint: + path: /validateString + method: GET + data_selector: response + params: {} +- name: validateUserName + endpoint: + path: /validateUserName + method: GET + data_selector: response + params: {} +- name: ChatWebService + endpoint: + path: /ChatWebService + method: GET + data_selector: AuthInfo + params: {} +- name: determineLanguageByHeader + endpoint: + path: /determineLanguageByHeader + method: GET + data_selector: results +- name: extractDeclStrings + endpoint: + path: /extractDeclStrings + method: GET + data_selector: results +- name: tr + endpoint: + path: /tr + method: GET + data_selector: results +- name: translationContext + endpoint: + path: /translationContext + method: GET + data_selector: results +- name: APIRoot + endpoint: + path: /api/ + method: GET + data_selector: response + params: {} +- name: getHeader + endpoint: + path: /api/header + method: GET + data_selector: response + params: {} +- name: getFoo + endpoint: + path: /api/foo + method: GET + data_selector: response + params: {} +- name: getBody + endpoint: + path: /api/body + method: GET + data_selector: response + params: {} +- name: getFullBody + endpoint: + path: /api/full_body + method: GET + data_selector: response + params: {} +- name: ExampleAPI + endpoint: + path: /rpc + method: POST + data_selector: response + params: {} +- name: WebInterfaceSettings + endpoint: + path: /vibe/web/web + method: GET + data_selector: WebInterfaceSettings + params: {} +- name: Document + endpoint: + path: /diet/dom/Document + method: GET + data_selector: nodes +- name: Node + endpoint: + path: /diet/dom/Node + method: GET + data_selector: nodes +- name: Attribute + endpoint: + path: /diet/dom/Attribute + method: GET + data_selector: attributes +- name: AttributeContent + endpoint: + path: /diet/dom/AttributeContent + method: GET + data_selector: attributeContents +- name: Location + endpoint: + path: /diet/dom/Location + method: GET + data_selector: locations +- name: NodeContent + endpoint: + path: /diet/dom/NodeContent + method: GET + data_selector: nodeContents +- name: Document + endpoint: + path: /api/diet.dom/Document + method: GET + data_selector: document +- name: Node + endpoint: + path: /api/diet.dom/Node + method: GET + data_selector: node +- name: Attribute + endpoint: + path: /api/diet.dom/Attribute + method: GET + data_selector: attribute +- name: AttributeContent + endpoint: + path: /api/diet.dom/AttributeContent + method: GET + data_selector: attributeContent +- name: Location + endpoint: + path: /api/diet.dom/Location + method: GET + data_selector: location +- name: NodeContent + endpoint: + path: /api/diet.dom/NodeContent + method: GET + data_selector: nodeContent +- name: NodeAttribs + endpoint: + path: /api/diet.dom/NodeAttribs + method: GET + data_selector: nodeAttribs +- name: getHTMLLiveMixin + endpoint: + path: /api/diet.html/getHTMLLiveMixin + method: GET +- name: getHTMLMixin + endpoint: + path: /api/diet.html/getHTMLMixin + method: GET +- name: getHTMLRawTextOnly + endpoint: + path: /api/diet.html/getHTMLRawTextOnly + method: GET +- name: compileHTMLDietFileString + endpoint: + path: /api/diet.html/compileHTMLDietFileString + method: GET +- name: compileHTMLDietString + endpoint: + path: /api/diet.html/compileHTMLDietString + method: GET +- name: compileHTMLDietStrings + endpoint: + path: /api/diet.html/compileHTMLDietStrings + method: GET +- name: functions + endpoint: + path: /api/diet.parser/functions + method: GET + data_selector: functions +- name: EventDriver + endpoint: + path: /eventcore/driver/EventDriver + method: GET + data_selector: records +- name: EventDriverCore + endpoint: + path: /eventcore/driver/EventDriverCore + method: GET + data_selector: records +- name: EventDriverDNS + endpoint: + path: /eventcore/driver/EventDriverDNS + method: GET + data_selector: records +- name: EventDriverEvents + endpoint: + path: /eventcore/driver/EventDriverEvents + method: GET + data_selector: records +- name: EventDriverFiles + endpoint: + path: /eventcore/driver/EventDriverFiles + method: GET + data_selector: records +- name: EventDriverSockets + endpoint: + path: /eventcore/driver/EventDriverSockets + method: GET + data_selector: records +- name: cancelRead + endpoint: + path: /cancelRead + method: GET +- name: cancelReceive + endpoint: + path: /cancelReceive + method: GET +- name: cancelSend + endpoint: + path: /cancelSend + method: GET +- name: cancelWrite + endpoint: + path: /cancelWrite + method: GET +- name: connectStream + endpoint: + path: /connectStream + method: GET +- name: createDatagramSocket + endpoint: + path: /createDatagramSocket + method: GET +- name: listenStream + endpoint: + path: /listenStream + method: GET +- name: read + endpoint: + path: /read + method: GET +- name: receive + endpoint: + path: /receive + method: GET +- name: send + endpoint: + path: /send + method: GET +- name: shutdown + endpoint: + path: /shutdown + method: GET +- name: waitForConnections + endpoint: + path: /waitForConnections + method: GET +- name: waitForData + endpoint: + path: /waitForData + method: GET +- name: write + endpoint: + path: /write + method: GET +- name: TaggedUnion + endpoint: + path: /taggedalgebraic/taggedunion/TaggedUnion + method: GET +- name: This + endpoint: + path: /taggedalgebraic/taggedunion/This + method: GET +- name: Void + endpoint: + path: /taggedalgebraic/taggedunion/Void + method: GET +- name: vibe.conf + endpoint: + path: /vibe.conf + method: GET + data_selector: options + params: {} +- name: ConnectionPool + endpoint: {} +- name: appendToFile + endpoint: + path: /appendToFile + method: POST + data_selector: function + params: {} +- name: copyFile + endpoint: + path: /copyFile + method: POST + data_selector: function + params: {} +- name: createDirectory + endpoint: + path: /createDirectory + method: POST + data_selector: function + params: {} +- name: removeFile + endpoint: + path: /removeFile + method: DELETE + data_selector: function + params: {} +- name: loggers + endpoint: + path: /getLoggers + method: GET + data_selector: loggers +- name: log_level + endpoint: + path: /getLogLevel + method: GET + data_selector: level +- name: log + endpoint: + path: /log + method: POST + data_selector: message +- name: PathValidationException + endpoint: + path: /vibe/core/path/PathValidationException + method: GET + data_selector: description +- name: GenericPath + endpoint: + path: /vibe/core/path/GenericPath + method: GET + data_selector: description +- name: InetPathFormat + endpoint: + path: /vibe/core/path/InetPathFormat + method: GET + data_selector: description +- name: PosixPathFormat + endpoint: + path: /vibe/core/path/PosixPathFormat + method: GET + data_selector: description +- name: WindowsPathFormat + endpoint: + path: /vibe/core/path/WindowsPathFormat + method: GET + data_selector: description +- name: functions + endpoint: + path: /api/vibe.core.process/functions + method: GET + data_selector: functions +- name: structs + endpoint: + path: /api/vibe.core.process/structs + method: GET + data_selector: structs +- name: enums + endpoint: + path: /api/vibe.core.process/enums + method: GET + data_selector: enums +- name: global_variables + endpoint: + path: /api/vibe.core.process/global_variables + method: GET + data_selector: global_variables +- name: stream_operations + endpoint: + path: /vibe.core.stream + method: GET + data_selector: stream +- name: secureRNG + endpoint: + path: /functions/secureRNG + method: GET + data_selector: description +- name: createManualEvent + endpoint: + path: /createManualEvent + method: GET + data_selector: function + params: {} +- name: createMonitor + endpoint: + path: /createMonitor + method: GET + data_selector: function + params: {} +- name: createSharedManualEvent + endpoint: + path: /createSharedManualEvent + method: GET + data_selector: function + params: {} +- name: createSharedTaskSemaphore + endpoint: + path: /createSharedTaskSemaphore + method: GET + data_selector: function + params: {} +- name: createTaskSemaphore + endpoint: + path: /createTaskSemaphore + method: GET + data_selector: function + params: {} +- name: scopedMutexLock + endpoint: + path: /scopedMutexLock + method: GET + data_selector: function + params: {} +- name: TaskPool + endpoint: + path: /vibe/core/taskpool + method: GET + data_selector: '' + params: {} +- name: secureRNG + endpoint: + path: /vibe.crypto.cryptorand/secureRNG + method: GET + data_selector: '' + params: {} +- name: Bson + endpoint: + path: /vibe/data/bson + method: GET + data_selector: Bson +- name: BsonBinData + endpoint: + path: /vibe/data/bson/bindata + method: GET + data_selector: BsonBinData +- name: BsonDate + endpoint: + path: /vibe/data/bson/date + method: GET + data_selector: BsonDate +- name: BsonObjectID + endpoint: + path: /vibe/data/bson/objectid + method: GET + data_selector: BsonObjectID +- name: BsonRegex + endpoint: + path: /vibe/data/bson/regex + method: GET + data_selector: BsonRegex +- name: BsonSerializer + endpoint: + path: /vibe/data/bson/serializer + method: GET + data_selector: BsonSerializer +- name: BsonTimestamp + endpoint: + path: /vibe/data/bson/timestamp + method: GET + data_selector: BsonTimestamp +- name: MongoCollection + endpoint: + path: /vibe/db/mongo/collection + method: GET +- name: MongoClient + endpoint: + path: /vibe/db/mongo/client + method: GET + data_selector: records + params: {} +- name: MongoCollection + endpoint: + path: /api/vibe.db.mongo.collection/ + method: GET + data_selector: records +- name: MongoSessionStore + endpoint: + path: /vibe.db.mongo.sessionstore + method: GET +- name: MongoSessionStore + endpoint: + path: /vibe/db/mongo/sessionstore + method: GET + data_selector: records + params: {} +- name: RedisClient + endpoint: + path: /vibe/db/redis/client + method: GET + data_selector: RedisClient +- name: RedisDatabase + endpoint: + path: /vibe/db/redis/database + method: GET + data_selector: RedisDatabase +- name: HTTPClient + endpoint: + path: / + method: GET + data_selector: '' + params: {} +- name: HTTPConsoleLogger + endpoint: + path: /vibe.http.log/HTTPConsoleLogger + method: GET +- name: HTTPFileLogger + endpoint: + path: /vibe.http.log/HTTPFileLogger + method: GET +- name: HTTPLogger + endpoint: + path: /vibe.http.log/HTTPLogger + method: GET +- name: HTTPProxySettings + endpoint: + path: /api/vibe.http.proxy/ + method: GET +- name: URLRouter + endpoint: + path: /vibe/http/router + method: GET +- name: SessionStore + endpoint: + path: /api/vibe.http.session/SessionStore + method: GET + data_selector: SessionStore +- name: MemorySessionStore + endpoint: + path: /api/vibe.http.session/MemorySessionStore + method: GET + data_selector: MemorySessionStore +- name: Session + endpoint: + path: /api/vibe.http.session/Session + method: GET + data_selector: Session +- name: httpStatusText + endpoint: + path: /httpStatusText + method: GET +- name: isSuccessCode + endpoint: + path: /isSuccessCode + method: GET +- name: justifiesConnectionClose + endpoint: + path: /justifiesConnectionClose + method: GET +- name: getMimeTypeForFile + endpoint: + path: /getMimeTypeForFile + method: GET + data_selector: mimeType +- name: isCompressedFormat + endpoint: + path: /isCompressedFormat + method: GET + data_selector: isCompressed +- name: formEncode + endpoint: + path: /vibe.inet.webform/formEncode + method: GET + data_selector: function + params: {} +- name: parseFormData + endpoint: + path: /vibe.inet.webform/parseFormData + method: GET + data_selector: function + params: {} +- name: parseMultiPartForm + endpoint: + path: /vibe.inet.webform/parseMultiPartForm + method: GET + data_selector: function + params: {} +- name: parseURLEncodedForm + endpoint: + path: /vibe.inet.webform/parseURLEncodedForm + method: GET + data_selector: function + params: {} +- name: urlEncode + endpoint: + path: /vibe.inet.webform/urlEncode + method: GET + data_selector: function + params: {} +- name: sendMail + endpoint: + path: /sendMail + method: POST + data_selector: settings, mail + params: {} +- name: formEncode + endpoint: + path: /formEncode + method: GET +- name: parseFormData + endpoint: + path: /parseFormData + method: GET +- name: parseMultiPartForm + endpoint: + path: /parseMultiPartForm + method: GET +- name: parseURLEncodedForm + endpoint: + path: /parseURLEncodedForm + method: GET +- name: urlEncode + endpoint: + path: /urlEncode + method: GET +- name: CachedFileStream + endpoint: + path: /api/vibe.stream.cached/ + method: GET + data_selector: '' + params: {} +- name: sendMail + endpoint: + path: /sendMail + method: POST + data_selector: '' + params: {} +- name: buffered_stream + endpoint: + path: /api/vibe.stream.bufferedstream/ + method: GET + data_selector: functions + params: {} +- name: OpenSSLContext + endpoint: + path: /vibe.stream.openssl/OpenSSLContext + method: GET + data_selector: description +- name: OpenSSLStream + endpoint: + path: /vibe.stream.openssl/OpenSSLStream + method: GET + data_selector: description +- name: pipeRealtime + endpoint: + path: /pipeRealtime + method: POST + data_selector: result + params: {} +- name: readAll + endpoint: + path: /readAll + method: POST + data_selector: result + params: {} +- name: readAllUTF8 + endpoint: + path: /readAllUTF8 + method: POST + data_selector: result + params: {} +- name: readLine + endpoint: + path: /readLine + method: POST + data_selector: result + params: {} +- name: readUntil + endpoint: + path: /readUntil + method: POST + data_selector: result + params: {} +- name: skipBytes + endpoint: + path: /skipBytes + method: POST + data_selector: result + params: {} +- name: OpenSSLContext + endpoint: + path: /vibe.stream.openssl/OpenSSLContext + method: GET + data_selector: classes +- name: OpenSSLStream + endpoint: + path: /vibe.stream.openssl/OpenSSLStream + method: GET + data_selector: classes +- name: StderrStream + endpoint: {} +- name: StdFileStream + endpoint: {} +- name: StdinStream + endpoint: {} +- name: StdoutStream + endpoint: {} +- name: pipeRealtime + endpoint: + path: /pipeRealtime + method: GET + data_selector: '' + params: {} +- name: readAll + endpoint: + path: /readAll + method: GET + data_selector: '' + params: {} +- name: readAllUTF8 + endpoint: + path: /readAllUTF8 + method: GET + data_selector: '' + params: {} +- name: readLine + endpoint: + path: /readLine + method: GET + data_selector: '' + params: {} +- name: readUntil + endpoint: + path: /readUntil + method: GET + data_selector: '' + params: {} +- name: skipBytes + endpoint: + path: /skipBytes + method: GET + data_selector: '' + params: {} +- name: ConnectionProxyStream + endpoint: + path: /vibe/stream/wrapper/ConnectionProxyStream + method: GET + data_selector: stream + params: {} +- name: ProxyStream + endpoint: + path: /vibe/stream/wrapper/ProxyStream + method: GET + data_selector: stream + params: {} +- name: StreamInputRange + endpoint: + path: /vibe/stream/wrapper/StreamInputRange + method: GET + data_selector: stream + params: {} +- name: StreamOutputRange + endpoint: + path: /vibe/stream/wrapper/StreamOutputRange + method: GET + data_selector: stream + params: {} +- name: TLSContext + endpoint: + path: /api/vibe.stream.tls/TLSContext + method: GET + data_selector: context + params: {} +- name: TLSStream + endpoint: + path: /api/vibe.stream.tls/TLSStream + method: GET + data_selector: stream + params: {} +- name: ZlibInputStream + endpoint: + path: /createDeflateInputStream + method: GET + data_selector: input_stream +- name: ZlibOutputStream + endpoint: + path: /createDeflateOutputStream + method: GET + data_selector: output_stream +- name: ZlibInputStream + endpoint: + path: /createDeflateInputStream + method: POST + data_selector: stream +- name: ZlibOutputStream + endpoint: + path: /createDeflateOutputStream + method: POST + data_selector: stream +- name: filterHTMLAllEscape + endpoint: + path: /api/vibe.textfilter.html/filterHTMLAllEscape + method: GET + data_selector: description + params: {} +- name: filterHTMLAttribEscape + endpoint: + path: /api/vibe.textfilter.html/filterHTMLAttribEscape + method: GET + data_selector: description + params: {} +- name: filterHTMLEscape + endpoint: + path: /api/vibe.textfilter.html/filterHTMLEscape + method: GET + data_selector: description + params: {} +- name: htmlAllEscape + endpoint: + path: /api/vibe.textfilter.html/htmlAllEscape + method: GET + data_selector: description + params: {} +- name: htmlAttribEscape + endpoint: + path: /api/vibe.textfilter.html/htmlAttribEscape + method: GET + data_selector: description + params: {} +- name: htmlEscape + endpoint: + path: /api/vibe.textfilter.html/htmlEscape + method: GET + data_selector: description + params: {} +- name: htmlEscapeMin + endpoint: + path: /api/vibe.textfilter.html/htmlEscapeMin + method: GET + data_selector: description + params: {} +- name: filterHTMLAllEscape + endpoint: + path: /functions/filterHTMLAllEscape + method: GET + data_selector: description + params: {} +- name: filterHTMLAttribEscape + endpoint: + path: /functions/filterHTMLAttribEscape + method: GET + data_selector: description + params: {} +- name: filterHTMLEscape + endpoint: + path: /functions/filterHTMLEscape + method: GET + data_selector: description + params: {} +- name: htmlAllEscape + endpoint: + path: /functions/htmlAllEscape + method: GET + data_selector: description + params: {} +- name: htmlAttribEscape + endpoint: + path: /functions/htmlAttribEscape + method: GET + data_selector: description + params: {} +- name: htmlEscape + endpoint: + path: /functions/htmlEscape + method: GET + data_selector: description + params: {} +- name: htmlEscapeMin + endpoint: + path: /functions/htmlEscapeMin + method: GET + data_selector: description + params: {} +- name: Markdown + endpoint: + path: /api/vibe.textfilter.markdown/ + method: GET + data_selector: functions +- name: APIRoot + endpoint: + path: /api/ + method: GET + data_selector: string +- name: UsersAPI + endpoint: + path: /users/:name + method: GET + data_selector: Json +- name: determineLanguageByHeader + endpoint: + path: /api/vibe.web.i18n/determineLanguageByHeader + method: GET + data_selector: response + params: {} +- name: extractDeclStrings + endpoint: + path: /api/vibe.web.i18n/extractDeclStrings + method: GET + data_selector: response + params: {} +- name: tr + endpoint: + path: /api/vibe.web.i18n/tr + method: GET + data_selector: response + params: {} +- name: translationContext + endpoint: + path: /api/vibe.web.i18n/translationContext + method: GET + data_selector: response + params: {} +- name: WebInterfaceSettings + endpoint: + path: /vibe/web/web/WebInterfaceSettings + method: GET + data_selector: settings + params: {} +- name: APIRoot + endpoint: + path: /api/ + method: GET + data_selector: response body + params: {} +- name: UsersAPI + endpoint: + path: /users/:name + method: GET + data_selector: response body + params: {} +- name: WebInterfaceSettings + endpoint: + path: /api/vibe.web.web/ + method: GET + data_selector: WebInterfaceSettings + params: {} +- name: dietOutputRangeName + endpoint: + path: /api/diet.defs/dietOutputRangeName + method: GET + data_selector: enum dietOutputRangeName + params: {} +- name: dietOutputRangeName + endpoint: + path: /api/diet.defs/dietOutputRangeName + method: GET + data_selector: enum dietOutputRangeName + params: {} +- name: enforcep + endpoint: + path: /api/diet.defs/enforcep + method: GET + data_selector: throws + params: {} +- name: dietOutputRangeName + endpoint: + path: /api/diet.defs/dietOutputRangeName + method: GET +- name: enforcep + endpoint: + path: /api/diet.defs/enforcep + method: GET + data_selector: response + params: {} +- name: dietOutputRangeName + endpoint: + path: /api/diet.defs/dietOutputRangeName + method: GET + data_selector: enum dietOutputRangeName + params: {} +- name: dietOutputRangeName + endpoint: + path: /api/diet.defs/dietOutputRangeName + method: GET + data_selector: enum dietOutputRangeName +- name: dietOutputRangeName + endpoint: + path: /current + method: GET + data_selector: enum + params: {} +- name: applyTraits + endpoint: + path: /applyTraits + method: GET + data_selector: transformations + params: {} +- name: dietTraits + endpoint: + path: /dietTraits + method: GET + data_selector: traits + params: {} +- name: filter + endpoint: + path: /filter + method: GET + data_selector: filterResults + params: {} +- name: translate + endpoint: + path: /translate + method: GET + data_selector: translatedText + params: {} +- name: functions + endpoint: + path: /api/eventcore.socket/functions + method: GET + data_selector: functions + params: {} +- name: structs + endpoint: + path: /api/eventcore.socket/structs + method: GET + data_selector: structs + params: {} +- name: apply + endpoint: + path: /apply + method: GET + data_selector: '' + params: {} +- name: disableIndex + endpoint: + path: /disableIndex + method: GET + data_selector: '' + params: {} +- name: get + endpoint: + path: /get + method: GET + data_selector: '' + params: {} +- name: hasType + endpoint: + path: /hasType + method: GET + data_selector: '' + params: {} +- name: command_line_arguments + endpoint: + path: /api/vibe.core.args/ + method: GET + data_selector: functions +- name: ConnectionPool + endpoint: + path: /vibe/core/connectionpool + method: GET + data_selector: ConnectionPool +- name: file_operations + endpoint: + path: /api/vibe.core.file/ + method: GET + data_selector: functions +- name: loggers + endpoint: + path: /api/vibe.core.log/loggers + method: GET + data_selector: loggers +- name: TCPConnection + endpoint: + path: /connectTCP + method: GET + data_selector: functions +- name: UDPConnection + endpoint: + path: /listenUDP + method: GET + data_selector: functions +- name: relativeTo + endpoint: + path: /relativeTo + method: GET + data_selector: path + params: {} +- name: relativeToWeb + endpoint: + path: /relativeToWeb + method: GET + data_selector: path + params: {} +- name: toNativeString + endpoint: + path: /toNativeString + method: GET + data_selector: path + params: {} +- name: adoptProcessID + endpoint: + path: adoptProcessID + method: GET + data_selector: description +- name: execute + endpoint: + path: execute + method: GET + data_selector: description +- name: executeShell + endpoint: + path: executeShell + method: GET + data_selector: description +- name: pipe + endpoint: + path: pipe + method: GET + data_selector: description +- name: pipeProcess + endpoint: + path: pipeProcess + method: GET + data_selector: description +- name: pipeShell + endpoint: + path: pipeShell + method: GET + data_selector: description +- name: spawnProcess + endpoint: + path: spawnProcess + method: GET + data_selector: description +- name: spawnShell + endpoint: + path: spawnShell + method: GET + data_selector: description +- name: userShell + endpoint: + path: userShell + method: GET + data_selector: description +- name: RandomNumberStream + endpoint: + path: /vibe.crypto.cryptorand/RandomNumberStream + method: GET + data_selector: functions +- name: CryptoException + endpoint: + path: /vibe.crypto.cryptorand/CryptoException + method: GET + data_selector: classes +- name: HashMixerRNG + endpoint: + path: /vibe.crypto.cryptorand/HashMixerRNG + method: GET + data_selector: classes +- name: SystemRNG + endpoint: + path: /vibe.crypto.cryptorand/SystemRNG + method: GET + data_selector: classes +- name: TaskPool + endpoint: + path: /api/vibe.core.taskpool/ + method: GET + data_selector: classes +- name: RandomNumberStream + endpoint: + path: /vibe.crypto.cryptorand/RandomNumberStream + method: GET + data_selector: interfaces +- name: CryptoException + endpoint: + path: /vibe.crypto.cryptorand/CryptoException + method: GET + data_selector: classes +- name: HashMixerRNG + endpoint: + path: /vibe.crypto.cryptorand/HashMixerRNG + method: GET + data_selector: classes +- name: SystemRNG + endpoint: + path: /vibe.crypto.cryptorand/SystemRNG + method: GET + data_selector: classes +- name: MongoClient + endpoint: + path: /vibe/db/mongo/client + method: GET +- name: MongoCursor + endpoint: + path: /vibe.db.mongo.cursor/MongoCursor + method: GET +- name: MongoDatabase + endpoint: + path: /vibe/db/mongo/database + method: GET +- name: serialization + endpoint: + path: /api/vibe.data.serialization/ + method: GET + data_selector: supported_types + params: {} +- name: MongoClient + endpoint: + path: /vibe/db/mongo/client + method: GET + data_selector: description + params: {} +notes: +- The server will listen on all local network adapters on port 80. +- HTTPS requires appropriate certificate and private key files. +- Uses a class based declarative approach to avoid boilerplate code +- Static typing is exploited to avoid conversion errors +- Subject to the terms of the MIT license, as written in the included LICENSE.txt + file. +- May throw an InterruptException if the task gets interrupted using Task.interrupt() +- This mutex type can be used in exchange for a core.sync.mutex.Mutex, but does not + block the event loop when contention happens. +- Note that this mutex does not allow recursive locking. +- Because this class is annotated nothrow, it cannot be interrupted using Task.interrupt(). + The corresponding InterruptException will be deferred until the next blocking operation + yields the event loop. +- Implements a unidirectional data pipe between two tasks. +- causes incoming connections to be distributed across the thread pool +- Performs generic parsing of a Diet template file. +- Ring buffer supporting fixed or dynamic capacity +- Using a standard Mutex is possible as long as it is ensured that no event loop based + functionality (I/O, task interaction or anything that implicitly calls yield) is + executed within a section of code that is protected by the mutex. +- Implements cryptographically secure random number generators. +- BSON serialization and value handling +- MongoCollection class +- Implements HTTP Basic Auth for client. +- Implements WebSocket support and fallbacks for older browsers. +- Creates a MIME compatible Base64 encoding stream. +- Creates a URL safe Base64 encoding stream (using '-' and '_' for non-alphabetic + values). +- Implements a buffered random access wrapper stream. +- In-memory streams +- I/O concurrency limiting wrapper stream +- Creates a new deflate uncompression stream. +- Creates a new deflate compression stream. +- Make things @safe once Appender is. +- Markdown parser implementation +- String input validation routines +- Authentication and authorization framework based on fine-grained roles. +- Internationalization/translation support for the web interface module. +- This module implements a generic RPC mechanism that allows transparently calling + remote functions over an HTTP based network connection. +- Implements a declarative framework for building web interfaces. +- The optional configuration file (vibe.conf) is a JSON file, containing an object + with the keys corresponding to option names, and values corresponding to their values. +- File handling functions and types. +- Contains parallel computation primitives. +- Contains routines for high level path handling. +- Generic stream interface used by several stream-like classes. +- This module defines the basic (buffered) stream primitives. +- BSON serialization and value handling. +- MongoDB index API definitions. +- MongoDB based HTTP session store. +- MongoDB based HTTP session store +- The API is still subject to change +- Implements HTTP Basic Auth. +- Implements HTTP Digest Authentication +- This is a minimal implementation based on RFC 2069 +- Convenience functions for working with web forms. +- Cookie based session support. +- This module is scheduled for deprecation and will be replaced by another module + in the future. +- Maps file name extensions to standard mime types. +- Random access stream that caches a source input stream on disk. +- SMTP client implementation +- Creates a Base64 encoding stream. +- OpenSSL based SSL/TLS stream implementation +- Stream proxy and wrapper facilities. +- TLSStream can be used to implement TLS communication on top of a TCP connection. +- The TLSContextKind of an TLSStream determines if the TLS tunnel is established actively + (client) or passively (server). +- Zlib input/output streams +- Functions for creating deflate and gzip streams +- URL-encoding implementation +- Utility functions for array processing +- Scheduled for deprecation +- Use vibe.container.hashmap instead +- Utility functions for string processing +- Contains common functionality for the REST and WEB interface generators. +- This module aims to provide a typesafe way to deal with RESTful APIs. +- 'Automatic client generation: once the interface is defined, it can be used both + by the client side and the server side.' +- 'Automatic client generation: once the interface is defined, it can be used both + by the client side and the server side' +- Automatic route generation for the server +- Parameter validation types transparently supported for web interface methods. +- Throws an exception if the condition evaluates to false. +- Throws a DietParserException when called with a false condition at run time. +- Implements a thread-safe, typed producer-consumer queue. +- Generic connection pool for reusing persistent connections across fibers. +- File handling functions and types available. +- Central logging facility for vibe. +- Password hashing routines +- Multi-threaded task pool implementation +- MongoClient class doing connection management. +- JSON serialization and value handling. +- De(serialization) of arbitrary D types is also supported and is recommended for + handling JSON in performance sensitive applications. +- MongoDatabase class representing common database for group of collections. +- MongoDB operation flag definitions. +- MongoDB cursor abstraction +- The MongoDB driver implementation here is missing a number of API functions known + from the JavaScript driver, but these can usually be implemented in terms of MongoDatabase.runCommand + or MongoCollection.find. +- Since the official documentation is lacking in some places, it may be necessary + to use a network sniffer to monitor what exactly needs to be sent. +errors: +- '500 Internal Server Error: An exception is thrown from the request handler.' +- '404 Not Found: The request handler does not write a response.' +- 'HTTPStatus.unauthorized: Invalid authentication token' +- 'CryptoException: Thrown when an error occurs during random number generation.' +- 'RestException: Represents a Rest error response' +- 'RestErrorInformation: Contains detailed informations about the error.' +- Throws a DietParserException when called with a false condition at run time. +auth_info: + mentioned_objects: + - MongoAuthException + - MongoConnection + - MongoDBException + - MongoDriverException + - MongoException + - DigestAuthInfo + - DigestAuthParams + - AuthInfo + - Role +client: + base_url: https://vibed.org/ + headers: + Accept: application/json +source_metadata: null diff --git a/vos_api/vos-api-docs.md b/vos_api/vos-api-docs.md new file mode 100644 index 00000000..5b9c36a8 --- /dev/null +++ b/vos_api/vos-api-docs.md @@ -0,0 +1,153 @@ +In this guide, we'll set up a complete Harmonic VOS data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def harmonic_vos_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://api.harmonic.com/configure/v1/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + status,,sources,,uplinks + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='harmonic_vos_migration_pipeline', + destination='duckdb', + dataset_name='harmonic_vos_migration_data', + ) + # Load the data + load_info = pipeline.run(harmonic_vos_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from harmonic_vos_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Status: Provides information about the current status of the service. +- Sources: Lists the available sources for media. +- Uplinks: Manages uplink connections for media transport. +- Services: Details the services available within the system. +- Settings: Configures various settings for the service. + +You will then debug the Harmonic VOS pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with Harmonic VOS support. + ```shell + dlt init dlthub:harmonic_vos_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for Harmonic VOS API, as specified in @harmonic_vos_migration-docs.yaml + Start with endpoints status and and skip incremental loading for now. + Place the code in harmonic_vos_migration_pipeline.py and name the pipeline harmonic_vos_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python harmonic_vos_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + OAuth2 authentication is required for accessing the API, utilizing either an authorization code or a refresh token, depending on the specific endpoint's requirements. + + To get the appropriate API keys, please visit the original source at https://www.harmonic.com/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python harmonic_vos_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline harmonic_vos_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset harmonic_vos_migration_data + The duckdb destination used duckdb:/harmonic_vos_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline harmonic_vos_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("harmonic_vos_migration_pipeline").dataset() + # get tatu table as Pandas frame + data.tatu.df().head() + ``` + +## Running into errors? + +It is crucial to ensure the proper configuration of OAuth2 credentials and client applications to enable access. Additionally, be aware of potential request limits which may result in errors such as 'REQUEST_LIMIT_EXCEEDED'. Proper management of API keys and tokens is essential to maintain security and functionality. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/vos_api/vos-api-docs.yaml b/vos_api/vos-api-docs.yaml new file mode 100644 index 00000000..9bdb7eab --- /dev/null +++ b/vos_api/vos-api-docs.yaml @@ -0,0 +1,5339 @@ +resources: +- name: drm_fixed_resources + endpoint: + path: /drm/fixed_resources + method: GET + data_selector: resources +- name: drm_settings + endpoint: + path: /drm/settings + method: GET + data_selector: settings +- name: services + endpoint: + path: /configure/v1/services + method: GET + data_selector: records +- name: source_monitors + endpoint: + path: /source-monitor/v1/discover + method: POST + data_selector: '' +- name: images + endpoint: + path: /configure/v1/images + method: POST + data_selector: '' +- name: create_llcu_asset + endpoint: + path: /ami/llcu/asset/{assetId} + method: PUT +- name: retrieve_llcu_asset_info + endpoint: + path: /ami/llcu/asset/{assetId} + method: GET +- name: delete_llcu_asset + endpoint: + path: /ami/llcu/asset/{assetId} + method: DELETE +- name: list_llcu_assets + endpoint: + path: /ami/llcu/llcuassetlist + method: GET +- name: asset_acquisition + endpoint: + path: /asset-acquisition/v1/asset + method: POST +- name: decisions + endpoint: + path: /asset-acquisition/v1/decision + method: POST +- name: monitor_jobs + endpoint: + path: /asset-acquisition/v1/jobs + method: GET +- name: status + endpoint: + path: /status + method: GET +- name: logs + endpoint: + path: /logs/v1/logs + method: GET +- name: list_notifications + endpoint: + path: /notifications + method: GET + data_selector: notifications +- name: schedule_fix_notifications + endpoint: + path: /notifications/{id}/schedule_fix + method: POST + data_selector: schedule_fix +- name: asset_acquisition_destination_profile + endpoint: + path: /asset-acquisition/v1/asset/{id}/destination-profile + method: PUT + data_selector: '' + params: + id: 'true' + updateRequest: 'true' +- name: asset_encryption_settings + endpoint: + path: /asset-acquisition/v1/asset/{id}/drm + method: GET + data_selector: '' + params: + id: 'true' +- name: set_asset_encryption_settings + endpoint: + path: /asset-acquisition/v1/asset/{id}/drm + method: PUT + data_selector: '' + params: + id: 'true' + drmProperties: 'true' +- name: get_asset_metadata + endpoint: + path: /asset-acquisition/v1/asset/{id}/metadata + method: GET + data_selector: '' + params: + id: 'true' +- name: upload_asset_subtitle + endpoint: + path: /asset-acquisition/v1/asset/{id}/subtitle + method: POST + data_selector: '' + params: + subtitle_file: 'true' + id: 'true' + subtitle_language: 'true' +- name: get_asset_thumbnail + endpoint: + path: /asset-acquisition/v1/asset/{id}/thumbnail + method: GET + data_selector: '' + params: + id: 'true' +- name: get_all_assets + endpoint: + path: /asset-acquisition/v1/assets + method: GET + data_selector: '' + params: + title: 'false' + labels: 'false' + creationDate: 'false' + skip: 'false' + limit: 'false' + sortBy: 'false' + sortDirection: 'false' +- name: get_assets_library + endpoint: + path: /asset-acquisition/v1/assets/library + method: GET + data_selector: '' + params: + title: 'false' + labels: 'false' + skip: 'false' + limit: 'false' + sortBy: 'false' + sortDirection: 'false' +- name: get_assets_pending_decision + endpoint: + path: /asset-acquisition/v1/assets/need_decision + method: GET + data_selector: '' + params: + trimmed: 'false' + title: 'false' + skip: 'false' + limit: 'false' + sortBy: 'false' + sortDirection: 'false' +- name: submit_decision + endpoint: + path: /asset-acquisition/v1/decision + method: POST + data_selector: '' + params: + decision: 'true' +- name: export_packaged_asset + endpoint: + path: /asset-acquisition/v1/export + method: POST + data_selector: '' + params: + fileServerAssetExport: 'true' +- name: get_status_of_asset_exporting + endpoint: + path: /asset-acquisition/v1/export/{id} + method: GET + data_selector: '' + params: + id: 'true' +- name: chunk_upload_of_file + endpoint: + path: /asset-acquisition/v1/file/upload + method: POST + data_selector: '' + params: + asset_file: 'true' +- name: update_existing_file_server + endpoint: + path: /asset-acquisition/v1/fileserver + method: PUT + data_selector: '' + params: + restFileServerSetup: 'true' +- name: register_a_new_file_server + endpoint: + path: /asset-acquisition/v1/fileserver + method: POST + data_selector: '' + params: + restFileServerSetup: 'true' +- name: get_status_of_input_asset + endpoint: + path: /asset-acquisition/v1/fileserver/asset/status + method: GET + data_selector: '' + params: + id: 'true' +- name: get_file_server_by_id + endpoint: + path: /asset-acquisition/v1/fileserver/{id} + method: GET + data_selector: '' + params: + id: 'true' +- name: delete_file_server + endpoint: + path: /asset-acquisition/v1/fileserver/{id} + method: DELETE + data_selector: '' + params: + id: 'true' +- name: get_all_file_servers + endpoint: + path: /asset-acquisition/v1/fileservers + method: GET + data_selector: '' + params: {} +- name: update_graphic + endpoint: + path: /asset-acquisition/v1/graphic + method: PUT + data_selector: '' + params: + graphic: 'true' +- name: get_graphic_by_id + endpoint: + path: /asset-acquisition/v1/graphic/{id} + method: GET + data_selector: '' + params: + id: 'true' +- name: delete_graphic + endpoint: + path: /asset-acquisition/v1/graphic/{id} + method: DELETE + data_selector: '' + params: + id: 'true' +- name: get_all_graphics + endpoint: + path: /asset-acquisition/v1/graphics + method: GET + data_selector: '' + params: {} +- name: graphics_from_file_server + endpoint: + path: /asset-acquisition/v1/graphics/fileserver + method: POST + data_selector: No Content + params: {} +- name: library_graphics + endpoint: + path: /asset-acquisition/v1/graphics/library + method: GET + data_selector: array + params: + limit: 50 +- name: graphics_from_s3 + endpoint: + path: /asset-acquisition/v1/graphics/s3 + method: POST + data_selector: No Content + params: {} +- name: graphql_api + endpoint: + path: /asset-acquisition/v1/graphql + method: POST + data_selector: object + params: {} +- name: create_grooming_profile + endpoint: + path: /asset-acquisition/v1/grooming-profile + method: POST + data_selector: grooming profile + params: {} +- name: get_grooming_profile + endpoint: + path: /asset-acquisition/v1/grooming-profile/{id} + method: GET + data_selector: grooming profile + params: {} +- name: update_grooming_profile + endpoint: + path: /asset-acquisition/v1/grooming-profile/{id} + method: PUT + data_selector: string + params: {} +- name: delete_grooming_profile + endpoint: + path: /asset-acquisition/v1/grooming-profile/{id} + method: DELETE + data_selector: string + params: {} +- name: get_list_of_grooming_profiles + endpoint: + path: /asset-acquisition/v1/grooming-profiles + method: GET + data_selector: array + params: {} +- name: get_job + endpoint: + path: /asset-acquisition/v1/job/{id} + method: GET + data_selector: job + params: {} +- name: cancel_job + endpoint: + path: /asset-acquisition/v1/job/{id}/cancel + method: POST + data_selector: string + params: {} +- name: get_all_jobs + endpoint: + path: /asset-acquisition/v1/jobs + method: GET + data_selector: array + params: + limit: 50 +- name: get_jobs_statistics + endpoint: + path: /asset-acquisition/v1/jobs/statistics + method: GET + data_selector: statistics + params: {} +- name: save_new_logo_template + endpoint: + path: /asset-acquisition/v1/logo-template + method: POST + data_selector: logo + params: {} +- name: get_logo_template_by_id + endpoint: + path: /asset-acquisition/v1/logo-template/{id} + method: GET + data_selector: logo + params: {} +- name: delete_logo_template + endpoint: + path: /asset-acquisition/v1/logo-template/{id} + method: DELETE + data_selector: object + params: {} +- name: get_all_logo_templates + endpoint: + path: /asset-acquisition/v1/logo-templates + method: GET + data_selector: array + params: {} +- name: get_active_service_info + endpoint: + path: /asset-acquisition/v1/servicesInfo/{id} + method: GET + data_selector: service info + params: {} +- name: get_settings + endpoint: + path: /external-asset-potf/v1/settings + method: GET + data_selector: settings + params: {} +- name: set_settings + endpoint: + path: /asset-acquisition/v1/settings + method: PUT + data_selector: string + params: {} +- name: attach_subtitle_from_file_server + endpoint: + path: /asset-acquisition/v1/subtitle/fileserver + method: POST + data_selector: asset + params: {} +- name: attach_subtitle_from_s3 + endpoint: + path: /asset-acquisition/v1/subtitle/s3 + method: POST + data_selector: object + params: {} +- name: delete_subtitle + endpoint: + path: /asset-acquisition/v1/subtitle/{id} + method: DELETE + data_selector: string + params: {} +- name: get_all_manifest_filtering_profiles + endpoint: + path: /atm/v1/manifest-filtering/profiles + method: GET + data_selector: profiles + params: {} +- name: manifest_filtering_profiles + endpoint: + path: /atm/v1/manifest-filtering/profiles + method: POST + data_selector: No Content + params: {} +- name: get_manifest_filtering_profile + endpoint: + path: /atm/v1/manifest-filtering/profiles/{id} + method: GET + data_selector: com.harmonicinc.vos.app.atm.datatypes.Profile + params: {} +- name: update_manifest_filtering_profile + endpoint: + path: /atm/v1/manifest-filtering/profiles/{id} + method: PUT + data_selector: com.harmonicinc.vos.app.atm.datatypes.Profile + params: {} +- name: delete_manifest_filtering_profile + endpoint: + path: /atm/v1/manifest-filtering/profiles/{id} + method: DELETE + data_selector: No Content + params: {} +- name: get_atm_setting + endpoint: + path: /atm/v1/settings + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.AtmSettingConfig + params: {} +- name: set_atm_setting + endpoint: + path: /atm/v1/settings + method: PUT + data_selector: com.harmonicinc.vos.app.atm.rest.model.AtmSettingConfig + params: {} +- name: get_variant_channels_filter + endpoint: + path: /atm/v1/variant-channels-filter + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.VariantChannelsFilter + params: {} +- name: create_variant_channels_filter + endpoint: + path: /atm/v1/variant-channels-filter + method: POST + data_selector: com.harmonicinc.vos.app.atm.rest.model.VariantChannelsFilter + params: {} +- name: get_variant_channels_filter_status + endpoint: + path: /atm/v1/variant-channels-filter-status + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.VariantChannelsFilterStatus + params: {} +- name: get_content_generation_channels + endpoint: + path: /atm/v1/vcm/content-generation-channels + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.ContentGenerationChannel + params: {} +- name: create_content_generation_channel + endpoint: + path: /atm/v1/vcm/content-generation-channels + method: POST + data_selector: com.harmonicinc.vos.app.atm.rest.model.ContentGenerationChannel + params: {} +- name: get_content_replacement_channels + endpoint: + path: /atm/v1/vcm/content-replacement-channels + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.ContentReplacementChannel + params: {} +- name: create_content_replacement_channel + endpoint: + path: /atm/v1/vcm/content-replacement-channels + method: POST + data_selector: com.harmonicinc.vos.app.atm.rest.model.ContentReplacementChannel + params: {} +- name: get_live_event_clipping_channels + endpoint: + path: /atm/v1/vcm/live-event-clipping-channels + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.LiveEventClippingChannel + params: {} +- name: live_event_clipping_channels + endpoint: + path: /atm/v1/vcm/live-event-clipping-channels + method: POST + data_selector: channel + params: {} +- name: regional_ads_channels + endpoint: + path: /atm/v1/vcm/regional-ads-channels + method: POST + data_selector: channel + params: {} +- name: sourceID_mappings + endpoint: + path: /atm/v1/vcm/variant-channels-sourceid-mapping + method: PUT + data_selector: mapping + params: {} +- name: AsRun_list + endpoint: + path: /bxf-control-adaptor/v1/asrun + method: GET + data_selector: '' + params: {} +- name: client_apps + endpoint: + path: /client-apps/v1/apps + method: GET + data_selector: '' + params: {} +- name: update_cluster_urls + endpoint: + path: /client-apps/v1/apps/cluster-urls + method: PUT + data_selector: urls +- name: get_client_app + endpoint: + path: /client-apps/v1/apps/{clientId} + method: GET + data_selector: ClientDetailsResponse +- name: update_client_app + endpoint: + path: /client-apps/v1/apps/{clientId} + method: PUT + data_selector: ClientDetailsResponse +- name: remove_client_app + endpoint: + path: /client-apps/v1/apps/{clientId} + method: DELETE +- name: reset_client_app_secret + endpoint: + path: /client-apps/v1/apps/{clientId}/update_secret + method: POST +- name: get_ahdr_sl_hdr1_config + endpoint: + path: /configure/v1/AHDR_SL_HDR1_CONFIG + method: GET + data_selector: Image +- name: create_ahdr_sl_hdr1_config + endpoint: + path: /configure/v1/AHDR_SL_HDR1_CONFIG + method: POST + data_selector: Image +- name: get_dolby_vision_config + endpoint: + path: /configure/v1/DOLBY_VISION_CONFIG + method: GET + data_selector: Image +- name: create_dolby_vision_config + endpoint: + path: /configure/v1/DOLBY_VISION_CONFIG + method: POST + data_selector: Image +- name: get_lut + endpoint: + path: /configure/v1/LUT + method: GET + data_selector: Image +- name: create_lut + endpoint: + path: /configure/v1/LUT + method: POST + data_selector: Image +- name: get_descrambling_keys + endpoint: + path: /configure/v1/descrambling-keys + method: GET + data_selector: DescramblingKeys +- name: create_descrambling_keys + endpoint: + path: /configure/v1/descrambling-keys + method: POST + data_selector: DescramblingKeys +- name: get_destinations + endpoint: + path: /configure/v1/destinations + method: GET + data_selector: Destination +- name: create_destination + endpoint: + path: /configure/v1/destinations + method: POST + data_selector: Destination +- name: destination + endpoint: + path: /configure/v1/destinations/{id} + method: GET + data_selector: Destination + params: + id: 'true' +- name: update_destination + endpoint: + path: /configure/v1/destinations/{id} + method: PUT + data_selector: Destination + params: + destination: 'true' + id: 'true' +- name: delete_destination + endpoint: + path: /configure/v1/destinations/{id} + method: DELETE + data_selector: '' + params: + id: 'true' +- name: font_records + endpoint: + path: /configure/v1/fonts + method: GET + data_selector: Image + params: {} +- name: create_font_record + endpoint: + path: /configure/v1/fonts + method: POST + data_selector: Image + params: + image: 'true' +- name: delete_font_record + endpoint: + path: /configure/v1/fonts/{id} + method: DELETE + data_selector: '' + params: + id: 'true' +- name: fullService + endpoint: + path: /configure/v1/fullService/{id} + method: GET + data_selector: FullService + params: + id: 'true' +- name: create_fullService + endpoint: + path: /configure/v1/fullService + method: POST + data_selector: FullService + params: + fullService: 'true' +- name: update_fullService + endpoint: + path: /configure/v1/fullService/{id} + method: PUT + data_selector: FullService + params: + fullService: 'true' + id: 'true' +- name: delete_fullService + endpoint: + path: /configure/v1/fullService + method: DELETE + data_selector: '' + params: + fullServiceIds: 'true' +- name: graphics_templates + endpoint: + path: /configure/v1/graphics-templates + method: GET + data_selector: Image + params: {} +- name: create_graphics_template + endpoint: + path: /configure/v1/graphics-templates + method: POST + data_selector: Image + params: + image: 'true' +- name: delete_graphics_template + endpoint: + path: /configure/v1/graphics-templates/{id} + method: DELETE + data_selector: '' + params: + id: 'true' +- name: image_sync_config + endpoint: + path: /configure/v1/imageSync/config + method: GET + data_selector: ImageFileSyncConfig + params: {} +- name: set_image_sync_config + endpoint: + path: /configure/v1/imageSync/config + method: POST + data_selector: '' + params: + config: 'true' +- name: images + endpoint: + path: /configure/v1/images + method: GET + data_selector: array + params: {} +- name: create_image + endpoint: + path: /configure/v1/images + method: POST + data_selector: array + params: {} +- name: image_by_id + endpoint: + path: /configure/v1/images/{id} + method: GET + data_selector: array + params: {} +- name: update_image + endpoint: + path: /configure/v1/images/{id} + method: PUT + data_selector: array + params: {} +- name: delete_image + endpoint: + path: /configure/v1/images/{id} + method: DELETE + data_selector: array + params: {} +- name: services_with_image + endpoint: + path: /configure/v1/images/{id}/services + method: GET + data_selector: array + params: {} +- name: sources_with_image + endpoint: + path: /configure/v1/images/{id}/sources + method: GET + data_selector: array + params: {} +- name: key_pairs + endpoint: + path: /configure/v1/key-pairs + method: GET + data_selector: array + params: {} +- name: create_key_pair + endpoint: + path: /configure/v1/key-pairs + method: POST + data_selector: array + params: {} +- name: download_public_key + endpoint: + path: /configure/v1/key-pairs/{id} + method: GET + data_selector: array + params: {} +- name: delete_key_pair + endpoint: + path: /configure/v1/key-pairs/{id} + method: DELETE + data_selector: array + params: {} +- name: lsms + endpoint: + path: /configure/v1/lsms + method: GET + data_selector: array + params: {} +- name: create_lsm + endpoint: + path: /configure/v1/lsms + method: POST + data_selector: array + params: {} +- name: lsm_by_id + endpoint: + path: /configure/v1/lsms/{id} + method: GET + data_selector: array + params: {} +- name: update_lsm + endpoint: + path: /configure/v1/lsms/{id} + method: PUT + data_selector: array + params: {} +- name: delete_lsm + endpoint: + path: /configure/v1/lsms/{id} + method: DELETE + data_selector: array + params: {} +- name: pools + endpoint: + path: /configure/v1/pools + method: GET + data_selector: array + params: {} +- name: create_pool + endpoint: + path: /configure/v1/pools + method: POST + data_selector: array + params: {} +- name: pool_by_id + endpoint: + path: /configure/v1/pools/{id} + method: GET + data_selector: array + params: {} +- name: update_pool + endpoint: + path: /configure/v1/pools/{id} + method: PUT + data_selector: array + params: {} +- name: delete_pool + endpoint: + path: /configure/v1/pools/{id} + method: DELETE + data_selector: array + params: {} +- name: saved_graphics_templates + endpoint: + path: /configure/v1/saved_graphics_templates/{id}/templates.swf + method: GET + data_selector: array + params: {} +- name: saved_image + endpoint: + path: /configure/v1/saved_images/{id} + method: GET + data_selector: array + params: {} +- name: services + endpoint: + path: /services + method: GET + data_selector: services +- name: create_service + endpoint: + path: /services + method: POST + data_selector: service +- name: get_service_sdp + endpoint: + path: /services/2110-out/{id}.sdp + method: GET + data_selector: sdp +- name: get_service + endpoint: + path: /services/{id} + method: GET + data_selector: service +- name: update_service + endpoint: + path: /services/{id} + method: PUT + data_selector: service +- name: delete_service + endpoint: + path: /services/{id} + method: DELETE + data_selector: service +- name: get_general_setting + endpoint: + path: /settings/general + method: GET + data_selector: generalSetting +- name: set_general_setting + endpoint: + path: /settings/general + method: PUT + data_selector: setting +- name: get_sources + endpoint: + path: /sources + method: GET + data_selector: sources +- name: create_source + endpoint: + path: /sources + method: POST + data_selector: source +- name: get_source + endpoint: + path: /sources/{id} + method: GET + data_selector: source +- name: update_source + endpoint: + path: /sources_ext/{id} + method: PUT + data_selector: source +- name: delete_source + endpoint: + path: /sources/{id} + method: DELETE + data_selector: source +- name: asset + endpoint: + path: /api/assets + method: GET + data_selector: records + params: {} +- name: network + endpoint: + path: /api/v1/networks + method: GET + data_selector: records + params: {} +- name: muxService + endpoint: + path: /api/v1/muxServices + method: GET + data_selector: records + params: {} +- name: DrmTrackFilterList + endpoint: + path: /drm/track/filter/list + method: GET + data_selector: records +- name: DvbSubtitleProcessingProperties + endpoint: + path: /dvb/subtitle/processing/properties + method: GET + data_selector: records +- name: AccessLogToLokiConfig + endpoint: + path: /accesslogtolokiconfig + method: GET + data_selector: records + params: {} +- name: AccessLogToS3Config + endpoint: + path: /accesslogtos3config + method: GET + data_selector: records + params: {} +- name: AutoScalingConfig + endpoint: + path: /autoscalingconfig + method: GET + data_selector: records + params: {} +- name: validate_audio_metadata + endpoint: + path: /configure/v1/validate_audio_metadata + method: POST + data_selector: No Content + params: + audioGrooming: audioGrooming +- name: validate_data_metadata + endpoint: + path: /configure/v1/validate_data_metadata + method: POST + data_selector: No Content + params: + dataGrooming: dataGrooming +- name: esam_go_config + endpoint: + path: /esam-pois/v1/esamGoConfig + method: GET + data_selector: object + params: {} +- name: update_esam_go_config + endpoint: + path: /esam-pois/v1/esamGoConfig + method: PUT + data_selector: string + params: + config: config +- name: settings + endpoint: + path: /external-asset-potf/v1/settings + method: GET + data_selector: ExternalAssetPotfSettings + params: {} +- name: update_settings + endpoint: + path: /external-asset-potf/v1/settings + method: PUT + data_selector: No Content + params: + settings: Settings +- name: packaging_profile + endpoint: + path: /external-ott-repackager/v1/packaging_profile + method: GET + data_selector: PackagingProfileWithPolicy + params: + expandProfile: 'false' +- name: update_packaging_profile + endpoint: + path: /external-ott-repackager/v1/packaging_profile + method: PUT + data_selector: No Content + params: + profile: Packaging Profile +- name: repackage_properties + endpoint: + path: /external-ott-repackager/v1/repackage_properties + method: GET + data_selector: RepackageProperties array + params: {} +- name: create_repackage_properties + endpoint: + path: /external-ott-repackager/v1/repackage_properties + method: POST + data_selector: No Content + params: + profile: Repackage Properties +- name: live_extraction_jobs + endpoint: + path: /live-extraction/v1/jobs + method: GET + data_selector: LiveExtractionJob array + params: {} +- name: create_live_extraction_job + endpoint: + path: /live-extraction/v1/jobs + method: POST + data_selector: LiveExtractionJob + params: + liveExtractionParam: Live extraction param +- name: ServiceLimit + endpoint: + path: /services/serviceLimit + method: GET + data_selector: serviceLimit + params: {} +- name: SourceFailoverCondition + endpoint: + path: /services/sourceFailoverCondition + method: GET + data_selector: sourceFailoverCondition + params: {} +- name: SrtCloudInputSettings + endpoint: + path: /services/srtCloudInputSettings + method: GET + data_selector: srtCloudInputSettings + params: {} +- name: SrtCloudOutputSettings + endpoint: + path: /services/srtCloudOutputSettings + method: GET + data_selector: srtCloudOutputSettings + params: {} +- name: AudioTrack + endpoint: + path: /services/data/vXX.X/sobjects/AudioTrack + method: GET + data_selector: records +- name: CaptionServiceDescriptor + endpoint: + path: /services/data/vXX.X/sobjects/CaptionServiceDescriptor + method: GET + data_selector: records +- name: InputStatisticEntry + endpoint: + path: /api/v1/inputStatisticEntry + method: GET +- name: OriginStatistic + endpoint: + path: /api/v1/originStatistic + method: GET +- name: live_ingest_origin_settings + endpoint: + path: /live-ingest-origin/v1/settings + method: POST + data_selector: No Content + params: + setting: setting +- name: logs + endpoint: + path: /logs/v1/logs + method: GET + data_selector: No Content + params: {} +- name: download_logs + endpoint: + path: /logs/v1/logs/download + method: GET + data_selector: No Content + params: {} +- name: active_active_service_role + endpoint: + path: /monitor/v1/activeActiveServiceRole/{id} + method: GET + data_selector: No Content + params: + id: id +- name: live_events_date_time + endpoint: + path: /monitor/v1/live-events/date-time + method: GET + data_selector: string + params: {} +- name: update_live_event + endpoint: + path: /monitor/v1/live-events/{id} + method: PUT + data_selector: No Content + params: + id: id + updateRequest: updateRequest +- name: end_live_event + endpoint: + path: /monitor/v1/live-events/{id}/end + method: PUT + data_selector: No Content + params: + id: id +- name: go_live_event + endpoint: + path: /monitor/v1/live-events/{id}/live + method: PUT + data_selector: No Content + params: + id: id +- name: offline_live_event + endpoint: + path: /monitor/v1/live-events/{id}/offline + method: PUT + data_selector: No Content + params: + id: id +- name: preview_live_event + endpoint: + path: /monitor/v1/live-events/{id}/online + method: PUT + data_selector: No Content + params: + id: id +- name: activated_services + endpoint: + path: /monitor/v1/services + method: GET + data_selector: No Content + params: {} +- name: services_status + endpoint: + path: /monitor/v1/services-status + method: GET + data_selector: No Content + params: {} +- name: services_status_by_id + endpoint: + path: /monitor/v1/services-status/{id} + method: GET + data_selector: No Content + params: + id: id +- name: scte_104_client_connections + endpoint: + path: /monitor/v1/services/scte-104 + method: GET + data_selector: No Content + params: {} +- name: activated_service + endpoint: + path: /monitor/v1/services/{id} + method: GET + data_selector: No Content + params: + id: id +- name: graphics_status + endpoint: + path: /monitor/v1/services/{id}/graphics + method: GET + data_selector: No Content + params: + id: id +- name: turn_on_off_graphics + endpoint: + path: /monitor/v1/services/{id}/graphics + method: POST + data_selector: No Content + params: + id: id + graphicsRequestConfig: graphicsRequestConfig +- name: logo_status + endpoint: + path: /monitor/v1/services/{id}/logo + method: GET + data_selector: No Content + params: + id: id +- name: turn_on_off_logo + endpoint: + path: /monitor/v1/services/{id}/logo + method: POST + data_selector: No Content + params: + id: id + logoRequestConfig: logoRequestConfig +- name: mute_unmute_service_output_state + endpoint: + path: /monitor/v1/services/{id}/muteOutput + method: GET + data_selector: No Content + params: + id: id +- name: mute_unmute_service_output + endpoint: + path: /monitor/v1/services/{id}/muteOutput + method: POST + data_selector: No Content + params: + id: id + isMute: isMute +- name: redundancy_group_status + endpoint: + path: /monitor/v1/services/{id}/redundancy_group + method: GET + data_selector: No Content + params: + id: id +- name: join_quit_redundancy_group + endpoint: + path: /monitor/v1/services/{id}/redundancy_group + method: POST + data_selector: No Content + params: + id: id + redundanyGroupRequestConfig: redundanyGroupRequestConfig +- name: sources + endpoint: + path: /configure/v1/sources + method: GET + data_selector: inputs +- name: services + endpoint: + path: /configure/v1/services + method: GET + data_selector: serviceSources +- name: source_discovery + endpoint: + path: /source-monitor/v1/discover + method: POST + data_selector: discovery +- name: LLCU Asset + endpoint: + path: /ami/llcu/asset/{assetId} + method: GET + data_selector: Content +- name: List LLCU Assets + endpoint: + path: /ami/llcu/llcuassetlist + method: GET + data_selector: Contents +- name: Create LLCU Asset + endpoint: + path: /ami/llcu/asset/{assetId} + method: PUT + data_selector: Content +- name: Delete LLCU Asset + endpoint: + path: /ami/llcu/asset/{assetId} + method: DELETE +- name: Status + endpoint: + path: /status + method: GET + data_selector: status +- name: Logs + endpoint: + path: /logs/v1/logs + method: GET +- name: notifications + endpoint: + path: /notifications + method: GET + data_selector: notifications + params: {} +- name: schedule_fix_notifications + endpoint: + path: /notifications/{id}/schedule_fix + method: POST + data_selector: schedule_fix + params: {} +- name: update_asset + endpoint: + path: /asset-acquisition/v1/asset + method: PUT + data_selector: asset + params: {} +- name: get_external_assets_status + endpoint: + path: /asset-acquisition/v1/asset/external + method: GET + data_selector: external_assets + params: {} +- name: create_external_assets_dash + endpoint: + path: /asset-acquisition/v1/asset/external/dash + method: POST + data_selector: external_asset_dash + params: {} +- name: create_external_assets_hls + endpoint: + path: /asset-acquisition/v1/asset/external/hls + method: POST + data_selector: external_asset_hls + params: {} +- name: download_asset_from_file_server + endpoint: + path: /asset-acquisition/v1/asset/fileserver + method: POST + data_selector: file_server_asset + params: {} +- name: create_asset_from_llcu + endpoint: + path: /asset-acquisition/v1/asset/llcu + method: POST + data_selector: llcu_asset + params: {} +- name: create_record_from_channel + endpoint: + path: /asset-acquisition/v1/asset/record + method: POST + data_selector: record_creation + params: {} +- name: create_asset_from_s3 + endpoint: + path: /asset-acquisition/v1/asset/s3 + method: POST + data_selector: s3_asset + params: {} +- name: update_segments_by_asset_id + endpoint: + path: /asset-acquisition/v1/asset/segments + method: PUT + data_selector: segments + params: {} +- name: delete_source_file_asset + endpoint: + path: /asset-acquisition/v1/asset/source-file/{assetId} + method: DELETE + data_selector: delete_asset + params: {} +- name: get_status_of_input_assets + endpoint: + path: /asset-acquisition/v1/asset/url + method: GET + data_selector: input_assets + params: {} +- name: download_asset_to_local_storage + endpoint: + path: /asset-acquisition/v1/asset/url + method: POST + data_selector: download_asset + params: {} +- name: get_segments_by_asset_id + endpoint: + path: /asset-acquisition/v1/asset/{assetId}/segments + method: GET + data_selector: segments_by_asset + params: {} +- name: get_asset_by_id + endpoint: + path: /asset-acquisition/v1/asset/{id} + method: GET + data_selector: asset_by_id + params: {} +- name: delete_asset + endpoint: + path: /asset-acquisition/v1/asset/{id} + method: DELETE + data_selector: delete_asset + params: {} +- name: action_on_asset + endpoint: + path: /asset-acquisition/v1/asset/{id}/action + method: POST + data_selector: action_on_asset + params: {} +- name: get_asset_cue_point_info + endpoint: + path: /asset-acquisition/v1/asset/{id}/cue-point-info + method: GET + data_selector: cue_point_info + params: {} +- name: update_asset_cue_point_info + endpoint: + path: /asset-acquisition/v1/asset/{id}/cue-point-info + method: PUT + data_selector: update_cue_point_info + params: {} +- name: get_asset_destination_profile_details + endpoint: + path: /asset-acquisition/v1/asset/{id}/destination-profile + method: GET + data_selector: destination_profile_details + params: {} +- name: remove_retained_program_chapter_start + endpoint: + path: /monitor/v1/services/{id}/remove_retained_program_chapter_start + method: POST + data_selector: No Content + params: + id: string + removeRetainedProgramChapterStartState: com.harmonicinc.vos.app.monitor.model.RemoveRetainedProgramChapterStartState +- name: reset_statistics + endpoint: + path: /monitor/v1/services/{id}/resetStatistics + method: POST + data_selector: boolean + params: + id: string +- name: get_slate_status + endpoint: + path: /monitor/v1/services/{id}/slate + method: GET + data_selector: com.harmonicinc.vos.app.monitor.model.SlateStatus + params: + id: string + slateType: string +- name: turn_on_off_slate + endpoint: + path: /monitor/v1/services/{id}/slate + method: POST + data_selector: com.harmonicinc.vos.app.monitor.model.SlateStatus + params: + id: string + slateRequestConfig: com.harmonicinc.vos.app.monitor.model.SlateRequestConfig +- name: switch_active_instance + endpoint: + path: /monitor/v1/services/{id}/switch_active_instance + method: POST + data_selector: No Content + params: + id: string +- name: get_thumbnail + endpoint: + path: /monitor/v1/services/{id}/thumbnail + method: GET + data_selector: No Content + params: + id: string +- name: get_drm_control_status + endpoint: + path: /monitor/v1/services/{id}/toggle_drm + method: GET + data_selector: com.harmonicinc.vos.app.monitor.model.ToggleDrmState + params: + id: string +- name: force_unencrypted_drm + endpoint: + path: /monitor/v1/services/{id}/toggle_drm + method: POST + data_selector: No Content + params: + id: string + toggleDrmState: com.harmonicinc.vos.app.monitor.model.ToggleDrmState +- name: get_unmute_output_start_end_time + endpoint: + path: /monitor/v1/services/{id}/unmuteOutputStartEndTime + method: GET + data_selector: com.harmonicinc.vos.spi.operation.ServiceOutputUnmuteStartEndTime + params: + id: string +- name: set_unmute_output_start_time + endpoint: + path: /monitor/v1/services/{id}/unmuteOutputStartEndTime + method: POST + data_selector: No Content + params: + id: string + serviceOutputUnmuteStartEndTime: com.harmonicinc.vos.spi.operation.ServiceOutputUnmuteStartEndTime +- name: create_full_transcoding_service + endpoint: + path: /mux/v1/create-full-service + method: POST + data_selector: com.harmonicinc.vos.mux.model.common.MuxFullService + params: + serviceWithParameters: com.harmonicinc.vos.mux.model.common.MuxFullService +- name: get_monitoring_sdi_ports + endpoint: + path: /mux/v1/monitor/sdi-ports + method: GET + data_selector: com.harmonicinc.vos.mux.monitor.model.sdi.MonitorSdiPort[] + params: {} +- name: get_monitoring_ts_inputs + endpoint: + path: /mux/v1/monitor/ts-inputs + method: GET + data_selector: com.harmonicinc.vos.mux.monitor.model.tsinput.MonitorInputTS[] + params: {} +- name: get_blackout_state + endpoint: + path: /mux/v1/monitor/{muxServiceId}/blackout + method: GET + data_selector: com.harmonicinc.vos.mux.monitor.model.blackout.BlackoutOutputProgramState[] + params: + muxServiceId: string +- name: enable_blackout + endpoint: + path: /mux/v1/monitor/{muxServiceId}/blackout + method: POST + data_selector: object + params: + muxServiceId: string + blackoutOutputProgramStateList: com.harmonicinc.vos.mux.monitor.model.blackout.BlackoutOutputProgramState[] +- name: get_eas_status + endpoint: + path: /mux/v1/monitor/{muxServiceId}/eas + method: GET + data_selector: com.harmonicinc.vos.mux.monitor.model.eas.EasOutputProgramState[] + params: + muxServiceId: string +- name: send_manual_switch_command + endpoint: + path: /mux/v1/monitor/{muxServiceId}/eas/switch + method: POST + data_selector: object + params: + muxServiceId: string + easSwitchRequestCommand: com.harmonicinc.vos.mux.monitor.model.eas.EasSwitchRequestCommand +- name: get_current_triveni_tables + endpoint: + path: /mux/v1/monitor/{muxServiceId}/triveni + method: GET + data_selector: com.harmonicinc.vos.mux.monitor.model.triveni.TriveniTable[] + params: + muxServiceId: string +- name: get_monitoring_ts_inputs_for_mux + endpoint: + path: /mux/v1/monitor/{muxServiceId}/ts-inputs + method: GET + data_selector: com.harmonicinc.vos.mux.monitor.model.tsinput.MonitorInputTS[] + params: + muxServiceId: string +- name: get_monitoring_one_ts_input + endpoint: + path: /mux/v1/monitor/{muxServiceId}/ts-inputs/{inputObjectId} + method: GET + data_selector: object + params: + muxServiceId: string + inputObjectId: string +- name: get_all_networks + endpoint: + path: /mux/v1/networks + method: GET + data_selector: com.harmonicinc.vos.mux.model.common.Network[] + params: {} +- name: assign_new_network + endpoint: + path: /mux/v1/networks + method: POST + data_selector: com.harmonicinc.vos.mux.model.common.Network + params: + body: com.harmonicinc.vos.mux.model.common.Network +- name: get_network_by_id + endpoint: + path: /mux/v1/networks/{networkId} + method: GET + data_selector: com.harmonicinc.vos.mux.model.common.Network + params: + networkId: string +- name: networks + endpoint: + path: /mux/v1/networks/{networkId} + method: PUT + data_selector: Updated network + params: {} +- name: services + endpoint: + path: /mux/v1/services + method: GET + data_selector: OK + params: {} +- name: table_generators + endpoint: + path: /mux/v1/table-generators + method: GET + data_selector: successful operation + params: {} +- name: transport_streams + endpoint: + path: /mux/v1/transport-streams + method: GET + data_selector: OK + params: {} +- name: notifications + endpoint: + path: /notification/v1/notifications + method: GET + data_selector: OK + params: {} +- name: channels + endpoint: + path: /origin-engine/v1/channels + method: GET + data_selector: OK + params: {} +- name: llcu_assets + endpoint: + path: /origin-engine/v1/llcu/assets + method: GET + data_selector: OK + params: {} +- name: asset_destination_profile + endpoint: + path: /asset-acquisition/v1/asset/{id}/destination-profile + method: PUT + data_selector: No Content + params: + id: PathParameter + updateRequest: BodyParameter +- name: asset_encryption_settings + endpoint: + path: /asset-acquisition/v1/asset/{id}/drm + method: GET + data_selector: DrmProperties + params: + id: PathParameter +- name: set_asset_encryption_settings + endpoint: + path: /asset-acquisition/v1/asset/{id}/drm + method: PUT + data_selector: object + params: + id: PathParameter + drmProperties: BodyParameter +- name: asset_metadata + endpoint: + path: /asset-acquisition/v1/asset/{id}/metadata + method: GET + data_selector: AssetMetadata + params: + id: PathParameter +- name: upload_asset_subtitle + endpoint: + path: /asset-acquisition/v1/asset/{id}/subtitle + method: POST + data_selector: string + params: + subtitle_file: FormDataParameter + id: PathParameter + pac_code_page: QueryParameter + pac_offset: QueryParameter + subtitle_language: QueryParameter + subtitle_type: QueryParameter +- name: asset_thumbnail + endpoint: + path: /asset-acquisition/v1/asset/{id}/thumbnail + method: GET + data_selector: No Content + params: + id: PathParameter +- name: all_assets + endpoint: + path: /asset-acquisition/v1/assets + method: GET + data_selector: Asset + params: + title: QueryParameter + labels: QueryParameter + uriRegex: QueryParameter + creationDate: QueryParameter + skip: QueryParameter + limit: QueryParameter + sortBy: QueryParameter + sortDirection: QueryParameter +- name: assets_library + endpoint: + path: /asset-acquisition/v1/assets/library + method: GET + data_selector: Asset + params: + title: QueryParameter + labels: QueryParameter + skip: QueryParameter + limit: QueryParameter + sortBy: QueryParameter + sortDirection: QueryParameter +- name: assets_pending_decision + endpoint: + path: /asset-acquisition/v1/assets/need_decision + method: GET + data_selector: Asset + params: + trimmed: QueryParameter + title: QueryParameter + skip: QueryParameter + limit: QueryParameter + sortBy: QueryParameter + sortDirection: QueryParameter +- name: submit_decision + endpoint: + path: /asset-acquisition/v1/decision + method: POST + data_selector: string array + params: + decision: BodyParameter +- name: export_packaged_asset + endpoint: + path: /asset-acquisition/v1/export + method: POST + data_selector: string + params: + fileServerAssetExport: BodyParameter +- name: status_of_asset_exporting + endpoint: + path: /asset-acquisition/v1/export/{id} + method: GET + data_selector: ExportLog + params: + id: PathParameter +- name: chunk_upload_file + endpoint: + path: /asset-acquisition/v1/file/upload + method: POST + data_selector: object + params: + asset_file: FormDataParameter +- name: update_existing_file_server + endpoint: + path: /asset-acquisition/v1/fileserver + method: PUT + data_selector: string + params: + restFileServerSetup: BodyParameter +- name: register_new_file_server + endpoint: + path: /asset-acquisition/v1/fileserver + method: POST + data_selector: RestFileServerSetup + params: + restFileServerSetup: BodyParameter +- name: status_of_input_asset + endpoint: + path: /asset-acquisition/v1/fileserver/asset/status + method: GET + data_selector: FileServerAssetDetails + params: + id: QueryParameter +- name: get_file_server_by_id + endpoint: + path: /asset-acquisition/v1/fileserver/{id} + method: GET + data_selector: RestFileServerSetup + params: + id: PathParameter +- name: delete_file_server + endpoint: + path: /asset-acquisition/v1/fileserver/{id} + method: DELETE + data_selector: string + params: + id: PathParameter +- name: all_file_servers + endpoint: + path: /asset-acquisition/v1/fileservers + method: GET + data_selector: RestFileServerSetup + params: {} +- name: update_graphic + endpoint: + path: /asset-acquisition/v1/graphic + method: PUT + data_selector: object + params: + graphic: BodyParameter +- name: get_graphic_by_id + endpoint: + path: /asset-acquisition/v1/graphic/{id} + method: GET + data_selector: Graphic + params: + id: PathParameter +- name: delete_graphic + endpoint: + path: /asset-acquisition/v1/graphic/{id} + method: DELETE + data_selector: string + params: + id: PathParameter +- name: all_graphics + endpoint: + path: /asset-acquisition/v1/graphics + method: GET + data_selector: Graphic + params: {} +- name: llcu_asset + endpoint: + path: /llcu/assets + method: POST + data_selector: object +- name: llcu_asset_get + endpoint: + path: /llcu/assets/{id} + method: GET + data_selector: object +- name: llcu_asset_update + endpoint: + path: /llcu/assets/{id} + method: PUT + data_selector: object +- name: llcu_asset_delete + endpoint: + path: /llcu/assets/{id} + method: DELETE + data_selector: object +- name: llcu_asset_drm_settings_get + endpoint: + path: /llcu/assets/{id}/drm_setting + method: GET + data_selector: object +- name: llcu_asset_drm_settings_update + endpoint: + path: /llcu/assets/{id}/drm_setting + method: PUT + data_selector: object +- name: pre_warming_schedule_get + endpoint: + path: /schedule + method: GET + data_selector: object +- name: pre_warming_event_add + endpoint: + path: /schedule/events + method: POST + data_selector: object +- name: pre_warming_event_get + endpoint: + path: /schedule/events/{id} + method: GET + data_selector: object +- name: pre_warming_event_update + endpoint: + path: /schedule/events/{id} + method: PUT + data_selector: object +- name: pre_warming_event_delete + endpoint: + path: /schedule/events/{id} + method: DELETE + data_selector: object +- name: origin_engine_settings_get + endpoint: + path: /settings + method: GET + data_selector: object +- name: origin_engine_settings_update + endpoint: + path: /settings + method: PUT + data_selector: object +- name: test_object_info_get + endpoint: + path: /static_resources/test_object + method: GET + data_selector: object +- name: test_object_update + endpoint: + path: /static_resources/test_object + method: POST + data_selector: object +- name: test_object_delete + endpoint: + path: /static_resources/test_object + method: DELETE + data_selector: object +- name: vod_profile_map_delete + endpoint: + path: /vod/profile_map/{id} + method: DELETE + data_selector: object +- name: playout_channels_get + endpoint: + path: /channels + method: GET + data_selector: object +- name: missing_assets_get + endpoint: + path: /channels/{channelId}/missing-assets + method: GET + data_selector: object +- name: channel_settings_get + endpoint: + path: /channels/{channelId}/settings + method: GET + data_selector: object +- name: channel_settings_update + endpoint: + path: /channels/{channelId}/settings + method: PUT + data_selector: object +- name: events_list_get + endpoint: + path: /events/{channelId} + method: GET + data_selector: object +- name: primary_events_delete + endpoint: + path: /events/{channelId}/primaries/{firstPrimaryId} + method: DELETE + data_selector: object +- name: create_graphics_from_file_server + endpoint: + path: /asset-acquisition/v1/graphics/fileserver + method: POST + data_selector: '' + params: {} +- name: get_library_graphics + endpoint: + path: /asset-acquisition/v1/graphics/library + method: GET + data_selector: '' + params: {} +- name: create_graphics_from_s3 + endpoint: + path: /asset-acquisition/v1/graphics/s3 + method: POST + data_selector: '' + params: {} +- name: graphql_api_endpoint + endpoint: + path: /asset-acquisition/v1/graphql + method: POST + data_selector: '' + params: {} +- name: create_grooming_profile + endpoint: + path: /asset-acquisition/v1/grooming-profile + method: POST + data_selector: '' + params: {} +- name: get_grooming_profile + endpoint: + path: /asset-acquisition/v1/grooming-profile/{id} + method: GET + data_selector: '' + params: {} +- name: update_grooming_profile + endpoint: + path: /asset-acquisition/v1/grooming-profile/{id} + method: PUT + data_selector: '' + params: {} +- name: delete_grooming_profile + endpoint: + path: /asset-acquisition/v1/grooming-profile/{id} + method: DELETE + data_selector: '' + params: {} +- name: get_list_of_grooming_profiles + endpoint: + path: /asset-acquisition/v1/grooming-profiles + method: GET + data_selector: '' + params: {} +- name: get_job + endpoint: + path: /asset-acquisition/v1/job/{id} + method: GET + data_selector: '' + params: {} +- name: cancel_job + endpoint: + path: /asset-acquisition/v1/job/{id}/cancel + method: POST + data_selector: '' + params: {} +- name: get_all_jobs + endpoint: + path: /asset-acquisition/v1/jobs + method: GET + data_selector: '' + params: {} +- name: get_jobs_statistics + endpoint: + path: /asset-acquisition/v1/jobs/statistics + method: GET + data_selector: '' + params: {} +- name: save_new_logo_template + endpoint: + path: /asset-acquisition/v1/logo-template + method: POST + data_selector: '' + params: {} +- name: get_logo_template_by_id + endpoint: + path: /asset-acquisition/v1/logo-template/{id} + method: GET + data_selector: '' + params: {} +- name: delete_logo_template + endpoint: + path: /asset-acquisition/v1/logo-template/{id} + method: DELETE + data_selector: '' + params: {} +- name: get_all_logo_templates + endpoint: + path: /asset-acquisition/v1/logo-templates + method: GET + data_selector: '' + params: {} +- name: get_active_service_info + endpoint: + path: /asset-acquisition/v1/servicesInfo/{id} + method: GET + data_selector: '' + params: {} +- name: get_settings + endpoint: + path: /external-asset-potf/v1/settings + method: GET + data_selector: '' + params: {} +- name: set_settings + endpoint: + path: /asset-acquisition/v1/settings + method: PUT + data_selector: '' + params: {} +- name: attach_subtitle_from_file_server + endpoint: + path: /asset-acquisition/v1/subtitle/fileserver + method: POST + data_selector: '' + params: {} +- name: attach_subtitle_from_s3 + endpoint: + path: /asset-acquisition/v1/subtitle/s3 + method: POST + data_selector: '' + params: {} +- name: delete_subtitle + endpoint: + path: /asset-acquisition/v1/subtitle/{id} + method: DELETE + data_selector: '' + params: {} +- name: get_all_manifest_filtering_profiles + endpoint: + path: /atm/v1/manifest-filtering/profiles + method: GET + data_selector: '' + params: {} +- name: insert_primary_event + endpoint: + path: /events/{channelId}/primary + method: POST + data_selector: PrimaryProperties +- name: update_primary_event + endpoint: + path: /events/{channelId}/primary/{primaryId} + method: PUT + data_selector: string +- name: delete_primary_event + endpoint: + path: /events/{channelId}/primary/{primaryId} + method: DELETE + data_selector: string +- name: play_next_event + endpoint: + path: /events/{channelId}/primary/{primaryId}/play + method: POST + data_selector: string +- name: insert_secondary_event + endpoint: + path: /events/{channelId}/primary/{primaryId}/secondary + method: POST + data_selector: SecondaryProperties +- name: update_secondary_event + endpoint: + path: /events/{channelId}/primary/{primaryId}/secondary/{secondaryId} + method: PUT + data_selector: string +- name: delete_secondary_event + endpoint: + path: /events/{channelId}/primary/{primaryId}/secondary/{secondaryId} + method: DELETE + data_selector: string +- name: create_sequence + endpoint: + path: /events/{channelId}/sequence + method: POST + data_selector: string +- name: update_sequence + endpoint: + path: /events/{channelId}/sequence/{sequenceId} + method: PUT + data_selector: string +- name: delete_sequence + endpoint: + path: /events/{channelId}/sequence/{sequenceId} + method: DELETE + data_selector: string +- name: play_sequence + endpoint: + path: /events/{channelId}/sequence/{sequenceId}/play + method: POST + data_selector: string +- name: get_all_sequences + endpoint: + path: /events/{channelId}/sequences + method: GET + data_selector: SequenceElement +- name: get_sequence_by_id + endpoint: + path: /events/{channelId}/sequences/{sequenceId} + method: GET + data_selector: SequenceElement +- name: manifest_filtering_profiles + endpoint: + path: /manifest-filtering/profiles + method: POST + data_selector: No Content + params: {} +- name: get_manifest_filtering_profile + endpoint: + path: /manifest-filtering/profiles/{id} + method: GET + data_selector: com.harmonicinc.vos.app.atm.datatypes.Profile + params: {} +- name: update_manifest_filtering_profile + endpoint: + path: /manifest-filtering/profiles/{id} + method: PUT + data_selector: com.harmonicinc.vos.app.atm.datatypes.Profile + params: {} +- name: delete_manifest_filtering_profile + endpoint: + path: /manifest-filtering/profiles/{id} + method: DELETE + data_selector: No Content + params: {} +- name: get_atm_setting + endpoint: + path: /settings + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.AtmSettingConfig + params: {} +- name: set_atm_setting + endpoint: + path: /settings + method: PUT + data_selector: com.harmonicinc.vos.app.atm.rest.model.AtmSettingConfig + params: {} +- name: get_variant_channels_filter + endpoint: + path: /variant-channels-filter + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.VariantChannelsFilter + params: {} +- name: create_variant_channels_filter + endpoint: + path: /variant-channels-filter + method: POST + data_selector: com.harmonicinc.vos.app.atm.rest.model.VariantChannelsFilter + params: {} +- name: get_variant_channels_filter_status + endpoint: + path: /variant-channels-filter-status + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.VariantChannelsFilterStatus + params: {} +- name: get_content_generation_channels + endpoint: + path: /vcm/content-generation-channels + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.ContentGenerationChannel + params: {} +- name: create_content_generation_channel + endpoint: + path: /vcm/content-generation-channels + method: POST + data_selector: com.harmonicinc.vos.app.atm.rest.model.ContentGenerationChannel + params: {} +- name: get_content_replacement_channels + endpoint: + path: /vcm/content-replacement-channels + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.ContentReplacementChannel + params: {} +- name: create_content_replacement_channel + endpoint: + path: /vcm/content-replacement-channels + method: POST + data_selector: com.harmonicinc.vos.app.atm.rest.model.ContentReplacementChannel + params: {} +- name: get_live_event_clipping_channels + endpoint: + path: /vcm/live-event-clipping-channels + method: GET + data_selector: com.harmonicinc.vos.app.atm.rest.model.LiveEventClippingChannel + params: {} +- name: live_event_clipping_channel + endpoint: + path: /live-event-clipping-channels + method: POST + data_selector: records + params: {} +- name: regional_ads_channel + endpoint: + path: /regional-ads-channels + method: POST + data_selector: records + params: {} +- name: sourceID_mapping + endpoint: + path: /variant-channels-sourceid-mapping + method: POST + data_selector: records + params: {} +- name: get_all_onair_graphics + endpoint: + path: /playoutcontrol/v1/graphics/{channelId} + method: GET + data_selector: Graphic +- name: update_graphic_on_layer + endpoint: + path: /playoutcontrol/v1/graphics/{channelId}/layer/{layer} + method: PUT + data_selector: string +- name: start_graphic_on_layer + endpoint: + path: /playoutcontrol/v1/graphics/{channelId}/layer/{layer} + method: POST + data_selector: string +- name: stop_graphic_on_layer + endpoint: + path: /playoutcontrol/v1/graphics/{channelId}/layer/{layer}/stop + method: POST + data_selector: string +- name: unload_graphic_on_layer + endpoint: + path: /playoutcontrol/v1/graphics/{channelId}/layer/{layer}/unload + method: POST + data_selector: string +- name: unload_all_graphics + endpoint: + path: /playoutcontrol/v1/graphics/{channelId}/unload + method: POST + data_selector: string +- name: get_live_source_monitoring + endpoint: + path: /playoutcontrol/v1/livesources/{channelId} + method: GET + data_selector: LiveSourceMonitoringProperties +- name: start_live_source_monitoring + endpoint: + path: /playoutcontrol/v1/livesources/{channelId}/player/{player}/startmonitoring + method: POST + data_selector: string +- name: stop_live_source_monitoring + endpoint: + path: /playoutcontrol/v1/livesources/{channelId}/player/{player}/stopmonitoring + method: POST + data_selector: string +- name: update_default_live_source + endpoint: + path: /playoutcontrol/v1/livesources/{channelId}/switch-default-source + method: PUT + data_selector: string +- name: toggle_source_input_switch + endpoint: + path: /playoutcontrol/v1/livesources/{channelId}/switch_input + method: POST + data_selector: string +- name: send_scte35_message + endpoint: + path: /playoutcontrol/v1/scte35/{channelId} + method: POST + data_selector: string +- name: create_playlist_trigger + endpoint: + path: /playoutcontrol/v1/trigger + method: POST + data_selector: TriggerConf +- name: update_playlist_trigger + endpoint: + path: /playoutcontrol/v1/trigger/{triggerId} + method: PUT + data_selector: string +- name: delete_playlist_trigger + endpoint: + path: /playoutcontrol/v1/trigger/{triggerId} + method: DELETE + data_selector: string +- name: get_playlist_triggers + endpoint: + path: /playoutcontrol/v1/triggers + method: GET + data_selector: TriggerConf +- name: update_certificate_and_private_key + endpoint: + path: /scrambling/v1/drm/clientAuthCertKey + method: POST +- name: get_all_drm_fixed_resources + endpoint: + path: /scrambling/v1/drm/fixedResources + method: GET + data_selector: DrmFixedResource +- name: create_drm_fixed_resource + endpoint: + path: /scrambling/v1/drm/fixedResources + method: POST + data_selector: DrmFixedResource +- name: get_drm_fixed_resource + endpoint: + path: /scrambling/v1/drm/fixedResources/{id} + method: GET + data_selector: DrmFixedResource +- name: update_drm_fixed_resource + endpoint: + path: /scrambling/v1/drm/fixedResources/{id} + method: PUT +- name: delete_drm_fixed_resource + endpoint: + path: /scrambling/v1/drm/fixedResources/{id} + method: DELETE +- name: get_drm_settings + endpoint: + path: /scrambling/v1/drm/settings + method: GET + data_selector: DrmSettings +- name: client_app + endpoint: + path: /client-apps/v1/apps/{clientId} + method: GET + data_selector: ClientDetailsResponse +- name: AHDR_SL_HDR1_CONFIG + endpoint: + path: /configure/v1/AHDR_SL_HDR1_CONFIG + method: GET + data_selector: Image +- name: DOLBY_VISION_CONFIG + endpoint: + path: /configure/v1/DOLBY_VISION_CONFIG + method: GET + data_selector: Image +- name: LUT + endpoint: + path: /configure/v1/LUT + method: GET + data_selector: Image +- name: descrambling_keys + endpoint: + path: /configure/v1/descrambling-keys + method: GET + data_selector: DescramblingKeys +- name: destinations + endpoint: + path: /configure/v1/destinations + method: GET + data_selector: Destination +- name: destination + endpoint: + path: /configure/v1/destinations/{id} + method: GET + data_selector: Destination + params: + id: id +- name: font + endpoint: + path: /configure/v1/fonts + method: GET + data_selector: Image + params: {} +- name: fullService + endpoint: + path: /configure/v1/fullService/{id} + method: GET + data_selector: FullService + params: + id: id +- name: graphics_template + endpoint: + path: /configure/v1/graphics-templates/{id} + method: GET + data_selector: Image + params: + id: id +- name: image_sync_config + endpoint: + path: /configure/v1/imageSync/config + method: GET + data_selector: ImageFileSyncConfig + params: {} +- name: drm_settings + endpoint: + path: /scrambling/v1/drm/settings + method: PUT + data_selector: No Content + params: + drmSettings: 'true' +- name: drm_systems + endpoint: + path: /scrambling/v1/drm/systems + method: GET + data_selector: '[]' + params: {} +- name: create_drm_system + endpoint: + path: /scrambling/v1/drm/systems + method: POST + data_selector: '[]' + params: + drmSystem: 'true' +- name: get_drm_system + endpoint: + path: /scrambling/v1/drm/systems/{id} + method: GET + data_selector: '[]' + params: + id: 'true' +- name: update_drm_system + endpoint: + path: /scrambling/v1/drm/systems/{id} + method: PUT + data_selector: No Content + params: + id: 'true' + drmSystem: 'true' +- name: delete_drm_system + endpoint: + path: /scrambling/v1/drm/systems/{id} + method: DELETE + data_selector: No Content + params: + id: 'true' +- name: view_certificate + endpoint: + path: /scrambling/v1/drm/systems/{systemId}/certificateManager + method: GET + data_selector: '[]' + params: + systemId: 'true' + type: 'true' +- name: add_certificate + endpoint: + path: /scrambling/v1/drm/systems/{systemId}/certificateManager + method: POST + data_selector: No Content + params: + systemId: 'true' + type: 'true' + file type: 'false' + file: 'true' +- name: delete_certificate + endpoint: + path: /scrambling/v1/drm/systems/{systemId}/harmonicCpixSignature + method: DELETE + data_selector: No Content + params: + systemId: 'true' + type: 'true' +- name: get_list_of_discovery + endpoint: + path: /source-monitor/v1/discover + method: GET + data_selector: '[]' + params: {} +- name: scan_stream_information + endpoint: + path: /source-monitor/v1/discover + method: POST + data_selector: '[]' + params: + discoverySource: 'true' +- name: obtain_source_input_model + endpoint: + path: /source-monitor/v1/discover/source_input/{discoveryId}/proberesult + method: GET + data_selector: '[]' + params: + discoveryId: 'true' +- name: cancel_discovery + endpoint: + path: /source-monitor/v1/discover/{discoveryId}/cancel + method: PUT + data_selector: No Content + params: + discoveryId: 'true' +- name: obtain_discovery_probe_result + endpoint: + path: /source-monitor/v1/discover/{discoveryId}/proberesult + method: GET + data_selector: '[]' + params: + discoveryId: 'true' + includeAllTLVDescriptors: 'false' +- name: obtain_discovery_progress + endpoint: + path: /source-monitor/v1/discover/{discoveryId}/progress + method: GET + data_selector: '[]' + params: + discoveryId: 'true' +- name: get_product_information + endpoint: + path: /system/v1/info + method: GET + data_selector: '[]' + params: {} +- name: get_test_receiver + endpoint: + path: /uplink-hub/v1/test-receiver + method: GET + data_selector: '[]' + params: {} +- name: create_test_receiver + endpoint: + path: /uplink-hub/v1/test-receiver + method: POST + data_selector: '[]' + params: {} +- name: get_test_receiver_by_id + endpoint: + path: /uplink-hub/v1/test-receiver/{id} + method: GET + data_selector: '[]' + params: + id: 'true' +- name: delete_test_receiver + endpoint: + path: /uplink-hub/v1/test-receiver/{id} + method: DELETE + data_selector: No Content + params: + id: 'true' +- name: images + endpoint: + path: /configure/v1/images + method: GET + data_selector: array + params: {} +- name: create_image + endpoint: + path: /configure/v1/images + method: POST + data_selector: array + params: {} +- name: image_by_id + endpoint: + path: /configure/v1/images/{id} + method: GET + data_selector: array + params: {} +- name: update_image + endpoint: + path: /configure/v1/images/{id} + method: PUT + data_selector: array + params: {} +- name: delete_image + endpoint: + path: /configure/v1/images/{id} + method: DELETE + data_selector: array + params: {} +- name: services_using_image + endpoint: + path: /configure/v1/images/{id}/services + method: GET + data_selector: array + params: {} +- name: sources_using_image + endpoint: + path: /configure/v1/images/{id}/sources + method: GET + data_selector: array + params: {} +- name: lsms + endpoint: + path: /configure/v1/lsms + method: GET + data_selector: array + params: {} +- name: create_lsm + endpoint: + path: /configure/v1/lsms + method: POST + data_selector: array + params: {} +- name: lsm_by_id + endpoint: + path: /configure/v1/lsms/{id} + method: GET + data_selector: array + params: {} +- name: update_lsm + endpoint: + path: /configure/v1/lsms/{id} + method: PUT + data_selector: array + params: {} +- name: delete_lsm + endpoint: + path: /configure/v1/lsms/{id} + method: DELETE + data_selector: array + params: {} +- name: pools + endpoint: + path: /configure/v1/pools + method: GET + data_selector: array + params: {} +- name: create_pool + endpoint: + path: /configure/v1/pools + method: POST + data_selector: array + params: {} +- name: pool_by_id + endpoint: + path: /configure/v1/pools/{id} + method: GET + data_selector: array + params: {} +- name: update_pool + endpoint: + path: /configure/v1/pools/{id} + method: PUT + data_selector: array + params: {} +- name: delete_pool + endpoint: + path: /configure/v1/pools/{id} + method: DELETE + data_selector: array + params: {} +- name: saved_graphics_templates + endpoint: + path: /configure/v1/saved_graphics_templates/{id}/templates.swf + method: GET + data_selector: array + params: {} +- name: saved_image + endpoint: + path: /configure/v1/saved_images/{id} + method: GET + data_selector: array + params: {} +- name: services + endpoint: + path: /services + method: GET + data_selector: services + params: {} +- name: service + endpoint: + path: /services/{id} + method: GET + data_selector: service + params: {} +- name: sources + endpoint: + path: /sources + method: GET + data_selector: sources + params: {} +- name: source + endpoint: + path: /sources/{id} + method: GET + data_selector: source + params: {} +- name: validate_audio_metadata + endpoint: + path: /configure/v1/validate_audio_metadata + method: POST + data_selector: No Content + params: + audioGrooming: 'true' +- name: validate_data_metadata + endpoint: + path: /configure/v1/validate_data_metadata + method: POST + data_selector: No Content + params: + dataGrooming: 'true' +- name: esam_go_config + endpoint: + path: /esam-pois/v1/esamGoConfig + method: GET + data_selector: object + params: {} +- name: update_esam_go_config + endpoint: + path: /esam-pois/v1/esamGoConfig + method: PUT + data_selector: No Content + params: + config: 'true' +- name: settings + endpoint: + path: /external-asset-potf/v1/settings + method: GET + data_selector: '[com.harmonicinc.externalassetpotf.model.rest.settings.ExternalAssetPotfSettings]' + params: {} +- name: update_settings + endpoint: + path: /external-asset-potf/v1/settings + method: PUT + data_selector: No Content + params: + settings: 'true' +- name: packaging_profile + endpoint: + path: /external-ott-repackager/v1/packaging_profile + method: GET + data_selector: '[com.harmonicinc.externalottrepackager.model.rest.profile.PackagingProfileWithPolicy]' + params: + expandProfile: 'false' +- name: update_packaging_profile + endpoint: + path: /external-ott-repackager/v1/packaging_profile + method: PUT + data_selector: No Content + params: + profile: 'true' +- name: repackage_properties + endpoint: + path: /external-ott-repackager/v1/repackage_properties + method: GET + data_selector: '[com.harmonicinc.externalottrepackager.model.rest.repackage.RepackageProperties]' + params: {} +- name: create_repackage_properties + endpoint: + path: /external-ott-repackager/v1/repackage_properties + method: POST + data_selector: No Content + params: + profile: 'true' +- name: live_extraction_jobs + endpoint: + path: /live-extraction/v1/jobs + method: GET + data_selector: '[com.harmonicinc.vos.app.liveextraction.job.LiveExtractionJob]' + params: {} +- name: create_live_extraction_job + endpoint: + path: /live-extraction/v1/jobs + method: POST + data_selector: '[com.harmonicinc.vos.app.liveextraction.job.LiveExtractionJob]' + params: + liveExtractionParam: 'true' +- name: live_extraction_job_detail + endpoint: + path: /live-extraction/v1/jobs/{id} + method: GET + data_selector: '[com.harmonicinc.vos.app.liveextraction.job.LiveExtractionJob]' + params: + id: 'true' +- name: live_extraction_job_metadata + endpoint: + path: /live-extraction/v1/jobs/{id}/metadata + method: GET + data_selector: '[com.harmonicinc.vos.app.liveextraction.LiveExtractionMetadata]' + params: + id: 'true' +- name: uplinkGroups + endpoint: + path: /uplinkGroups + method: GET + data_selector: UplinkGroup +- name: CloudLinks + endpoint: + path: /uplinks + method: GET + data_selector: Uplink +- name: Create uplink + endpoint: + path: /uplinks + method: POST + data_selector: Uplink +- name: Get Uplink by ID + endpoint: + path: /uplinks/{id} + method: GET + data_selector: Uplink +- name: Delete uplink + endpoint: + path: /uplinks/{id} + method: DELETE + data_selector: Uplink +- name: Get Uplink Channel + endpoint: + path: /uplinks/{id}/uplinkChannels + method: GET + data_selector: UplinkChannel +- name: Update the status of Uplink + endpoint: + path: /uplinks/{id}/uplinkStatus + method: POST + data_selector: UplinkStatus +- name: update_live_ingest_origin_settings + endpoint: + path: /live-ingest-origin/v1/settings + method: POST +- name: get_logs + endpoint: + path: /logs/v1/logs + method: GET +- name: download_logs + endpoint: + path: /logs/v1/logs/download + method: GET +- name: get_active_active_service_role + endpoint: + path: /monitor/v1/activeActiveServiceRole/{id} + method: GET +- name: get_date_time + endpoint: + path: /monitor/v1/live-events/date-time + method: GET +- name: update_live_event + endpoint: + path: /monitor/v1/live-events/{id} + method: PUT +- name: end_live_event + endpoint: + path: /monitor/v1/live-events/{id}/end + method: PUT +- name: go_live_event + endpoint: + path: /monitor/v1/live-events/{id}/live + method: PUT +- name: offline_live_event + endpoint: + path: /monitor/v1/live-events/{id}/offline + method: PUT +- name: preview_live_event + endpoint: + path: /monitor/v1/live-events/{id}/online + method: PUT +- name: get_activated_services + endpoint: + path: /monitor/v1/services + method: GET +- name: get_services_status + endpoint: + path: /monitor/v1/services-status + method: GET +- name: get_service_status_by_id + endpoint: + path: /monitor/v1/services-status/{id} + method: GET +- name: get_current_scte_104_client_connections + endpoint: + path: /monitor/v1/services/scte-104 + method: GET +- name: get_activated_service + endpoint: + path: /monitor/v1/services/{id} + method: GET +- name: get_graphics_status + endpoint: + path: /monitor/v1/services/{id}/graphics + method: GET +- name: turn_on_off_graphics + endpoint: + path: /monitor/v1/services/{id}/graphics + method: POST +- name: get_logo_status + endpoint: + path: /monitor/v1/services/{id}/logo + method: GET +- name: turn_on_off_logo + endpoint: + path: /monitor/v1/services/{id}/logo + method: POST +- name: get_mute_unmute_service_output_state + endpoint: + path: /monitor/v1/services/{id}/muteOutput + method: GET +- name: mute_unmute_service_output + endpoint: + path: /monitor/v1/services/{id}/muteOutput + method: POST +- name: get_redundancy_group_status + endpoint: + path: /monitor/v1/services/{id}/redundancy_group + method: GET +- name: join_quit_redundancy_group + endpoint: + path: /monitor/v1/services/{id}/redundancy_group + method: POST +- name: ClientAppCheckerConfig + endpoint: + path: /clientAppCheckerConfig + method: GET + data_selector: records +- name: ClientDetailsConfig + endpoint: + path: /clientDetailsConfig + method: GET + data_selector: records +- name: ClientDetailsResponse + endpoint: + path: /clientDetailsResponse + method: GET + data_selector: records +- name: DeploymentEnvInfo + endpoint: + path: /deploymentEnvInfo + method: GET + data_selector: records +- name: ProductInfo + endpoint: + path: /productInfo + method: GET + data_selector: records +- name: TestObjectInfo + endpoint: + path: /testObjectInfo + method: GET + data_selector: records +- name: WidevineConfig + endpoint: + path: /widevineConfig + method: GET + data_selector: records +- name: remove_retained_program_chapter_start + endpoint: + path: /monitor/v1/services/{id}/remove_retained_program_chapter_start + method: POST +- name: reset_statistics + endpoint: + path: /monitor/v1/services/{id}/resetStatistics + method: POST +- name: get_slate_status + endpoint: + path: /monitor/v1/services/{id}/slate + method: GET +- name: turn_on_off_slate + endpoint: + path: /monitor/v1/services/{id}/slate + method: POST +- name: switch_active_instance + endpoint: + path: /monitor/v1/services/{id}/switch_active_instance + method: POST +- name: get_thumbnail + endpoint: + path: /monitor/v1/services/{id}/thumbnail + method: GET +- name: get_drm_control_status + endpoint: + path: /monitor/v1/services/{id}/toggle_drm + method: GET +- name: force_drm_settings + endpoint: + path: /monitor/v1/services/{id}/toggle_drm + method: POST +- name: get_unmute_output_start_end_time + endpoint: + path: /monitor/v1/services/{id}/unmuteOutputStartEndTime + method: GET +- name: set_unmute_output_start_time + endpoint: + path: /monitor/v1/services/{id}/unmuteOutputStartEndTime + method: POST +- name: create_full_transcoding_service + endpoint: + path: /mux/v1/create-full-service + method: POST +- name: get_monitoring_sdi_ports + endpoint: + path: /mux/v1/monitor/sdi-ports + method: GET +- name: get_monitoring_ts_inputs + endpoint: + path: /mux/v1/monitor/ts-inputs + method: GET +- name: get_blackout_state + endpoint: + path: /mux/v1/monitor/{muxServiceId}/blackout + method: GET +- name: enable_blackout + endpoint: + path: /mux/v1/monitor/{muxServiceId}/blackout + method: POST +- name: get_eas_status + endpoint: + path: /mux/v1/monitor/{muxServiceId}/eas + method: GET +- name: send_manual_switch_command + endpoint: + path: /mux/v1/monitor/{muxServiceId}/eas/switch + method: POST +- name: get_current_triveni_tables + endpoint: + path: /mux/v1/monitor/{muxServiceId}/triveni + method: GET +- name: get_monitoring_specific_ts_inputs + endpoint: + path: /mux/v1/monitor/{muxServiceId}/ts-inputs + method: GET +- name: get_monitoring_one_ts_input + endpoint: + path: /mux/v1/monitor/{muxServiceId}/ts-inputs/{inputObjectId} + method: GET +- name: get_all_networks + endpoint: + path: /mux/v1/networks + method: GET +- name: assign_new_network + endpoint: + path: /mux/v1/networks + method: POST +- name: get_network_by_id + endpoint: + path: /mux/v1/networks/{networkId} + method: GET +- name: networks + endpoint: + path: /mux/v1/networks/{networkId} + method: PUT + data_selector: updated network + params: {} +- name: services + endpoint: + path: /mux/v1/services + method: GET + data_selector: MuxService + params: {} +- name: table_generators + endpoint: + path: /mux/v1/table-generators + method: GET + data_selector: TableGenerator + params: {} +- name: transport_streams + endpoint: + path: /mux/v1/transport-streams + method: GET + data_selector: OutputTS + params: {} +- name: notifications + endpoint: + path: /notification/v1/notifications + method: GET + data_selector: object array + params: {} +- name: channels + endpoint: + path: /origin-engine/v1/channels + method: GET + data_selector: OriginChannel + params: {} +- name: llcu_assets + endpoint: + path: /origin-engine/v1/llcu/assets + method: GET + data_selector: LlcuAssetList + params: {} +- name: accessLogToLoki + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.AccessLogToLokiConfig + method: GET + data_selector: records +- name: accessLogToS3 + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.AccessLogToS3Config + method: GET + data_selector: records +- name: additionalHeaderConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$AdditionalHeaderConfig + method: GET + data_selector: records +- name: autoScaling + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.AutoScalingConfig + method: GET + data_selector: records +- name: cacheSettings + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$CacheSettings + method: GET + data_selector: records +- name: cloudfrontHeader + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$CloudfrontHeader + method: GET + data_selector: records +- name: connectionConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$ConnectionConfig + method: GET + data_selector: records +- name: connectionDrainingConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.ConnectionDrainingConfig + method: GET + data_selector: records +- name: defaultManifestFilteringSettings + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.DefaultManifestFilteringSettings + method: GET + data_selector: records +- name: edgeAuthConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.EdgeAuthConfig + method: GET + data_selector: records +- name: encryptionConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$EncryptionConfig + method: GET + data_selector: records +- name: g2oAuthConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.G2OAuthConfig + method: GET + data_selector: records +- name: headerAuthConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$HeaderAuthConfig + method: GET + data_selector: records +- name: hideFromLiveContentConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.HideFromLiveContentConfig + method: GET + data_selector: records +- name: httpConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$HttpConfig + method: GET + data_selector: records +- name: llcuIndexingConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.LlcuIndexingConfig + method: GET + data_selector: records +- name: loggingConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$LoggingConfig + method: GET + data_selector: records +- name: mdsPropertiesConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$MdsPropertiesConfig + method: GET + data_selector: records +- name: mdsProxySettings + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.MdsProxySettings + method: GET + data_selector: records +- name: mdsSchedulingConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.MdsSchedulingConfig + method: GET + data_selector: records +- name: ottEgressProxyConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$OttEgressProxyConfig + method: GET + data_selector: records +- name: potfServerConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.PotfServerConfig + method: GET + data_selector: records +- name: proxyBufferSettings + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$ProxyBufferSettings + method: GET + data_selector: records +- name: proxyCacheLockSettings + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$ProxyCacheLockSettings + method: GET + data_selector: records +- name: resourceConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.ResourceConfig + method: GET + data_selector: records +- name: statisticsReportingConfig + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.OriginSettings$StatisticsReportingConfig + method: GET + data_selector: records +- name: storageSettings + endpoint: + path: /com.harmonicinc.unifiedoriginenginelibrary.settings.StorageSettings + method: GET + data_selector: records +- name: ScaleUpCondition + endpoint: + path: /com/harmonicinc/unifiedoriginenginelibrary/settings/ScaleUpCondition + method: GET + data_selector: records + params: {} +- name: StorageSettings + endpoint: + path: /com/harmonicinc/unifiedoriginenginelibrary/settings/StorageSettings + method: GET + data_selector: records + params: {} +- name: AudioStreamSelection + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/AudioStreamSelection + method: GET + data_selector: records + params: {} +- name: DvrFilterByScte35 + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/DvrFilterByScte35 + method: GET + data_selector: records + params: {} +- name: IndexRange + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/IndexRange + method: GET + data_selector: records + params: {} +- name: MatchSignal + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/MatchSignal + method: GET + data_selector: records + params: {} +- name: PlaylistSelection + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/PlaylistSelection + method: GET + data_selector: records + params: {} +- name: Profile + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/Profile + method: GET + data_selector: records + params: {} +- name: Profiles + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/Profiles + method: GET + data_selector: records + params: {} +- name: SubtitleStreamSelection + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/SubtitleStreamSelection + method: GET + data_selector: records + params: {} +- name: VideoStreamSelection + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/VideoStreamSelection + method: GET + data_selector: records + params: {} +- name: AtmAutoScalingConfig + endpoint: + path: /com/harmonicinc/vos/app/atm/rest/model/AtmAutoScalingConfig + method: GET + data_selector: records + params: {} +- name: AtmSettingConfig + endpoint: + path: /com/harmonicinc/vos/app/atm/rest/model/AtmSettingConfig + method: GET + data_selector: records + params: {} +- name: ContentGenerationChannel + endpoint: + path: /com/harmonicinc/vos/app/atm/rest/model/ContentGenerationChannel + method: GET + data_selector: records + params: {} +- name: ContentReplacementChannel + endpoint: + path: /com/harmonicinc/vos/app/atm/rest/model/ContentReplacementChannel + method: GET + data_selector: records + params: {} +- name: create_llcu_asset + endpoint: + path: /origin-engine/v1/llcu/assets + method: POST + data_selector: object + params: {} +- name: get_llcu_asset + endpoint: + path: /origin-engine/v1/llcu/assets/{id} + method: GET + data_selector: object + params: {} +- name: update_llcu_asset + endpoint: + path: /origin-engine/v1/llcu/assets/{id} + method: PUT + data_selector: object + params: {} +- name: delete_llcu_asset + endpoint: + path: /origin-engine/v1/llcu/assets/{id} + method: DELETE + data_selector: object + params: {} +- name: get_llcu_asset_drm_settings + endpoint: + path: /origin-engine/v1/llcu/assets/{id}/drm_setting + method: GET + data_selector: object + params: {} +- name: update_llcu_asset_drm_settings + endpoint: + path: /origin-engine/v1/llcu/assets/{id}/drm_setting + method: PUT + data_selector: object + params: {} +- name: get_pre_warming_schedule + endpoint: + path: /origin-engine/v1/schedule + method: GET + data_selector: object + params: {} +- name: add_pre_warming_event + endpoint: + path: /origin-engine/v1/schedule/events + method: POST + data_selector: object + params: {} +- name: get_pre_warming_event + endpoint: + path: /origin-engine/v1/schedule/events/{id} + method: GET + data_selector: object + params: {} +- name: update_pre_warming_event + endpoint: + path: /origin-engine/v1/schedule/events/{id} + method: PUT + data_selector: object + params: {} +- name: delete_pre_warming_event + endpoint: + path: /origin-engine/v1/schedule/events/{id} + method: DELETE + data_selector: object + params: {} +- name: get_origin_engine_settings + endpoint: + path: /origin-engine/v1/settings + method: GET + data_selector: object + params: {} +- name: configure_origin_engine_settings + endpoint: + path: /origin-engine/v1/settings + method: PUT + data_selector: object + params: {} +- name: get_test_object_information + endpoint: + path: /origin-engine/v1/static_resources/test_object + method: GET + data_selector: object + params: {} +- name: update_test_object + endpoint: + path: /origin-engine/v1/static_resources/test_object + method: POST + data_selector: object + params: {} +- name: delete_test_object + endpoint: + path: /origin-engine/v1/static_resources/test_object + method: DELETE + data_selector: object + params: {} +- name: delete_vod_profile_mapping + endpoint: + path: /origin-engine/v1/vod/profile_map/{id} + method: DELETE + data_selector: object + params: {} +- name: get_list_of_playout_channels + endpoint: + path: /playoutcontrol/v1/channels + method: GET + data_selector: array + params: {} +- name: get_missing_assets + endpoint: + path: /playoutcontrol/v1/channels/{channelId}/missing-assets + method: GET + data_selector: object + params: {} +- name: get_channel_settings + endpoint: + path: /playoutcontrol/v1/channels/{channelId}/settings + method: GET + data_selector: object + params: {} +- name: update_channel_settings + endpoint: + path: /playoutcontrol/v1/channels/{channelId}/settings + method: PUT + data_selector: object + params: {} +- name: get_list_of_events_for_channel + endpoint: + path: /playoutcontrol/v1/events/{channelId} + method: GET + data_selector: object + params: {} +- name: delete_range_of_primary_events + endpoint: + path: /playoutcontrol/v1/events/{channelId}/primaries/{firstPrimaryId} + method: DELETE + data_selector: object + params: {} +- name: LiveEventClippingChannel + endpoint: + path: /liveEventClippingChannel + method: GET + data_selector: records +- name: RegionalAdsChannel + endpoint: + path: /regionalAdsChannel + method: GET + data_selector: records +- name: VariantChannelSourceIDMapping + endpoint: + path: /variantChannelSourceIDMapping + method: GET + data_selector: records +- name: VariantChannelsFilter + endpoint: + path: /variantChannelsFilter + method: GET + data_selector: records +- name: GlobalNielsenSetting + endpoint: + path: /globalNielsenSetting + method: GET + data_selector: records +- name: GlobalServiceSetting + endpoint: + path: /services/data/vXX.X/sobjects/GlobalServiceSetting + method: GET + data_selector: records +- name: GlobalSourceSetting + endpoint: + path: /services/data/vXX.X/sobjects/GlobalSourceSetting + method: GET + data_selector: records +- name: GlobalVideoSetting + endpoint: + path: /services/data/vXX.X/sobjects/GlobalVideoSetting + method: GET + data_selector: records +- name: Scheduler360Setting + endpoint: + path: /services/data/vXX.X/sobjects/Scheduler360Setting + method: GET + data_selector: records +- name: primary_event + endpoint: + path: /playoutcontrol/v1/events/{channelId}/primary + method: POST + data_selector: PrimaryProperties + params: {} +- name: update_primary_event + endpoint: + path: /playoutcontrol/v1/events/{channelId}/primary/{primaryId} + method: PUT + data_selector: string + params: {} +- name: delete_primary_event + endpoint: + path: /playoutcontrol/v1/events/{channelId}/primary/{primaryId} + method: DELETE + data_selector: string + params: {} +- name: play_next_event + endpoint: + path: /playoutcontrol/v1/events/{channelId}/primary/{primaryId}/play + method: POST + data_selector: string + params: {} +- name: insert_secondary_event + endpoint: + path: /playoutcontrol/v1/events/{channelId}/primary/{primaryId}/secondary + method: POST + data_selector: SecondaryProperties + params: {} +- name: update_secondary_event + endpoint: + path: /playoutcontrol/v1/events/{channelId}/primary/{primaryId}/secondary/{secondaryId} + method: PUT + data_selector: string + params: {} +- name: delete_secondary_event + endpoint: + path: /playoutcontrol/v1/events/{channelId}/primary/{primaryId}/secondary/{secondaryId} + method: DELETE + data_selector: string + params: {} +- name: create_sequence + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequence + method: POST + data_selector: string + params: {} +- name: update_sequence + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequence/{sequenceId} + method: PUT + data_selector: string + params: {} +- name: delete_sequence + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequence/{sequenceId} + method: DELETE + data_selector: string + params: {} +- name: play_sequence + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequence/{sequenceId}/play + method: POST + data_selector: string + params: {} +- name: add_primary_event_in_sequence + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequence/{sequenceId}/primary + method: POST + data_selector: SequencePrimaryProperties + params: {} +- name: update_primary_event_in_sequence + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequence/{sequenceId}/primary/{primaryId} + method: PUT + data_selector: string + params: {} +- name: delete_primary_event_in_sequence + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequence/{sequenceId}/primary/{primaryId} + method: DELETE + data_selector: string + params: {} +- name: add_secondary_event_in_sequence + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequence/{sequenceId}/primary/{primaryId}/secondary + method: POST + data_selector: SequenceSecondaryProperties + params: {} +- name: update_secondary_event_in_sequence + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequence/{sequenceId}/primary/{primaryId}/secondary/{secondaryId} + method: PUT + data_selector: string + params: {} +- name: delete_secondary_event_in_sequence + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequence/{sequenceId}/primary/{primaryId}/secondary/{secondaryId} + method: DELETE + data_selector: string + params: {} +- name: get_sequences + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequences + method: GET + data_selector: SequenceElement + params: {} +- name: get_sequence_by_id + endpoint: + path: /playoutcontrol/v1/events/{channelId}/sequences/{sequenceId} + method: GET + data_selector: SequenceElement + params: {} +- name: asi_input + endpoint: + path: /com/harmonicinc/vos/app/configure/model/source/AsiInput + method: GET + data_selector: records + params: + asiCard: required + asiPort: required +- name: atsc_tuner + endpoint: + path: /com/harmonicinc/vos/app/configure/model/source/AtscTuner + method: GET + data_selector: records + params: + channel: required + standard: required +- name: custom_descriptor + endpoint: + path: /com/harmonicinc/vos/app/configure/model/source/CustomDescriptor + method: GET + data_selector: records + params: + descriptorContent: required + descriptorTag: required +- name: custom_slate_settings + endpoint: + path: /com/harmonicinc/vos/app/configure/model/source/CustomSlateSettings + method: GET + data_selector: records + params: + muteAudio: required +- name: demux_input + endpoint: + path: /com/harmonicinc/vos/app/configure/model/source/DemuxInput + method: GET + data_selector: records + params: + demuxServiceId: required +- name: dtmf_profile + endpoint: + path: /com/harmonicinc.vos.app.configure.model.source/DtmfProfile + method: GET + data_selector: records + params: + command: required + duration: required + preRollTime: required + spliceMode: required + spliceType: required +- name: DtmfSettings + endpoint: + path: /com/harmonicinc/vos/app/configure/model/source/DtmfSettings + method: GET + data_selector: settings + params: {} +- name: DvbS2XPort + endpoint: + path: /com/harmonicinc/vos/app/configure/model/source/DvbS2XPort + method: GET + data_selector: ports + params: {} +- name: DvbS2XTuner + endpoint: + path: /com/harmonicinc/vos/app/configure/model/source/DvbS2XTuner + method: GET + data_selector: tuners + params: {} +- name: DvbSubtitlingDescriptor + endpoint: + path: /com/harmonicinc/vos/app/configure/model/source/DvbSubtitlingDescriptor + method: GET + data_selector: descriptors + params: {} +- name: FrameRate + endpoint: + path: /com/harmonicinc/vos/app/configure/model/source/FrameRate + method: GET + data_selector: frameRates + params: {} +- name: Input + endpoint: + path: /com/harmonicinc/vos/app/configure/model/source/Input + method: GET + data_selector: inputs + params: {} +- name: PlayoutInput + endpoint: + path: /PlayoutInput + method: GET + data_selector: records + params: {} +- name: PcrConstraints + endpoint: + path: /PcrConstraints + method: GET + data_selector: records + params: {} +- name: SdiAudioTrack + endpoint: + path: /sdi/audioTrack + method: GET + data_selector: audioTracks +- name: SdiCaptionServiceDescriptor + endpoint: + path: /sdi/captionServiceDescriptor + method: GET + data_selector: captionServiceDescriptors +- name: SdiDataGrooming + endpoint: + path: /sdi/dataGrooming + method: GET + data_selector: dataGroomings +- name: SdiVideoGrooming + endpoint: + path: /sdi/videoGrooming + method: GET + data_selector: videoGroomings +- name: SlateInput + endpoint: + path: /sdi/slateInput + method: GET + data_selector: slateInputs +- name: get_all_onair_graphics_for_a_channel + endpoint: + path: /playoutcontrol/v1/graphics/{channelId} + method: GET + data_selector: array +- name: update_graphic_on_a_layer_for_a_channel + endpoint: + path: /playoutcontrol/v1/graphics/{channelId}/layer/{layer} + method: PUT + data_selector: string +- name: start_graphic_on_a_layer_for_a_channel + endpoint: + path: /playoutcontrol/v1/graphics/{channelId}/layer/{layer} + method: POST + data_selector: string +- name: stop_graphic_on_a_layer_for_a_channel + endpoint: + path: /playoutcontrol/v1/graphics/{channelId}/layer/{layer}/stop + method: POST + data_selector: string +- name: unload_graphic_on_a_layer_for_a_channel + endpoint: + path: /playoutcontrol/v1/graphics/{channelId}/layer/{layer}/unload + method: POST + data_selector: string +- name: unload_all_graphics_on_all_layers_for_a_channel + endpoint: + path: /playoutcontrol/v1/graphics/{channelId}/unload + method: POST + data_selector: string +- name: get_live_source_monitoring + endpoint: + path: /playoutcontrol/v1/livesources/{channelId} + method: GET + data_selector: LiveSourceMonitoringProperties +- name: start_live_source_monitoring + endpoint: + path: /playoutcontrol/v1/livesources/{channelId}/player/{player}/startmonitoring + method: POST + data_selector: string +- name: stop_live_source_monitoring + endpoint: + path: /playoutcontrol/v1/livesources/{channelId}/player/{player}/stopmonitoring + method: POST + data_selector: string +- name: update_default_live_source + endpoint: + path: /playoutcontrol/v1/livesources/{channelId}/switch-default-source + method: PUT + data_selector: string +- name: toggle_source_input_switch + endpoint: + path: /playoutcontrol/v1/livesources/{channelId}/switch_input + method: POST + data_selector: string +- name: send_a_scte35_message + endpoint: + path: /playoutcontrol/v1/scte35/{channelId} + method: POST + data_selector: string +- name: create_a_playlist_trigger + endpoint: + path: /playoutcontrol/v1/trigger + method: POST + data_selector: TriggerConf +- name: update_a_playlist_trigger + endpoint: + path: /playoutcontrol/v1/trigger/{triggerId} + method: PUT + data_selector: string +- name: delete_a_playlist_trigger + endpoint: + path: /playoutcontrol/v1/trigger/{triggerId} + method: DELETE + data_selector: string +- name: get_playlist_triggers + endpoint: + path: /playoutcontrol/v1/triggers + method: GET + data_selector: TriggerConf +- name: update_certificate_and_private_key + endpoint: + path: /scrambling/v1/drm/clientAuthCertKey + method: POST + data_selector: No Content +- name: get_all_drm_fixed_resources + endpoint: + path: /scrambling/v1/drm/fixedResources + method: GET + data_selector: DrmFixedResource +- name: create_drm_fixed_resource + endpoint: + path: /scrambling/v1/drm/fixedResources + method: POST + data_selector: DrmFixedResource +- name: get_drm_fixed_resource + endpoint: + path: /scrambling/v1/drm/fixedResources/{id} + method: GET + data_selector: DrmFixedResource +- name: update_drm_fixed_resource + endpoint: + path: /scrambling/v1/drm/fixedResources/{id} + method: PUT + data_selector: No Content +- name: delete_drm_fixed_resource + endpoint: + path: /scrambling/v1/drm/fixedResources/{id} + method: DELETE + data_selector: No Content +- name: get_drm_settings + endpoint: + path: /scrambling/v1/drm/settings + method: GET + data_selector: DrmSettings +- name: zixi_endpoint_setting + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.ZixiEndPointSetting + method: GET + data_selector: zixiEndpointId + params: {} +- name: zixi_input + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.ZixiInput + method: GET + data_selector: automaticGrooming + params: {} +- name: live_extraction_metadata + endpoint: + path: /com.harmonicinc.vos.app.liveextraction.LiveExtractionMetadata + method: GET + data_selector: adBreaks + params: {} +- name: live_ingest_origin_setting + endpoint: + path: /com.harmonicinc.vos.app.liveingestorigin.settings.LiveIngestOriginSetting + method: GET + data_selector: enableDeprecatedTlsProtocols + params: {} +- name: live_event_data + endpoint: + path: /com.harmonicinc.vos.app.monitor.liveevent.model.LiveEventData + method: GET + data_selector: confidenceMonitoring + params: {} +- name: InputStatisticEntry + endpoint: + path: /inputStatisticEntry + method: GET + data_selector: records +- name: InputStatus + endpoint: + path: /inputStatus + method: GET + data_selector: records +- name: LogoGroupState + endpoint: + path: /logoGroupState + method: GET + data_selector: records +- name: LogoRequestConfig + endpoint: + path: /logoRequestConfig + method: GET + data_selector: records +- name: OutputStatus + endpoint: + path: /outputStatus + method: GET + data_selector: records +- name: drm_settings + endpoint: + path: /scrambling/v1/drm/settings + method: PUT + data_selector: No Content + params: {} +- name: drm_systems + endpoint: + path: /scrambling/v1/drm/systems + method: GET + data_selector: '[com.harmonicinc.vos.app.scrambling.drm.model.DrmSystem]' + params: {} +- name: create_drm_system + endpoint: + path: /scrambling/v1/drm/systems + method: POST + data_selector: '[com.harmonicinc.vos.app.scrambling.drm.model.DrmSystem]' + params: {} +- name: get_drm_system + endpoint: + path: /scrambling/v1/drm/systems/{id} + method: GET + data_selector: '[com.harmonicinc.vos.app.scrambling.drm.model.DrmSystem]' + params: {} +- name: update_drm_system + endpoint: + path: /scrambling/v1/drm/systems/{id} + method: PUT + data_selector: No Content + params: {} +- name: delete_drm_system + endpoint: + path: /scrambling/v1/drm/systems/{id} + method: DELETE + data_selector: No Content + params: {} +- name: view_certificate + endpoint: + path: /scrambling/v1/drm/systems/{systemId}/certificateManager + method: GET + data_selector: string array + params: {} +- name: add_certificate_and_key + endpoint: + path: /scrambling/v1/drm/systems/{systemId}/certificateManager + method: POST + data_selector: No Content + params: {} +- name: delete_harmonic_cpix_certificate + endpoint: + path: /scrambling/v1/drm/systems/{systemId}/harmonicCpixSignature + method: DELETE + data_selector: No Content + params: {} +- name: get_harmonic_cpix_certificate + endpoint: + path: /scrambling/v1/drm/systems/{systemId}/harmonicCpixSignature + method: GET + data_selector: string array + params: {} +- name: add_harmonic_cpix_certificate + endpoint: + path: /scrambling/v1/drm/systems/{systemId}/harmonicCpixSignature + method: POST + data_selector: No Content + params: {} +- name: get_list_of_discovery + endpoint: + path: /source-monitor/v1/discover + method: GET + data_selector: '[com.harmonicinc.vos.app.sourcemonitor.model.DiscoverySource]' + params: {} +- name: scan_stream_information + endpoint: + path: /source-monitor/v1/discover + method: POST + data_selector: '[com.harmonicinc.vos.app.sourcemonitor.model.DiscoverySource]' + params: {} +- name: obtain_source_input_model + endpoint: + path: /source-monitor/v1/discover/source_input/{discoveryId}/proberesult + method: GET + data_selector: '[com.harmonicinc.vos.app.configure.model.source.Source]' + params: {} +- name: cancel_discovery + endpoint: + path: /source-monitor/v1/discover/{discoveryId}/cancel + method: PUT + data_selector: No Content + params: {} +- name: obtain_discovery_probe_result + endpoint: + path: /source-monitor/v1/discover/{discoveryId}/proberesult + method: GET + data_selector: '[com.harmonicinc.vos.datapath.sourcemonitor.probe.result.model.MediaInfoProbeResult]' + params: {} +- name: obtain_discovery_progress + endpoint: + path: /source-monitor/v1/discover/{discoveryId}/progress + method: GET + data_selector: '[com.harmonicinc.vos.app.sourcemonitor.model.DiscoveryProgress]' + params: {} +- name: get_product_information + endpoint: + path: /system/v1/info + method: GET + data_selector: '[com.harmonicinc.rumba.core.ProductInfo]' + params: {} +- name: get_test_receiver + endpoint: + path: /uplink-hub/v1/test-receiver + method: GET + data_selector: '[java.util.CollectionOfcom.harmonicinc.vos.app.uplink.hub.benchmark.TestReceiver]' + params: {} +- name: create_test_receiver + endpoint: + path: /uplink-hub/v1/test-receiver + method: POST + data_selector: '[com.harmonicinc.vos.app.uplink.hub.benchmark.TestReceiver]' + params: {} +- name: get_test_receiver_by_id + endpoint: + path: /uplink-hub/v1/test-receiver/{id} + method: GET + data_selector: '[com.harmonicinc.vos.app.uplink.hub.benchmark.TestReceiver]' + params: {} +- name: delete_test_receiver + endpoint: + path: /uplink-hub/v1/test-receiver/{id} + method: DELETE + data_selector: No Content + params: {} +- name: InsertSequencePrimaryProperties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/InsertSequencePrimaryProperties + method: GET + data_selector: records + params: {} +- name: InsertSequenceSecondaryElement + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/InsertSequenceSecondaryElement + method: GET + data_selector: records + params: {} +- name: InsertSequenceSinglePrimaryProperties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/InsertSequenceSinglePrimaryProperties + method: GET + data_selector: records + params: {} +- name: SequenceElement + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/SequenceElement + method: GET + data_selector: records + params: {} +- name: SequencePrimaryElement + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/SequencePrimaryElement + method: GET + data_selector: records + params: {} +- name: SequencePrimaryProperties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/SequencePrimaryProperties + method: GET + data_selector: records + params: {} +- name: SequenceProperties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/SequenceProperties + method: GET + data_selector: records + params: {} +- name: SequenceSecondaryElement + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/SequenceSecondaryElement + method: GET + data_selector: records + params: {} +- name: SequenceSecondaryProperties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/SequenceSecondaryProperties + method: GET + data_selector: records + params: {} +- name: UpdateSequencePrimaryProperties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/UpdateSequencePrimaryProperties + method: GET + data_selector: records + params: {} +- name: UpdateSequenceProperties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/UpdateSequenceProperties + method: GET + data_selector: records + params: {} +- name: TriggerConf + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/services/triggerManager/TriggerConf + method: GET + data_selector: records + params: {} +- name: uplinkGroups + endpoint: + path: /uplink-hub/v1/uplinkGroups + method: GET + data_selector: array +- name: CloudLinks + endpoint: + path: /uplink-hub/v1/uplinks + method: GET + data_selector: array +- name: Create uplink + endpoint: + path: /uplink-hub/v1/uplinks + method: POST + data_selector: uplink + params: + param0: required +- name: Get Uplink by ID + endpoint: + path: /uplink-hub/v1/uplinks/{id} + method: GET + data_selector: uplink + params: + id: required +- name: Delete uplink + endpoint: + path: /uplink-hub/v1/uplinks/{id} + method: DELETE + data_selector: no_content + params: + id: required + force: optional +- name: Get Uplink Channel + endpoint: + path: /uplink-hub/v1/uplinks/{id}/uplinkChannels + method: GET + data_selector: array + params: + id: required +- name: Update the status of Uplink + endpoint: + path: /uplink-hub/v1/uplinks/{id}/uplinkStatus + method: POST + data_selector: uplinkStatus + params: + param0: required + id: required +- name: KeyRotationSettings + endpoint: + path: /com/harmonicinc/vos/app/scrambling/drm/model/KeyRotationSettings + method: GET + data_selector: records + params: {} +- name: PlayReadyHeaderObject + endpoint: + path: /com/harmonicinc/vos/app/scrambling/drm/model/PlayReadyHeaderObject + method: GET + data_selector: records + params: {} +- name: ProxyEndpoint + endpoint: + path: /com/harmonicinc/vos/app/scrambling/drm/model/ProxyEndpoint + method: GET + data_selector: records + params: {} +- name: WidevineCencHeader + endpoint: + path: /com/harmonicinc/vos/app/scrambling/drm/model/WidevineCencHeader + method: GET + data_selector: records + params: {} +- name: WidevineConfig + endpoint: + path: /com/harmonicinc/vos/app/scrambling/drm/model/WidevineConfig + method: GET + data_selector: records + params: {} +- name: OriginChannel + endpoint: + path: /services/data/vXX.X/sobjects/OriginChannel + method: GET + data_selector: records + params: {} +- name: ClientAppCheckerConfig + endpoint: + path: /clientAppCheckerConfig + method: GET + data_selector: records +- name: ClientDetailsConfig + endpoint: + path: /clientDetailsConfig + method: GET + data_selector: records +- name: MediaInfoProbeResult + endpoint: + path: /media-info-probe-result + method: GET + data_selector: results +- name: MpegProgram + endpoint: + path: /mpeg-program + method: GET + data_selector: programs +- name: CmafPackagingProperties + endpoint: + path: /cmaf/packaging + method: POST + data_selector: properties + params: {} +- name: CustomDescriptor + endpoint: + path: /custom/descriptor + method: POST + data_selector: descriptor + params: {} +- name: dash_packaging_properties + endpoint: + path: /services/data/vXX.X/sobjects/DashPackagingProperties + method: GET + data_selector: records +- name: demux_profile_properties + endpoint: + path: /services/data/vXX.X/sobjects/DemuxProfileProperties + method: GET + data_selector: records +- name: destination_profile_properties + endpoint: + path: /services/data/vXX.X/sobjects/DestinationProfileProperties + method: GET + data_selector: records +- name: ScaleUpCondition + endpoint: + path: /com/harmonicinc/unifiedoriginenginelibrary/settings/ScaleUpCondition + method: GET + data_selector: ScaleUpCondition +- name: StorageSettings + endpoint: + path: /com/harmonicinc/unifiedoriginenginelibrary/settings/StorageSettings + method: GET + data_selector: StorageSettings +- name: AudioStreamSelection + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/AudioStreamSelection + method: GET + data_selector: AudioStreamSelection +- name: DvrFilterByScte35 + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/DvrFilterByScte35 + method: GET + data_selector: DvrFilterByScte35 +- name: MatchSignal + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/MatchSignal + method: GET + data_selector: MatchSignal +- name: PlaylistSelection + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/PlaylistSelection + method: GET + data_selector: PlaylistSelection +- name: Profile + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/Profile + method: GET + data_selector: Profile +- name: Profiles + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/Profiles + method: GET + data_selector: Profiles +- name: SubtitleStreamSelection + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/SubtitleStreamSelection + method: GET + data_selector: SubtitleStreamSelection +- name: VideoStreamSelection + endpoint: + path: /com/harmonicinc/vos/app/atm/datatypes/VideoStreamSelection + method: GET + data_selector: VideoStreamSelection +- name: AtmAutoScalingConfig + endpoint: + path: /com/harmonicinc/vos/app/atm/rest/model/AtmAutoScalingConfig + method: GET + data_selector: AtmAutoScalingConfig +- name: AtmContainerResourceConfig + endpoint: + path: /com/harmonicinc/vos/app/atm/rest/model/AtmContainerResourceConfig + method: GET + data_selector: AtmContainerResourceConfig +- name: AtmScalingConfig + endpoint: + path: /com/harmonicinc/vos/app/atm/rest/model/AtmScalingConfig + method: GET + data_selector: AtmScalingConfig +- name: AtmSettingConfig + endpoint: + path: /com/harmonicinc/vos/app/atm/rest/model/AtmSettingConfig + method: GET + data_selector: AtmSettingConfig +- name: ContentGenerationChannel + endpoint: + path: /com/harmonicinc/vos/app/atm/rest/model/ContentGenerationChannel + method: GET + data_selector: ContentGenerationChannel +- name: ContentReplacementChannel + endpoint: + path: /com/harmonicinc/vos/app/atm/rest/model/ContentReplacementChannel + method: GET + data_selector: ContentReplacementChannel +- name: DpiProcessingProperties + endpoint: + path: /DpiProcessingProperties + method: GET + data_selector: properties +- name: DrmTrackFilterProfileProperties + endpoint: + path: /DrmTrackFilterProfileProperties + method: GET + data_selector: drmTrackFilterProperties +- name: DvbSubtitleToDvbSubtitleConversionProperties + endpoint: + path: /DvbSubtitleToDvbSubtitleConversionProperties + method: GET + data_selector: conversionProperties +- name: DvbSubtitlingDescriptor + endpoint: + path: /DvbSubtitlingDescriptor + method: GET + data_selector: dvbSubtitlingDescriptorData +- name: EncapsulationSettings + endpoint: + path: /EncapsulationSettings + method: GET + data_selector: encapsulationSettings +- name: FileTranscodingProfileProperties + endpoint: + path: /FileTranscodingProfileProperties + method: GET + data_selector: transcodingProfileProperties +- name: live_event_clipping_channel + endpoint: + path: /liveEventClippingChannel + method: GET + data_selector: records +- name: regional_ads_channel + endpoint: + path: /regionalAdsChannel + method: GET + data_selector: records +- name: FtVideoSettings + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/FtVideoSettings + method: GET + data_selector: records +- name: HALCAudioLevelAdjustementProperties + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/HALCAudioLevelAdjustementProperties + method: GET + data_selector: records +- name: HlsGroupingProfileProperties + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/HlsGroupingProfileProperties + method: GET + data_selector: records +- name: GlobalServiceSetting + endpoint: + path: /path/to/globalServiceSetting + method: GET + data_selector: data +- name: HlsPackagingProperties + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/HlsPackagingProperties + method: GET + data_selector: properties +- name: HlsScte35GenericProperties + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/HlsScte35GenericProperties + method: GET + data_selector: properties +- name: IPTVDestinationProfileProperties + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/IPTVDestinationProfileProperties + method: GET + data_selector: properties +- name: IPTVProfileProperties + endpoint: + path: /com.harmonicinc.vos.labwizard.rest.model.IPTVProfileProperties + method: GET + data_selector: records +- name: MptsDestinationProfileProperties + endpoint: + path: /vos/api/mpts/destinationProfile + method: GET + data_selector: properties +- name: MptsDimProperties + endpoint: + path: /vos/api/mpts/dimProperties + method: GET + data_selector: properties +- name: MptsEncapsulationSettings + endpoint: + path: /vos/api/mpts/encapsulationSettings + method: GET + data_selector: settings +- name: MptsProfileProperties + endpoint: + path: /vos/api/mpts/profileProperties + method: GET + data_selector: properties +- name: MultiscreenProfileProperties + endpoint: + path: /vos/api/multiscreen/profileProperties + method: GET + data_selector: properties +- name: DrmSettings + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.DrmSettings + method: GET + data_selector: records +- name: DualServiceOutputIpSettings + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.DualServiceOutputIpSettings + method: GET + data_selector: records +- name: ExternalKeyPublishingSettings + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.ExternalKeyPublishingSettings + method: GET + data_selector: records +- name: GpioOutput + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.GpioOutput + method: GET + data_selector: records +- name: HSP_Output + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.HSP_Output + method: GET + data_selector: records +- name: IP_Output + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.IP_Output + method: GET + data_selector: records +- name: ManipulationProfile + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.ManipulationProfile + method: GET + data_selector: records +- name: OriginOutput + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.OriginOutput + method: GET + data_selector: records +- name: Output + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.Output + method: GET + data_selector: records +- name: PoolBinding + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.PoolBinding + method: GET + data_selector: records +- name: PsiSiTableConfig + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.PsiSiTableConfig + method: GET + data_selector: records +- name: S3PublishSettings + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.S3PublishSettings + method: GET + data_selector: records +- name: SDI_Output + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.SDI_Output + method: GET + data_selector: records +- name: ST2110_Output + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.ST2110_Output + method: GET + data_selector: records +- name: SrtOutputSettings + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.SrtOutputSettings + method: GET + data_selector: records +- name: ZixiOutputSettings + endpoint: + path: /com.harmonicinc.vos.app.configure.model.destination.ZixiOutputSettings + method: GET + data_selector: records +- name: Latency + endpoint: + path: /com/harmonicinc/vos/app/configure/model/service/Latency + method: GET + data_selector: records +- name: LiveEventAddon + endpoint: + path: /com/harmonicinc/vos/app/configure/model/service/LiveEventAddon + method: GET + data_selector: records +- name: LogoAddon + endpoint: + path: /com/harmonicinc/vos/app/configure/model/service/LogoAddon + method: GET + data_selector: records +- name: MuxAddon + endpoint: + path: /com/harmonicinc/vos/app/configure/model/service/MuxAddon + method: GET + data_selector: records +- name: NielsenWatermarkAddon + endpoint: + path: /com/harmonicinc/vos/app/configure/model/service/NielsenWatermarkAddon + method: GET + data_selector: records +- name: OperatorActionAddon + endpoint: + path: /com/harmonicinc/vos/app/configure/model/service/OperatorActionAddon + method: GET + data_selector: records +- name: ParentalControlAddon + endpoint: + path: /com/harmonicinc/vos/app/configure/model/service/ParentalControlAddon + method: GET + data_selector: records +- name: PlayoutLayer + endpoint: + path: /com/harmonicinc/vos/app/configure/model/service/PlayoutLayer + method: GET + data_selector: records +- name: PlayoutSettingsAddon + endpoint: + path: /com/harmonicinc/vos/app/configure/model/service/PlayoutSettingsAddon + method: GET + data_selector: records +- name: ProcessingParameters + endpoint: + path: /com/harmonicinc/vos/app/configure/model/service/ProcessingParameters + method: GET + data_selector: records +- name: AsiInput + endpoint: + path: /asi/input + method: GET + data_selector: records + params: {} +- name: AtscTuner + endpoint: + path: /atsc/tuner + method: GET + data_selector: records + params: {} +- name: DemuxInput + endpoint: + path: /demux/input + method: GET + data_selector: records + params: {} +- name: DtmfProfile + endpoint: + path: /dtmf/profile + method: GET + data_selector: records + params: {} +- name: PureOttPlayoutDestinationProfileProperties$DashPackagingProperties + endpoint: + path: /pureOttPlayoutDestinationProfileProperties/dashPackaging + method: GET + data_selector: dvrWindowSize, mpdFileName + params: {} +- name: PureOttPlayoutDestinationProfileProperties$HlsPackagingProperties + endpoint: + path: /pureOttPlayoutDestinationProfileProperties/hlsPackaging + method: GET + data_selector: dvrWindowSize, scte35Signaling, variantPlaylistFileName + params: {} +- name: PureOttPlayoutProfileProperties + endpoint: + path: /pureOttPlayoutProfileProperties + method: GET + data_selector: dashManifest, hlsVariantPlaylist, packagingProfileType + params: {} +- name: RawTsPackagingProperties + endpoint: + path: /rawTsPackaging + method: GET + data_selector: segmentLength + params: {} +- name: RtmpPackagingProperties + endpoint: + path: /rtmpPackaging + method: GET + data_selector: lbaMode, psvpAudioLanguage, psvpAudioMaxBitrate, psvpVideoMaxBitrate, + publishSingleVideoProfile, reconnInterval, scte35DefaultBreakDurationInMs, scte35HandlingMode, + userAgent + params: {} +- name: STBProfileProperties + endpoint: + path: /stbProfile + method: GET + data_selector: bitrateMode, cc608TO708, closedCaption, descriptors, disableAc3DescGeneration, + dpi, mappingType, pidBaseMap, profileType, programNumberMap, restrictions, subtitling, + teletext + params: {} +- name: Scte27ToDvbSubtitleConversionProperties + endpoint: + path: /scte27ToDvbSubtitleConversion + method: GET + data_selector: forceDdsOn, language, pageId, subtitleType + params: {} +- name: Scte35GenericProperties + endpoint: + path: /scte35Generic + method: GET + data_selector: periodTimingSpecification, scte35Carriage + params: {} +- name: SignalingTable + endpoint: + path: /signalingTable + method: GET + data_selector: buildingMode, tableName + params: {} +- name: SpeechToTextProperties + endpoint: + path: /speechToText + method: GET + data_selector: defaultSubtitle, outputPid, streamName, subtitlePurpose + params: {} +- name: SsPackagingProperties + endpoint: + path: /ssPackaging + method: GET + data_selector: audioSegmentLength, dvrWindowSize, enableKeyRotation, enablePackageBasedKeyRotation, + encryptionMethod, keyChangePeriod, languageCodeLetterCase, segmentRetentionPeriod, + subtitleNamePattern, videoSegmentLength + params: {} +- name: OutputComponentParameters + endpoint: + path: /com/harmonicinc/vos/mux/model/componentlevel/OutputComponentParameters + method: GET + data_selector: records + params: {} +- name: OutputComponentScramblingParameters + endpoint: + path: /com/harmonicinc/vos/mux/model/componentlevel/OutputComponentScramblingParameters + method: GET + data_selector: records + params: {} +- name: InputIdentifier + endpoint: + path: /com/harmonicinc/vos/mux/model/programlevel/InputIdentifier + method: GET + data_selector: records + params: {} +- name: OutputProgram + endpoint: + path: /com/harmonicinc/vos/mux/model/programlevel/OutputProgram + method: GET + data_selector: records + params: {} +- name: OutputProgramEitEttRemultiplexing + endpoint: + path: /com/harmonicinc/vos/mux/model/programlevel/OutputProgramEitEttRemultiplexing + method: GET + data_selector: records + params: {} +- name: OutputProgramParameters + endpoint: + path: /com/harmonicinc/vos/mux/model/programlevel/OutputProgramParameters + method: GET + data_selector: records + params: {} +- name: OutputProgramScramblingParameters + endpoint: + path: /com/harmonicinc/vos/mux/model/programlevel/OutputProgramScramblingParameters + method: GET + data_selector: records + params: {} +- name: PmtParameters + endpoint: + path: /com/harmonicinc/vos/mux/model/programlevel/PmtParameters + method: GET + data_selector: records + params: {} +- name: SdtParameters + endpoint: + path: /com/harmonicinc/vos/mux/model/programlevel/SdtParameters + method: GET + data_selector: records + params: {} +- name: OutputTS + endpoint: + path: /com/harmonicinc/vos/mux/model/ts/OutputTS + method: GET + data_selector: records + params: {} +- name: GlobalSettings + endpoint: + path: /com/harmonicinc/vos/mux/model/tslevel/GlobalSettings + method: GET + data_selector: records + params: {} +- name: DtmfSettings + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.DtmfSettings + method: GET + data_selector: records + params: {} +- name: DvbS2XPort + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.DvbS2XPort + method: GET + data_selector: records + params: {} +- name: DvbS2XTuner + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.DvbS2XTuner + method: GET + data_selector: records + params: {} +- name: DvbSubtitlingDescriptor + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.DvbSubtitlingDescriptor + method: GET + data_selector: records + params: {} +- name: DvbSubtitlingDescriptorData + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.DvbSubtitlingDescriptorData + method: GET + data_selector: records + params: {} +- name: FrameRate + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.FrameRate + method: GET + data_selector: records + params: {} +- name: G2OAuthConfig + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.G2OAuthConfig + method: GET + data_selector: records + params: {} +- name: HSP_Input + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.HSP_Input + method: GET + data_selector: records + params: {} +- name: HarmonicCloudlinkSetting + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.HarmonicCloudlinkSetting + method: GET + data_selector: records + params: {} +- name: HarmonicUplinkSetting + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.HarmonicUplinkSetting + method: GET + data_selector: records + params: {} +- name: HspAuthenticationHeader + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.HspAuthenticationHeader + method: GET + data_selector: records + params: {} +- name: HspEndpointSettings + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.HspEndpointSettings + method: GET + data_selector: records + params: {} +- name: HspInputBufferSettings + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.HspInputBufferSettings + method: GET + data_selector: records + params: {} +- name: IP_Input + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.IP_Input + method: GET + data_selector: records + params: {} +- name: ISO639Descriptor + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.ISO639Descriptor + method: GET + data_selector: records + params: {} +- name: ISO639DescriptorData + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.ISO639DescriptorData + method: GET + data_selector: records + params: {} +- name: Input + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.Input + method: GET + data_selector: records + params: {} +- name: InputGrooming + endpoint: + path: /com.harmonicinc.vos.app.configure.model.source.InputGrooming + method: GET + data_selector: records + params: {} +- name: Smpte2110DataTransportProperties + endpoint: + path: /configure/smpte2110/data_transport + method: GET + data_selector: data + params: {} +- name: Smpte2110TransportProperties + endpoint: + path: /configure/smpte2110/transport + method: GET + data_selector: data + params: {} +- name: Smpte2110VideoStreamProperties + endpoint: + path: /configure/smpte2110/video_stream + method: GET + data_selector: data + params: {} +- name: Smpte302mChannelList + endpoint: + path: /configure/smpte302m/channel_list + method: GET + data_selector: data + params: {} +- name: SrtCloudSourceSettings + endpoint: + path: /configure/srt/cloud_source + method: GET + data_selector: data + params: {} +- name: SrtInput + endpoint: + path: /configure/srt/input + method: GET + data_selector: data + params: {} +- name: St2038Track + endpoint: + path: /configure/st2038/track + method: GET + data_selector: data + params: {} +- name: StreamDescriptor + endpoint: + path: /configure/stream/descriptor + method: GET + data_selector: data + params: {} +- name: TeletextDescriptor + endpoint: + path: /configure/teletext/descriptor + method: GET + data_selector: data + params: {} +- name: TtmlDescriptor + endpoint: + path: /configure/ttml/descriptor + method: GET + data_selector: data + params: {} +- name: ZixiEncoderSetting + endpoint: + path: /configure/zixi/encoder + method: GET + data_selector: data + params: {} +- name: ZixiEndPointSetting + endpoint: + path: /zixi/endpoint + method: GET + data_selector: zixiEndpointId + params: {} +- name: InputStatisticEntry + endpoint: + path: /api/v1/inputStatisticEntry + method: GET + data_selector: records +- name: InputStatus + endpoint: + path: /api/v1/inputStatus + method: GET + data_selector: records +- name: LogoGroupState + endpoint: + path: /api/v1/logoGroupState + method: GET + data_selector: records +- name: LogoRequestConfig + endpoint: + path: /api/v1/logoRequestConfig + method: GET + data_selector: records +- name: OriginStatistic + endpoint: + path: /api/v1/originStatistic + method: GET + data_selector: records +- name: OutputStatus + endpoint: + path: /api/v1/outputStatus + method: GET + data_selector: records +- name: Service + endpoint: + path: /api/v1/service + method: GET + data_selector: records +- name: sequence_primary_properties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/InsertSequencePrimaryProperties + method: GET + data_selector: records +- name: sequence_secondary_element + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/InsertSequenceSecondaryElement + method: GET + data_selector: records +- name: sequence_single_primary_properties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/InsertSequenceSinglePrimaryProperties + method: GET + data_selector: records +- name: sequence_element + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/SequenceElement + method: GET + data_selector: records +- name: sequence_primary_element + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/SequencePrimaryElement + method: GET + data_selector: records +- name: sequence_properties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/SequenceProperties + method: GET + data_selector: records +- name: sequence_secondary_element + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/SequenceSecondaryElement + method: GET + data_selector: records +- name: update_sequence_primary_properties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/UpdateSequencePrimaryProperties + method: GET + data_selector: records +- name: update_sequence_properties + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/rest/model/sequence/UpdateSequenceProperties + method: GET + data_selector: records +- name: trigger_conf + endpoint: + path: /com/harmonicinc/vos/app/playoutcontrolbackend/services/triggerManager/TriggerConf + method: GET + data_selector: records +- name: OriginChannel + endpoint: + path: /com/harmonicinc/vos/app/unifiedoriginengine/channels/OriginChannel + method: GET +- name: TestReceiver + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/benchmark/TestReceiver + method: GET +- name: CloudlinkOutput + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/CloudlinkOutput + method: GET +- name: DownlinkInputStatisticEntry + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/DownlinkInputStatisticEntry + method: GET +- name: DownlinkOutputStatisticEntry + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/DownlinkOutputStatisticEntry + method: GET +- name: DownlinkOutputStatus + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/DownlinkOutputStatus + method: GET +- name: FecStatistic + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/FecStatistic + method: GET +- name: PidStatistics + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/PidStatistics + method: GET +- name: RtpStatistics + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/RtpStatistics + method: GET +- name: SrtInput + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/SrtInput + method: GET +- name: Uplink + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/Uplink + method: GET +- name: UplinkChannel + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/UplinkChannel + method: GET +- name: UplinkChannelStatus + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/UplinkChannelStatus + method: GET +- name: UplinkEventReporting + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/UplinkEventReporting + method: GET +- name: UplinkGroup + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/UplinkGroup + method: GET +- name: UplinkInput + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/UplinkInput + method: GET +- name: UplinkInputStatisticEntry + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/UplinkInputStatisticEntry + method: GET +- name: UplinkInputStatus + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/UplinkInputStatus + method: GET +- name: UplinkOutputStatisticEntry + endpoint: + path: /com/harmonicinc.vos.app/uplink/hub/rest/model/uplink/UplinkOutputStatisticEntry + method: GET +- name: UplinkRequest + endpoint: + path: /com/harmonicinc.vos.app/uplink/hub/rest/model/uplink/UplinkRequest + method: GET +- name: UplinkStatistic + endpoint: + path: /com/harmonicinc.vos.app/uplink/hub/rest/model/uplink/UplinkStatistic + method: GET +- name: UplinkStatus + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/rest/model/uplink/UplinkStatus + method: GET + data_selector: records +- name: HspInput + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/uplinkchannel/HspInput + method: GET + data_selector: records +- name: IpInput + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/uplinkchannel/impl/IpInput + method: GET + data_selector: records +- name: IpOutput + endpoint: + path: /com/harmonicinc/vos/app/uplink/hub/uplinkchannel/impl/IpOutput + method: GET + data_selector: records +- name: AssetIngestStatistics + endpoint: + path: /com/harmonicinc/vos/asset/acquisition/model/AssetIngestStatistics + method: GET + data_selector: records +- name: AudioChannel + endpoint: + path: /com/harmonicinc/vos/asset/acquisition/model/AudioChannel + method: GET + data_selector: records +- name: AudioGrooming + endpoint: + path: /com/harmonicinc/vos/asset/acquisition/model/AudioGrooming + method: GET + data_selector: records +- name: CuePointInfo + endpoint: + path: /com/harmonicinc/vos/asset/acquisition/model/CuePointInfo + method: GET + data_selector: records +- name: DecisionTemplate + endpoint: + path: /com/harmonicinc/vos/asset/acquisition/model/DecisionTemplate + method: GET + data_selector: records +- name: DrmProperties + endpoint: + path: /com/harmonicinc/vos/asset/acquisition/model/DrmProperties + method: GET + data_selector: records +- name: ExternalStorageUsageStatistics + endpoint: + path: /com/harmonicinc/vos/asset/acquisition/model/ExternalStorageUsageStatistics + method: GET + data_selector: records +- name: GeoBlockingProperties + endpoint: + path: /com/harmonicinc/vos/asset/acquisition/model/GeoBlockingProperties + method: GET + data_selector: records +- name: GroomingAudioTrack + endpoint: + path: /com/harmonicinc/vos/asset/acquisition/model/GroomingAudioTrack + method: GET + data_selector: records +- name: JobStatistics + endpoint: + path: /com/harmonicinc/vos/asset/acquisition/model/JobStatistics + method: GET + data_selector: records +- name: MediaInfoProbeResult + endpoint: + path: /media-info/probe/result + method: GET + data_selector: results + params: {} +- name: MpegProgram + endpoint: + path: /mpeg/program + method: GET + data_selector: programs + params: {} +- name: CmafPackagingProperties + endpoint: + path: /cmaf/packaging + method: GET + data_selector: properties + params: {} +- name: CustomDescriptor + endpoint: + path: /custom/descriptor + method: GET + data_selector: descriptors + params: {} +- name: DashPackagingProperties + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/DashPackagingProperties + method: GET +- name: DemuxProfileProperties + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/DemuxProfileProperties + method: GET +- name: DestinationProfileProperties + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/DestinationProfileProperties + method: GET +- name: DpiProcessingProperties + endpoint: + path: /dpiProcessingProperties + method: GET + data_selector: properties + params: {} +- name: DrmTrackFilterProfileProperties + endpoint: + path: /drmTrackFilterProfileProperties + method: GET + data_selector: filterProperties + params: {} +- name: DvbSubtitleToDvbSubtitleConversionProperties + endpoint: + path: /dvbSubtitleToDvbSubtitleConversionProperties + method: GET + data_selector: conversionProperties + params: {} +- name: EncapsulationSettings + endpoint: + path: /encapsulationSettings + method: GET + data_selector: settings + params: {} +- name: FileTranscodingProfileProperties + endpoint: + path: /fileTranscodingProfileProperties + method: GET + data_selector: transcodingProperties + params: {} +- name: HlsPackagingProperties + endpoint: + path: /hls/packaging/properties + method: GET + data_selector: properties + params: {} +- name: HlsScte35GenericProperties + endpoint: + path: /hls/scte35/properties + method: GET + data_selector: scte35Properties + params: {} +- name: IPTVDestinationProfileProperties + endpoint: + path: /iptv/destination/properties + method: GET + data_selector: iptvProperties + params: {} +- name: IPTVProfileProperties + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/IPTVProfileProperties + method: GET + data_selector: records +- name: IPTVProfileProperties$Audio + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/IPTVProfileProperties$Audio + method: GET + data_selector: records +- name: IPTVProfileProperties$Data + endpoint: + path: /com/harmonicinc/vos/labwizard/rest/model/IPTVProfileProperties$Data + method: GET + data_selector: records +- name: MptsDestinationProfileProperties + endpoint: + path: /mpts/destinationProfile + method: GET + data_selector: encapsulationSettings +- name: MptsDimProperties + endpoint: + path: /mpts/dimProperties + method: GET + data_selector: maxNbTSSource +- name: MptsEncapsulationSettings + endpoint: + path: /mpts/encapsulationSettings + method: GET + data_selector: enableFEC +- name: MptsProfileProperties + endpoint: + path: /mpts/profileProperties + method: GET + data_selector: bandwidth +- name: MultiscreenProfileProperties + endpoint: + path: /multiscreen/profileProperties + method: GET + data_selector: audioMatchingMode +- name: DashPackagingProperties + endpoint: + path: /dashPackaging + method: GET + data_selector: records + params: + dvrWindowSize: integer +- name: HlsPackagingProperties + endpoint: + path: /hlsPackaging + method: GET + data_selector: records + params: + dvrWindowSize: integer + scte35Signaling: enum + variantPlaylistFileName: string +- name: RawTsPackagingProperties + endpoint: + path: /rawTsPackaging + method: GET + data_selector: records + params: + segmentLength: integer +- name: RtmpPackagingProperties + endpoint: + path: /rtmpPackaging + method: GET + data_selector: records + params: + lbaMode: boolean + psvpAudioLanguage: string + psvpAudioMaxBitrate: integer + psvpVideoMaxBitrate: integer + publishSingleVideoProfile: boolean + reconnInterval: integer + scte35DefaultBreakDurationInMs: integer + scte35HandlingMode: enum + userAgent: string +- name: SsPackagingProperties + endpoint: + path: /ssPackaging + method: GET + data_selector: records + params: + audioSegmentLength: integer + dvrWindowSize: integer + enableKeyRotation: boolean + enablePackageBasedKeyRotation: boolean + encryptionMethod: enum + keyChangePeriod: integer + languageCodeLetterCase: enum + segmentRetentionPeriod: integer + subtitleNamePattern: string + videoSegmentLength: integer +notes: +- Requires OAuth2 authentication with refresh token. +- Uses OAuth2 with authorization code — requires setup of client app in VOS. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- Uses OAuth2 with refresh token — requires setup of connected app in Harmonic API +- Ensure proper configuration of media stream properties. +- Uses OAuth2 with refresh token. +- Requires setup of connected app in API. +- Ensure API keys are managed securely +- Ensure correct OAuth2 setup is completed for API access. +- Uses OAuth2 with authorization code — requires setup of client app in VOS +- Consumes application/json +- Produces application/json +- All endpoints consume and produce application/json +- Consumes and produces application/json +- Requires setup of client apps for proper configuration +- Set to true to use enable push of nginx access logs to Loki +- Set to true to use enable push of nginx access logs to S3 +- This API does not require authentication. +- Uses OAuth2 with client ID and secret — requires setup of connected app in API +- Requires setup of connected app in api +- The API supports various properties for media packaging. +- The API does not require authentication. +- Uses REST API for data access +errors: +- 'REQUEST_LIMIT_EXCEEDED: Throttle API calls or reduce frequency' +- '401 Unauthorized: Recheck OAuth scopes or token expiration' +- '401 Unauthorized: No Content' +- '403 Forbidden: No Content' +- '404 Not Found: No Content' +- 'NOT_FOUND: Check the endpoint URL.' +- 'UNAUTHORIZED: Verify authentication credentials.' +- 'QUERY_TIMEOUT: Break down filters or add selectivity' +- '400: Bad request' +- '401: Unauthorized' +- '403: Forbidden' +- '404: Not Found' +- '500: Internal Error' +- '400 Bad Request: Check request parameters' +- '404 Not Found: Verify endpoint path' +- '500 Internal Server Error: Retry request' +- '404 Not Found: Verify the endpoint path.' +- '500 Internal Server Error: Check server status.' +- '500 Internal Error: No Content' +- '400: Invalid request' +- '400 Invalid request: No Content' +- '400 Bad Request: Check the request parameters.' +- '404 Not Found: The requested resource does not exist.' +auth_info: + mentioned_objects: + - OauthToken + - AuthProvider + - HspAuthenticationHeader + - HspEndpointSettings + - ClientApp + - AccessToken + - AuthorizationCode + - NamedCredential + - DrmTrackFilterList + - DvbSubtitleProcessingProperties + - ClientAppCheckerConfig + - ClientDetailsConfig +client: + base_url: /configure/v1 + headers: + Accept: application/json +source_metadata: null diff --git a/w3c_uaag_2_0_reference/w3c-uaag-2-0-reference-docs.md b/w3c_uaag_2_0_reference/w3c-uaag-2-0-reference-docs.md new file mode 100644 index 00000000..5e898c4d --- /dev/null +++ b/w3c_uaag_2_0_reference/w3c-uaag-2-0-reference-docs.md @@ -0,0 +1,155 @@ +In this guide, we'll set up a complete W3C data pipeline from API credentials to your first data load in just 10 minutes. You'll end up with a fully declarative Python pipeline based on dlt's REST API connector, like in the partial example code below: + +```python-outcome +@dlt.source +def w3c_migration_source(access_token=dlt.secrets.value): + config: RESTAPIConfig = { + "client": { + "base_url": "https://www.w3.org/", + "auth": { + "type": "bearer", + "token": access_token, + }, + }, + "resources": [ + root,,go,,id + ], + } + [...] + yield from rest_api_resources(config) + + +def get_data() -> None: + # Connect to destination + pipeline = dlt.pipeline( + pipeline_name='w3c_migration_pipeline', + destination='duckdb', + dataset_name='w3c_migration_data', + ) + # Load the data + load_info = pipeline.run(w3c_migration_source()) + print(load_info) +``` + +### Why use dltHub Workspace with LLM Context to generate Python pipelines? + +- Accelerate pipeline development with AI-native context +- Debug pipelines, validate schemas and data with the integrated **Pipeline Dashboard** +- Build Python notebooks for end users of your data +- **Low maintenance** thanks to Schema evolution with type inference, resilience and self documenting REST API connectors. A shallow learning curve makes the pipeline easy to extend by any team member +- dlt is the tool of choice for Pythonic Iceberg Lakehouses, bringing mature data loading to pythonic Iceberg with or without catalogs + +## What you’ll do + +We’ll show you how to generate a readable and easily maintainable Python script that fetches data from w3c_migration’s API and loads it into Iceberg, DataFrames, files, or a database of your choice. Here are some of the endpoints you can load: + +- Root: Main entry point for W3C API. +- Go: A redirection endpoint for specific resources. +- ID: Endpoint related to identification resources. +- Source: Access to source resources. +- Set: Configuration or setting resources. +- Tag: Tagging resources for categorization. +- All: Access to all available resources. + +You will then debug the W3C pipeline using our Pipeline Dashboard tool to ensure it is copying the data correctly, before building a Notebook to explore your data and build reports. + +## Setup & steps to follow + +```default +Before getting started, let's make sure Cursor is set up correctly: + - We suggest using a model like Claude 3.7 Sonnet or better + - Index the REST API Source tutorial: https://dlthub.com/docs/dlt-ecosystem/verified-sources/rest_api/ and add it to context as **@dlt rest api** + - [Read our full steps on setting up Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi#23-configuring-cursor-with-documentation) +``` + +Now you're ready to get started! + +1. ⚙️ **Set up `dlt` Workspace** + + Install dlt with duckdb support: + ```shell + pip install dlt[workspace] + ``` + + Initialize a dlt pipeline with W3C support. + ```shell + dlt init dlthub:w3c_migration duckdb + ``` + + The `init` command will setup the necessary files and folders for the next step. + +2. 🤠 **Start LLM-assisted coding** + + Here’s a prompt to get you started: + + ```prompt + Please generate a REST API Source for W3C API, as specified in @w3c_migration-docs.yaml + Start with endpoints root and and skip incremental loading for now. + Place the code in w3c_migration_pipeline.py and name the pipeline w3c_migration_pipeline. + If the file exists, use it as a starting point. + Do not add or modify any other files. + Use @dlt rest api as a tutorial. + After adding the endpoints, allow the user to run the pipeline with python w3c_migration_pipeline.py and await further instructions. + ``` + + +3. 🔒 **Set up credentials** + + This source does not require authentication, making it easily accessible to users. + + To get the appropriate API keys, please visit the original source at https://www.w3.org/. + If you want to protect your environment secrets in a production environment, look into [setting up credentials with dlt](https://dlthub.com/docs/walkthroughs/add_credentials). + +4. 🏃‍♀️ **Run the pipeline in the Python terminal in Cursor** + + ```shell + python w3c_migration_pipeline.py + ``` + + If your pipeline runs correctly, you’ll see something like the following: + + ```shell + Pipeline w3c_migration load step completed in 0.26 seconds + 1 load package(s) were loaded to destination duckdb and into dataset w3c_migration_data + The duckdb destination used duckdb:/w3c_migration.duckdb location to store data + Load package 1749667187.541553 is LOADED and contains no failed jobs + ``` + +5. 📈 **Debug your pipeline and data with the Pipeline Dashboard** + + Now that you have a running pipeline, you need to make sure it’s correct, so you do not introduce silent failures like misconfigured pagination or incremental loading errors. By launching the dlt Workspace Pipeline Dashboard, you can see various information about the pipeline to enable you to test it. Here you can see: + - Pipeline overview: State, load metrics + - Data’s schema: tables, columns, types, hints + - You can query the data itself + + ```shell + dlt pipeline w3c_migration_pipeline show --dashboard + ``` + +6. 🐍 **Build a Notebook with data explorations and reports** + + With the pipeline and data partially validated, you can continue with custom data explorations and reports. To get started, paste the snippet below into a new marimo Notebook and ask your LLM to go from there. Jupyter Notebooks and regular Python scripts are supported as well. + + + ```python + import dlt + + data = dlt.pipeline("w3c_migration_pipeline").dataset() + # get oo table as Pandas frame + data.oo.df().head() + ``` + +## Running into errors? + +While the W3C API does not require authentication, users should be mindful of rate limits to avoid HTTP 429 errors. Additionally, users may encounter issues with unsupported characters or syntax errors in requests. + +### Extra resources: + +- [Learn more with our 1h LLM-assisted coding course!](https://www.youtube.com/watch?v=GGid70rnJuM) + +## Next steps + +- [How to deploy a pipeline](https://dlthub.com/docs/walkthroughs/deploy-a-pipeline) +- [How to explore your data in marimo Notebooks](https://dlthub.com/docs/general-usage/dataset-access/marimo) +- [How to query your data in Python with dataset](https://dlthub.com/docs/general-usage/dataset-access/dataset) +- [How to create REST API Sources with Cursor](https://dlthub.com/docs/dlt-ecosystem/llm-tooling/cursor-restapi) \ No newline at end of file diff --git a/w3c_uaag_2_0_reference/w3c-uaag-2-0-reference-docs.yaml b/w3c_uaag_2_0_reference/w3c-uaag-2-0-reference-docs.yaml new file mode 100644 index 00000000..d4c23150 --- /dev/null +++ b/w3c_uaag_2_0_reference/w3c-uaag-2-0-reference-docs.yaml @@ -0,0 +1,13221 @@ +resources: +- name: guideline_2.1 + endpoint: + path: /guidelines/2.1 + method: GET + data_selector: guidelines + params: {} +- name: Guideline 2.6 + endpoint: + path: /TR/2015/NOTE-UAAG20-20151215/#gl-store-prefs + method: GET + data_selector: preferences + params: {} +- name: Guideline 2.7 + endpoint: + path: /TR/2015/NOTE-UAAG20-20151215/#gl-configure-controls + method: GET + data_selector: controls + params: {} +- name: Guideline 2.8 + endpoint: + path: /TR/2015/NOTE-UAAG20-20151215/#gl-time-independent + method: GET + data_selector: time_limits + params: {} +- name: success_criterion_1_8_12 + endpoint: + path: /success-criteria/1.8.12 + method: GET +- name: success_criterion_1_8_13 + endpoint: + path: /success-criteria/1.8.13 + method: GET +- name: success_criterion_1_8_14 + endpoint: + path: /success-criteria/1.8.14 + method: GET +- name: success_criterion_1_8_15 + endpoint: + path: /success-criteria/1.8.15 + method: GET +- name: success_criterion_1_8_16 + endpoint: + path: /success-criteria/1.8.16 + method: GET +- name: WebXR Device API + endpoint: + path: /TR/webxr/ + method: GET +- name: WebXR Layers API Level 1 + endpoint: + path: /TR/webxrlayers-1/ + method: GET +- name: working_groups + endpoint: + path: /groups/wg/ + method: GET + data_selector: groups +- name: interest_groups + endpoint: + path: /groups/ig/ + method: GET + data_selector: groups +- name: community_business_groups + endpoint: + path: /groups/cg/ + method: GET + data_selector: groups +- name: permanent_groups + endpoint: + path: /groups/perma/ + method: GET + data_selector: groups +- name: WCAG 2.1 + endpoint: + path: /TR/2018/REC-WCAG21-20180605/ + method: GET + data_selector: translations + params: {} +- name: liaison + endpoint: + path: /contact/liaison + method: GET +- name: mailing_lists + endpoint: + path: /email/ + method: GET + data_selector: content +- name: W3C Recommendations + endpoint: + path: /TR/ + method: GET + data_selector: documents + params: {} +- name: W3C standards types + endpoint: + path: /standards/types/ + method: GET + data_selector: types + params: {} +- name: W3C groups + endpoint: + path: /groups/ + method: GET + data_selector: groups + params: {} +- name: Translations of W3C standards + endpoint: + path: /translations/ + method: GET + data_selector: translations + params: {} +- name: Introduction to Web Accessibility + endpoint: + path: /WAI/fundamentals/accessibility-intro/ + method: GET + data_selector: '' + params: {} +- name: 'Accessibility: It’s About People' + endpoint: + path: /WAI/people/ + method: GET + data_selector: '' + params: {} +- name: Essential Components of Web Accessibility + endpoint: + path: /WAI/fundamentals/components/ + method: GET + data_selector: '' + params: {} +- name: Accessibility Principles + endpoint: + path: /WAI/fundamentals/accessibility-principles/ + method: GET + data_selector: '' + params: {} +- name: Accessibility User Requirements + endpoint: + path: /WAI/research/user-requirements/ + method: GET + data_selector: '' + params: {} +- name: Artificial Intelligence (AI) and Accessibility Research Symposium 2023 + endpoint: + path: /WAI/research/ai2023/ + method: GET + data_selector: '' + params: {} +- name: Digital Accessibility Foundations + endpoint: + path: /WAI/fundamentals/foundations-course/ + method: GET + data_selector: '' + params: {} +- name: Course List of Digital Accessibility Education, Training, and Certification + endpoint: + path: /WAI/courses/list/ + method: GET + data_selector: '' + params: {} +- name: WebRTC + endpoint: + path: /TR/webrtc/ + method: GET +- name: Scalable Video Coding (SVC) + endpoint: + path: /TR/webrtc-svc/ + method: GET +- name: WebRTC Extended Use Cases + endpoint: + path: /TR/webrtc-nv-use-cases/ + method: GET +- name: WebRTC Priority Control API + endpoint: + path: /TR/webrtc-priority/ + method: GET +- name: Identity for WebRTC 1.0 + endpoint: + path: /TR/webrtc-identity/ + method: GET +- name: Pointer Events + endpoint: + path: /TR/pointerevents4/ + method: GET +- name: Touch Events + endpoint: + path: /TR/touch-events/ + method: GET +- name: WebGPU + endpoint: + path: /TR/webgpu/ + method: GET +- name: CSS Flexible Box Layout + endpoint: + path: /TR/css-flexbox-1/ + method: GET +- name: SHACL + endpoint: + path: /TR/shacl/ + method: GET +- name: WAI-ARIA + endpoint: + path: /TR/wai-aria/ + method: GET +- name: Digital Credentials + endpoint: + path: /TR/digital-credentials/ + method: GET +- name: TTML + endpoint: + path: /TR/ttml/ + method: GET +- name: Audio Output Devices API + endpoint: + path: /TR/audio-output/ + method: GET +- name: Media Capture + endpoint: + path: /TR/mediacapture-streams/ + method: GET +- name: news + endpoint: + path: /news/ + method: GET + data_selector: results + params: {} +- name: press_releases + endpoint: + path: /press-releases/ + method: GET + data_selector: press_releases + params: {} +- name: media_kit + endpoint: + path: /about/press-media/ + method: GET + data_selector: contents + params: {} +- name: TPAC 2025 + endpoint: + path: /2025/11/TPAC/ + method: GET + data_selector: details +- name: TPAC 2024 + endpoint: + path: /2024/09/TPAC/ + method: GET + data_selector: details +- name: TPAC 2023 + endpoint: + path: /2023/09/TPAC/ + method: GET + data_selector: details +- name: TPAC 2022 + endpoint: + path: /2022/09/TPAC/ + method: GET + data_selector: details +- name: TPAC 2021 + endpoint: + path: /2021/10/TPAC/ + method: GET + data_selector: details +- name: TPAC 2020 + endpoint: + path: /2020/10/TPAC/ + method: GET + data_selector: details +- name: TPAC 2019 + endpoint: + path: /2019/09/TPAC/ + method: GET + data_selector: details +- name: TPAC 2018 + endpoint: + path: /2018/10/TPAC/ + method: GET + data_selector: details +- name: TPAC 2017 + endpoint: + path: /2017/11/TPAC/ + method: GET + data_selector: details +- name: TPAC 2016 + endpoint: + path: /2016/09/TPAC/ + method: GET + data_selector: details +- name: TPAC 2015 + endpoint: + path: /2015/11/TPAC/ + method: GET + data_selector: details +- name: TPAC 2014 + endpoint: + path: /2014/11/TPAC/ + method: GET + data_selector: details +- name: TPAC 2013 + endpoint: + path: /2013/11/TPAC/ + method: GET + data_selector: details +- name: TPAC 2012 + endpoint: + path: /2012/10/TPAC/ + method: GET + data_selector: details +- name: TPAC 2011 + endpoint: + path: /2011/11/TPAC/ + method: GET + data_selector: details +- name: TPAC 2010 + endpoint: + path: /2010/11/TPAC/ + method: GET + data_selector: details +- name: TPAC 2009 + endpoint: + path: /2009/11/TPAC/ + method: GET + data_selector: details +- name: TPAC 2008 + endpoint: + path: /2008/10/TPAC/ + method: GET + data_selector: details +- name: TPAC 2007 + endpoint: + path: /2007/11/TPAC/ + method: GET + data_selector: details +- name: TPAC 2006 + endpoint: + path: /2005/12/allgroupoverview.html + method: GET + data_selector: details +- name: TPAC 2005 + endpoint: + path: /2004/12/allgroupoverview.html + method: GET + data_selector: details +- name: TPAC 2004 + endpoint: + path: /2003/08/allgroupoverview.html + method: GET + data_selector: details +- name: TPAC 2003 + endpoint: + path: /2002/10/allgroupoverview/ + method: GET + data_selector: details +- name: TPAC 2002 + endpoint: + path: /2001/07/allgroupoverview.html + method: GET + data_selector: details +- name: TPAC 2001 + endpoint: + path: /2001/02/allgroupoverview.html + method: GET + data_selector: details +- name: staff + endpoint: + path: /api/staff + method: GET + data_selector: staff_members +- name: jobs + endpoint: + path: /careers/jobs + method: GET + data_selector: positions + params: {} +- name: fellowships + endpoint: + path: /careers/fellows + method: GET + data_selector: fellows + params: {} +- name: Bengali Script Resources + endpoint: + path: /TR/beng-lreq/ + method: GET +- name: Canadian Aboriginal Syllabics Script Resources + endpoint: + path: /TR/cans-lreq/ + method: GET +- name: Cherokee Script Resources + endpoint: + path: /TR/cher-lreq/ + method: GET +- name: Cyrillic Script Resources + endpoint: + path: /TR/cyrl-lreq/ + method: GET +- name: Devanagari Script Resources + endpoint: + path: /TR/deva-lreq/ + method: GET +- name: Ethiopic Script Resources + endpoint: + path: /TR/ethi-lreq/ + method: GET +- name: Georgian Script Resources + endpoint: + path: /TR/geor-lreq/ + method: GET +- name: Gujarati Script Resources + endpoint: + path: /TR/gujr-lreq/ + method: GET +- name: Gurmukhi Script Resources + endpoint: + path: /TR/guru-lreq/ + method: GET +- name: Hebrew Script Resources + endpoint: + path: /TR/hebr-lreq/ + method: GET +- name: Javanese Script Resources + endpoint: + path: /TR/java-lreq/ + method: GET +- name: Khmer Script Resources + endpoint: + path: /TR/khmr-lreq/ + method: GET +- name: Lao Script Resources + endpoint: + path: /TR/laoo-lreq/ + method: GET +- name: Latin Script Resources + endpoint: + path: /TR/latn-lreq/ + method: GET +- name: N’Ko Script Resources + endpoint: + path: /TR/nkoo-lreq/ + method: GET +- name: Osage Script Resources + endpoint: + path: /TR/osge-lreq/ + method: GET +- name: Tamil Script Resources + endpoint: + path: /TR/taml-lreq/ + method: GET +- name: Thai Script Resources + endpoint: + path: /TR/thai-lreq/ + method: GET +- name: Tibetan Script Resources + endpoint: + path: /TR/tibt-lreq/ + method: GET +- name: Tibetan Layout Requirements + endpoint: + path: /TR/tlreq/ + method: GET +- name: Tamil Layout Requirements + endpoint: + path: /TR/ilreq-taml/ + method: GET +- name: Requirements for Japanese Text Layout + endpoint: + path: /TR/jlreq/ + method: GET +- name: Rules for Simple Placement of Japanese Ruby + endpoint: + path: /TR/simple-ruby/ + method: GET +- name: Indic Layout Requirements + endpoint: + path: /TR/ilreq/ + method: GET +- name: Requirements for Hangul Text Layout and Typography + endpoint: + path: /TR/klreq/ + method: GET +- name: Ethiopic Layout Requirements + endpoint: + path: /TR/elreq/ + method: GET +- name: Requirements for Latin Text Layout and Pagination + endpoint: + path: /TR/dpub-latinreq/ + method: GET +- name: WebTransport + endpoint: + path: /TR/webtransport/ + method: GET +- name: CSS Anchor Positioning + endpoint: + path: /TR/css-anchor-position-1/ + method: GET +- name: CSS Overflow Module Level 3 + endpoint: + path: /TR/css-overflow-3/ + method: GET +- name: CSS Overflow Module Level 5 + endpoint: + path: /TR/css-overflow-5/ + method: GET +- name: CSS Overflow Module Level 4 + endpoint: + path: /TR/css-overflow-4/ + method: GET +- name: CSS Positioned Layout Module Level 3 + endpoint: + path: /TR/css-position-3/ + method: GET +- name: CSS Positioned Layout Module Level 4 + endpoint: + path: /TR/css-position-4/ + method: GET +- name: Trusted Types + endpoint: + path: /TR/trusted-types/ + method: GET +- name: Web Platform Design Principles + endpoint: + path: /TR/design-principles/ + method: GET +- name: Mitigating Browser Fingerprinting in Web Specifications + endpoint: + path: /TR/fingerprinting-guidance/ + method: GET +- name: Good Practices for Capability URLs + endpoint: + path: /TR/capability-urls/ + method: GET +- name: URLs in Data Primer + endpoint: + path: /TR/urls-in-data/ + method: GET +- name: Publishing and Linking on the Web + endpoint: + path: /TR/publishing-linking/ + method: GET +- name: Best Practices for Fragment Identifiers and Media Type Definitions + endpoint: + path: /TR/fragid-best-practices/ + method: GET +- name: Web API Design Cookbook + endpoint: + path: /TR/api-design/ + method: GET +- name: Cool URIs for the Semantic Web + endpoint: + path: /TR/cooluris/ + method: GET +- name: Guide to Versioning XML Languages using new XML Schema 1.1 features + endpoint: + path: /TR/xmlschema-guide2versioning/ + method: GET +- name: The Disposition of Names in an XML Namespace + endpoint: + path: /TR/namespaceState/ + method: GET +- name: Architecture of the World Wide Web, Volume One + endpoint: + path: /TR/webarch/ + method: GET +- name: 'URIs, URLs, and URNs: Clarifications and Recommendations 1.0' + endpoint: + path: /TR/uri-clarification/ + method: GET +- name: 'Web Characterization: From working group to activity' + endpoint: + path: /TR/NOTE-WCA/ + method: GET +- name: WebDriver BiDi + endpoint: + path: /TR/webdriver-bidi/ + method: GET +- name: WebDriver + endpoint: + path: /TR/webdriver2/ + method: GET +- name: WebDriver + endpoint: + path: /TR/webdriver1/ + method: GET +- name: Badging API + endpoint: + path: /TR/badging/ + method: GET +- name: Mathematical Markup Language (MathML) Version 4.0 + endpoint: + path: /TR/mathml4/ + method: GET +- name: MathML Core + endpoint: + path: /TR/mathml-core/ + method: GET +- name: MathML Media-type Declarations + endpoint: + path: /TR/mathml-media-types/ + method: GET +- name: Mathematical Markup Language (MathML) Version 3.0 2nd Edition + endpoint: + path: /TR/MathML3/ + method: GET +- name: A MathML for CSS Profile + endpoint: + path: /TR/mathml-for-css/ + method: GET +- name: Arabic mathematical notation + endpoint: + path: /TR/arabic-math/ + method: GET +- name: Bound Variables in MathML + endpoint: + path: /TR/mathml-bvar/ + method: GET +- name: Structured Types in MathML 2.0 + endpoint: + path: /TR/mathml-types/ + method: GET +- name: Units in MathML + endpoint: + path: /TR/mathml-units/ + method: GET +- name: Permissions + endpoint: + path: /TR/permissions/ + method: GET +- name: Permissions Policy + endpoint: + path: /TR/permissions-policy-1/ + method: GET +- name: Web Sustainability Guidelines (WSG) + endpoint: + path: /TR/web-sustainability-guidelines/ + method: GET +- name: WebXR Device API + endpoint: + path: /TR/webxr/ + method: GET +- name: WebXR Layers API Level 1 + endpoint: + path: /TR/webxrlayers-1/ + method: GET +- name: Advisory Committee + endpoint: + path: /advisory-committee + method: GET + data_selector: members +- name: Advisory Board + endpoint: + path: /advisory-board + method: GET +- name: Technical Architecture Group + endpoint: + path: /technical-architecture-group + method: GET +- name: document_types + endpoint: + path: /standards/types/ + method: GET + data_selector: types +- name: chartered_groups + endpoint: + path: /chartered_groups + method: GET +- name: Formal Objection + endpoint: + path: /formal-objection + method: POST + data_selector: objection + params: {} +- name: Council Decision Report + endpoint: + path: /council-decision-report + method: GET + data_selector: report + params: {} +- name: published_documents + endpoint: + path: /submissions + method: GET + data_selector: Documents + params: {} +- name: submission_comments + endpoint: + path: /comments + method: GET + data_selector: Submission / Comment + params: {} +- name: Web Payments + endpoint: + path: https://www.w3.org/ecosystems/e-commerce/ + method: GET +- name: Web of Things + endpoint: + path: https://www.w3.org/ecosystems/web-of-things/ + method: GET +- name: Spatial Data on the Web + endpoint: + path: https://www.iso.org/committee/54904.html + method: GET +- name: Media and Entertainment + endpoint: + path: https://www.w3.org/ecosystems/media/ + method: GET +- name: Decentralized Identity + endpoint: + path: https://www.itu.int/en/ITU-T/jca/idm/Pages/default.aspx + method: GET +- name: mailing_list + endpoint: + path: /email/ + method: GET + data_selector: lists + params: {} +- name: WebAssembly + endpoint: + path: /community/webassembly/ + method: GET + data_selector: participants + params: {} +- name: Social Web Incubator + endpoint: + path: /community/socialcg/ + method: GET + data_selector: participants + params: {} +- name: Web Platform Incubator + endpoint: + path: /community/wicg/ + method: GET + data_selector: participants + params: {} +- name: GPU for the Web + endpoint: + path: /community/gpu/ + method: GET + data_selector: participants + params: {} +- name: WebDX + endpoint: + path: /community/webdx/ + method: GET + data_selector: participants + params: {} +- name: Credentials + endpoint: + path: /community/credentials/ + method: GET + data_selector: participants + params: {} +- name: Permanent Identifier + endpoint: + path: /community/perma-id/ + method: GET + data_selector: participants + params: {} +- name: Web Machine Learning + endpoint: + path: /community/webmachinelearning/ + method: GET + data_selector: participants + params: {} +- name: XQuery and XSLT Extensions + endpoint: + path: /community/xslt-40/ + method: GET + data_selector: participants + params: {} +- name: Spec Editors + endpoint: + path: /community/speced-cg/ + method: GET + data_selector: participants + params: {} +- name: Data Privacy Vocabularies and Controls + endpoint: + path: /community/dpvcg/ + method: GET + data_selector: participants + params: {} +- name: Introduction to Web Accessibility + endpoint: + path: /WAI/fundamentals/accessibility-intro/ + method: GET + data_selector: resources + params: {} +- name: 'Accessibility: It’s About People' + endpoint: + path: /WAI/people/ + method: GET + data_selector: resources + params: {} +- name: Essential Components of Web Accessibility + endpoint: + path: /WAI/fundamentals/components/ + method: GET + data_selector: resources + params: {} +- name: Accessibility Principles + endpoint: + path: /WAI/fundamentals/accessibility-principles/ + method: GET + data_selector: resources + params: {} +- name: Accessibility User Requirements + endpoint: + path: /WAI/research/user-requirements/ + method: GET + data_selector: resources + params: {} +- name: Artificial Intelligence and Accessibility Research Symposium 2023 + endpoint: + path: /WAI/research/ai2023/ + method: GET + data_selector: resources + params: {} +- name: Digital Accessibility Foundations — Free Online Course + endpoint: + path: /WAI/fundamentals/foundations-course/ + method: GET + data_selector: resources + params: {} +- name: Course List of Digital Accessibility Education, Training, and Certification + endpoint: + path: /WAI/courses/list/ + method: GET + data_selector: resources + params: {} +- name: Code_of_Conduct + endpoint: + path: /policies/code-of-conduct/20240318/ + method: GET + data_selector: document + params: {} +- name: participants + endpoint: + path: /community/idai/participants + method: GET + data_selector: participants +- name: join_group + endpoint: + path: /community/idai/join + method: GET + data_selector: join_info +- name: report_problem + endpoint: + path: /community/idai/report_problem + method: POST + data_selector: report_info +- name: news + endpoint: + path: /news/ + method: GET + data_selector: results + params: {} +- name: press_releases + endpoint: + path: /press-releases/ + method: GET + data_selector: results + params: {} +- name: logo + endpoint: + path: /about/press-media/ + method: GET + data_selector: logo +- name: brand + endpoint: + path: /about/press-media/ + method: GET + data_selector: brand +- name: standards + endpoint: + path: /standards/ + method: GET + data_selector: standards +- name: news + endpoint: + path: /news/ + method: GET + data_selector: news +- name: Media Content Metadata Japanese + endpoint: + path: /community/mcm-jp/ + method: GET +- name: Web AI for Time Series + endpoint: + path: /community/waits/ + method: GET +- name: FAIR Data Point + endpoint: + path: /community/fdp/ + method: GET +- name: Schema Bib Extend + endpoint: + path: /community/schemabibex/ + method: GET +- name: Second Screen + endpoint: + path: /community/webscreens/ + method: GET +- name: Schema.org for datasets + endpoint: + path: /community/schemaorg4datasets/ + method: GET +- name: Multidimensional Quality Metrics (MQM) + endpoint: + path: /community/mqmcg/ + method: GET +- name: Educational and Occupational Credentials in schema.org + endpoint: + path: /community/eocred-schema/ + method: GET +- name: Bibframe2Schema.org + endpoint: + path: /community/bibframe2schema/ + method: GET +- name: Schema Extensions for IoT + endpoint: + path: /community/iotschema/ + method: GET +- name: Talent Marketplace Signaling + endpoint: + path: /community/talent-signal/ + method: GET +- name: Rights Automation for Market Data + endpoint: + path: /community/md-odrl-profile/ + method: GET +- name: Semantic HTML-vocabulary + endpoint: + path: /community/htmlvoc/ + method: GET +- name: Audiovisual Media Formats for Browsers + endpoint: + path: /community/av4browsers/ + method: GET +- name: RDF Surfaces + endpoint: + path: /community/rdfsurfaces/ + method: GET +- name: Chinese DID & VC + endpoint: + path: /community/cndid/ + method: GET + data_selector: participants +- name: Cloud-Edge-Client Coordination + endpoint: + path: /community/cloud-edge-client/ + method: GET + data_selector: participants +- name: Decentralized Fact-checking & Provenance Organization (DeFacto) + endpoint: + path: /community/defacto/ + method: GET + data_selector: participants +- name: Information Centric Networking + endpoint: + path: /community/icn/ + method: GET + data_selector: participants +- name: EXPath + endpoint: + path: /community/expath/ + method: GET + data_selector: participants +- name: Best Practices for Multilingual Linked Open Data + endpoint: + path: /community/bpmlod/ + method: GET + data_selector: participants +- name: Linked Data for Language Technology + endpoint: + path: /community/ld4lt/ + method: GET + data_selector: participants +- name: Automotive Ontology + endpoint: + path: /community/gao/ + method: GET + data_selector: participants +- name: Healthcare Schema Vocabulary + endpoint: + path: /community/schemed/ + method: GET + data_selector: participants +- name: Sport Schema + endpoint: + path: /community/sport-schema/ + method: GET + data_selector: participants +- name: Schema Architypes + endpoint: + path: /community/architypes/ + method: GET + data_selector: participants +- name: Interledger Payments + endpoint: + path: /community/interledger/ + method: GET + data_selector: participants +- name: Financial Industry Business Ontology + endpoint: + path: /community/fibo/ + method: GET + data_selector: participants +- name: The Tourism Structured Web Data + endpoint: + path: /community/tourismdata/ + method: GET + data_selector: participants +- name: TPAC 2025 + endpoint: + path: /2025/11/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2024 + endpoint: + path: /2024/09/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2023 + endpoint: + path: /2023/09/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2022 + endpoint: + path: /2022/09/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2021 + endpoint: + path: /2021/10/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2020 + endpoint: + path: /2020/10/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2019 + endpoint: + path: /2019/09/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2018 + endpoint: + path: /2018/10/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2017 + endpoint: + path: /2017/11/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2016 + endpoint: + path: /2016/09/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2015 + endpoint: + path: /2015/11/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2014 + endpoint: + path: /2014/11/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2013 + endpoint: + path: /2013/11/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2012 + endpoint: + path: /2012/10/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2011 + endpoint: + path: /2011/11/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2010 + endpoint: + path: /2010/11/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2009 + endpoint: + path: /2009/11/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2008 + endpoint: + path: /2008/10/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2007 + endpoint: + path: /2007/11/TPAC/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2006 + endpoint: + path: /2005/12/allgroupoverview.html + method: GET + data_selector: '' + params: {} +- name: TPAC 2005 + endpoint: + path: /2004/12/allgroupoverview.html + method: GET + data_selector: '' + params: {} +- name: TPAC 2004 + endpoint: + path: /2003/08/allgroupoverview.html + method: GET + data_selector: '' + params: {} +- name: TPAC 2003 + endpoint: + path: /2002/10/allgroupoverview/ + method: GET + data_selector: '' + params: {} +- name: TPAC 2002 + endpoint: + path: /2001/07/allgroupoverview.html + method: GET + data_selector: '' + params: {} +- name: TPAC 2001 + endpoint: + path: /2001/02/allgroupoverview.html + method: GET + data_selector: '' + params: {} +- name: leadership + endpoint: + path: /about/leadership/ + method: GET + data_selector: content + params: {} +- name: staff_members + endpoint: + path: /api/staff + method: GET + data_selector: members + params: {} +- name: staff + endpoint: + path: /staff + method: GET + data_selector: staff_members +- name: sponsorship_opportunities + endpoint: + path: /support-us/sponsor/ + method: GET + data_selector: sponsorships + params: {} +- name: community_engagement + endpoint: + path: /support-us/ + method: GET + data_selector: community_engagement + params: {} +- name: jobs + endpoint: + path: /careers/ + method: GET + data_selector: jobs + params: {} +- name: fellowships + endpoint: + path: /careers/fellows/ + method: GET + data_selector: fellows + params: {} +- name: members + endpoint: + path: /membership/list/ + method: GET + data_selector: members + params: {} +- name: members + endpoint: + path: /members + method: GET + data_selector: members + params: {} +- name: Advisory Committee + endpoint: + path: /advisory-committee + method: GET + data_selector: members +- name: Meetings + endpoint: + path: /meetings + method: GET + data_selector: meetings +- name: Advisory Board + endpoint: + path: /advisory-board + method: GET +- name: Technical Architecture Group + endpoint: + path: /technical-architecture-group + method: GET +- name: chartered_groups + endpoint: + path: /chartered_groups + method: GET + data_selector: groups + params: {} +- name: working_groups + endpoint: + path: /working_groups + method: GET + data_selector: groups + params: {} +- name: interest_groups + endpoint: + path: /interest_groups + method: GET + data_selector: groups + params: {} +- name: drafts_and_notes + endpoint: + path: /drafts_and_notes + method: GET + data_selector: drafts +- name: face_to_face_meetings + endpoint: + path: /face_to_face_meetings + method: GET + data_selector: meetings +- name: Working Draft + endpoint: + path: /TR/working-draft + method: GET +- name: Candidate Recommendation + endpoint: + path: /TR/candidate-recommendation + method: GET +- name: W3C Recommendation + endpoint: + path: /TR/recommendation + method: GET +- name: Member Submission + endpoint: + path: /submissions/ + method: GET + data_selector: acknowledged + params: {} +- name: Technical Agreement + endpoint: + path: /technical-agreement/ + method: GET + data_selector: draft + params: {} +- name: WebAssembly + endpoint: + path: /community/webassembly/ + method: GET +- name: Social Web Incubator + endpoint: + path: /community/socialcg/ + method: GET +- name: Web Platform Incubator + endpoint: + path: /community/wicg/ + method: GET +- name: GPU for the Web + endpoint: + path: /community/gpu/ + method: GET +- name: WebDX + endpoint: + path: /community/webdx/ + method: GET +- name: Credentials + endpoint: + path: /community/credentials/ + method: GET +- name: Permanent Identifier + endpoint: + path: /community/perma-id/ + method: GET +- name: Web Machine Learning + endpoint: + path: /community/webmachinelearning/ + method: GET +- name: XQuery and XSLT Extensions + endpoint: + path: /community/xslt-40/ + method: GET +- name: Spec Editors + endpoint: + path: /community/speced-cg/ + method: GET +- name: Data Privacy Vocabularies and Controls + endpoint: + path: /community/dpvcg/ + method: GET +- name: conformance_reporting + endpoint: + path: /conformance/reporting + method: GET + data_selector: reports + params: {} +- name: manifest + endpoint: + path: /TR/audiobooks/ + method: GET + data_selector: manifest + params: {} +- name: participants_list + endpoint: + path: /community/idai/participants + method: GET +- name: join_group + endpoint: + path: /community/idai/join + method: GET +- name: report_problem + endpoint: + path: /community/idai/report_problem + method: GET +- name: creators + endpoint: + path: /creators + method: GET + data_selector: creators +- name: duration + endpoint: + path: /duration + method: GET + data_selector: duration +- name: readingOrder + endpoint: + path: /readingOrder + method: GET + data_selector: readingOrder +- name: resources + endpoint: + path: /resources + method: GET + data_selector: resources +- name: previews + endpoint: + path: /previews + method: GET + data_selector: previews +- name: audiobook_example + endpoint: + path: /audiobook_example + method: GET + data_selector: resources + params: {} +- name: manifest_context + endpoint: + path: /manifest/context + method: GET + data_selector: '@context' + params: {} +- name: profile_conformance + endpoint: + path: /profile/conformance + method: GET + data_selector: conformsTo + params: {} +- name: text_tracks + endpoint: + path: /community/texttracks/ + method: GET + data_selector: tracks + params: {} +- name: high_performance_baseline + endpoint: + path: /community/high-perf-baseline/ + method: GET + data_selector: baseline + params: {} +- name: ui_specification_schema + endpoint: + path: /community/uispec/ + method: GET + data_selector: ui_specifications + params: {} +- name: dynamic_configuration_management + endpoint: + path: /community/dcm/ + method: GET + data_selector: configurations + params: {} +- name: ontology_lexica + endpoint: + path: /community/ontolex/ + method: GET + data_selector: lexica + params: {} +- name: rdf_stream_processing + endpoint: + path: /community/rsp/ + method: GET + data_selector: streams + params: {} +- name: publishing + endpoint: + path: /community/publishingbg/ + method: GET + data_selector: publishing_data + params: {} +- name: notation_3 + endpoint: + path: /community/n3-dev/ + method: GET + data_selector: notation_data + params: {} +- name: web_components + endpoint: + path: /community/webcomponents/ + method: GET + data_selector: components + params: {} +- name: human_centric_ai + endpoint: + path: /community/humancentricai/ + method: GET + data_selector: ai_data + params: {} +- name: sync_on_the_web + endpoint: + path: /community/sync-on-the-web/ + method: GET + data_selector: sync_data + params: {} +- name: india_digital_accessibility_initiative + endpoint: + path: /community/idai/ + method: GET + data_selector: accessibility_data + params: {} +- name: readingProgression + endpoint: + path: /readingProgression + method: GET + data_selector: readingProgression + params: {} +- name: title + endpoint: + path: /title + method: GET + data_selector: name + params: {} +- name: readingOrder + endpoint: + path: /readingOrder + method: GET + data_selector: readingOrder + params: {} +- name: resources + endpoint: + path: /resources + method: GET + data_selector: resources + params: {} +- name: links + endpoint: + path: /links + method: GET + data_selector: links + params: {} +- name: participants_list + endpoint: + path: /community/idai/participants + method: GET +- name: join_group + endpoint: + path: /community/idai/join + method: GET +- name: report_problem + endpoint: + path: mailto:team-community-process@w3.org?Subject=Problem%20reported%20for%20India%20Digital%20Accessibility%20Initiative%20Community%20Group&body=Please%20provide%20details%20about%20the%20problems%20for%20the%20W3C%20Staff + method: GET +- name: read_more_and_join + endpoint: + path: https://www.w3.org/community/idai/ + method: GET +- type: LinkedResource + url: cover.html + rel: cover +- type: LinkedResource + url: whale-image.jpg + encodingFormat: image/jpeg + rel: cover + name: Moby Dick attacking hunters + description: A white whale is seen surfacing from the water to attack a small whaling + boat +- type: LinkedResource + url: toc_file.html + rel: pagelist +- type: LinkedResource + url: toc_file.html + rel: contents +- type: LinkedResource + url: https://www.publisher.example.org/sherlock-holmes-accessibility.html + rel: accessibility-report +- type: LinkedResource + url: preview.mp3 + encodingFormat: audio/mpeg + rel: preview +- type: LinkedResource + url: https://www.w3.org/Consortium/Legal/privacy-statement-20140324 + encodingFormat: text/html + rel: privacy-policy +- name: LinkedResource + endpoint: + path: /linkedResource + method: GET + data_selector: uniqueURLs + params: {} +- name: schema_course_extension + endpoint: + path: /community/schema-course-extend/ + method: GET +- name: csv_on_the_web + endpoint: + path: /community/csvw/ + method: GET +- name: openactive + endpoint: + path: /community/openactive/ + method: GET +- name: manifest + endpoint: + path: /manifest + method: GET + data_selector: resources + params: {} +- name: Version Numbers + endpoint: + path: /guide/editor/versioning.html + method: GET + data_selector: document + params: {} +- name: Tracking Version Numbers + endpoint: + path: /guide/editor/versioning.html#tracking + method: GET + data_selector: document + params: {} +- name: Versioned URL Semantics + endpoint: + path: /guide/editor/versioning.html#versioned-urls + method: GET + data_selector: document + params: {} +- name: meeting_minutes + endpoint: + path: /Meetings/Minutes/ + method: GET +- name: wiki + endpoint: + path: /wiki + method: GET +- name: google_additional_licensing_information + endpoint: + path: /standards/licensing/google_additional_licensing_information + method: GET +- name: monotype_additional_licensing_information + endpoint: + path: /standards/licensing/monotype_additional_licensing_information + method: GET +- name: nortel_additional_licensing_information + endpoint: + path: /standards/licensing/nortel_additional_licensing_information + method: GET +- name: sponsorship_opportunities + endpoint: + path: /support-us/sponsor/ + method: GET + data_selector: sponsorships + params: {} +- name: donations + endpoint: + path: /support-us/donate/ + method: GET + data_selector: donations + params: {} +- name: members + endpoint: + path: /membership/list/ + method: GET + data_selector: members + params: {} +- name: UAAG 2.0 Working Group Note + endpoint: + path: https://www.w3.org/TR/UAAG20/ + method: GET +- name: UAAG 2.0 Reference + endpoint: + path: https://www.w3.org/TR/UAAG20-Reference/ + method: GET +- name: UAAG 2.0 Mobile Examples + endpoint: + path: https://www.w3.org/TR/2015/NOTE-UAAG20-Reference-20151215/mobile.html + method: GET +- name: User Agent Accessibility Guidelines 1.0 + endpoint: + path: https://www.w3.org/TR/UAAG10/ + method: GET +- name: W3C Accessibility Standards Overview + endpoint: + path: /WAI/standards-guidelines/zh-hans + method: GET + data_selector: records + params: {} +- name: Mobile Accessibility at W3C + endpoint: + path: /WAI/standards-guidelines/mobile/zh-hans + method: GET + data_selector: records + params: {} +- name: Introduction to Web Accessibility + endpoint: + path: /WAI/fundamentals/accessibility-intro/zh-hans + method: GET + data_selector: records + params: {} +- name: Accessibility Principles + endpoint: + path: /WAI/fundamentals/accessibility-principles/zh-hans + method: GET + data_selector: records + params: {} +- name: Video Introduction to Web Accessibility and W3C Standards + endpoint: + path: /WAI/videos/standards-and-benefits/zh-hans + method: GET + data_selector: records + params: {} +- name: Developing for Web Accessibility – Tips for Getting Started + endpoint: + path: /WAI/tips/developing/zh-hans + method: GET + data_selector: records + params: {} +- name: An alt Decision Tree + endpoint: + path: /WAI/tutorials/images/decision-tree/zh-hans + method: GET + data_selector: records + params: {} +- name: web_accessibility_video + endpoint: + path: /WAI/videos/standards-and-benefits/ + method: GET + data_selector: videos + params: {} +- name: w3c_accessibility_standards_overview + endpoint: + path: /WAI/standards-guidelines/zh-hans + method: GET + data_selector: standards + params: {} +- name: web_accessibility_introduction + endpoint: + path: /WAI/fundamentals/accessibility-intro/zh-hans + method: GET + data_selector: introduction + params: {} +- name: WCAG 2.0 + endpoint: + path: /Translations/WCAG20-ru/ + method: GET + data_selector: translations + params: {} +- name: WCAG 2.1 + endpoint: + path: /Translations/WCAG21-ua/ + method: GET + data_selector: translations + params: {} +- name: W3C Accessibility Standards Overview + endpoint: + path: /WAI/standards-guidelines/zh-hans + method: GET + data_selector: resources + params: {} +- name: Mobile Accessibility at W3C + endpoint: + path: /WAI/standards-guidelines/mobile/zh-hans + method: GET + data_selector: resources + params: {} +- name: Introduction to Web Accessibility + endpoint: + path: /WAI/fundamentals/accessibility-intro/zh-hans + method: GET + data_selector: resources + params: {} +- name: Accessibility Principles + endpoint: + path: /WAI/fundamentals/accessibility-principles/zh-hans + method: GET + data_selector: resources + params: {} +- name: Video Introduction to Web Accessibility and W3C Standards + endpoint: + path: /WAI/videos/standards-and-benefits/zh-hans + method: GET + data_selector: resources + params: {} +- name: Developing for Web Accessibility – Tips for Getting Started + endpoint: + path: /WAI/tips/developing/zh-hans + method: GET + data_selector: resources + params: {} +- name: An alt Decision Tree + endpoint: + path: /WAI/tutorials/images/decision-tree/zh-hans + method: GET + data_selector: resources + params: {} +- name: Planning and Managing Accessibility + endpoint: + path: /WAI/planning-and-managing/ + method: GET + data_selector: resources + params: {} +- name: Law and Policy Resources + endpoint: + path: /WAI/policies/ + method: GET + data_selector: resources + params: {} +- name: meetup_summary + endpoint: + path: /community/games/meetup_summary + method: GET + data_selector: records +- name: game_discovery + endpoint: + path: /community/games/game_discovery + method: GET + data_selector: records +- name: easy_checks + endpoint: + path: /WAI/test-evaluate/preliminary/ + method: GET + data_selector: resources +- name: evaluation_tools + endpoint: + path: /WAI/test-evaluate/tools/ + method: GET + data_selector: tools +- name: conformance_evaluation + endpoint: + path: /WAI/test-evaluate/conformance/ + method: GET + data_selector: conformance +- name: Final Recommendations + endpoint: + path: /community/reports/immersive-captions/CG-FINAL-360-captions-20240412/ + method: GET + data_selector: reports + params: {} +- name: Recommendations for accessible captions in 360 degree video + endpoint: + path: /community/reports/immersive-captions/360-captions/ + method: GET + data_selector: reports + params: {} +- name: Making Events Accessible + endpoint: + path: /WAI/teach-advocate/accessible-presentations/ + method: GET + data_selector: resources +- name: Curricula on Web Accessibility + endpoint: + path: /WAI/curricula/ + method: GET + data_selector: resources +- name: Developing Web Accessibility Presentations and Training + endpoint: + path: /WAI/teach-advocate/accessibility-training/ + method: GET + data_selector: resources +- name: Before and After Demonstration (BAD) + endpoint: + path: /WAI/demos/bad/ + method: GET + data_selector: resources +- name: Contacting Organizations about Inaccessible Websites + endpoint: + path: /WAI/teach-advocate/contact-inaccessible-websites/ + method: GET + data_selector: resources +- name: The Business Case for Digital Accessibility + endpoint: + path: /WAI/business-case/ + method: GET + data_selector: resources +- name: WAI-Adapt Explainer + endpoint: + path: /TR/adapt/ + method: GET + data_selector: '' + params: {} +- name: Requirements for WAI-Adapt Specifications + endpoint: + path: /TR/adapt-requirements/ + method: GET + data_selector: '' + params: {} +- name: 'WAI-Adapt: Symbols Module' + endpoint: + path: /TR/adapt-symbols/ + method: GET + data_selector: '' + params: {} +- name: W3C Augmentative and Alternative Communication (AAC) Symbols Registry + endpoint: + path: /TR/aac-registry/ + method: GET + data_selector: '' + params: {} +- name: 'WAI-Adapt: Content Module' + endpoint: + path: /TR/adapt-content/ + method: GET + data_selector: '' + params: {} +- name: 'WAI-Adapt: Help and Support Module' + endpoint: + path: /TR/adapt-help/ + method: GET + data_selector: '' + params: {} +- name: 'WAI-Adapt: Tools Module' + endpoint: + path: /TR/adapt-tools/ + method: GET + data_selector: '' + params: {} +- name: conformance_reporting + endpoint: + path: /conformance/report + method: GET + data_selector: records + params: {} +- name: evaluator_information + endpoint: + path: /evaluator/info + method: GET + data_selector: records + params: {} +- name: optimized_publications + endpoint: + path: /optimized/publications + method: GET + data_selector: records + params: {} +- name: distribution_practices + endpoint: + path: /distribution/practices + method: GET + data_selector: records + params: {} +- name: privacy_security + endpoint: + path: /privacy/security + method: GET + data_selector: records + params: {} +- name: cognitive_accessibility_guidance + endpoint: + path: /WAI/WCAG2/supplemental/#cognitiveaccessibilityguidance + method: GET + data_selector: guidance +- name: making_content_usable + endpoint: + path: /TR/coga-usable/ + method: GET + data_selector: usable_content +- name: manifest + endpoint: + path: /TR/audiobooks/ + method: GET + data_selector: manifest + params: {} +- name: creators + endpoint: + path: /creators + method: GET + data_selector: creators +- name: duration + endpoint: + path: /duration + method: GET + data_selector: duration +- name: readingOrder + endpoint: + path: /readingOrder + method: GET + data_selector: readingOrder +- name: resources + endpoint: + path: /resources + method: GET + data_selector: resources +- name: previews + endpoint: + path: /previews + method: GET + data_selector: previews +- name: Simple Audiobook + endpoint: + path: /audiobooks/flatland + method: GET + data_selector: resources +- name: Audiobook with Supplemental Content + endpoint: + path: /audiobooks/janeeyre + method: GET + data_selector: resources +- name: WAI Resources + endpoint: + path: /WAI/resources/ + method: GET + data_selector: pages + params: {} +- name: Accessibility Fundamentals + endpoint: + path: /WAI/fundamentals/ + method: GET + data_selector: pages + params: {} +- name: Planning & Policies + endpoint: + path: /WAI/planning/ + method: GET + data_selector: pages + params: {} +- name: Design & Develop + endpoint: + path: /WAI/design-develop/ + method: GET + data_selector: pages + params: {} +- name: Test & Evaluate + endpoint: + path: /WAI/test-evaluate/ + method: GET + data_selector: pages + params: {} +- name: Teach & Advocate + endpoint: + path: /WAI/teach-advocate/ + method: GET + data_selector: pages + params: {} +- name: Standards/Guidelines + endpoint: + path: /WAI/standards-guidelines/ + method: GET + data_selector: pages + params: {} +- name: manifest_context + endpoint: + path: /manifest/context + method: GET + data_selector: contexts +- name: manifest_language_direction + endpoint: + path: /manifest/language_direction + method: GET + data_selector: language_direction +- name: publication_types + endpoint: + path: /publication/types + method: GET + data_selector: types +- name: profile_conformance + endpoint: + path: /profile/conformance + method: GET + data_selector: conformance +- name: all_wai_resources + endpoint: + path: /WAI/resources/ + method: GET +- name: all_wai_translations + endpoint: + path: /translations/ + method: GET +- name: WCAG2Mobile + endpoint: + path: /TR/wcag2mobile-22/ + method: GET + data_selector: '' + params: {} +- name: Mobile Accessibility Mapping + endpoint: + path: /TR/mobile-accessibility-mapping/ + method: GET + data_selector: '' + params: {} +- name: abridged + endpoint: + path: /properties/abridged + method: GET + data_selector: abridged + params: {} +- name: accessMode + endpoint: + path: /properties/accessMode + method: GET + data_selector: accessMode + params: {} +- name: accessibilityFeature + endpoint: + path: /properties/accessibilityFeature + method: GET + data_selector: accessibilityFeature + params: {} +- name: accessModeSufficient + endpoint: + path: /properties/accessModeSufficient + method: GET + data_selector: accessModeSufficient + params: {} +- name: url + endpoint: + path: /properties/url + method: GET + data_selector: url + params: {} +- name: id + endpoint: + path: /properties/id + method: GET + data_selector: id + params: {} +- name: author + endpoint: + path: /properties/author + method: GET + data_selector: author + params: {} +- name: dateModified + endpoint: + path: /properties/dateModified + method: GET + data_selector: dateModified + params: {} +- name: datePublished + endpoint: + path: /properties/datePublished + method: GET + data_selector: datePublished + params: {} +- name: inLanguage + endpoint: + path: /properties/inLanguage + method: GET + data_selector: inLanguage + params: {} +- type: LinkedResource + url: cover.html + rel: cover +- type: LinkedResource + url: whale-image.jpg + encodingFormat: image/jpeg + rel: cover + name: Moby Dick attacking hunters + description: A white whale is seen surfacing from the water to attack a small whaling + boat +- type: LinkedResource + url: cover.jpg + encodingFormat: image/jpeg + rel: cover + name: '' +- type: LinkedResource + url: toc_file.html + rel: pagelist +- type: LinkedResource + url: toc_file.html + rel: contents +- type: LinkedResource + url: https://www.publisher.example.org/sherlock-holmes-accessibility.html + rel: accessibility-report +- type: LinkedResource + url: preview.mp3 + encodingFormat: audio/mpeg + rel: preview +- type: LinkedResource + url: https://publisher.example.org/jekyll-hyde-preview.html + encodingFormat: text/html + rel: preview +- type: LinkedResource + url: https://www.w3.org/Consortium/Legal/privacy-statement-20140324 + encodingFormat: text/html + rel: privacy-policy +- name: success_criterion_1_4_11_non_text_contrast + endpoint: + path: /non-text-contrast + method: GET + data_selector: content + params: {} +- name: success_criterion_1_4_12_text_spacing + endpoint: + path: /text-spacing + method: GET + data_selector: content + params: {} +- name: success_criterion_1_4_13_content_on_hover_or_focus + endpoint: + path: /content-on-hover-or-focus + method: GET + data_selector: content + params: {} +- name: success_criterion_2_1_1_keyboard + endpoint: + path: /keyboard + method: GET + data_selector: content + params: {} +- name: success_criterion_2_1_2_no_keyboard_trap + endpoint: + path: /no-keyboard-trap + method: GET + data_selector: content + params: {} +- name: basic_manifest + endpoint: + path: /pub-manifest/basic + method: GET + data_selector: resources +- name: single_document_publication + endpoint: + path: /pub-manifest/single-document + method: GET + data_selector: resources +- name: audiobook + endpoint: + path: /pub-manifest/audiobook + method: GET + data_selector: resources +- name: Accessible Platform Architectures + endpoint: + path: /WAI/about/groups/apawg/ + method: GET + data_selector: records + params: {} +- name: UAAG 2.0 Working Group Note + endpoint: + path: https://www.w3.org/TR/UAAG20/ + method: GET +- name: UAAG 2.0 Reference + endpoint: + path: https://www.w3.org/TR/UAAG20-Reference/ + method: GET +- name: UAAG 2.0 Mobile Examples + endpoint: + path: https://www.w3.org/TR/2015/NOTE-UAAG20-Reference-20151215/mobile.html + method: GET +- name: Arabic Resources + endpoint: + path: /WAI/translations/ar + method: GET + data_selector: resources +- name: Belarusian Standards + endpoint: + path: /WAI/translations/be + method: GET + data_selector: standards +- name: Catalan Standards + endpoint: + path: /WAI/translations/ca + method: GET + data_selector: standards +- name: Czech Resources + endpoint: + path: /WAI/translations/cs + method: GET + data_selector: resources +- name: Danish Standards + endpoint: + path: /WAI/translations/da + method: GET + data_selector: standards +- name: German Resources + endpoint: + path: /WAI/translations/de + method: GET + data_selector: resources +- name: Greek Resources + endpoint: + path: /WAI/translations/el + method: GET + data_selector: resources +- name: Spanish Resources + endpoint: + path: /WAI/translations/es + method: GET + data_selector: resources +- name: Finnish Standards + endpoint: + path: /WAI/translations/fi + method: GET + data_selector: standards +- name: French Resources + endpoint: + path: /WAI/translations/fr + method: GET + data_selector: resources +- name: W3C Accessibility Standards Overview + endpoint: + path: /WAI/standards-guidelines/zh-hans + method: GET + data_selector: 翻译者: [安佳](https://github.com/anjia) . + params: {} +- name: Mobile Accessibility at W3C + endpoint: + path: /WAI/standards-guidelines/mobile/zh-hans + method: GET + data_selector: 翻译者: [李喆明](https://imnerd.org/about.html) . + params: {} +- name: Introduction to Web Accessibility + endpoint: + path: /WAI/fundamentals/accessibility-intro/zh-hans + method: GET + data_selector: 翻译者: [冉若曦](https://www.w3.org/people/roy) , [金凯](https://github.com/JinMokai) + . + params: {} +- name: Accessibility Principles + endpoint: + path: /WAI/fundamentals/accessibility-principles/zh-hans + method: GET + data_selector: 翻译者: [李松峰](https://lisongfeng.cn/index.php/start-page.html) , [冉若曦](https://www.w3.org/people/roy) + . + params: {} +- name: Video Introduction to Web Accessibility and W3C Standards + endpoint: + path: /WAI/videos/standards-and-benefits/zh-hans + method: GET + data_selector: 翻译者: Ruoxi Ran, [Shane](https://github.com/codersjj) . + params: {} +- name: dismissrequest + endpoint: + path: /dismissrequest + method: POST + data_selector: '' + params: {} +- name: mediapreviousrequest + endpoint: + path: /mediapreviousrequest + method: POST + data_selector: '' + params: {} +- name: mediatogglerequest + endpoint: + path: /mediatogglerequest + method: POST + data_selector: '' + params: {} +- name: medianextrequest + endpoint: + path: /medianextrequest + method: POST + data_selector: '' + params: {} +- name: WCAG 2.0 + endpoint: + path: /Translations/WCAG20-ru/ + method: GET +- name: WCAG 2.1 + endpoint: + path: /Translations/WCAG21-ua/ + method: GET +- name: W3C Accessibility Standards Overview + endpoint: + path: /WAI/standards-guidelines/zh-hans + method: GET +- name: Mobile Accessibility at W3C + endpoint: + path: /WAI/standards-guidelines/mobile/zh-hans + method: GET +- name: Introduction to Web Accessibility + endpoint: + path: /WAI/fundamentals/accessibility-intro/zh-hans + method: GET +- name: Accessibility Principles + endpoint: + path: /WAI/fundamentals/accessibility-principles/zh-hans + method: GET +- name: Video Introduction to Web Accessibility and W3C Standards + endpoint: + path: /WAI/videos/standards-and-benefits/zh-hans + method: GET +- name: Developing for Web Accessibility – Tips for Getting Started + endpoint: + path: /WAI/tips/developing/zh-hans + method: GET +- name: An alt Decision Tree + endpoint: + path: /WAI/tutorials/images/decision-tree/zh-hans + method: GET +- name: WCAG 2.1 (outdated version) + endpoint: + path: /Translations/WCAG21-ua/ + method: GET +- name: W3C Process Document + endpoint: + path: /2014/Process-20140801/ + method: GET + data_selector: document + params: {} +- name: Planning and Managing Web Accessibility + endpoint: + path: /WAI/planning-and-managing/ + method: GET + data_selector: resources + params: {} +- name: Web Accessibility Laws and Policies + endpoint: + path: /WAI/policies/ + method: GET + data_selector: resources + params: {} +- name: Developing Organizational Policies on Web Accessibility + endpoint: + path: /WAI/planning/org-policies/ + method: GET + data_selector: resources + params: {} +- name: Developing an Accessibility Statement + endpoint: + path: /WAI/planning/statements/ + method: GET + data_selector: resources + params: {} +- name: Advisory Committee + endpoint: + path: /AdvisoryCommittee + method: GET + data_selector: members +- name: Working Groups + endpoint: + path: /WorkingGroups + method: GET + data_selector: groups +- name: Technical Architecture Group + endpoint: + path: /TechnicalArchitectureGroup + method: GET + data_selector: participants +- name: Accessibility Fundamentals + endpoint: + path: /WAI/fundamentals/ + method: GET +- name: Planning & Policies + endpoint: + path: /WAI/planning/ + method: GET +- name: Design & Develop + endpoint: + path: /WAI/design-develop/ + method: GET +- name: Test & Evaluate + endpoint: + path: /WAI/test-evaluate/ + method: GET +- name: Teach & Advocate + endpoint: + path: /WAI/teach-advocate/ + method: GET +- name: Standards/Guidelines + endpoint: + path: /WAI/standards-guidelines/ + method: GET +- name: Coordination Groups + endpoint: + path: /CoordinationGroups + method: GET + data_selector: groups + params: {} +- name: Technical Reports + endpoint: + path: /TechnicalReports + method: GET + data_selector: reports + params: {} +- name: Making Events Accessible + endpoint: + path: /WAI/teach-advocate/accessible-presentations/ + method: GET +- name: Curricula on Web Accessibility + endpoint: + path: /WAI/curricula/ + method: GET +- name: Developing Web Accessibility Presentations and Training + endpoint: + path: /WAI/teach-advocate/accessibility-training/ + method: GET +- name: Before and After Demonstration (BAD) + endpoint: + path: /WAI/demos/bad/ + method: GET +- name: Contacting Organizations about Inaccessible Websites + endpoint: + path: /WAI/teach-advocate/contact-inaccessible-websites/ + method: GET +- name: The Business Case for Digital Accessibility + endpoint: + path: /WAI/business-case/ + method: GET +- name: Web Content Accessibility Guidelines (WCAG) 2 + endpoint: + path: /WAI/standards-guidelines/wcag/ + method: GET + data_selector: WCAG 2 info + params: {} +- name: Authoring Tool Accessibility Guidelines (ATAG) + endpoint: + path: /WAI/standards-guidelines/atag/ + method: GET + data_selector: ATAG info + params: {} +- name: User Agent Accessibility Guidelines (UAAG) + endpoint: + path: /WAI/standards-guidelines/uaag/ + method: GET + data_selector: UAAG info + params: {} +- name: W3C Accessibility Guidelines (WCAG) 3 Working Draft + endpoint: + path: /WAI/standards-guidelines/wcag/wcag3-intro/ + method: GET + data_selector: WCAG 3 info + params: {} +- name: Accessible Rich Internet Applications (WAI-ARIA) + endpoint: + path: /WAI/standards-guidelines/aria/ + method: GET + data_selector: ARIA info + params: {} +- name: Specification for Spoken Presentation in HTML + endpoint: + path: /TR/spoken-html/ + method: GET + data_selector: specification +- name: Pronunciation Gap Analysis and Use Cases + endpoint: + path: /TR/pronunciation-gap-analysis-and-use-cases/ + method: GET + data_selector: analysis +- name: 'Explainer: Improving Spoken Presentation on the Web' + endpoint: + path: /TR/pronunciation-explainer/ + method: GET + data_selector: explainer +- name: Pronunciation User Scenarios + endpoint: + path: /TR/pronunciation-user-scenarios/ + method: GET + data_selector: user_scenarios +- name: meetings + endpoint: + path: /International/meetings + method: GET + data_selector: meetings + params: {} +- name: participants + endpoint: + path: /International/participants + method: GET + data_selector: participants + params: {} +- name: WAI Resources + endpoint: + path: /WAI/resources/ + method: GET + data_selector: resources + params: {} +- name: WAI News + endpoint: + path: /WAI/news/ + method: GET + data_selector: news + params: {} +- name: All WAI Resources + endpoint: + path: /WAI/resources/ + method: GET +- name: All WAI Translations + endpoint: + path: /translations/ + method: GET +- name: xpath_3_1 + endpoint: + path: /TR/xpath-31/ + method: GET + data_selector: specifications +- name: xpath_3_0 + endpoint: + path: /TR/xpath-30/ + method: GET + data_selector: specifications +- name: xpath_2_0 + endpoint: + path: /TR/xpath20/ + method: GET + data_selector: specifications +- name: xpath_1_0 + endpoint: + path: /TR/xpath-10/ + method: GET + data_selector: specifications +- name: HTMLCollection + endpoint: + path: /html/collection + method: GET + data_selector: nodes + params: {} +- name: HTMLOptionsCollection + endpoint: + path: /html/options + method: GET + data_selector: options + params: {} +- name: HTMLDocument + endpoint: + path: /HTMLDocument + method: GET + data_selector: document + params: {} +- name: uiactions + endpoint: + path: /uiactions + method: GET + data_selector: actions + params: {} +- name: uitrigger + endpoint: + path: /uitrigger + method: GET + data_selector: triggers + params: {} +- name: dismissrequest + endpoint: + path: /dismissrequest + method: POST + data_selector: event + params: {} +- name: mediapreviousrequest + endpoint: + path: /mediapreviousrequest + method: POST + data_selector: event + params: {} +- name: mediatogglerequest + endpoint: + path: /mediatogglerequest + method: POST + data_selector: event + params: {} +- name: medianextrequest + endpoint: + path: /medianextrequest + method: POST + data_selector: event + params: {} +- name: HTMLHtmlElement + endpoint: + path: /HTMLHtmlElement + method: GET + data_selector: version + params: {} +- name: HTMLHeadElement + endpoint: + path: /HTMLHeadElement + method: GET + data_selector: profile + params: {} +- name: HTMLLinkElement + endpoint: + path: /HTMLLinkElement + method: GET + data_selector: charset + params: {} +- name: HTMLTitleElement + endpoint: + path: /HTMLTitleElement + method: GET + data_selector: text + params: {} +- name: HTMLMetaElement + endpoint: + path: /HTMLMetaElement + method: GET + data_selector: content + params: {} +- name: HTMLBaseElement + endpoint: + path: /HTMLBaseElement + method: GET + data_selector: href + params: {} +- name: HTMLIsIndexElement + endpoint: + path: /HTMLIsIndexElement + method: GET + data_selector: prompt + params: {} +- name: HTMLStyleElement + endpoint: + path: /HTMLStyleElement + method: GET + data_selector: disabled + params: {} +- name: HTMLBodyElement + endpoint: + path: /HTMLBodyElement + method: GET + data_selector: aLink + params: {} +- name: HTMLFormElement + endpoint: + path: /HTMLFormElement + method: GET + data_selector: action + params: {} +- name: HTMLSelectElement + endpoint: + path: /HTMLSelectElement + method: GET + data_selector: type + params: {} +- name: 'Indie UI: Events 1.0' + endpoint: + path: https://dvcs.w3.org/hg/IndieUI/raw-file/default/src/indie-ui-events.html + method: GET +- name: 'Indie UI: User Context 1.0' + endpoint: + path: https://dvcs.w3.org/hg/IndieUI/raw-file/default/src/indie-ui-context.html + method: GET +- name: 'Requirements for IndieUI: Events 1.0 and IndieUI: User Context 1.0' + endpoint: + path: https://www.w3.org/TR/indie-ui-requirements/ + method: GET +- name: HTMLScriptElement + endpoint: + path: /HTMLScriptElement + method: GET + data_selector: attributes +- name: HTMLTableElement + endpoint: + path: /HTMLTableElement + method: GET + data_selector: attributes +- name: HTMLTableCaptionElement + endpoint: + path: /HTMLTableCaptionElement + method: GET + data_selector: attributes +- name: HTMLTableColElement + endpoint: + path: /HTMLTableColElement + method: GET + data_selector: attributes +- name: HTMLTableSectionElement + endpoint: + path: /HTMLTableSectionElement + method: GET + data_selector: attributes +- name: HTMLTableRowElement + endpoint: + path: /HTMLTableRowElement + method: GET + data_selector: attributes +- name: events + endpoint: + path: /TR/2014/WD-indie-ui-requirements-20140422/ + method: GET + data_selector: requirements_events +- name: user_context + endpoint: + path: /TR/indie-ui-requirements/ + method: GET + data_selector: requirements_context +- name: HTMLDocument + endpoint: + path: /html/document + method: GET + data_selector: document + params: {} +- name: HTMLElement + endpoint: + path: /html/element + method: GET + data_selector: element + params: {} +- name: HTMLElement + endpoint: + path: /elements/HTMLElement + method: GET + data_selector: attributes + params: {} +- name: HTMLHtmlElement + endpoint: + path: /elements/HTMLHtmlElement + method: GET + data_selector: attributes + params: {} +- name: HTMLHeadElement + endpoint: + path: /elements/HTMLHeadElement + method: GET + data_selector: attributes + params: {} +- name: HTMLLinkElement + endpoint: + path: /elements/HTMLLinkElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTitleElement + endpoint: + path: /elements/HTMLTitleElement + method: GET + data_selector: attributes + params: {} +- name: HTMLMetaElement + endpoint: + path: /elements/HTMLMetaElement + method: GET + data_selector: attributes + params: {} +- name: HTMLBaseElement + endpoint: + path: /elements/HTMLBaseElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFormElement + endpoint: + path: /elements/HTMLFormElement + method: GET + data_selector: attributes + params: {} +- name: Advisory Committee + endpoint: + path: /AdvisoryCommittee + method: GET +- name: W3C Members + endpoint: + path: /Members + method: GET +- name: Technical Architecture Group + endpoint: + path: /TAG + method: GET +- name: HTMLSelectElement + endpoint: + path: /element/HTMLSelectElement + method: GET + data_selector: attributes +- name: HTMLOptGroupElement + endpoint: + path: /element/HTMLOptGroupElement + method: GET + data_selector: attributes +- name: HTMLOptionElement + endpoint: + path: /element/HTMLOptionElement + method: GET + data_selector: attributes +- name: HTMLInputElement + endpoint: + path: /element/HTMLInputElement + method: GET + data_selector: attributes +- name: HTMLTextAreaElement + endpoint: + path: /element/HTMLTextAreaElement + method: GET + data_selector: attributes +- name: Appeal of a Chair's Decision + endpoint: + path: /docs/appeal-chair-decision + method: GET + data_selector: content + params: {} +- name: Resignation from a Group + endpoint: + path: /docs/resignation-group + method: GET + data_selector: content + params: {} +- name: HTMLButtonElement + endpoint: + path: /HTMLButtonElement + method: GET + data_selector: attributes + params: {} +- name: HTMLLabelElement + endpoint: + path: /HTMLLabelElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFieldSetElement + endpoint: + path: /HTMLFieldSetElement + method: GET + data_selector: attributes + params: {} +- name: HTMLLegendElement + endpoint: + path: /HTMLLegendElement + method: GET + data_selector: attributes + params: {} +- name: HTMLUListElement + endpoint: + path: /HTMLUListElement + method: GET + data_selector: attributes + params: {} +- name: HTMLOListElement + endpoint: + path: /HTMLOListElement + method: GET + data_selector: attributes + params: {} +- name: HTMLDListElement + endpoint: + path: /HTMLDListElement + method: GET + data_selector: attributes + params: {} +- name: HTMLDirectoryElement + endpoint: + path: /HTMLDirectoryElement + method: GET + data_selector: attributes + params: {} +- name: HTMLMenuElement + endpoint: + path: /HTMLMenuElement + method: GET + data_selector: attributes + params: {} +- name: HTMLLIElement + endpoint: + path: /HTMLLIElement + method: GET + data_selector: attributes + params: {} +- name: HTMLDivElement + endpoint: + path: /HTMLDivElement + method: GET + data_selector: attributes + params: {} +- name: HTMLParagraphElement + endpoint: + path: /HTMLParagraphElement + method: GET + data_selector: attributes + params: {} +- name: HTMLHeadingElement + endpoint: + path: /HTMLHeadingElement + method: GET + data_selector: attributes + params: {} +- name: HTMLQuoteElement + endpoint: + path: /HTMLQuoteElement + method: GET + data_selector: attributes + params: {} +- name: HTMLPreElement + endpoint: + path: /HTMLPreElement + method: GET + data_selector: attributes + params: {} +- name: HTMLBRElement + endpoint: + path: /HTMLBRElement + method: GET + data_selector: attributes + params: {} +- name: HTMLBaseFontElement + endpoint: + path: /HTMLBaseFontElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFontElement + endpoint: + path: /HTMLFontElement + method: GET + data_selector: attributes + params: {} +- name: HTMLHRElement + endpoint: + path: /HTMLHRElement + method: GET + data_selector: attributes + params: {} +- name: HTMLAppletElement + endpoint: + path: /HTMLAppletElement + method: GET + data_selector: attributes + params: {} +- name: HTMLMapElement + endpoint: + path: /HTMLMapElement + method: GET + data_selector: attributes + params: {} +- name: HTMLAreaElement + endpoint: + path: /HTMLAreaElement + method: GET + data_selector: attributes + params: {} +- name: HTMLScriptElement + endpoint: + path: /HTMLScriptElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableElement + endpoint: + path: /HTMLTableElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableCaptionElement + endpoint: + path: /HTMLTableCaptionElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableColElement + endpoint: + path: /HTMLTableColElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableSectionElement + endpoint: + path: /HTMLTableSectionElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableRowElement + endpoint: + path: /HTMLTableRowElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableCellElement + endpoint: + path: /HTMLTableCellElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFrameSetElement + endpoint: + path: /HTMLFrameSetElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFrameElement + endpoint: + path: /HTMLFrameElement + method: GET + data_selector: attributes + params: {} +- name: HTMLIFrameElement + endpoint: + path: /HTMLIFrameElement + method: GET + data_selector: attributes + params: {} +- name: Mission + endpoint: + path: /Mission + method: GET + data_selector: content + params: {} +- name: Organization + endpoint: + path: /Organization + method: GET + data_selector: content + params: {} +- name: Electronic communication + endpoint: + path: /communication + method: GET + data_selector: content + params: {} +- name: Meetings + endpoint: + path: /meetings + method: GET + data_selector: content + params: {} +- name: How to participate + endpoint: + path: /join + method: GET + data_selector: content + params: {} +- name: Useful links + endpoint: + path: /work + method: GET + data_selector: content + params: {} +- name: What WG members do + endpoint: + path: /activities + method: GET + data_selector: content + params: {} +- name: What does reviewing a spec involve? + endpoint: + path: /reviewhowto + method: GET + data_selector: content + params: {} +- name: Historical information + endpoint: + path: /historical + method: GET + data_selector: content + params: {} +- name: HTMLDocument + endpoint: + path: /html/document + method: GET + data_selector: document + params: {} +- name: HTMLElement + endpoint: + path: /html/element + method: GET + data_selector: element + params: {} +- name: HTMLAppletElement + endpoint: + path: /interfaces/HTMLAppletElement + method: GET + data_selector: attributes +- name: HTMLMapElement + endpoint: + path: /interfaces/HTMLMapElement + method: GET + data_selector: attributes +- name: HTMLAreaElement + endpoint: + path: /interfaces/HTMLAreaElement + method: GET + data_selector: attributes +- name: HTMLScriptElement + endpoint: + path: /interfaces/HTMLScriptElement + method: GET + data_selector: attributes +- name: HTMLTableElement + endpoint: + path: /interfaces/HTMLTableElement + method: GET + data_selector: attributes +- name: HTMLTableCaptionElement + endpoint: + path: /interfaces/HTMLTableCaptionElement + method: GET + data_selector: attributes +- name: HTMLTableColElement + endpoint: + path: /interfaces/HTMLTableColElement + method: GET + data_selector: attributes +- name: HTMLDocument + endpoint: + path: /services/data/vXX.X/sobjects/HTMLDocument + method: GET + data_selector: records +- name: HTMLElement + endpoint: + path: /services/data/vXX.X/sobjects/HTMLElement + method: GET + data_selector: records +- name: HTMLFrameSetElement + endpoint: + path: /services/data/vXX.X/sobjects/HTMLFrameSetElement + method: GET + data_selector: records +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: HTMLCollection + endpoint: + path: /org/w3c/dom/html2/HTMLCollection.java + method: GET + data_selector: public int getLength() +- name: HTMLOptionsCollection + endpoint: + path: /org/w3c/dom/html2/HTMLOptionsCollection.java + method: GET + data_selector: public int getLength() +- name: HTMLDocument + endpoint: + path: /org/w3c/dom/html2/HTMLDocument.java + method: GET + data_selector: public String getTitle() +- name: HTMLElement + endpoint: + path: /org/w3c/dom/html2/HTMLElement.java + method: GET + data_selector: public String getId() +- name: HTMLHtmlElement + endpoint: + path: /org/w3c/dom/html2/HTMLHtmlElement.java + method: GET + data_selector: public String getVersion() +- name: HTMLHeadElement + endpoint: + path: /org/w3c/dom/html2/HTMLHeadElement.java + method: GET + data_selector: public String getProfile() +- name: HTMLLinkElement + endpoint: + path: /org/w3c/dom/html2/HTMLLinkElement.java + method: GET + data_selector: public boolean getDisabled() +- name: HTMLTitleElement + endpoint: + path: /org/w3c/dom/html2/HTMLTitleElement.java + method: GET + data_selector: public String getText() +- name: HTMLMetaElement + endpoint: + path: /org/w3c/dom/html2/HTMLMetaElement.java + method: GET + data_selector: public String getContent() +- name: HTMLBaseElement + endpoint: + path: /org/w3c/dom/html2/HTMLBaseElement.java + method: GET + data_selector: public String getHref() +- name: HTMLIsIndexElement + endpoint: + path: /org/w3c/dom/html2/HTMLIsIndexElement.java + method: GET + data_selector: public HTMLFormElement getForm() +- name: HTMLStyleElement + endpoint: + path: /org/w3c/dom/html2/HTMLStyleElement.java + method: GET + data_selector: public boolean getDisabled() +- name: HTMLBodyElement + endpoint: + path: /org/w3c/dom/html2/HTMLBodyElement.java + method: GET + data_selector: public String getALink() +- name: HTMLFormElement + endpoint: + path: /org/w3c/dom/html2/HTMLFormElement.java + method: GET + data_selector: public HTMLCollection getElements() +- name: HTMLSelectElement + endpoint: + path: /org/w3c/dom/html2/HTMLSelectElement.java + method: GET + data_selector: public String getType() +- name: HTMLOptGroupElement + endpoint: + path: /org/w3c/dom/html2/HTMLOptGroupElement.java + method: GET + data_selector: public boolean getDisabled() +- name: HTMLOptionElement + endpoint: + path: /org/w3c/dom/html2/HTMLOptionElement.java + method: GET + data_selector: public HTMLFormElement getForm() +- name: HTMLInputElement + endpoint: + path: /org/w3c/dom/html2/HTMLInputElement.java + method: GET + data_selector: public String getDefaultValue() +- name: HTMLTextAreaElement + endpoint: + path: /org/w3c/dom/html2/HTMLTextAreaElement.java + method: GET + data_selector: public String getDefaultValue() +- name: HTMLButtonElement + endpoint: + path: /org/w3c/dom/html2/HTMLButtonElement.java + method: GET + data_selector: public HTMLFormElement getForm() +- name: HTMLLabelElement + endpoint: + path: /org/w3c/dom/html2/HTMLLabelElement.java + method: GET + data_selector: public HTMLFormElement getForm() +- name: HTMLFieldSetElement + endpoint: + path: /org/w3c/dom/html2/HTMLFieldSetElement.java + method: GET + data_selector: public HTMLFormElement getForm() +- name: HTMLLegendElement + endpoint: + path: /org/w3c/dom/html2/HTMLLegendElement.java + method: GET + data_selector: public HTMLFormElement getForm() +- name: HTMLUListElement + endpoint: + path: /org/w3c/dom/html2/HTMLUListElement.java + method: GET + data_selector: public boolean getCompact() +- name: HTMLOListElement + endpoint: + path: /org/w3c/dom/html2/HTMLOListElement.java + method: GET + data_selector: public boolean getCompact() +- name: HTMLDListElement + endpoint: + path: /org/w3c/dom/html2/HTMLDListElement.java + method: GET + data_selector: public boolean getCompact() +- name: HTMLDirectoryElement + endpoint: + path: /org/w3c/dom/html2/HTMLDirectoryElement.java + method: GET + data_selector: public boolean getCompact() +- name: HTMLMenuElement + endpoint: + path: /org/w3c/dom/html2/HTMLMenuElement.java + method: GET + data_selector: public boolean getCompact() +- name: HTMLLIElement + endpoint: + path: /org/w3c/dom/html2/HTMLLIElement.java + method: GET + data_selector: public String getType() +- name: HTMLDivElement + endpoint: + path: /org/w3c/dom/html2/HTMLDivElement.java + method: GET + data_selector: public String getAlign() +- name: HTMLParagraphElement + endpoint: + path: /org/w3c/dom/html2/HTMLParagraphElement.java + method: GET + data_selector: public String getAlign() +- name: HTMLHeadingElement + endpoint: + path: /org/w3c/dom/html2/HTMLHeadingElement.java + method: GET + data_selector: public String getAlign() +- name: HTMLQuoteElement + endpoint: + path: /org/w3c/dom/html2/HTMLQuoteElement.java + method: GET + data_selector: public String getCite() +- name: HTMLPreElement + endpoint: + path: /org/w3c/dom/html2/HTMLPreElement.java + method: GET + data_selector: public int getWidth() +- name: HTMLBRElement + endpoint: + path: /org/w3c/dom/html2/HTMLBRElement.java + method: GET + data_selector: public String getClear() +- name: HTMLBaseFontElement + endpoint: + path: /org/w3c/dom/html2/HTMLBaseFontElement.java + method: GET + data_selector: public String getColor() +- name: HTMLFontElement + endpoint: + path: /org/w3c/dom/html2/HTMLFontElement.java + method: GET + data_selector: public String getColor() +- name: HTMLHRElement + endpoint: + path: /org/w3c/dom/html2/HTMLHRElement.java + method: GET + data_selector: public String getAlign() +- name: HTMLModElement + endpoint: + path: /org/w3c/dom/html2/HTMLModElement.java + method: GET + data_selector: public String getCite() +- name: HTMLAnchorElement + endpoint: + path: /org/w3c/dom/html2/HTMLAnchorElement.java + method: GET + data_selector: public String getAccessKey() +- name: HTMLImageElement + endpoint: + path: /org/w3c/dom/html2/HTMLImageElement.java + method: GET + data_selector: public String getName() +- name: HTMLObjectElement + endpoint: + path: /org/w3c/dom/html2/HTMLObjectElement.java + method: GET + data_selector: public HTMLFormElement getForm() +- name: HTMLParamElement + endpoint: + path: /org/w3c/dom/html2/HTMLParamElement.java + method: GET + data_selector: public String getName() +- name: HTMLAppletElement + endpoint: + path: /org/w3c/dom/html2/HTMLAppletElement.java + method: GET + data_selector: public String getAlign() +- name: HTMLMapElement + endpoint: + path: /org/w3c/dom/html2/HTMLMapElement.java + method: GET + data_selector: public HTMLCollection getAreas() +- name: HTMLAreaElement + endpoint: + path: /org/w3c/dom/html2/HTMLAreaElement.java + method: GET + data_selector: public String getAccessKey() +- name: XML Path Language (XPath) 3.1 + endpoint: + path: /TR/xpath-31/ + method: GET + data_selector: specifications + params: {} +- name: XML Path Language (XPath) 3.0 + endpoint: + path: /TR/xpath-30/ + method: GET + data_selector: specifications + params: {} +- name: XML Path Language (XPath) 2.0 (Second Edition) + endpoint: + path: /TR/xpath20/ + method: GET + data_selector: specifications + params: {} +- name: XML Path Language (XPath) Version 1.0 + endpoint: + path: /TR/xpath-10/ + method: GET + data_selector: specifications + params: {} +- name: HTMLScriptElement + endpoint: + path: /org/w3c/dom/html2/HTMLScriptElement + method: GET + data_selector: methods + params: {} +- name: HTMLTableElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableElement + method: GET + data_selector: methods + params: {} +- name: HTMLTableCaptionElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableCaptionElement + method: GET + data_selector: methods + params: {} +- name: HTMLTableColElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableColElement + method: GET + data_selector: methods + params: {} +- name: HTMLTableSectionElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableSectionElement + method: GET + data_selector: methods + params: {} +- name: HTMLTableRowElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableRowElement + method: GET + data_selector: methods + params: {} +- name: HTMLTableCellElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableCellElement + method: GET + data_selector: methods + params: {} +- name: HTMLFrameSetElement + endpoint: + path: /org/w3c/dom/html2/HTMLFrameSetElement + method: GET + data_selector: methods + params: {} +- name: HTMLFrameElement + endpoint: + path: /org/w3c/dom/html2/HTMLFrameElement + method: GET + data_selector: methods + params: {} +- name: HTMLIFrameElement + endpoint: + path: /org/w3c/dom/html2/HTMLIFrameElement + method: GET + data_selector: methods + params: {} +- name: HTMLCollection + endpoint: + path: /html/collection + method: GET + data_selector: items +- name: HTMLOptionsCollection + endpoint: + path: /html/options + method: GET + data_selector: options +- name: HTMLDocument + endpoint: + path: /HTMLDocument + method: GET + data_selector: elements + params: {} +- name: HTMLHtmlElement + endpoint: + path: /struct/global.html#edef-HTML + method: GET + data_selector: version +- name: HTMLHeadElement + endpoint: + path: /struct/global.html#edef-HEAD + method: GET + data_selector: profile +- name: HTMLLinkElement + endpoint: + path: /struct/links.html#edef-LINK + method: GET + data_selector: href +- name: HTMLTitleElement + endpoint: + path: /struct/global.html#edef-TITLE + method: GET + data_selector: text +- name: HTMLMetaElement + endpoint: + path: /struct/global.html#edef-META + method: GET + data_selector: content +- name: HTMLBaseElement + endpoint: + path: /struct/links.html#edef-BASE + method: GET + data_selector: href +- name: HTMLIsIndexElement + endpoint: + path: /interact/forms.html#edef-ISINDEX + method: GET + data_selector: prompt +- name: HTMLStyleElement + endpoint: + path: /present/styles.html#edef-STYLE + method: GET + data_selector: type +- name: HTMLBodyElement + endpoint: + path: /struct/global.html#edef-BODY + method: GET + data_selector: text +- name: HTMLFormElement + endpoint: + path: /interact/forms.html#edef-FORM + method: GET + data_selector: action +- name: HTMLSelectElement + endpoint: + path: /interact/forms.html#edef-SELECT + method: GET + data_selector: value +- name: HTMLOptGroupElement + endpoint: + path: /HTMLOptGroupElement + method: GET + data_selector: attributes + params: {} +- name: HTMLOptionElement + endpoint: + path: /HTMLOptionElement + method: GET + data_selector: attributes + params: {} +- name: HTMLInputElement + endpoint: + path: /HTMLInputElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTextAreaElement + endpoint: + path: /HTMLTextAreaElement + method: GET + data_selector: attributes + params: {} +- name: HTMLButtonElement + endpoint: + path: /HTMLButtonElement + method: GET + data_selector: attributes + params: {} +- name: HTMLLabelElement + endpoint: + path: /HTMLLabelElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFieldSetElement + endpoint: + path: /HTMLFieldSetElement + method: GET + data_selector: attributes + params: {} +- name: HTMLParagraphElement + endpoint: + path: /HTMLParagraphElement + method: GET + data_selector: properties + params: {} +- name: HTMLHeadingElement + endpoint: + path: /HTMLHeadingElement + method: GET + data_selector: properties + params: {} +- name: HTMLQuoteElement + endpoint: + path: /HTMLQuoteElement + method: GET + data_selector: properties + params: {} +- name: HTMLPreElement + endpoint: + path: /HTMLPreElement + method: GET + data_selector: properties + params: {} +- name: HTMLBRElement + endpoint: + path: /HTMLBRElement + method: GET + data_selector: properties + params: {} +- name: HTMLBaseFontElement + endpoint: + path: /HTMLBaseFontElement + method: GET + data_selector: properties + params: {} +- name: HTMLFontElement + endpoint: + path: /HTMLFontElement + method: GET + data_selector: properties + params: {} +- name: HTMLHRElement + endpoint: + path: /HTMLHRElement + method: GET + data_selector: properties + params: {} +- name: HTMLModElement + endpoint: + path: /HTMLModElement + method: GET + data_selector: properties + params: {} +- name: HTMLAnchorElement + endpoint: + path: /HTMLAnchorElement + method: GET + data_selector: properties + params: {} +- name: HTMLImageElement + endpoint: + path: /HTMLImageElement + method: GET + data_selector: properties + params: {} +- name: HTMLObjectElement + endpoint: + path: /HTMLObjectElement + method: GET + data_selector: properties + params: {} +- name: HTMLParamElement + endpoint: + path: /HTMLParamElement + method: GET + data_selector: properties + params: {} +- name: HTMLAppletElement + endpoint: + path: /HTMLAppletElement + method: GET + data_selector: properties + params: {} +- name: HTMLMapElement + endpoint: + path: /HTMLMapElement + method: GET + data_selector: properties + params: {} +- name: HTMLAreaElement + endpoint: + path: /HTMLAreaElement + method: GET + data_selector: properties + params: {} +- name: HTMLScriptElement + endpoint: + path: /HTMLScriptElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableElement + endpoint: + path: /HTMLTableElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableCaptionElement + endpoint: + path: /HTMLTableCaptionElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableColElement + endpoint: + path: /HTMLTableColElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableSectionElement + endpoint: + path: /HTMLTableSectionElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableRowElement + endpoint: + path: /HTMLTableRowElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableCellElement + endpoint: + path: /HTMLTableCellElement + method: GET + data_selector: properties + params: {} +- name: HTMLFrameSetElement + endpoint: + path: /HTMLFrameSetElement + method: GET + data_selector: properties + params: {} +- name: HTMLFrameElement + endpoint: + path: /HTMLFrameElement + method: GET + data_selector: properties + params: {} +- name: HTMLIFrameElement + endpoint: + path: /HTMLIFrameElement + method: GET + data_selector: properties + params: {} +- name: HTMLFieldSetElement + endpoint: + path: /interface/HTMLFieldSetElement + method: GET + data_selector: attributes +- name: HTMLLegendElement + endpoint: + path: /interface/HTMLLegendElement + method: GET + data_selector: attributes +- name: HTMLUListElement + endpoint: + path: /interface/HTMLUListElement + method: GET + data_selector: attributes +- name: HTMLOListElement + endpoint: + path: /interface/HTMLOListElement + method: GET + data_selector: attributes +- name: HTMLDListElement + endpoint: + path: /interface/HTMLDListElement + method: GET + data_selector: attributes +- name: HTMLDirectoryElement + endpoint: + path: /interface/HTMLDirectoryElement + method: GET + data_selector: attributes +- name: HTMLMenuElement + endpoint: + path: /interface/HTMLMenuElement + method: GET + data_selector: attributes +- name: HTMLLIElement + endpoint: + path: /interface/HTMLLIElement + method: GET + data_selector: attributes +- name: HTMLDivElement + endpoint: + path: /interface/HTMLDivElement + method: GET + data_selector: attributes +- name: HTMLParagraphElement + endpoint: + path: /interface/HTMLParagraphElement + method: GET + data_selector: attributes +- name: HTMLHeadingElement + endpoint: + path: /interface/HTMLHeadingElement + method: GET + data_selector: attributes +- name: HTMLQuoteElement + endpoint: + path: /interface/HTMLQuoteElement + method: GET + data_selector: attributes +- name: HTMLPreElement + endpoint: + path: /interface/HTMLPreElement + method: GET + data_selector: attributes +- name: HTMLBRElement + endpoint: + path: /interface/HTMLBRElement + method: GET + data_selector: attributes +- name: HTMLBaseFontElement + endpoint: + path: /interface/HTMLBaseFontElement + method: GET + data_selector: attributes +- name: HTMLFontElement + endpoint: + path: /interface/HTMLFontElement + method: GET + data_selector: attributes +- name: HTMLHRElement + endpoint: + path: /interface/HTMLHRElement + method: GET + data_selector: attributes +- name: HTMLModElement + endpoint: + path: /interface/HTMLModElement + method: GET + data_selector: attributes +- name: HTMLAnchorElement + endpoint: + path: /interface/HTMLAnchorElement + method: GET + data_selector: attributes +- name: HTMLImageElement + endpoint: + path: /HTMLImageElement + method: GET + data_selector: attributes + params: {} +- name: HTMLObjectElement + endpoint: + path: /HTMLObjectElement + method: GET + data_selector: attributes + params: {} +- name: HTMLParamElement + endpoint: + path: /HTMLParamElement + method: GET + data_selector: attributes + params: {} +- name: HTMLAppletElement + endpoint: + path: /HTMLAppletElement + method: GET + data_selector: attributes + params: {} +- name: HTMLMapElement + endpoint: + path: /HTMLMapElement + method: GET + data_selector: attributes + params: {} +- name: HTMLAreaElement + endpoint: + path: /HTMLAreaElement + method: GET + data_selector: attributes + params: {} +- name: intellectual_rights + endpoint: + path: /copyright/intellectual-rights/ + method: GET +- name: software_license_2023 + endpoint: + path: /copyright/software-license-2023/ + method: GET +- name: test_suites_licenses + endpoint: + path: /copyright/test-suites-licenses/ + method: GET +- name: document_license_2023 + endpoint: + path: /copyright/document-license-2023/ + method: GET +- name: webrtc + endpoint: + path: /TR/webrtc/ + method: GET +- name: mediacapture + endpoint: + path: /TR/mediacapture-streams/ + method: GET +- name: HTMLDocument + endpoint: + path: /api/html/document + method: GET + data_selector: document +- name: HTMLElement + endpoint: + path: /api/html/element + method: GET + data_selector: element +- name: HTMLElement + endpoint: + path: /elements/HTMLElement + method: GET + data_selector: properties +- name: HTMLHeadElement + endpoint: + path: /elements/HTMLHeadElement + method: GET + data_selector: properties +- name: HTMLMetaElement + endpoint: + path: /elements/HTMLMetaElement + method: GET + data_selector: properties +- name: HTMLSelectElement + endpoint: + path: /interface/HTMLSelectElement + method: GET + data_selector: attributes +- name: HTMLOptGroupElement + endpoint: + path: /interface/HTMLOptGroupElement + method: GET + data_selector: attributes +- name: HTMLOptionElement + endpoint: + path: /interface/HTMLOptionElement + method: GET + data_selector: attributes +- name: HTMLInputElement + endpoint: + path: /interface/HTMLInputElement + method: GET + data_selector: attributes +- name: HTMLTextAreaElement + endpoint: + path: /interface/HTMLTextAreaElement + method: GET + data_selector: attributes +- name: HTMLButtonElement + endpoint: + path: /HTMLButtonElement + method: GET + data_selector: attributes + params: {} +- name: HTMLLabelElement + endpoint: + path: /HTMLLabelElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFieldSetElement + endpoint: + path: /HTMLFieldSetElement + method: GET + data_selector: attributes + params: {} +- name: HTMLLegendElement + endpoint: + path: /HTMLLegendElement + method: GET + data_selector: attributes + params: {} +- name: HTMLUListElement + endpoint: + path: /HTMLUListElement + method: GET + data_selector: attributes + params: {} +- name: HTMLOListElement + endpoint: + path: /HTMLOListElement + method: GET + data_selector: attributes + params: {} +- name: HTMLDListElement + endpoint: + path: /HTMLDListElement + method: GET + data_selector: attributes + params: {} +- name: HTMLDirectoryElement + endpoint: + path: /HTMLDirectoryElement + method: GET + data_selector: attributes + params: {} +- name: HTMLMenuElement + endpoint: + path: /HTMLMenuElement + method: GET + data_selector: attributes + params: {} +- name: HTMLLIElement + endpoint: + path: /HTMLLIElement + method: GET + data_selector: attributes + params: {} +- name: HTMLDivElement + endpoint: + path: /HTMLDivElement + method: GET + data_selector: attributes + params: {} +- name: HTMLParagraphElement + endpoint: + path: /HTMLParagraphElement + method: GET + data_selector: attributes + params: {} +- name: HTMLHeadingElement + endpoint: + path: /HTMLHeadingElement + method: GET + data_selector: attributes + params: {} +- name: HTMLQuoteElement + endpoint: + path: /HTMLQuoteElement + method: GET + data_selector: attributes + params: {} +- name: HTMLPreElement + endpoint: + path: /HTMLPreElement + method: GET + data_selector: attributes + params: {} +- name: HTMLBRElement + endpoint: + path: /HTMLBRElement + method: GET + data_selector: attributes + params: {} +- name: HTMLBaseFontElement + endpoint: + path: /HTMLBaseFontElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFontElement + endpoint: + path: /HTMLFontElement + method: GET + data_selector: attributes + params: {} +- name: HTMLHRElement + endpoint: + path: /HTMLHRElement + method: GET + data_selector: attributes + params: {} +- name: HTMLAppletElement + endpoint: + path: /HTMLAppletElement + method: GET + data_selector: attributes + params: {} +- name: HTMLMapElement + endpoint: + path: /HTMLMapElement + method: GET + data_selector: attributes + params: {} +- name: HTMLAreaElement + endpoint: + path: /HTMLAreaElement + method: GET + data_selector: attributes + params: {} +- name: HTMLScriptElement + endpoint: + path: /HTMLScriptElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableElement + endpoint: + path: /HTMLTableElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableCaptionElement + endpoint: + path: /HTMLTableCaptionElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableColElement + endpoint: + path: /HTMLTableColElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableSectionElement + endpoint: + path: /HTMLTableSectionElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableRowElement + endpoint: + path: /HTMLTableRowElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableCellElement + endpoint: + path: /HTMLTableCellElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFrameSetElement + endpoint: + path: /HTMLFrameSetElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFrameElement + endpoint: + path: /HTMLFrameElement + method: GET + data_selector: attributes + params: {} +- name: HTMLIFrameElement + endpoint: + path: /HTMLIFrameElement + method: GET + data_selector: attributes + params: {} +- name: Bengali Script Resources + endpoint: + path: /TR/beng-lreq/ + method: GET +- name: Canadian Aboriginal Syllabics Script Resources + endpoint: + path: /TR/cans-lreq/ + method: GET +- name: Cherokee Script Resources + endpoint: + path: /TR/cher-lreq/ + method: GET +- name: Cyrillic Script Resources + endpoint: + path: /TR/cyrl-lreq/ + method: GET +- name: Devanagari Script Resources + endpoint: + path: /TR/deva-lreq/ + method: GET +- name: Ethiopic Script Resources + endpoint: + path: /TR/ethi-lreq/ + method: GET +- name: Georgian Script Resources + endpoint: + path: /TR/geor-lreq/ + method: GET +- name: Gujarati Script Resources + endpoint: + path: /TR/gujr-lreq/ + method: GET +- name: Gurmukhi Script Resources + endpoint: + path: /TR/guru-lreq/ + method: GET +- name: Hebrew Script Resources + endpoint: + path: /TR/hebr-lreq/ + method: GET +- name: Javanese Script Resources + endpoint: + path: /TR/java-lreq/ + method: GET +- name: Khmer Script Resources + endpoint: + path: /TR/khmr-lreq/ + method: GET +- name: Lao Script Resources + endpoint: + path: /TR/laoo-lreq/ + method: GET +- name: Latin Script Resources + endpoint: + path: /TR/latn-lreq/ + method: GET +- name: N’Ko Script Resources + endpoint: + path: /TR/nkoo-lreq/ + method: GET +- name: Osage Script Resources + endpoint: + path: /TR/osge-lreq/ + method: GET +- name: Tamil Script Resources + endpoint: + path: /TR/taml-lreq/ + method: GET +- name: Thai Script Resources + endpoint: + path: /TR/thai-lreq/ + method: GET +- name: Tibetan Script Resources + endpoint: + path: /TR/tibt-lreq/ + method: GET +- name: Tibetan Layout Requirements + endpoint: + path: /TR/tlreq/ + method: GET +- name: Tamil Layout Requirements + endpoint: + path: /TR/ilreq-taml/ + method: GET +- name: Requirements for Japanese Text Layout + endpoint: + path: /TR/jlreq/ + method: GET +- name: Rules for Simple Placement of Japanese Ruby + endpoint: + path: /TR/simple-ruby/ + method: GET +- name: Indic Layout Requirements + endpoint: + path: /TR/ilreq/ + method: GET +- name: Requirements for Hangul Text Layout and Typography + endpoint: + path: /TR/klreq/ + method: GET +- name: Ethiopic Layout Requirements + endpoint: + path: /TR/elreq/ + method: GET +- name: Requirements for Latin Text Layout and Pagination + endpoint: + path: /TR/dpub-latinreq/ + method: GET +- name: WebTransport + endpoint: + path: /TR/webtransport/ + method: GET +- name: CSS Anchor Positioning + endpoint: + path: /TR/css-anchor-position-1/ + method: GET +- name: CSS Overflow Module Level 3 + endpoint: + path: /TR/css-overflow-3/ + method: GET +- name: CSS Overflow Module Level 5 + endpoint: + path: /TR/css-overflow-5/ + method: GET +- name: CSS Overflow Module Level 4 + endpoint: + path: /TR/css-overflow-4/ + method: GET +- name: CSS Positioned Layout Module Level 3 + endpoint: + path: /TR/css-position-3/ + method: GET +- name: CSS Positioned Layout Module Level 4 + endpoint: + path: /TR/css-position-4/ + method: GET +- name: Trusted Types + endpoint: + path: /TR/trusted-types/ + method: GET +- name: Web Platform Design Principles + endpoint: + path: /TR/design-principles/ + method: GET +- name: Mitigating Browser Fingerprinting in Web Specifications + endpoint: + path: /TR/fingerprinting-guidance/ + method: GET +- name: Good Practices for Capability URLs + endpoint: + path: /TR/capability-urls/ + method: GET +- name: URLs in Data Primer + endpoint: + path: /TR/urls-in-data/ + method: GET +- name: Publishing and Linking on the Web + endpoint: + path: /TR/publishing-linking/ + method: GET +- name: Best Practices for Fragment Identifiers and Media Type Definitions + endpoint: + path: /TR/fragid-best-practices/ + method: GET +- name: Web API Design Cookbook + endpoint: + path: /TR/api-design/ + method: GET +- name: Cool URIs for the Semantic Web + endpoint: + path: /TR/cooluris/ + method: GET +- name: Guide to Versioning XML Languages using new XML Schema 1.1 features + endpoint: + path: /TR/xmlschema-guide2versioning/ + method: GET +- name: The Disposition of Names in an XML Namespace + endpoint: + path: /TR/namespaceState/ + method: GET +- name: Architecture of the World Wide Web, Volume One + endpoint: + path: /TR/webarch/ + method: GET +- name: 'URIs, URLs, and URNs: Clarifications and Recommendations 1.0' + endpoint: + path: /TR/uri-clarification/ + method: GET +- name: 'Web Characterization: From working group to activity' + endpoint: + path: /TR/NOTE-WCA/ + method: GET +- name: WebDriver BiDi + endpoint: + path: /TR/webdriver-bidi/ + method: GET +- name: WebDriver + endpoint: + path: /TR/webdriver2/ + method: GET +- name: WebDriver + endpoint: + path: /TR/webdriver1/ + method: GET +- name: Badging API + endpoint: + path: /TR/badging/ + method: GET +- name: Mathematical Markup Language (MathML) Version 4.0 + endpoint: + path: /TR/mathml4/ + method: GET +- name: MathML Core + endpoint: + path: /TR/mathml-core/ + method: GET +- name: MathML Media-type Declarations + endpoint: + path: /TR/mathml-media-types/ + method: GET +- name: Mathematical Markup Language (MathML) Version 3.0 2nd Edition + endpoint: + path: /TR/MathML3/ + method: GET +- name: A MathML for CSS Profile + endpoint: + path: /TR/mathml-for-css/ + method: GET +- name: Arabic mathematical notation + endpoint: + path: /TR/arabic-math/ + method: GET +- name: Bound Variables in MathML + endpoint: + path: /TR/mathml-bvar/ + method: GET +- name: Structured Types in MathML 2.0 + endpoint: + path: /TR/mathml-types/ + method: GET +- name: Units in MathML + endpoint: + path: /TR/mathml-units/ + method: GET +- name: Permissions + endpoint: + path: /TR/permissions/ + method: GET +- name: Permissions Policy + endpoint: + path: /TR/permissions-policy-1/ + method: GET +- name: Web Sustainability Guidelines (WSG) + endpoint: + path: /TR/web-sustainability-guidelines/ + method: GET +- name: WebXR Device API + endpoint: + path: /TR/webxr/ + method: GET +- name: WebXR Layers API Level 1 + endpoint: + path: /TR/webxrlayers-1/ + method: GET +- name: HTMLDocument + endpoint: + path: /HTMLDocument + method: GET + data_selector: records +- name: HTMLSelectElement + endpoint: + path: /HTMLSelectElement + method: GET + data_selector: records +- name: HTMLOptionElement + endpoint: + path: /HTMLOptionElement + method: GET + data_selector: records +- name: HTMLInputElement + endpoint: + path: /HTMLInputElement + method: GET + data_selector: records +- name: HTMLTextAreaElement + endpoint: + path: /HTMLTextAreaElement + method: GET + data_selector: records +- name: HTMLFrameElement + endpoint: + path: /HTMLFrameElement + method: GET + data_selector: records +- name: HTMLIFrameElement + endpoint: + path: /HTMLIFrameElement + method: GET + data_selector: records +- name: HTMLSelectElement + endpoint: + path: /interface/HTMLSelectElement + method: GET + data_selector: attributes + params: {} +- name: HTMLOptGroupElement + endpoint: + path: /interface/HTMLOptGroupElement + method: GET + data_selector: attributes + params: {} +- name: HTMLOptionElement + endpoint: + path: /interface/HTMLOptionElement + method: GET + data_selector: attributes + params: {} +- name: HTMLInputElement + endpoint: + path: /interface/HTMLInputElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTextAreaElement + endpoint: + path: /interface/HTMLTextAreaElement + method: GET + data_selector: attributes + params: {} +- name: Element + endpoint: + path: /interface/Element + method: GET + data_selector: attributes +- name: Text + endpoint: + path: /interface/Text + method: GET + data_selector: characterData +- name: splitText + endpoint: + path: /splitText + method: GET + data_selector: Text + params: {} +- name: Comment + endpoint: + path: /Comment + method: GET + data_selector: CharacterData + params: {} +- name: DocumentType + endpoint: + path: /createDocumentType + method: POST + data_selector: newDocumentType +- name: DocumentFragment + endpoint: + path: /createDocumentFragment + method: POST + data_selector: newDocumentFragment +- name: Element + endpoint: + path: /createElement + method: POST + data_selector: newElement +- name: Text + endpoint: + path: /createTextNode + method: POST + data_selector: newTextNode +- name: HTMLButtonElement + endpoint: + path: /HTMLButtonElement + method: GET + data_selector: attributes + params: {} +- name: HTMLLabelElement + endpoint: + path: /HTMLLabelElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFieldSetElement + endpoint: + path: /HTMLFieldSetElement + method: GET + data_selector: attributes + params: {} +- name: HTMLLegendElement + endpoint: + path: /HTMLLegendElement + method: GET + data_selector: attributes + params: {} +- name: HTMLUListElement + endpoint: + path: /HTMLUListElement + method: GET + data_selector: attributes + params: {} +- name: HTMLOListElement + endpoint: + path: /HTMLOListElement + method: GET + data_selector: attributes + params: {} +- name: HTMLDListElement + endpoint: + path: /HTMLDListElement + method: GET + data_selector: attributes + params: {} +- name: HTMLDirectoryElement + endpoint: + path: /HTMLDirectoryElement + method: GET + data_selector: attributes + params: {} +- name: HTMLMenuElement + endpoint: + path: /HTMLMenuElement + method: GET + data_selector: attributes + params: {} +- name: HTMLLIElement + endpoint: + path: /HTMLLIElement + method: GET + data_selector: attributes + params: {} +- name: HTMLDivElement + endpoint: + path: /HTMLDivElement + method: GET + data_selector: attributes + params: {} +- name: HTMLParagraphElement + endpoint: + path: /HTMLParagraphElement + method: GET + data_selector: attributes + params: {} +- name: HTMLHeadingElement + endpoint: + path: /HTMLHeadingElement + method: GET + data_selector: attributes + params: {} +- name: HTMLQuoteElement + endpoint: + path: /HTMLQuoteElement + method: GET + data_selector: attributes + params: {} +- name: HTMLPreElement + endpoint: + path: /HTMLPreElement + method: GET + data_selector: attributes + params: {} +- name: HTMLBRElement + endpoint: + path: /HTMLBRElement + method: GET + data_selector: attributes + params: {} +- name: HTMLBaseFontElement + endpoint: + path: /HTMLBaseFontElement + method: GET + data_selector: attributes + params: {} +- name: HTMLFontElement + endpoint: + path: /HTMLFontElement + method: GET + data_selector: attributes + params: {} +- name: HTMLHRElement + endpoint: + path: /HTMLHRElement + method: GET + data_selector: attributes + params: {} +- name: HTMLAppletElement + endpoint: + path: /interface/HTMLAppletElement + method: GET + data_selector: attributes + params: {} +- name: HTMLMapElement + endpoint: + path: /interface/HTMLMapElement + method: GET + data_selector: attributes + params: {} +- name: HTMLAreaElement + endpoint: + path: /interface/HTMLAreaElement + method: GET + data_selector: attributes + params: {} +- name: HTMLScriptElement + endpoint: + path: /interface/HTMLScriptElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableElement + endpoint: + path: /interface/HTMLTableElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableCaptionElement + endpoint: + path: /interface/HTMLTableCaptionElement + method: GET + data_selector: attributes + params: {} +- name: HTMLTableColElement + endpoint: + path: /interface/HTMLTableColElement + method: GET + data_selector: attributes + params: {} +- name: cloneNode + endpoint: + path: /cloneNode + method: GET + data_selector: Node + params: {} +- name: hasAttributes + endpoint: + path: /hasAttributes + method: GET + data_selector: boolean + params: {} +- name: hasChildNodes + endpoint: + path: /hasChildNodes + method: GET + data_selector: boolean + params: {} +- name: insertBefore + endpoint: + path: /insertBefore + method: POST + data_selector: Node + params: {} +- name: isSupported + endpoint: + path: /isSupported + method: GET + data_selector: boolean + params: {} +- name: normalize + endpoint: + path: /normalize + method: POST + data_selector: void + params: {} +- name: removeChild + endpoint: + path: /removeChild + method: DELETE + data_selector: Node + params: {} +- name: replaceChild + endpoint: + path: /replaceChild + method: PUT + data_selector: Node + params: {} +- name: HTMLTableSectionElement + endpoint: + path: /HTMLTableSectionElement + method: GET + data_selector: attributes +- name: HTMLTableRowElement + endpoint: + path: /HTMLTableRowElement + method: GET + data_selector: attributes +- name: HTMLTableCellElement + endpoint: + path: /HTMLTableCellElement + method: GET + data_selector: attributes +- name: HTMLFrameSetElement + endpoint: + path: /HTMLFrameSetElement + method: GET + data_selector: attributes +- name: HTMLFrameElement + endpoint: + path: /HTMLFrameElement + method: GET + data_selector: attributes +- name: HTMLIFrameElement + endpoint: + path: /HTMLIFrameElement + method: GET + data_selector: attributes +- name: HTMLFrameSetElement + endpoint: + path: /html2/frameSet + method: GET + data_selector: attributes + params: {} +- name: Entity + endpoint: + path: /entity + method: GET + data_selector: records +- name: EntityReference + endpoint: + path: /entityReference + method: GET + data_selector: records +- name: ProcessingInstruction + endpoint: + path: /processingInstruction + method: GET + data_selector: records +- name: DOMImplementation + endpoint: + path: /DOMImplementation + method: GET + data_selector: methods +- name: DocumentType + endpoint: + path: /api/document/type + method: GET + data_selector: documentType + params: {} +- name: DocumentFragment + endpoint: + path: /api/document/fragment + method: GET + data_selector: documentFragment + params: {} +- name: Document + endpoint: + path: /api/document + method: GET + data_selector: document + params: {} +- name: CharacterData + endpoint: + path: /CharacterData + method: GET + data_selector: data +- name: Attr + endpoint: + path: /Attr + method: GET + data_selector: name +- name: Element + endpoint: + path: /Element + method: GET + data_selector: tagName +- name: Entity + endpoint: + path: /entity + method: GET + data_selector: records + params: {} +- name: EntityReference + endpoint: + path: /entityReference + method: GET + data_selector: records + params: {} +- name: ProcessingInstruction + endpoint: + path: /processingInstruction + method: GET + data_selector: records + params: {} +- name: HTMLCollection + endpoint: + path: /org/w3c/dom/html2/HTMLCollection + method: GET + data_selector: records +- name: HTMLOptionsCollection + endpoint: + path: /org/w3c/dom/html2/HTMLOptionsCollection + method: GET + data_selector: records +- name: HTMLDocument + endpoint: + path: /org/w3c/dom/html2/HTMLDocument + method: GET + data_selector: records +- name: HTMLElement + endpoint: + path: /org/w3c/dom/html2/HTMLElement + method: GET + data_selector: records +- name: HTMLHtmlElement + endpoint: + path: /org/w3c/dom/html2/HTMLHtmlElement + method: GET + data_selector: records +- name: HTMLHeadElement + endpoint: + path: /org/w3c/dom/html2/HTMLHeadElement + method: GET + data_selector: records +- name: HTMLLinkElement + endpoint: + path: /org/w3c/dom/html2/HTMLLinkElement + method: GET + data_selector: records +- name: HTMLTitleElement + endpoint: + path: /org/w3c/dom/html2/HTMLTitleElement + method: GET + data_selector: records +- name: HTMLMetaElement + endpoint: + path: /org/w3c/dom/html2/HTMLMetaElement + method: GET + data_selector: records +- name: HTMLBaseElement + endpoint: + path: /org/w3c/dom/html2/HTMLBaseElement + method: GET + data_selector: records +- name: HTMLIsIndexElement + endpoint: + path: /org/w3c/dom/html2/HTMLIsIndexElement + method: GET + data_selector: records +- name: HTMLStyleElement + endpoint: + path: /org/w3c/dom/html2/HTMLStyleElement + method: GET + data_selector: records +- name: HTMLBodyElement + endpoint: + path: /org/w3c/dom/html2/HTMLBodyElement + method: GET + data_selector: records +- name: HTMLFormElement + endpoint: + path: /org/w3c/dom/html2/HTMLFormElement + method: GET + data_selector: records +- name: HTMLSelectElement + endpoint: + path: /org/w3c/dom/html2/HTMLSelectElement + method: GET + data_selector: records +- name: HTMLOptGroupElement + endpoint: + path: /org/w3c/dom/html2/HTMLOptGroupElement + method: GET + data_selector: records +- name: HTMLOptionElement + endpoint: + path: /org/w3c/dom/html2/HTMLOptionElement + method: GET + data_selector: records +- name: HTMLInputElement + endpoint: + path: /org/w3c/dom/html2/HTMLInputElement + method: GET + data_selector: records +- name: HTMLTextAreaElement + endpoint: + path: /org/w3c/dom/html2/HTMLTextAreaElement + method: GET + data_selector: records +- name: HTMLButtonElement + endpoint: + path: /org/w3c/dom/html2/HTMLButtonElement + method: GET + data_selector: records +- name: HTMLLabelElement + endpoint: + path: /org/w3c/dom/html2/HTMLLabelElement + method: GET + data_selector: records +- name: HTMLFieldSetElement + endpoint: + path: /org/w3c/dom/html2/HTMLFieldSetElement + method: GET + data_selector: records +- name: HTMLLegendElement + endpoint: + path: /org/w3c/dom/html2/HTMLLegendElement + method: GET + data_selector: records +- name: HTMLUListElement + endpoint: + path: /org/w3c/dom/html2/HTMLUListElement + method: GET + data_selector: records +- name: HTMLOListElement + endpoint: + path: /org/w3c/dom/html2/HTMLOListElement + method: GET + data_selector: records +- name: HTMLDListElement + endpoint: + path: /org/w3c/dom/html2/HTMLDListElement + method: GET + data_selector: records +- name: HTMLDirectoryElement + endpoint: + path: /org/w3c/dom/html2/HTMLDirectoryElement + method: GET + data_selector: records +- name: HTMLMenuElement + endpoint: + path: /org/w3c/dom/html2/HTMLMenuElement + method: GET + data_selector: records +- name: HTMLLIElement + endpoint: + path: /org/w3c/dom/html2/HTMLLIElement + method: GET + data_selector: records +- name: HTMLDivElement + endpoint: + path: /org/w3c/dom/html2/HTMLDivElement + method: GET + data_selector: records +- name: HTMLParagraphElement + endpoint: + path: /org/w3c/dom/html2/HTMLParagraphElement + method: GET + data_selector: records +- name: HTMLHeadingElement + endpoint: + path: /org/w3c/dom/html2/HTMLHeadingElement + method: GET + data_selector: records +- name: HTMLQuoteElement + endpoint: + path: /org/w3c/dom/html2/HTMLQuoteElement + method: GET + data_selector: records +- name: HTMLPreElement + endpoint: + path: /org/w3c/dom/html2/HTMLPreElement + method: GET + data_selector: records +- name: HTMLBRElement + endpoint: + path: /org/w3c/dom/html2/HTMLBRElement + method: GET + data_selector: records +- name: HTMLBaseFontElement + endpoint: + path: /org/w3c/dom/html2/HTMLBaseFontElement + method: GET + data_selector: records +- name: HTMLFontElement + endpoint: + path: /org/w3c/dom/html2/HTMLFontElement + method: GET + data_selector: records +- name: HTMLHRElement + endpoint: + path: /org/w3c/dom/html2/HTMLHRElement + method: GET + data_selector: records +- name: HTMLModElement + endpoint: + path: /org/w3c/dom/html2/HTMLModElement + method: GET + data_selector: records +- name: HTMLAnchorElement + endpoint: + path: /org/w3c/dom/html2/HTMLAnchorElement + method: GET + data_selector: records +- name: HTMLImageElement + endpoint: + path: /org/w3c/dom/html2/HTMLImageElement + method: GET + data_selector: records +- name: HTMLObjectElement + endpoint: + path: /org/w3c/dom/html2/HTMLObjectElement + method: GET + data_selector: records +- name: HTMLParamElement + endpoint: + path: /org/w3c/dom/html2/HTMLParamElement + method: GET + data_selector: records +- name: HTMLAppletElement + endpoint: + path: /org/w3c/dom/html2/HTMLAppletElement + method: GET + data_selector: records +- name: HTMLMapElement + endpoint: + path: /org/w3c/dom/html2/HTMLMapElement + method: GET + data_selector: records +- name: HTMLAreaElement + endpoint: + path: /org/w3c/dom/html2/HTMLAreaElement + method: GET + data_selector: records +- name: DOMException + endpoint: + path: /org/w3c/dom/DOMException + method: GET + data_selector: code + params: {} +- name: DOMImplementation + endpoint: + path: /org/w3c/dom/DOMImplementation + method: GET + data_selector: features + params: {} +- name: DocumentFragment + endpoint: + path: /org/w3c/dom/DocumentFragment + method: GET + data_selector: nodes + params: {} +- name: Document + endpoint: + path: /org/w3c/dom/Document + method: GET + data_selector: elements + params: {} +- name: Node + endpoint: + path: /org/w3c/dom/Node + method: GET + data_selector: nodeTypes + params: {} +- name: NodeList + endpoint: + path: /org/w3c/dom/NodeList + method: GET + data_selector: length + params: {} +- name: NamedNodeMap + endpoint: + path: /org/w3c/dom/NamedNodeMap + method: GET + data_selector: namedItems + params: {} +- name: CharacterData + endpoint: + path: /org/w3c/dom/CharacterData + method: GET + data_selector: data + params: {} +- name: Attr + endpoint: + path: /org/w3c/dom/Attr + method: GET + data_selector: attributes + params: {} +- name: Element + endpoint: + path: /org/w3c/dom/Element + method: GET + data_selector: elements + params: {} +- name: Text + endpoint: + path: /org/w3c/dom/Text + method: GET + data_selector: textNodes + params: {} +- name: Comment + endpoint: + path: /org/w3c/dom/Comment + method: GET + data_selector: comments + params: {} +- name: CDATASection + endpoint: + path: /org/w3c/dom/CDATASection + method: GET + data_selector: cdataSections + params: {} +- name: DocumentType + endpoint: + path: /org/w3c/dom/DocumentType + method: GET + data_selector: documentTypes + params: {} +- name: Notation + endpoint: + path: /org/w3c/dom/Notation + method: GET + data_selector: notations + params: {} +- name: Entity + endpoint: + path: /org/w3c/dom/Entity + method: GET + data_selector: entities + params: {} +- name: EntityReference + endpoint: + path: /org/w3c/dom/EntityReference + method: GET + data_selector: entityReferences + params: {} +- name: ProcessingInstruction + endpoint: + path: /org/w3c/dom/ProcessingInstruction + method: GET + data_selector: processingInstructions + params: {} +- name: HTMLScriptElement + endpoint: + path: /org/w3c/dom/html2/HTMLScriptElement + method: GET + data_selector: methods +- name: HTMLTableElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableElement + method: GET + data_selector: methods +- name: HTMLTableCaptionElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableCaptionElement + method: GET + data_selector: methods +- name: HTMLTableColElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableColElement + method: GET + data_selector: methods +- name: HTMLTableSectionElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableSectionElement + method: GET + data_selector: methods +- name: HTMLTableRowElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableRowElement + method: GET + data_selector: methods +- name: HTMLTableCellElement + endpoint: + path: /org/w3c/dom/html2/HTMLTableCellElement + method: GET + data_selector: methods +- name: HTMLFrameSetElement + endpoint: + path: /org/w3c/dom/html2/HTMLFrameSetElement + method: GET + data_selector: methods +- name: HTMLFrameElement + endpoint: + path: /org/w3c/dom/html2/HTMLFrameElement + method: GET + data_selector: methods +- name: HTMLIFrameElement + endpoint: + path: /org/w3c/dom/html2/HTMLIFrameElement + method: GET + data_selector: methods +- name: StyleSheet + endpoint: + path: /stylesheets + method: GET + data_selector: styleSheets + params: {} +- name: StyleSheetList + endpoint: + path: /stylesheets/list + method: GET + data_selector: styleSheetList + params: {} +- name: MediaList + endpoint: + path: /media/list + method: GET + data_selector: mediaList + params: {} +- name: getFloatValue + endpoint: + path: /getFloatValue + method: GET + data_selector: float + params: {} +- name: getRGBColorValue + endpoint: + path: /getRGBColorValue + method: GET + data_selector: RGBColor + params: {} +- name: getRectValue + endpoint: + path: /getRectValue + method: GET + data_selector: Rect + params: {} +- name: getStringValue + endpoint: + path: /getStringValue + method: GET + data_selector: DOMString + params: {} +- name: setFloatValue + endpoint: + path: /setFloatValue + method: POST + data_selector: none + params: {} +- name: setStringValue + endpoint: + path: /setStringValue + method: POST + data_selector: none + params: {} +- name: ViewCSS + endpoint: + path: /DOM/ViewCSS + method: GET + data_selector: computedStyle + params: {} +- name: DocumentCSS + endpoint: + path: /DOM/DocumentCSS + method: GET + data_selector: overrideStyle + params: {} +- name: DOMImplementationCSS + endpoint: + path: /DOM/DOMImplementationCSS + method: POST + data_selector: createCSSStyleSheet + params: {} +- name: ElementCSSInlineStyle + endpoint: + path: /DOM/ElementCSSInlineStyle + method: GET + data_selector: style + params: {} +- name: HTMLCollection + endpoint: + path: /HTMLCollection + method: GET + data_selector: properties +- name: HTMLOptionsCollection + endpoint: + path: /HTMLOptionsCollection + method: GET + data_selector: properties +- name: HTMLDocument + endpoint: + path: /HTMLDocument + method: GET + data_selector: properties +- name: HTMLElement + endpoint: + path: /HTMLElement + method: GET + data_selector: properties +- name: HTMLHtmlElement + endpoint: + path: /HTMLHtmlElement + method: GET + data_selector: properties +- name: HTMLHeadElement + endpoint: + path: /HTMLHeadElement + method: GET + data_selector: properties +- name: HTMLLinkElement + endpoint: + path: /HTMLLinkElement + method: GET + data_selector: properties +- name: HTMLTitleElement + endpoint: + path: /HTMLTitleElement + method: GET + data_selector: properties +- name: HTMLMetaElement + endpoint: + path: /HTMLMetaElement + method: GET + data_selector: properties +- name: HTMLBaseElement + endpoint: + path: /HTMLBaseElement + method: GET + data_selector: properties +- name: HTMLIsIndexElement + endpoint: + path: /HTMLIsIndexElement + method: GET + data_selector: properties +- name: HTMLStyleElement + endpoint: + path: /HTMLStyleElement + method: GET + data_selector: properties +- name: HTMLBodyElement + endpoint: + path: /HTMLBodyElement + method: GET + data_selector: properties +- name: HTMLFormElement + endpoint: + path: /HTMLFormElement + method: GET + data_selector: properties +- name: HTMLSelectElement + endpoint: + path: /HTMLSelectElement + method: GET + data_selector: properties +- name: HTMLOptGroupElement + endpoint: + path: /HTMLOptGroupElement + method: GET + data_selector: properties +- name: HTMLOptionElement + endpoint: + path: /HTMLOptionElement + method: GET + data_selector: properties +- name: HTMLInputElement + endpoint: + path: /HTMLInputElement + method: GET + data_selector: properties +- name: HTMLTextAreaElement + endpoint: + path: /HTMLTextAreaElement + method: GET + data_selector: properties +- name: HTMLButtonElement + endpoint: + path: /HTMLButtonElement + method: GET + data_selector: properties +- name: HTMLLabelElement + endpoint: + path: /HTMLLabelElement + method: GET + data_selector: properties +- name: HTMLFieldSetElement + endpoint: + path: /HTMLFieldSetElement + method: GET + data_selector: properties +- name: HTMLLegendElement + endpoint: + path: /HTMLLegendElement + method: GET + data_selector: properties +- name: HTMLUListElement + endpoint: + path: /HTMLUListElement + method: GET + data_selector: properties +- name: HTMLOListElement + endpoint: + path: /HTMLOListElement + method: GET + data_selector: properties +- name: HTMLDListElement + endpoint: + path: /HTMLDListElement + method: GET + data_selector: properties +- name: HTMLDirectoryElement + endpoint: + path: /HTMLDirectoryElement + method: GET + data_selector: properties +- name: HTMLMenuElement + endpoint: + path: /HTMLMenuElement + method: GET + data_selector: properties +- name: HTMLLIElement + endpoint: + path: /HTMLLIElement + method: GET + data_selector: properties +- name: HTMLDivElement + endpoint: + path: /HTMLDivElement + method: GET + data_selector: properties +- name: HTMLParagraphElement + endpoint: + path: /HTMLParagraphElement + method: GET + data_selector: properties +- name: StyleSheet + endpoint: + path: /org/w3c/dom/stylesheets/StyleSheet + method: GET + data_selector: StyleSheet + params: {} +- name: StyleSheetList + endpoint: + path: /org/w3c/dom/stylesheets/StyleSheetList + method: GET + data_selector: StyleSheetList + params: {} +- name: MediaList + endpoint: + path: /org/w3c/dom/stylesheets/MediaList + method: GET + data_selector: MediaList + params: {} +- name: CSSStyleSheet + endpoint: + path: /css/stylesheets + method: GET + data_selector: cssRules +- name: CSSRuleList + endpoint: + path: /css/rule-list + method: GET + data_selector: length +- name: CSSRule + endpoint: + path: /css/rules + method: GET + data_selector: type +- name: CSSStyleRule + endpoint: + path: /css/style-rules + method: GET + data_selector: selectorText +- name: CSSMediaRule + endpoint: + path: /css/media-rules + method: GET + data_selector: media +- name: HTMLParagraphElement + endpoint: + path: /HTMLParagraphElement + method: GET + data_selector: properties + params: {} +- name: HTMLHeadingElement + endpoint: + path: /HTMLHeadingElement + method: GET + data_selector: properties + params: {} +- name: HTMLQuoteElement + endpoint: + path: /HTMLQuoteElement + method: GET + data_selector: properties + params: {} +- name: HTMLPreElement + endpoint: + path: /HTMLPreElement + method: GET + data_selector: properties + params: {} +- name: HTMLBRElement + endpoint: + path: /HTMLBRElement + method: GET + data_selector: properties + params: {} +- name: HTMLBaseFontElement + endpoint: + path: /HTMLBaseFontElement + method: GET + data_selector: properties + params: {} +- name: HTMLFontElement + endpoint: + path: /HTMLFontElement + method: GET + data_selector: properties + params: {} +- name: HTMLHRElement + endpoint: + path: /HTMLHRElement + method: GET + data_selector: properties + params: {} +- name: HTMLModElement + endpoint: + path: /HTMLModElement + method: GET + data_selector: properties + params: {} +- name: HTMLAnchorElement + endpoint: + path: /HTMLAnchorElement + method: GET + data_selector: properties + params: {} +- name: HTMLImageElement + endpoint: + path: /HTMLImageElement + method: GET + data_selector: properties + params: {} +- name: HTMLObjectElement + endpoint: + path: /HTMLObjectElement + method: GET + data_selector: properties + params: {} +- name: HTMLParamElement + endpoint: + path: /HTMLParamElement + method: GET + data_selector: properties + params: {} +- name: HTMLAppletElement + endpoint: + path: /HTMLAppletElement + method: GET + data_selector: properties + params: {} +- name: HTMLMapElement + endpoint: + path: /HTMLMapElement + method: GET + data_selector: properties + params: {} +- name: HTMLAreaElement + endpoint: + path: /HTMLAreaElement + method: GET + data_selector: properties + params: {} +- name: HTMLScriptElement + endpoint: + path: /HTMLScriptElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableElement + endpoint: + path: /HTMLTableElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableCaptionElement + endpoint: + path: /HTMLTableCaptionElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableColElement + endpoint: + path: /HTMLTableColElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableSectionElement + endpoint: + path: /HTMLTableSectionElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableRowElement + endpoint: + path: /HTMLTableRowElement + method: GET + data_selector: properties + params: {} +- name: HTMLTableCellElement + endpoint: + path: /HTMLTableCellElement + method: GET + data_selector: properties + params: {} +- name: HTMLFrameSetElement + endpoint: + path: /HTMLFrameSetElement + method: GET + data_selector: properties + params: {} +- name: HTMLFrameElement + endpoint: + path: /HTMLFrameElement + method: GET + data_selector: properties + params: {} +- name: HTMLIFrameElement + endpoint: + path: /HTMLIFrameElement + method: GET + data_selector: properties + params: {} +- name: HTML 4.01 + endpoint: + path: /TR/html401 + method: GET + data_selector: specification + params: {} +- name: HTML 4 + endpoint: + path: /TR/html4 + method: GET + data_selector: specification + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: boolean_attributes + endpoint: + path: /boolean_attributes + method: GET + data_selector: attributes +- name: document_object_model + endpoint: + path: /document_object_model + method: GET + data_selector: model +- name: using_ampersands + endpoint: + path: /using_ampersands + method: GET + data_selector: ampersands +- name: cascading_style_sheets + endpoint: + path: /cascading_style_sheets + method: GET + data_selector: stylesheets +- name: referencing_style_elements + endpoint: + path: /referencing_style_elements + method: GET + data_selector: style_elements +- name: white_space_characters + endpoint: + path: /white_space_characters + method: GET + data_selector: white_space +- name: named_character_reference + endpoint: + path: /named_character_reference + method: GET + data_selector: named_character +- name: WebRTC + endpoint: + path: /TR/webrtc/ + method: GET +- name: Pointer Events + endpoint: + path: /TR/pointerevents4/ + method: GET +- name: WebGPU + endpoint: + path: /TR/webgpu/ + method: GET +- name: CSS Flexible Box Layout + endpoint: + path: /TR/css-flexbox-1/ + method: GET +- name: SHACL + endpoint: + path: /TR/shacl/ + method: GET +- name: WAI-ARIA + endpoint: + path: /TR/wai-aria/ + method: GET +- name: Digital Credentials + endpoint: + path: /TR/digital-credentials/ + method: GET +- name: TTML + endpoint: + path: /TR/ttml/ + method: GET +- name: Audio Output Devices API + endpoint: + path: /TR/audio-output/ + method: GET +- name: Media Capture + endpoint: + path: /TR/mediacapture-streams/ + method: GET +- name: WebXR Device API + endpoint: + path: /TR/webxr/ + method: GET +- name: WebXR Layers API Level 1 + endpoint: + path: /TR/webxrlayers-1/ + method: GET +- name: NodeIterator + endpoint: + path: /nodeiterator + method: GET + data_selector: nodes +- name: NodeFilter + endpoint: + path: /nodefilter + method: GET + data_selector: filters +- name: TreeWalker + endpoint: + path: /treewalker + method: GET + data_selector: walkers +- name: Push API + endpoint: + path: /TR/push-api/ + method: GET +- name: SPARQL + endpoint: + path: /TR/sparql/ + method: GET +- name: Verifiable Credentials + endpoint: + path: /TR/vc-overview/ + method: GET +- name: Web Locks API + endpoint: + path: /TR/web-locks/ + method: GET +- name: CSS Environment Variables + endpoint: + path: /TR/css-env-1/ + method: GET +- name: Media Session + endpoint: + path: /TR/mediasession/ + method: GET +- name: CSS Snapshot 2025 + endpoint: + path: /TR/css-2025/ + method: GET +- name: NodeIterator + endpoint: + path: /org/w3c/dom/traversal/NodeIterator + method: GET + data_selector: properties + params: {} +- name: NodeFilter + endpoint: + path: /org/w3c/dom/traversal/NodeFilter + method: GET + data_selector: constants + params: {} +- name: TreeWalker + endpoint: + path: /org/w3c/dom/traversal/TreeWalker + method: GET + data_selector: methods + params: {} +- name: DocumentTraversal + endpoint: + path: /org/w3c/dom/traversal/DocumentTraversal + method: GET + data_selector: methods + params: {} +- name: RangeConstants + endpoint: + path: /RangeConstants + method: GET + data_selector: constants + params: {} +- name: RangeObjectProperties + endpoint: + path: /RangeObjectProperties + method: GET + data_selector: properties + params: {} +- name: RangeMethods + endpoint: + path: /RangeMethods + method: GET + data_selector: methods + params: {} +- name: DocumentRangeMethods + endpoint: + path: /DocumentRangeMethods + method: GET + data_selector: methods + params: {} +- name: RangeExceptionConstants + endpoint: + path: /RangeExceptionConstants + method: GET + data_selector: constants + params: {} +- name: RangeExceptionProperties + endpoint: + path: /RangeExceptionProperties + method: GET + data_selector: properties + params: {} +- name: DOMException + endpoint: + path: /exceptions/DOMException + method: GET + data_selector: exceptions + params: {} +- name: DocumentFragment + endpoint: + path: /interfaces/DocumentFragment + method: GET + data_selector: interfaces + params: {} +- name: Document + endpoint: + path: /interfaces/Document + method: GET + data_selector: interfaces + params: {} +- name: Comment + endpoint: + path: /core-ID-1728279322 + method: GET + data_selector: records +- name: DocumentFragment + endpoint: + path: /core-ID-B63ED1A3 + method: GET + data_selector: records +- name: Element + endpoint: + path: /core-ID-745549614 + method: GET + data_selector: records +- name: Attr + endpoint: + path: /core-ID-637646024 + method: GET + data_selector: records +- name: EntityReference + endpoint: + path: /core-ID-11C98490 + method: GET + data_selector: records +- name: ProcessingInstruction + endpoint: + path: /core-ID-1004215813 + method: GET + data_selector: records +- name: Text + endpoint: + path: /core-ID-1312295772 + method: GET + data_selector: records +- name: NodeList + endpoint: + path: /NodeList + method: GET + data_selector: nodes + params: {} +- name: NamedNodeMap + endpoint: + path: /NamedNodeMap + method: GET + data_selector: nodes + params: {} +- name: getNamedItemNS + endpoint: + path: /DOM/getNamedItemNS + method: GET + data_selector: Node +- name: setNamedItemNS + endpoint: + path: /DOM/setNamedItemNS + method: POST + data_selector: Node +- name: removeNamedItemNS + endpoint: + path: /DOM/removeNamedItemNS + method: DELETE + data_selector: Node +- name: findOffset16 + endpoint: + path: /findOffset16 + method: GET + data_selector: int + params: {} +- name: findOffset32 + endpoint: + path: /findOffset32 + method: GET + data_selector: int + params: {} +- name: DocumentFragment + endpoint: + path: /core/DocumentFragment + method: GET + data_selector: records + params: {} +- name: Document + endpoint: + path: /core/Document + method: GET + data_selector: records + params: {} +- name: png_specification + endpoint: + path: / + method: GET + data_selector: specification + params: {} +- name: NodeList + endpoint: + path: /core/NodeList + method: GET + data_selector: items + params: {} +- name: NamedNodeMap + endpoint: + path: /core/NamedNodeMap + method: GET + data_selector: nodes + params: {} +- name: CharacterData + endpoint: + path: /core/CharacterData + method: GET + data_selector: characters + params: {} +- name: CharacterData + endpoint: + path: /characterData + method: GET + data_selector: data +- name: Attr + endpoint: + path: /attr + method: GET + data_selector: name +- name: Element + endpoint: + path: /element + method: GET + data_selector: tagName +- name: toggle_background_images + endpoint: + path: /tech/configure-background-image + method: GET + data_selector: content + params: {} +- name: toggle_audio_video_animated_images + endpoint: + path: /tech/configure-multimedia + method: GET + data_selector: content + params: {} +- name: toggle_animated_blinking_text + endpoint: + path: /tech/on-off-blinking-text + method: GET + data_selector: content + params: {} +- name: toggle_scripts + endpoint: + path: /tech/on-off-scripts + method: GET + data_selector: content + params: {} +- name: toggle_automatic_content_retrieval + endpoint: + path: /tech/configure-content-retrieval + method: GET + data_selector: content + params: {} +- name: toggle_images + endpoint: + path: /tech/on-off-images + method: GET + data_selector: content + params: {} +- name: Document + endpoint: + path: /core/Document + method: GET + data_selector: attributes +- name: DocumentFragment + endpoint: + path: /core/DocumentFragment + method: GET + data_selector: attributes +- name: getElementsByTagNameNS + endpoint: + path: /getElementsByTagNameNS + method: GET + data_selector: NodeList +- name: importNode + endpoint: + path: /importNode + method: GET + data_selector: Node +- name: CharacterData + endpoint: + path: /CharacterData + method: GET + data_selector: data + params: {} +- name: Attr + endpoint: + path: /Attr + method: GET + data_selector: data + params: {} +- name: Element + endpoint: + path: /Element + method: GET + data_selector: data + params: {} +- name: Entity + endpoint: + path: /services/data/vXX.X/sobjects/Entity + method: GET + data_selector: records +- name: EntityReference + endpoint: + path: /services/data/vXX.X/sobjects/EntityReference + method: GET + data_selector: records +- name: ProcessingInstruction + endpoint: + path: /services/data/vXX.X/sobjects/ProcessingInstruction + method: GET + data_selector: records +- name: DOMException + endpoint: + path: /org/w3c/dom/DOMException + method: GET + data_selector: code + params: {} +- name: DOMImplementation + endpoint: + path: /org/w3c/dom/DOMImplementation + method: GET + data_selector: hasFeature + params: {} +- name: DocumentFragment + endpoint: + path: /org/w3c/dom/DocumentFragment + method: GET + data_selector: createDocumentFragment + params: {} +- name: Document + endpoint: + path: /org/w3c/dom/Document + method: GET + data_selector: getDoctype + params: {} +- name: Node + endpoint: + path: /org/w3c/dom/Node + method: GET + data_selector: getNodeName + params: {} +- name: NodeList + endpoint: + path: /org/w3c/dom/NodeList + method: GET + data_selector: getLength + params: {} +- name: NamedNodeMap + endpoint: + path: /org/w3c/dom/NamedNodeMap + method: GET + data_selector: getLength + params: {} +- name: CharacterData + endpoint: + path: /org/w3c/dom/CharacterData + method: GET + data_selector: getData + params: {} +- name: Attr + endpoint: + path: /org/w3c/dom/Attr + method: GET + data_selector: getName + params: {} +- name: Element + endpoint: + path: /org/w3c/dom/Element + method: GET + data_selector: getTagName + params: {} +- name: Text + endpoint: + path: /org/w3c/dom/Text + method: GET + data_selector: splitText + params: {} +- name: Comment + endpoint: + path: /org/w3c/dom/Comment + method: GET + data_selector: getData + params: {} +- name: CDATASection + endpoint: + path: /org/w3c/dom/CDATASection + method: GET + data_selector: getData + params: {} +- name: DocumentType + endpoint: + path: /org/w3c/dom/DocumentType + method: GET + data_selector: getName + params: {} +- name: Notation + endpoint: + path: /org/w3c/dom/Notation + method: GET + data_selector: getPublicId + params: {} +- name: Entity + endpoint: + path: /org/w3c/dom/Entity + method: GET + data_selector: getPublicId + params: {} +- name: EntityReference + endpoint: + path: /org/w3c/dom/EntityReference + method: GET + data_selector: getName + params: {} +- name: ProcessingInstruction + endpoint: + path: /org/w3c/dom/ProcessingInstruction + method: GET + data_selector: getTarget + params: {} +- name: StyleSheet + endpoint: + path: /stylesheets + method: GET + data_selector: styles +- name: StyleSheetList + endpoint: + path: /stylesheets/list + method: GET + data_selector: styleSheetList +- name: MediaList + endpoint: + path: /media + method: GET + data_selector: mediaList +- name: getFloatValue + endpoint: + path: /getFloatValue + method: GET + data_selector: float + params: {} +- name: getRGBColorValue + endpoint: + path: /getRGBColorValue + method: GET + data_selector: RGBColor + params: {} +- name: getRectValue + endpoint: + path: /getRectValue + method: GET + data_selector: Rect + params: {} +- name: getStringValue + endpoint: + path: /getStringValue + method: GET + data_selector: string + params: {} +- name: setFloatValue + endpoint: + path: /setFloatValue + method: POST + data_selector: float + params: {} +- name: setStringValue + endpoint: + path: /setStringValue + method: POST + data_selector: string + params: {} +- name: checkpoints + endpoint: + path: /checkpoints + method: GET + data_selector: checkpoints +- name: conformance + endpoint: + path: /conformance + method: GET + data_selector: conformance +- name: glossary + endpoint: + path: /glossary + method: GET + data_selector: glossary +- name: ViewCSS + endpoint: + path: /ViewCSS + method: GET + data_selector: interface + params: {} +- name: DocumentCSS + endpoint: + path: /DocumentCSS + method: GET + data_selector: interface + params: {} +- name: DOMImplementationCSS + endpoint: + path: /DOMImplementationCSS + method: GET + data_selector: interface + params: {} +- name: ElementCSSInlineStyle + endpoint: + path: /ElementCSSInlineStyle + method: GET + data_selector: interface + params: {} +- name: CSS2Properties + endpoint: + path: /css2/properties + method: GET + data_selector: properties + params: {} +- name: StyleSheet + endpoint: + path: stylesheets/StyleSheet + method: GET + data_selector: attributes +- name: StyleSheetList + endpoint: + path: stylesheets/StyleSheetList + method: GET + data_selector: attributes +- name: MediaList + endpoint: + path: stylesheets/MediaList + method: GET + data_selector: attributes +- name: Advisory Board + endpoint: + path: /advisory-board + method: GET + data_selector: participants + params: {} +- name: Technical Architecture Group + endpoint: + path: /technical-architecture-group + method: GET + data_selector: participants + params: {} +- name: Working Draft + endpoint: + path: /TR/WD + method: GET + data_selector: drafts + params: {} +- name: Candidate Recommendation + endpoint: + path: /TR/CR + method: GET + data_selector: recommendations + params: {} +- name: W3C Recommendation + endpoint: + path: /TR/REC + method: GET + data_selector: recommendations + params: {} +- name: LinkStyle + endpoint: + path: /org/w3c/dom/stylesheets/LinkStyle + method: GET + data_selector: getSheet + params: {} +- name: DocumentStyle + endpoint: + path: /org/w3c/dom/stylesheets/DocumentStyle + method: GET + data_selector: getStyleSheets + params: {} +- name: CSSStyleSheet + endpoint: + path: /org/w3c/dom/css/CSSStyleSheet + method: GET + data_selector: getOwnerRule, getCssRules + params: {} +- name: CSSRuleList + endpoint: + path: /org/w3c/dom/css/CSSRuleList + method: GET + data_selector: getLength, item + params: {} +- name: CSSRule + endpoint: + path: /org/w3c/dom/css/CSSRule + method: GET + data_selector: getType, getCssText + params: {} +- name: CSSStyleRule + endpoint: + path: /org/w3c/dom/css/CSSStyleRule + method: GET + data_selector: getSelectorText, getStyle + params: {} +- name: CSSMediaRule + endpoint: + path: /org/w3c/dom/css/CSSMediaRule + method: GET + data_selector: getMedia, getCssRules + params: {} +- name: CSSFontFaceRule + endpoint: + path: /org/w3c/dom/css/CSSFontFaceRule + method: GET + data_selector: getStyle + params: {} +- name: CSSPageRule + endpoint: + path: /org/w3c/dom/css/CSSPageRule + method: GET + data_selector: getSelectorText, getStyle + params: {} +- name: CSSImportRule + endpoint: + path: /org/w3c/dom/css/CSSImportRule + method: GET + data_selector: getHref, getMedia, getStyleSheet + params: {} +- name: CSSCharsetRule + endpoint: + path: /org/w3c/dom/css/CSSCharsetRule + method: GET + data_selector: getEncoding + params: {} +- name: CSSUnknownRule + endpoint: + path: /org/w3c/dom/css/CSSUnknownRule + method: GET + data_selector: '' + params: {} +- name: CSSStyleDeclaration + endpoint: + path: /org/w3c/dom/css/CSSStyleDeclaration + method: GET + data_selector: getCssText, setCssText, getPropertyValue, getPropertyCSSValue, + removeProperty, getPropertyPriority, setProperty, getLength, item, getParentRule + params: {} +- name: CSSValue + endpoint: + path: /org/w3c/dom/css/CSSValue + method: GET + data_selector: getCssText, setCssText, getCssValueType + params: {} +- name: CSSPrimitiveValue + endpoint: + path: /org/w3c/dom/css/CSSPrimitiveValue + method: GET + data_selector: getPrimitiveType, setFloatValue, getFloatValue, setStringValue, + getStringValue, getCounterValue, getRectValue, getRGBColorValue + params: {} +- name: CSSValueList + endpoint: + path: /org/w3c/dom/css/CSSValueList + method: GET + data_selector: getLength, item + params: {} +- name: RGBColor + endpoint: + path: /org/w3c/dom/css/RGBColor + method: GET + data_selector: getRed, getGreen, getBlue + params: {} +- name: Rect + endpoint: + path: /org/w3c/dom/css/Rect + method: GET + data_selector: getTop, getRight, getBottom, getLeft + params: {} +- name: Counter + endpoint: + path: /org/w3c/dom/css/Counter + method: GET + data_selector: getIdentifier, getListStyle, getSeparator + params: {} +- name: ViewCSS + endpoint: + path: /org/w3c/dom/css/ViewCSS + method: GET + data_selector: getComputedStyle + params: {} +- name: DocumentCSS + endpoint: + path: /org/w3c/dom/css/DocumentCSS + method: GET + data_selector: getOverrideStyle + params: {} +- name: DOMImplementationCSS + endpoint: + path: /org/w3c/dom/css/DOMImplementationCSS + method: GET + data_selector: createCSSStyleSheet + params: {} +- name: ElementCSSInlineStyle + endpoint: + path: /org/w3c/dom/css/ElementCSSInlineStyle + method: GET + data_selector: getStyle + params: {} +- name: CSS2Properties + endpoint: + path: /org/w3c/dom/css/CSS2Properties + method: GET + data_selector: getAzimuth, getBackground, getBackgroundAttachment, getBackgroundColor, + getBackgroundImage, getBackgroundPosition, getBackgroundRepeat, getBorder, getBorderCollapse, + getBorderColor, getBorderSpacing, getBorderStyle, getBorderTop, getBorderRight, + getBorderBottom, getBorderLeft, getBorderTopColor, getBorderRightColor, getBorderBottomColor, + getBorderLeftColor, getBorderTopStyle, getBorderRightStyle, getBorderBottomStyle, + getBorderLeftStyle, getBorderTopWidth, getBorderRightWidth, getBorderBottomWidth, + getBorderLeftWidth, getBorderWidth, getBottom, getCaptionSide, getClear, getClip, + getColor, getContent, getCounterIncrement, getCounterReset, getCue, getCueAfter, + getCueBefore, getCursor, getDirection, getDisplay, getElevation, getEmptyCells, + getCssFloat, getFont, getFontFamily, getFontSize, getFontSizeAdjust, getFontStretch, + getFontStyle, getFontVariant, getFontWeight, getHeight, getLeft, getLetterSpacing, + getLineHeight, getListStyle, getListStyleImage, getListStylePosition, getListStyleType, + getMargin, getMarginTop, getMarginRight, getMarginBottom, getMarginLeft, getMarkerOffset, + getMarks, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOrphans, + getOutline, getOutlineColor, getOutlineStyle, getOutlineWidth, getOverflow, + getPadding, getPaddingTop, getPaddingRight, getPaddingBottom, getPaddingLeft, + getPage, getPageBreakAfter, getPageBreakBefore, getPageBreakInside, getPause, + getPauseAfter, getPauseBefore, getPitch, getPitchRange, getPlayDuring, getPosition, + getQuotes, getRichness, getRight, getSize, getSpeak, getSpeakHeader, getSpeakNumeral, + getSpeakPunctuation, getSpeechRate, getStress, getTableLayout, getTextAlign, + getTextDecoration, getTextIndent, getTextShadow, getTextTransform, getTop, getUnicodeBidi, + getVerticalAlign, getVisibility, getVoiceFamily, getVolume, getWhiteSpace, getWidows, + getWidth, getWordSpacing, getZIndex + params: {} +- name: StyleSheet + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: StyleSheetList + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: MediaList + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: LinkStyle + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: DocumentStyle + endpoint: + path: '' + method: '' + data_selector: '' + params: {} +- name: play_during + endpoint: + path: /properties/play-during + method: GET +- name: azimuth + endpoint: + path: /properties/azimuth + method: GET +- name: elevation + endpoint: + path: /properties/elevation + method: GET +- name: speech_rate + endpoint: + path: /properties/speech-rate + method: GET +- name: voice_family + endpoint: + path: /properties/voice-family + method: GET +- name: pitch + endpoint: + path: /properties/pitch + method: GET +- name: pitch_range + endpoint: + path: /properties/pitch-range + method: GET +- name: stress + endpoint: + path: /properties/stress + method: GET +- name: richness + endpoint: + path: /properties/richness + method: GET +- name: speak_punctuation + endpoint: + path: /properties/speak-punctuation + method: GET +- name: speak_numeral + endpoint: + path: /properties/speak-numeral + method: GET +- name: CSSStyleSheet + endpoint: + path: /CSSStyleSheet + method: GET + data_selector: cssRules + params: {} +- name: CSSRuleList + endpoint: + path: /CSSRuleList + method: GET + data_selector: length + params: {} +- name: CSSRule + endpoint: + path: /CSSRule + method: GET + data_selector: type + params: {} +- name: CSSStyleRule + endpoint: + path: /CSSStyleRule + method: GET + data_selector: selectorText + params: {} +- name: CSSMediaRule + endpoint: + path: /CSSMediaRule + method: GET + data_selector: media + params: {} +- name: CSSFontFaceRule + endpoint: + path: /CSSFontFaceRule + method: GET + data_selector: style + params: {} +- name: CSSPageRule + endpoint: + path: /CSSPageRule + method: GET + data_selector: selectorText + params: {} +- name: CSSImportRule + endpoint: + path: /CSSImportRule + method: GET + data_selector: href + params: {} +- name: CSSCharsetRule + endpoint: + path: /CSSCharsetRule + method: GET + data_selector: encoding + params: {} +- name: CSSUnknownRule + endpoint: + path: /CSSUnknownRule + method: GET + data_selector: {} + params: {} +- name: CSSStyleDeclaration + endpoint: + path: /CSSStyleDeclaration + method: GET + data_selector: cssText + params: {} +- name: CSSValue + endpoint: + path: /CSSValue + method: GET + data_selector: cssText + params: {} +- name: CSSPrimitiveValue + endpoint: + path: /CSSPrimitiveValue + method: GET + data_selector: {} + params: {} +- name: CSSValueList + endpoint: + path: /CSSValueList + method: GET + data_selector: length + params: {} +- name: RGBColor + endpoint: + path: /RGBColor + method: GET + data_selector: red + params: {} +- name: Rect + endpoint: + path: /Rect + method: GET + data_selector: top + params: {} +- name: Counter + endpoint: + path: /Counter + method: GET + data_selector: identifier + params: {} +- name: ViewCSS + endpoint: + path: /ViewCSS + method: GET + data_selector: {} + params: {} +- name: DocumentCSS + endpoint: + path: /DocumentCSS + method: GET + data_selector: {} + params: {} +- name: DOMImplementationCSS + endpoint: + path: /DOMImplementationCSS + method: GET + data_selector: {} + params: {} +- name: ElementCSSInlineStyle + endpoint: + path: /ElementCSSInlineStyle + method: GET + data_selector: style + params: {} +- name: CSS2Properties + endpoint: + path: /CSS2Properties + method: GET + data_selector: {} + params: {} +- name: Working Group + endpoint: + path: /groups/working + method: GET + data_selector: groups + params: {} +- name: Interest Group + endpoint: + path: /groups/interest + method: GET + data_selector: groups + params: {} +- name: Coordination Group Charter + endpoint: + path: /guidelines/coordination-group-charter + method: GET + data_selector: charter_info + params: {} +- name: changes_14_oct_2005 + endpoint: + path: /2005/10/Process-20051014/ + method: GET + data_selector: changes + params: {} +- name: changes_5_feb_2004 + endpoint: + path: /2005/10/Process-20051014/ + method: GET + data_selector: changes + params: {} +- name: changes_18_jun_2003 + endpoint: + path: /2003/06/Process-20030618/ + method: GET + data_selector: changes + params: {} +- name: changes_19_jul_2001 + endpoint: + path: /2001/tag/ + method: GET + data_selector: changes + params: {} +- name: Range + endpoint: + path: /ranges + method: GET + data_selector: boundary-points + params: {} +- name: DocumentRange + endpoint: + path: /documentRange + method: GET + data_selector: document-range + params: {} +- name: Range + endpoint: + path: /api/range + method: GET + data_selector: methods + params: {} +- name: WCAG 2.0 + endpoint: + path: /TR/WCAG20/ + method: GET + data_selector: content +- name: WCAG 2.1 + endpoint: + path: /TR/WCAG21/ + method: GET + data_selector: content +- name: WCAG 2.2 + endpoint: + path: /TR/WCAG22/ + method: GET + data_selector: content +- name: Range + endpoint: + path: /ranges + method: GET + data_selector: records +- name: NodeIterator + endpoint: + path: /traversal/NodeIterator + method: GET + data_selector: properties + params: {} +- name: NodeFilter + endpoint: + path: /traversal/NodeFilter + method: GET + data_selector: constants + params: {} +- name: TreeWalker + endpoint: + path: /traversal/TreeWalker + method: GET + data_selector: properties + params: {} +- name: DocumentTraversal + endpoint: + path: /traversal/DocumentTraversal + method: GET + data_selector: methods + params: {} +- name: Range + endpoint: + path: /ranges/Range + method: GET + data_selector: methods + params: {} +- name: DocumentRange + endpoint: + path: /ranges/DocumentRange + method: GET + data_selector: methods + params: {} +- name: AG Working Group Charter + endpoint: + path: /2023/11/ag-charter + method: GET +- name: WCAG 3 Timeline + endpoint: + path: /WAI/GL/wiki/WCAG_3_Timeline + method: GET +- name: WCAG 2.2 + endpoint: + path: /WAI/WCAG22/Understanding/ + method: GET +- name: WCAG 2.x Backlog Task Force + endpoint: + path: /WAI/about/groups/task-forces/wcag2x-backlog/ + method: GET +- name: RangeConstants + endpoint: + path: /range/constants + method: GET + data_selector: constants + params: {} +- name: RangeMethods + endpoint: + path: /range/methods + method: GET + data_selector: methods + params: {} +- name: W3C Recommendations + endpoint: + path: /WAI/standards-guidelines/ + method: GET + data_selector: documents + params: {} +- name: W3C Process + endpoint: + path: /WAI/standards-guidelines/w3c-process/ + method: GET + data_selector: process + params: {} +- name: chunks + endpoint: + path: /chunks + method: GET + data_selector: chunk_types +- name: chunk_ordering + endpoint: + path: /specification/chunk_ordering + method: GET + data_selector: chunks + params: {} +- name: defining_chunks + endpoint: + path: /specification/defining_chunks + method: GET + data_selector: public_chunks + params: {} +- name: private_field_values + endpoint: + path: /specification/private_field_values + method: GET + data_selector: private_values + params: {} +- name: color_types + endpoint: + path: /specification/color_types + method: GET + data_selector: color_types + params: {} +- name: interlacing_methods + endpoint: + path: /specification/interlacing_methods + method: GET + data_selector: interlace_methods + params: {} +- name: components + endpoint: + path: /WAI/fundamentals/components/ + method: GET + data_selector: components + params: {} +- name: Encoder color handling + endpoint: + path: /encoder/color/handling + method: GET + data_selector: records +- name: Alpha channel creation + endpoint: + path: /alpha/channel/creation + method: GET + data_selector: records +- name: Sample depth scaling + endpoint: + path: /sample/depth/scaling + method: GET + data_selector: records +- name: Suggested palettes + endpoint: + path: /suggested/palettes + method: GET + data_selector: records +- name: Interlacing + endpoint: + path: /interlacing + method: GET + data_selector: records +- name: Filter selection + endpoint: + path: /filter/selection + method: GET + data_selector: records +- name: Compression + endpoint: + path: /compression + method: GET + data_selector: records +- name: Text chunk processing + endpoint: + path: /text/chunk/processing + method: GET + data_selector: records +- name: Chunking + endpoint: + path: /chunking + method: GET + data_selector: records +- name: image + endpoint: + path: /images/png + method: GET + data_selector: images +- name: image_apng + endpoint: + path: /images/apng + method: GET + data_selector: images +- name: conditional_content_rendering + endpoint: + path: /guidelines/conditional-content + method: GET + data_selector: records +- name: unsupported_writing_systems + endpoint: + path: /guidelines/unsupported-writing-systems + method: GET + data_selector: records +- name: Success Criterion 4.1.2 + endpoint: + path: /TR/2008/REC-WCAG20-20081211/#ensure-compat-rsv + method: GET + data_selector: content + params: {} +- name: learning + endpoint: + path: /learning + method: GET + data_selector: records +- name: hard_of_hearing + endpoint: + path: /hard_of_hearing + method: GET + data_selector: records +- name: memory + endpoint: + path: /memory + method: GET + data_selector: records +- name: color_deficiency + endpoint: + path: /color_deficiency + method: GET + data_selector: records +- name: low_vision + endpoint: + path: /low_vision + method: GET + data_selector: records +- name: seizure_disorder + endpoint: + path: /seizure_disorder + method: GET + data_selector: records +- name: physical + endpoint: + path: /physical + method: GET + data_selector: records +- name: all + endpoint: + path: /all + method: GET + data_selector: records +- name: deafness + endpoint: + path: /deafness + method: GET + data_selector: records +- name: cognitive + endpoint: + path: /cognitive + method: GET + data_selector: records +- name: blindness + endpoint: + path: /blindness + method: GET + data_selector: records +- name: latest_version + endpoint: + path: http://www.w3.org/TR/UAAG10-TECHS/ + method: GET +- name: specific_version + endpoint: + path: http://www.w3.org/TR/2002/NOTE-UAAG10-TECHS-20021217/ + method: GET +- name: Techniques + endpoint: + path: /TR/WCAG10-TECHS/ + method: GET + data_selector: techniques + params: {} +- name: change_history + endpoint: + path: /change-history + method: GET + data_selector: records + params: {} +- name: glossary + endpoint: + path: /glossary + method: GET + data_selector: records + params: {} +- name: references + endpoint: + path: /references + method: GET + data_selector: records + params: {} +- name: techniques + endpoint: + path: /techniques + method: GET + data_selector: records + params: {} +- name: Core Techniques + endpoint: + path: /core-techniques + method: GET + data_selector: records +- name: HTML Techniques + endpoint: + path: /html-techniques + method: GET + data_selector: records +- name: CSS Techniques + endpoint: + path: /css-techniques + method: GET + data_selector: records +- name: Speech Recognition Grammar Specification + endpoint: + path: /TR/2000/WD-voice-intro-20001204 + method: GET + data_selector: specification +- name: Speech Synthesis + endpoint: + path: /TR/voice-intro + method: GET + data_selector: specification +- name: Dialog Markup Language + endpoint: + path: /TR/voice-intro + method: GET + data_selector: specification +- name: N-gram Grammar Markup Language + endpoint: + path: /TR/voice-intro + method: GET + data_selector: specification +- name: Advisory Committee + endpoint: + path: /advisory-committee + method: GET + data_selector: resources + params: {} +- name: Advisory Board + endpoint: + path: /advisory-board + method: GET +- name: Technical Architecture Group + endpoint: + path: /technical-architecture-group + method: GET +- name: Formal Objection + endpoint: + path: /formal-objection + method: POST + data_selector: formal_objections + params: {} +- name: Council Decision + endpoint: + path: /council-decision + method: GET + data_selector: council_decisions + params: {} +- name: evaluation_tools + endpoint: + path: /WAI/test-evaluate/tools/list/ + method: GET + data_selector: tools +- name: wcag_em_report_tool + endpoint: + path: /WAI/test-evaluate/conformance/wcag-em/ + method: GET + data_selector: report_tool +- name: Working Draft + endpoint: + path: /TR/WD + method: GET + data_selector: documents +- name: Candidate Recommendation + endpoint: + path: /TR/CR + method: GET + data_selector: documents +- name: W3C Recommendation + endpoint: + path: /TR/REC + method: GET + data_selector: documents +- name: easy_checks + endpoint: + path: /WAI/test-evaluate/easy-checks/ + method: GET + data_selector: checks +- name: Recommendation-track technical report + endpoint: + path: /technical-report + method: GET + data_selector: records +- name: Discontinued Draft + endpoint: + path: /discontinued-draft + method: GET + data_selector: records +- name: Candidate Recommendation + endpoint: + path: /candidate-recommendation + method: GET + data_selector: records +- name: Obsolete Recommendation + endpoint: + path: /obsolete-recommendation + method: GET + data_selector: records +- name: Superseded Recommendation + endpoint: + path: /superseded-recommendation + method: GET + data_selector: records +- name: Rescinded Recommendation + endpoint: + path: /rescinded-recommendation + method: GET + data_selector: records +- name: Involving Users in Evaluating Web Accessibility + endpoint: + path: /WAI/test-evaluate/involving-users/ + method: GET +- name: evaluation_tools_list + endpoint: + path: /WAI/test-evaluate/tools/list/ + method: GET + data_selector: tools +- name: play-during + endpoint: + path: aural/play-during + method: GET + data_selector: value + params: {} +- name: azimuth + endpoint: + path: aural/azimuth + method: GET + data_selector: value + params: {} +- name: elevation + endpoint: + path: aural/elevation + method: GET + data_selector: value + params: {} +- name: speech-rate + endpoint: + path: aural/speech-rate + method: GET + data_selector: value + params: {} +- name: voice-family + endpoint: + path: aural/voice-family + method: GET + data_selector: value + params: {} +- name: pitch + endpoint: + path: aural/pitch + method: GET + data_selector: value + params: {} +- name: pitch-range + endpoint: + path: aural/pitch-range + method: GET + data_selector: value + params: {} +- name: stress + endpoint: + path: aural/stress + method: GET + data_selector: value + params: {} +- name: richness + endpoint: + path: aural/richness + method: GET + data_selector: value + params: {} +- name: speak-punctuation + endpoint: + path: aural/speak-punctuation + method: GET + data_selector: value + params: {} +- name: speak-numeral + endpoint: + path: aural/speak-numeral + method: GET + data_selector: value + params: {} +- name: Integration of Web Accessibility Metrics into a Semi-Automatic evaluation + process + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper1/ + method: GET + data_selector: records +- name: Measuring accessibility barriers on large scale sets of pages + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper2/ + method: GET + data_selector: records +- name: A Template-aware Web Accessibility metric + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper3/ + method: GET + data_selector: records +- name: A metrics to make different DTDs documents evaluations comparable + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper4/ + method: GET + data_selector: records +- name: Lexical Quality as a Measure for Textual Web Accessibility + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper5/ + method: GET + data_selector: records +- name: Attaining Metric Validity and Reliability with the Web Accessibility Quantitative + Metric + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper6/ + method: GET + data_selector: records +- name: The case for a WCAG-based evaluation scheme with a graded rating scale + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper7/ + method: GET + data_selector: records +- name: 'A zero in eChecker equals a 10 in eXaminator: a comparison between two metrics + by their scores' + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper8/ + method: GET + data_selector: records +- name: Context-Tailored Web Accessibility Metrics + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper9/ + method: GET + data_selector: records +- name: Web Accessibility Metrics For A Post Digital World + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper10/ + method: GET + data_selector: records +- name: Towards a score function for WCAG 2.0 benchmarking + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper11/ + method: GET + data_selector: records +- name: new_W3C_Process_URI + endpoint: + path: /2014/Process-20140801/ + method: GET + data_selector: URI +- name: new_W3C_Process_effective_date + endpoint: + path: /2014/Process-20140801/effective_date + method: GET + data_selector: date +- name: Advisory_Board + endpoint: + path: /advisory_board + method: GET + data_selector: participants + params: {} +- name: Technical_Architecture_Group + endpoint: + path: /technical_architecture_group + method: GET + data_selector: participants + params: {} +- name: Activity Proposals + endpoint: + path: /activity_proposals + method: GET + data_selector: proposals +- name: Working Groups + endpoint: + path: /working_groups + method: GET + data_selector: groups +- name: Interest Groups + endpoint: + path: /interest_groups + method: GET + data_selector: groups +- name: Coordination Groups + endpoint: + path: /coordination_groups + method: GET + data_selector: groups +- name: Member Submission Process + endpoint: + path: /submission-process + method: GET + data_selector: submissions + params: {} +- name: Process Evolution + endpoint: + path: /process-evolution + method: GET + data_selector: evolution + params: {} +- name: Advisory Committee + endpoint: + path: /advisory_committee + method: GET +- name: Membership Information + endpoint: + path: /membership_information + method: GET +- name: dissemination_policies + endpoint: + path: /dissemination_policies + method: GET +- name: ipr_policy + endpoint: + path: /ipr_policy + method: GET +- name: participation_criteria + endpoint: + path: /participation_criteria + method: GET +- name: activity_creation + endpoint: + path: /activity_creation + method: GET +- name: Working Groups + endpoint: + path: /groups/working + method: GET + data_selector: groups + params: {} +- name: Interest Groups + endpoint: + path: /groups/interest + method: GET + data_selector: groups + params: {} +- name: Coordination Groups + endpoint: + path: /groups/coordination + method: GET + data_selector: groups + params: {} +- name: Member Submission Process + endpoint: + path: /member/submission + method: GET + data_selector: submission_records +- name: Process Evolution + endpoint: + path: /process/evolution + method: GET + data_selector: process_records +- name: Team Submissions + endpoint: + path: /2005/10/Process-20051014/organization.html#TeamSubmission + method: GET +- name: Advisory Board and Technical Architecture Group Elections + endpoint: + path: /2005/10/Process-20051014/organization.html#AB-TAG-elections + method: GET +- name: Consensus + endpoint: + path: /2005/10/Process-20051014/policies.html#Consensus + method: GET +- name: Working Groups, Interest Groups, and Coordination Groups + endpoint: + path: /2005/10/Process-20051014/groups.html#GAGeneral + method: GET +- name: Recommendation Track Process + endpoint: + path: /2005/10/Process-20051014/tr.html + method: GET +- name: Liaisons + endpoint: + path: /2005/10/Process-20051014/liaisons.html#Liaisons + method: GET +- name: WCAG 2.0 + endpoint: + path: /TR/WCAG20/ + method: GET +- name: WCAG 2.1 + endpoint: + path: /TR/WCAG21/ + method: GET +- name: WCAG 2.2 + endpoint: + path: /TR/WCAG22/ + method: GET +- name: guidelines + endpoint: + path: /TR/1999/WAI-WEBCONTENT-19990505 + method: GET + data_selector: guidelines + params: {} +- name: WCAG 3 + endpoint: + path: /WAI/standards-guidelines/wcag/wcag3-intro/ + method: GET + data_selector: details + params: {} +- name: WCAG 2.2 + endpoint: + path: /WAI/standards-guidelines/wcag/ + method: GET + data_selector: overview + params: {} +- name: General Techniques + endpoint: + path: /general.html + method: GET + data_selector: techniques + params: {} +- name: HTML and XHTML Techniques + endpoint: + path: /html.html + method: GET + data_selector: techniques + params: {} +- name: W3C Recommendations + endpoint: + path: /WAI/standards-guidelines/ + method: GET + data_selector: standards + params: {} +- name: Milestones + endpoint: + path: /WAI/standards-guidelines/w3c-process/ + method: GET + data_selector: milestones + params: {} +- name: accessibility_components + endpoint: + path: /WAI/fundamentals/components/ + method: GET + data_selector: components + params: {} +- name: WCAG 2 Standard + endpoint: + path: /WAI/standards-guidelines/wcag/ + method: GET + data_selector: standard +- name: Quick Reference + endpoint: + path: /WAI/WCAG21/quickref/ + method: GET + data_selector: quick_reference +- name: Supporting Documents + endpoint: + path: /WAI/standards-guidelines/wcag/docs/ + method: GET + data_selector: supporting_documents +- name: Techniques + endpoint: + path: /WAI/standards-guidelines/wcag/Techniques/ + method: GET + data_selector: techniques +- name: Accessibility Conformance Testing Rules + endpoint: + path: /WAI/standards-guidelines/act/rules/ + method: GET + data_selector: act_rules +- name: media_alternative_prerecorded + endpoint: + path: /TR/2008/REC-WCAG20-20081211/#media-equiv-text-doc + method: GET + data_selector: content + params: {} +- name: Overview + endpoint: + path: /policies/patent-policy/20250515/ + method: GET + data_selector: Specifications +- name: Licensing Goals + endpoint: + path: /policies/patent-policy/20250515/#sec-Licensing + method: GET + data_selector: Licensing Goals +- name: Licensing Obligations + endpoint: + path: /policies/patent-policy/20250515/#sec-Obligations + method: GET + data_selector: Licensing Obligations +- name: Exclusion From Licensing Requirements + endpoint: + path: /policies/patent-policy/20250515/#sec-Exclusion + method: GET + data_selector: Exclusion +- name: Disclosure + endpoint: + path: /policies/patent-policy/20250515/#sec-Disclosure + method: GET + data_selector: Disclosure +- name: Exception Handling + endpoint: + path: /policies/patent-policy/20250515/#sec-Exception + method: GET + data_selector: Exception Handling +- name: Essential Claims + endpoint: + path: /essential-claims + method: GET + data_selector: claims + params: {} +- name: Disclosure + endpoint: + path: /disclosure + method: GET + data_selector: disclosure_info + params: {} +- name: Exclusion Procedures + endpoint: + path: /exclusion-procedures + method: GET + data_selector: procedures + params: {} +- name: Three Flashes or Below Threshold + endpoint: + path: /TR/2008/REC-WCAG20-20081211/#seizure-does-not-violate + method: GET + data_selector: content + params: {} +- name: consistent_navigation + endpoint: + path: /TR/2008/REC-WCAG20-20081211/#consistent-behavior-consistent-locations + method: GET + data_selector: content + params: {} +- name: user_interface_components + endpoint: + path: /ensure-compat-rsv + method: GET + data_selector: user_interface_components + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: Core Techniques + endpoint: + path: https://www.w3.org/TR/WCAG10-CORE-TECHS/ + method: GET +- name: HTML Techniques + endpoint: + path: https://www.w3.org/TR/WCAG10-HTML-TECHNIQUES/ + method: GET +- name: CSS Techniques + endpoint: + path: https://www.w3.org/TR/WCAG10-CSS-TECHNIQUES/ + method: GET +- name: navigation + endpoint: + path: /navigation + method: GET + data_selector: checkpoints + params: {} +- name: comprehension + endpoint: + path: /comprehension + method: GET + data_selector: checkpoints + params: {} +- name: content_negotiation + endpoint: + path: /content_negotiation + method: GET + data_selector: checkpoints + params: {} +- name: automatic_page_refresh + endpoint: + path: /automatic_page_refresh + method: GET + data_selector: checkpoints + params: {} +- name: screen_flicker + endpoint: + path: /screen_flicker + method: GET + data_selector: checkpoints + params: {} +- name: bundled_documents + endpoint: + path: /bundled_documents + method: GET + data_selector: checkpoints + params: {} +- name: validation + endpoint: + path: /validation + method: GET + data_selector: checkpoints + params: {} +- name: audio_video + endpoint: + path: /audio_video + method: GET + data_selector: checkpoints + params: {} +- name: Conformance Claims + endpoint: + path: /TR/WCAG22/conformance-claims + method: GET + data_selector: claims + params: {} +- name: Privacy Considerations + endpoint: + path: /TR/WCAG22/privacy-considerations + method: GET + data_selector: privacy + params: {} +- name: Security Considerations + endpoint: + path: /TR/WCAG22/security-considerations + method: GET + data_selector: security + params: {} +- name: Abstract + endpoint: + path: /abstract + method: GET + data_selector: content + params: {} +- name: Status + endpoint: + path: /status + method: GET + data_selector: content + params: {} +- name: Document structure and metadata + endpoint: + path: /document-structure + method: GET + data_selector: content + params: {} +- name: Language information + endpoint: + path: /language-information + method: GET + data_selector: content + params: {} +- name: elements + endpoint: + path: /elemidx-linear.html + method: GET + data_selector: elements + params: {} +- name: attributes + endpoint: + path: /attridx-linear.html + method: GET + data_selector: attributes + params: {} +- name: Core Techniques + endpoint: + path: /WD-WCAG10-TECHS-20000826/core-techniques + method: GET + data_selector: records +- name: HTML Techniques + endpoint: + path: /WD-WCAG10-TECHS-20000826/html-techniques + method: GET + data_selector: records +- name: CSS Techniques + endpoint: + path: /WD-WCAG10-TECHS-20000826/css-techniques + method: GET + data_selector: records +- name: open_issues + endpoint: + path: /open_issues + method: GET + data_selector: issues + params: {} +- name: closed_issues + endpoint: + path: /closed_issues + method: GET + data_selector: issues + params: {} +- name: grouping_bypassing_links + endpoint: + path: /issues/grouping_bypassing_links + method: GET + data_selector: records +- name: accessible_list_example + endpoint: + path: /issues/accessible_list_example + method: GET + data_selector: records +- name: user_agent_support_page + endpoint: + path: /issues/user_agent_support_page + method: GET + data_selector: records +- name: spacer_images_examples + endpoint: + path: /issues/spacer_images_examples + method: GET + data_selector: records +- name: alternative_page_checkpoint + endpoint: + path: /issues/alternative_page_checkpoint + method: GET + data_selector: records +- name: abbreviations_table_headers + endpoint: + path: /issues/abbreviations_table_headers + method: GET + data_selector: records +- name: basic_shapes + endpoint: + path: /shapes/basic + method: GET + data_selector: shapes + params: {} +- name: reusable_components + endpoint: + path: /components/reusable + method: GET + data_selector: components + params: {} +- name: style_definitions + endpoint: + path: /styles/definitions + method: GET + data_selector: styles + params: {} +- name: audit_selected_sample + endpoint: + path: /audit/selected/sample + method: GET + data_selector: sample_records +- name: report_evaluation_findings + endpoint: + path: /report/evaluation/findings + method: POST + data_selector: evaluation_results +- name: WCAG 2.0 + endpoint: + path: /TR/WCAG20/ + method: GET + data_selector: content + params: {} +- name: WCAG 2.1 + endpoint: + path: /TR/WCAG21/ + method: GET + data_selector: content + params: {} +- name: WCAG 2.2 + endpoint: + path: /TR/WCAG22/ + method: GET + data_selector: content + params: {} +- name: Easy Checks + endpoint: + path: /WAI/test-evaluate/preliminary/ + method: GET +- name: Web Accessibility Evaluation Tools List + endpoint: + path: /WAI/test-evaluate/tools/list/ + method: GET +- name: WCAG-EM + endpoint: + path: /WAI/test-evaluate/conformance/wcag-em/ + method: GET +- name: WCAG-EM Report Tool + endpoint: + path: /WAI/eval/report-tool/ + method: GET +- name: Involving Users in Evaluating Web Accessibility + endpoint: + path: /WAI/test-evaluate/involving-users/ + method: GET +- name: XSLT Version 2.0 + endpoint: + path: /TR/xslt20/ + method: GET + data_selector: specification + params: {} +- name: XSLT Version 3.0 + endpoint: + path: /TR/xslt-30/ + method: GET + data_selector: specification + params: {} +- name: XSLT Version 1.0 + endpoint: + path: /TR/xslt-10/ + method: GET + data_selector: specification + params: {} +- name: Evaluation and Report Language (EARL) 1.0 + endpoint: + path: /TR/EARL10-Requirements/ + method: GET + data_selector: reports + params: {} +- name: Evaluation and Report Language (EARL) 1.0 Schema + endpoint: + path: /TR/EARL10-Schema/ + method: GET + data_selector: reports + params: {} +- name: Evaluation and Report Language (EARL) 1.0 Guide + endpoint: + path: /TR/EARL10-Guide/ + method: GET + data_selector: reports + params: {} +- name: HTTP Vocabulary in RDF 1.0 + endpoint: + path: /TR/HTTP-in-RDF/ + method: GET + data_selector: reports + params: {} +- name: Representing Content in RDF 1.0 + endpoint: + path: /TR/Content-in-RDF/ + method: GET + data_selector: reports + params: {} +- name: Pointer Methods in RDF 1.0 + endpoint: + path: /TR/Pointers-in-RDF/ + method: GET + data_selector: reports + params: {} +- name: courseload + endpoint: + path: /courseload + method: GET + data_selector: records + params: {} +- name: evaluation_tools + endpoint: + path: /WAI/test-evaluate/tools/list/ + method: GET +- name: USAddress + endpoint: + path: /xsd/USAddress + method: GET + data_selector: complexType + params: {} +- name: PurchaseOrderType + endpoint: + path: /xsd/PurchaseOrderType + method: GET + data_selector: complexType + params: {} +- name: purchaseOrder + endpoint: + path: /purchaseOrder + method: GET + data_selector: purchaseOrder + params: {} +- name: comment + endpoint: + path: /comment + method: GET + data_selector: comment + params: {} +- name: purchaseOrder + endpoint: + path: /ipo/purchaseOrder + method: GET + data_selector: records + params: {} +- name: address + endpoint: + path: /ipo/address + method: GET + data_selector: records + params: {} +- name: purchaseReport + endpoint: + path: /purchaseReport + method: GET + data_selector: report + params: {} +- name: purchaseReport + endpoint: + path: /services/data/vXX.X/sobjects/purchaseReport + method: GET + data_selector: records + params: {} +- name: Integration of Web Accessibility Metrics into a Semi-Automatic evaluation + process + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper1/ + method: GET + data_selector: records + params: {} +- name: Measuring accessibility barriers on large scale sets of pages + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper2/ + method: GET + data_selector: records + params: {} +- name: A Template-aware Web Accessibility metric + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper3/ + method: GET + data_selector: records + params: {} +- name: A metrics to make different DTDs documents evaluations comparable + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper4/ + method: GET + data_selector: records + params: {} +- name: Lexical Quality as a Measure for Textual Web Accessibility + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper5/ + method: GET + data_selector: records + params: {} +- name: Attaining Metric Validity and Reliability with the Web Accessibility Quantitative + Metric + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper6/ + method: GET + data_selector: records + params: {} +- name: The case for a WCAG-based evaluation scheme with a graded rating scale + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper7/ + method: GET + data_selector: records + params: {} +- name: 'A zero in eChecker equals a 10 in eXaminator: a comparison between two metrics + by their scores' + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper8/ + method: GET + data_selector: records + params: {} +- name: Context-Tailored Web Accessibility Metrics + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper9/ + method: GET + data_selector: records + params: {} +- name: Web Accessibility Metrics For A Post Digital World + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper10/ + method: GET + data_selector: records + params: {} +- name: Towards a score function for WCAG 2.0 benchmarking + endpoint: + path: /W3C/WAI/RD/2011/metrics/paper11/ + method: GET + data_selector: records + params: {} +- name: Event + endpoint: + path: /events/Event + method: GET + data_selector: interface + params: {} +- name: UIEvent + endpoint: + path: /events/UIEvent + method: GET + data_selector: interface + params: {} +- name: MouseEvent + endpoint: + path: /events/MouseEvent + method: GET + data_selector: attributes + params: {} +- name: MutationEvent + endpoint: + path: /events/MutationEvent + method: GET + data_selector: attributes + params: {} +- name: supported_events + endpoint: + path: /svg2/supported-events + method: GET + data_selector: events + params: {} +- name: pointer_events + endpoint: + path: /svg2/pointer-events + method: GET + data_selector: events + params: {} +- name: Guideline A.3.4 + endpoint: + path: /implementing/a34 + method: GET + data_selector: records +- name: Guideline A.3.5 + endpoint: + path: /implementing/a35 + method: GET + data_selector: records +- name: Guideline A.3.6 + endpoint: + path: /implementing/a36 + method: GET + data_selector: records +- name: Guideline A.3.7 + endpoint: + path: /implementing/a37 + method: GET + data_selector: records +- name: Guideline A.4.1 + endpoint: + path: /implementing/a41 + method: GET + data_selector: records +- name: Guideline A.4.2 + endpoint: + path: /implementing/a42 + method: GET + data_selector: records +- name: Guideline B.1.1 + endpoint: + path: /implementing/b11 + method: GET + data_selector: records +- name: animation_event_attributes + endpoint: + path: /svg/animation_event_attributes + method: GET + data_selector: attributes + params: {} +- name: script_element + endpoint: + path: /svg/script_element + method: GET + data_selector: elements + params: {} +- name: animation_elements + endpoint: + path: /TR/smil-animation + method: GET + data_selector: elements + params: {} +- name: timing_model + endpoint: + path: /TR/smil-animation/timing + method: GET + data_selector: timing + params: {} +- name: animation_target + endpoint: + path: /animation/target + method: GET + data_selector: attributes + params: {} +- name: element_lifecycle + endpoint: + path: /element/lifecycle + method: GET + data_selector: instance_times + params: {} +- name: audio_control + endpoint: + path: /audio/control + method: GET + data_selector: content +- name: contrast_minimum + endpoint: + path: /contrast/minimum + method: GET + data_selector: content +- name: resize_text + endpoint: + path: /resize/text + method: GET + data_selector: content +- name: images_of_text + endpoint: + path: /images/text + method: GET + data_selector: content +- name: reflow + endpoint: + path: /reflow + method: GET + data_selector: content +- name: non_text_contrast + endpoint: + path: /non-text/contrast + method: GET + data_selector: content +- name: text_spacing + endpoint: + path: /text/spacing + method: GET + data_selector: content +- name: animate + endpoint: + path: /animate + method: GET + data_selector: attributes + params: {} +- name: set + endpoint: + path: /set + method: GET + data_selector: attributes + params: {} +- name: animateMotion + endpoint: + path: /animateMotion + method: GET + data_selector: attributes + params: {} +- name: animateColor + endpoint: + path: /animateColor + method: EMPTY + data_selector: records + params: {} +- name: ElementTimeControl + endpoint: + path: /org/w3c/dom/smil/ElementTimeControl + method: GET + data_selector: methods + params: {} +- name: TimeEvent + endpoint: + path: /org/w3c/dom/smil/TimeEvent + method: GET + data_selector: methods + params: {} +- name: SVG Viewer + endpoint: + path: /conform.html#ConformingHighQualitySVGViewers + method: GET +- name: audio_control + endpoint: + path: /audio/control + method: GET + data_selector: records +- name: contrast_minimum + endpoint: + path: /contrast/minimum + method: GET + data_selector: records +- name: resize_text + endpoint: + path: /resize/text + method: GET + data_selector: records +- name: images_of_text + endpoint: + path: /images/text + method: GET + data_selector: records +- name: reflow + endpoint: + path: /reflow + method: GET + data_selector: records +- name: non_text_contrast + endpoint: + path: /non/text/contrast + method: GET + data_selector: records +- name: text_spacing + endpoint: + path: /text/spacing + method: GET + data_selector: records +- name: border_properties + endpoint: + path: /border/properties + method: GET + data_selector: properties +- name: margin_properties + endpoint: + path: /margin/properties + method: GET + data_selector: properties +- name: height_width_properties + endpoint: + path: /height_width/properties + method: GET + data_selector: properties +- name: indent_properties + endpoint: + path: /indent/properties + method: GET + data_selector: properties +- name: operable_principles + endpoint: + path: /guidance/operable + method: GET + data_selector: principles + params: {} +- name: keyboard_accessible_guideline + endpoint: + path: /guidance/keyboard-accessible + method: GET + data_selector: guidelines + params: {} +- name: page-sequence + endpoint: + path: /fo/page-sequence + method: GET + data_selector: viewport/reference pairs +- name: declarations + endpoint: + path: /fo/declarations + method: GET + data_selector: color-profile +- name: color-profile + endpoint: + path: /fo/color-profile + method: GET + data_selector: ICC Color Profile +- name: simple-page-master + endpoint: + path: /fo/simple-page-master + method: GET + data_selector: records + params: {} +- name: region-body + endpoint: + path: /fo/region-body + method: GET + data_selector: records + params: {} +- name: region-before + endpoint: + path: /fo/region-before + method: GET + data_selector: records + params: {} +- name: flow_assignment + endpoint: + path: /flow-assignment + method: GET + data_selector: flow-assignment + params: {} +- name: block + endpoint: + path: /fo/block + method: GET + data_selector: fo:block + params: {} +- name: block-container + endpoint: + path: /fo/block-container + method: GET + data_selector: fo:block-container + params: {} +- name: inline-level formatting objects + endpoint: + path: /6.6/inline-level-formatting-objects + method: GET + data_selector: examples +- name: first line of paragraph in small-caps + endpoint: + path: /6.6.1.1.1/first-line-small-caps + method: GET + data_selector: result +- name: figure with a photograph + endpoint: + path: /6.6.1.1.2/figure-photograph + method: GET + data_selector: result +- name: page numbering and page number reference + endpoint: + path: /6.6.1.1.3/page-numbering + method: GET + data_selector: result +- name: table of contents with leaders + endpoint: + path: /6.6.1.1.4/table-of-contents + method: GET + data_selector: result +- name: guideline_1_1 + endpoint: + path: /guidelines/1.1 + method: GET + data_selector: guideline + params: {} +- name: success_criterion_1_1_1 + endpoint: + path: /success-criteria/1.1.1 + method: GET + data_selector: success_criterion + params: {} +- name: guideline_1_2 + endpoint: + path: /guidelines/1.2 + method: GET + data_selector: guideline + params: {} +- name: success_criterion_1_2_1 + endpoint: + path: /success-criteria/1.2.1 + method: GET + data_selector: success_criterion + params: {} +- name: table + endpoint: + path: /services/data/v1.1/fo/table + method: GET + data_selector: fo:table + params: {} +- name: list-block + endpoint: + path: fo:list-block + method: GET + data_selector: provisional-distance-between-starts + params: {} +- name: list-item + endpoint: + path: fo:list-item + method: GET + data_selector: list-item-label + params: {} +- name: Success Criterion 2.3.1 + endpoint: + path: /guideline/2.3.1 + method: GET + data_selector: content +- name: Guideline 2.4 + endpoint: + path: /guideline/2.4 + method: GET + data_selector: content +- name: Success Criterion 2.4.1 + endpoint: + path: /guideline/2.4.1 + method: GET + data_selector: content +- name: Success Criterion 2.4.2 + endpoint: + path: /guideline/2.4.2 + method: GET + data_selector: content +- name: Success Criterion 2.4.3 + endpoint: + path: /guideline/2.4.3 + method: GET + data_selector: content +- name: Success Criterion 2.4.4 + endpoint: + path: /guideline/2.4.4 + method: GET + data_selector: content +- name: multi-switch + endpoint: + path: /services/data/vXX.X/sobjects/multi-switch + method: GET + data_selector: records +- name: multi-case + endpoint: + path: /services/data/vXX.X/sobjects/multi-case + method: GET + data_selector: records +- name: multi-toggle + endpoint: + path: /services/data/vXX.X/sobjects/multi-toggle + method: GET + data_selector: records +- name: index-key + endpoint: + path: /index/key + method: GET + data_selector: index-keys +- name: index-range + endpoint: + path: /index/range + method: GET + data_selector: index-ranges +- name: index-page-citation + endpoint: + path: /index/page/citation + method: GET + data_selector: page-citations +- name: wrapper + endpoint: + path: /fo/wrapper + method: GET + data_selector: records +- name: change_bar_begin + endpoint: + path: /fo/change-bar-begin + method: GET + data_selector: records +- name: change_bar_end + endpoint: + path: /fo/change-bar-end + method: GET + data_selector: records +- name: marker + endpoint: + path: /fo/marker + method: GET + data_selector: records +- name: retrieve-marker + endpoint: + path: /retrieve-marker + method: GET + data_selector: children + params: {} +- name: retrieve-table-marker + endpoint: + path: /retrieve-table-marker + method: GET + data_selector: children + params: {} +- name: font-style + endpoint: + path: /font-style + method: GET + data_selector: values +- name: font-variant + endpoint: + path: /font-variant + method: GET + data_selector: values +- name: font-weight + endpoint: + path: /font-weight + method: GET + data_selector: values +- name: baseline-identifiers + endpoint: + path: /baseline-identifiers + method: GET + data_selector: baselines + params: {} +- name: alignment-properties + endpoint: + path: /alignment-properties + method: GET + data_selector: properties + params: {} +- name: allowed-height-scale + endpoint: + path: /allowed-height-scale + method: GET + data_selector: Value + params: {} +- name: allowed-width-scale + endpoint: + path: /allowed-width-scale + method: GET + data_selector: Value + params: {} +- name: block-progression-dimension + endpoint: + path: /block-progression-dimension + method: GET + data_selector: Value + params: {} +- name: content-height + endpoint: + path: /content-height + method: GET + data_selector: Value + params: {} +- name: content-width + endpoint: + path: /content-width + method: GET + data_selector: Value + params: {} +- name: height + endpoint: + path: /height + method: GET + data_selector: Value + params: {} +- name: inline-progression-dimension + endpoint: + path: /inline-progression-dimension + method: GET + data_selector: Value + params: {} +- name: max-height + endpoint: + path: /max-height + method: GET + data_selector: Value + params: {} +- name: max-width + endpoint: + path: /max-width + method: GET + data_selector: Value + params: {} +- name: min-height + endpoint: + path: /min-height + method: GET + data_selector: Value + params: {} +- name: min-width + endpoint: + path: /min-width + method: GET + data_selector: Value + params: {} +- name: scaling + endpoint: + path: /scaling + method: GET + data_selector: Value + params: {} +- name: scaling-method + endpoint: + path: /scaling-method + method: GET + data_selector: Value + params: {} +- name: width + endpoint: + path: /width + method: GET + data_selector: Value + params: {} +- name: campaign_member + endpoint: + path: /services/data/vXX.X/sobjects/CampaignMember + method: GET + data_selector: records + params: + incremental: updated_at +- name: contact + endpoint: + path: /services/data/vXX.X/sobjects/Contact + method: GET + data_selector: records + params: {} +- name: leader-alignment + endpoint: + path: /7.22.1/leader-alignment + method: GET + data_selector: Value + params: {} +- name: leader-pattern + endpoint: + path: /7.22.2/leader-pattern + method: GET + data_selector: Value + params: {} +- name: leader-pattern-width + endpoint: + path: /7.22.3/leader-pattern-width + method: GET + data_selector: Value + params: {} +- name: leader-length + endpoint: + path: /7.22.4/leader-length + method: GET + data_selector: Value + params: {} +- name: rule-style + endpoint: + path: /7.22.5/rule-style + method: GET + data_selector: Value + params: {} +- name: rule-thickness + endpoint: + path: /7.22.6/rule-thickness + method: GET + data_selector: Value + params: {} +- name: active-state + endpoint: + path: /7.23.1/active-state + method: GET + data_selector: Value + params: {} +- name: auto-restore + endpoint: + path: /7.23.2/auto-restore + method: GET + data_selector: Value + params: {} +- name: case-name + endpoint: + path: /7.23.3/case-name + method: GET + data_selector: Value + params: {} +- name: case-title + endpoint: + path: /7.23.4/case-title + method: GET + data_selector: Value + params: {} +- name: destination-placement-offset + endpoint: + path: /7.23.5/destination-placement-offset + method: GET + data_selector: Value + params: {} +- name: external-destination + endpoint: + path: /7.23.6/external-destination + method: GET + data_selector: Value + params: {} +- name: indicate-destination + endpoint: + path: /7.23.7/indicate-destination + method: GET + data_selector: Value + params: {} +- name: internal-destination + endpoint: + path: /7.23.8/internal-destination + method: GET + data_selector: Value + params: {} +- name: show-destination + endpoint: + path: /7.23.9/show-destination + method: GET + data_selector: Value + params: {} +- name: starting-state + endpoint: + path: /7.23.10/starting-state + method: GET + data_selector: Value + params: {} +- name: switch-to + endpoint: + path: /7.23.11/switch-to + method: GET + data_selector: Value + params: {} +- name: target-presentation-context + endpoint: + path: /7.23.12/target-presentation-context + method: GET + data_selector: Value + params: {} +- name: target-processing-context + endpoint: + path: /7.23.13/target-processing-context + method: GET + data_selector: Value + params: {} +- name: target-stylesheet + endpoint: + path: /7.23.14/target-stylesheet + method: GET + data_selector: Value + params: {} +- name: Distinguishable + endpoint: + path: /Understanding/distinguishable.html + method: GET + data_selector: content + params: {} +- name: Use of Color + endpoint: + path: /Understanding/use-of-color.html + method: GET + data_selector: content + params: {} +- name: Audio Control + endpoint: + path: /Understanding/audio-control.html + method: GET + data_selector: content + params: {} +- name: Contrast (Minimum) + endpoint: + path: /Understanding/contrast-minimum.html + method: GET + data_selector: content + params: {} +- name: Resize Text + endpoint: + path: /Understanding/resize-text.html + method: GET + data_selector: content + params: {} +- name: Images of Text + endpoint: + path: /Understanding/images-of-text.html + method: GET + data_selector: content + params: {} +- name: Contrast (Enhanced) + endpoint: + path: /Understanding/contrast-enhanced.html + method: GET + data_selector: content + params: {} +- name: Low or No Background Audio + endpoint: + path: /Understanding/low-or-no-background-audio.html + method: GET + data_selector: content + params: {} +- name: Visual Presentation + endpoint: + path: /Understanding/visual-presentation.html + method: GET + data_selector: content + params: {} +- name: Images of Text (No Exception) + endpoint: + path: /Understanding/images-of-text-no-exception.html + method: GET + data_selector: content + params: {} +- name: Reflow + endpoint: + path: /Understanding/reflow.html + method: GET + data_selector: content + params: {} +- name: Non-text Contrast + endpoint: + path: /Understanding/non-text-contrast.html + method: GET + data_selector: content + params: {} +- name: Text Spacing + endpoint: + path: /Understanding/text-spacing.html + method: GET + data_selector: content + params: {} +- name: Content on Hover or Focus + endpoint: + path: /Understanding/content-on-hover-or-focus.html + method: GET + data_selector: content + params: {} +- name: Keyboard Accessible + endpoint: + path: /Understanding/keyboard-accessible.html + method: GET + data_selector: content + params: {} +- name: flow-map-name + endpoint: + path: /flow-map-name + method: GET + data_selector: +- name: flow-map-reference + endpoint: + path: /flow-map-reference + method: GET + data_selector: +- name: flow-name-reference + endpoint: + path: /flow-name-reference + method: GET + data_selector: +- name: region-name-reference + endpoint: + path: /region-name-reference + method: GET + data_selector: +- name: Timing Adjustable + endpoint: + path: /Understanding/enough-time.html + method: GET +- name: Pause, Stop, Hide + endpoint: + path: /Understanding/pause-stop-hide.html + method: GET +- name: No Timing + endpoint: + path: /Understanding/no-timing.html + method: GET +- name: Interruptions + endpoint: + path: /Understanding/interruptions.html + method: GET +- name: Re-authenticating + endpoint: + path: /Understanding/re-authenticating.html + method: GET +- name: Timeouts + endpoint: + path: /Understanding/timeouts.html + method: GET +- name: Three Flashes or Below Threshold + endpoint: + path: /Understanding/three-flashes-or-below-threshold.html + method: GET +- name: Three Flashes + endpoint: + path: /Understanding/three-flashes.html + method: GET +- name: Animation from Interactions + endpoint: + path: /Understanding/animation-from-interactions.html + method: GET +- name: Bypass Blocks + endpoint: + path: /Understanding/bypass-blocks.html + method: GET +- name: Page Titled + endpoint: + path: /Understanding/page-titled.html + method: GET +- name: Focus Order + endpoint: + path: /Understanding/focus-order.html + method: GET +- name: Link Purpose (In Context) + endpoint: + path: /Understanding/link-purpose-in-context.html + method: GET +- name: Multiple Ways + endpoint: + path: /Understanding/multiple-ways.html + method: GET +- name: Headings and Labels + endpoint: + path: /Understanding/headings-and-labels.html + method: GET +- name: Focus Visible + endpoint: + path: /Understanding/focus-visible.html + method: GET +- name: Location + endpoint: + path: /Understanding/location.html + method: GET +- name: Link Purpose (Link Only) + endpoint: + path: /Understanding/link-purpose-link-only.html + method: GET +- name: Section Headings + endpoint: + path: /Understanding/section-headings.html + method: GET +- name: border-after-precedence + endpoint: + path: /border-after-precedence + method: GET + data_selector: value + params: {} +- name: border-before-precedence + endpoint: + path: /border-before-precedence + method: GET + data_selector: value + params: {} +- name: border-collapse + endpoint: + path: /border-collapse + method: GET + data_selector: value + params: {} +- name: border-end-precedence + endpoint: + path: /border-end-precedence + method: GET + data_selector: value + params: {} +- name: border-separation + endpoint: + path: /border-separation + method: GET + data_selector: value + params: {} +- name: border-start-precedence + endpoint: + path: /border-start-precedence + method: GET + data_selector: value + params: {} +- name: caption-side + endpoint: + path: /caption-side + method: GET + data_selector: value + params: {} +- name: column-number + endpoint: + path: /column-number + method: GET + data_selector: value + params: {} +- name: column-width + endpoint: + path: /column-width + method: GET + data_selector: value + params: {} +- name: empty-cells + endpoint: + path: /empty-cells + method: GET + data_selector: value + params: {} +- name: ends-row + endpoint: + path: /ends-row + method: GET + data_selector: value + params: {} +- name: number-columns-repeated + endpoint: + path: /number-columns-repeated + method: GET + data_selector: value + params: {} +- name: number-columns-spanned + endpoint: + path: /number-columns-spanned + method: GET + data_selector: value + params: {} +- name: number-rows-spanned + endpoint: + path: /number-rows-spanned + method: GET + data_selector: value + params: {} +- name: starts-row + endpoint: + path: /starts-row + method: GET + data_selector: value + params: {} +- name: table-layout + endpoint: + path: /table-layout + method: GET + data_selector: value + params: {} +- name: table-omit-footer-at-break + endpoint: + path: /table-omit-footer-at-break + method: GET + data_selector: value + params: {} +- name: table-omit-header-at-break + endpoint: + path: /table-omit-header-at-break + method: GET + data_selector: value + params: {} +- name: Text Alternatives + endpoint: + path: /Understanding/text-alternatives + method: GET + data_selector: content + params: {} +- name: Non-text Content + endpoint: + path: /Understanding/non-text-content + method: GET + data_selector: content + params: {} +- name: change-bar-class + endpoint: + path: /change-bar-class + method: GET + data_selector: + params: {} +- name: change-bar-color + endpoint: + path: /change-bar-color + method: GET + data_selector: + params: {} +- name: change-bar-offset + endpoint: + path: /change-bar-offset + method: GET + data_selector: + params: {} +- name: change-bar-placement + endpoint: + path: /change-bar-placement + method: GET + data_selector: '' + params: {} +- name: change-bar-style + endpoint: + path: /change-bar-style + method: GET + data_selector: + params: {} +- name: change-bar-width + endpoint: + path: /change-bar-width + method: GET + data_selector: + params: {} +- name: content-type + endpoint: + path: /content-type + method: GET + data_selector: + params: {} +- name: id + endpoint: + path: /id + method: GET + data_selector: + params: {} +- name: intrinsic-scale-value + endpoint: + path: /intrinsic-scale-value + method: GET + data_selector: + params: {} +- name: page-citation-strategy + endpoint: + path: /page-citation-strategy + method: GET + data_selector: '[ all | normal | non-blank | inherit ]' + params: {} +- name: provisional-label-separation + endpoint: + path: /provisional-label-separation + method: GET + data_selector: + params: {} +- name: provisional-distance-between-starts + endpoint: + path: /provisional-distance-between-starts + method: GET + data_selector: + params: {} +- name: ref-id + endpoint: + path: /ref-id + method: GET + data_selector: + params: {} +- name: scale-option + endpoint: + path: /scale-option + method: GET + data_selector: width | height | inherit + params: {} +- name: score-spaces + endpoint: + path: /score-spaces + method: GET + data_selector: true | false | inherit + params: {} +- name: src + endpoint: + path: /src + method: GET + data_selector: + params: {} +- name: visibility + endpoint: + path: /visibility + method: GET + data_selector: visible | hidden | collapse | inherit + params: {} +- name: z-index + endpoint: + path: /z-index + method: GET + data_selector: auto | | inherit + params: {} +- name: ends-row + endpoint: + params: + ends-row: 'true' +- name: Input Assistance + endpoint: + path: /Understanding/input-assistance.html + method: GET +- name: Error Identification + endpoint: + path: /Understanding/error-identification.html + method: GET +- name: Labels or Instructions + endpoint: + path: /Understanding/labels-or-instructions.html + method: GET +- name: Error Suggestion + endpoint: + path: /Understanding/error-suggestion.html + method: GET +- name: Error Prevention (Legal, Financial, Data) + endpoint: + path: /Understanding/error-prevention-legal-financial-data.html + method: GET +- name: Help + endpoint: + path: /Understanding/help.html + method: GET +- name: Error Prevention (All) + endpoint: + path: /Understanding/error-prevention-all.html + method: GET +- name: Redundant Entry + endpoint: + path: /Understanding/redundant-entry.html + method: GET +- name: Accessible Authentication (Minimum) + endpoint: + path: /Understanding/accessible-authentication-minimum.html + method: GET +- name: Accessible Authentication (Enhanced) + endpoint: + path: /Understanding/accessible-authentication-enhanced.html + method: GET +- name: Robust + endpoint: + path: /Understanding/robust.html + method: GET +- name: Compatible + endpoint: + path: /Understanding/compatible.html + method: GET +- name: conformance_claim + endpoint: + path: /conformance_claim + method: GET + data_selector: claims + params: {} +- name: partial_conformance_statement + endpoint: + path: /partial_conformance_statement + method: GET + data_selector: statements + params: {} +- name: privacy_considerations + endpoint: + path: /privacy_considerations + method: GET + data_selector: criteria + params: {} +- name: security_considerations + endpoint: + path: /security_considerations + method: GET + data_selector: criteria + params: {} +- name: speak + endpoint: + path: '#speak' + method: GET + data_selector: normal +- name: speak-header + endpoint: + path: '#speak-header' + method: GET + data_selector: once +- name: speak-numeral + endpoint: + path: '#speak-numeral' + method: GET + data_selector: digits +- name: speak-punctuation + endpoint: + path: '#speak-punctuation' + method: GET + data_selector: code +- name: speech-rate + endpoint: + path: '#speech-rate' + method: GET + data_selector: +- name: src + endpoint: + path: '#src' + method: GET + data_selector: +- name: start-indent + endpoint: + path: '#start-indent' + method: GET + data_selector: +- name: starting-state + endpoint: + path: '#starting-state' + method: GET + data_selector: show +- name: starts-row + endpoint: + path: '#starts-row' + method: GET + data_selector: 'true' +- name: stress + endpoint: + path: '#stress' + method: GET + data_selector: +- name: suppress-at-line-break + endpoint: + path: '#suppress-at-line-break' + method: GET + data_selector: auto +- name: switch-to + endpoint: + path: '#switch-to' + method: GET + data_selector: xsl-preceding +- name: table-layout + endpoint: + path: '#table-layout' + method: GET + data_selector: auto +- name: table-omit-footer-at-break + endpoint: + path: '#table-omit-footer-at-break' + method: GET + data_selector: 'true' +- name: table-omit-header-at-break + endpoint: + path: '#table-omit-header-at-break' + method: GET + data_selector: 'true' +- name: target-presentation-context + endpoint: + path: '#target-presentation-context' + method: GET + data_selector: use-target-processing-context +- name: target-processing-context + endpoint: + path: '#target-processing-context' + method: GET + data_selector: document-root +- name: target-stylesheet + endpoint: + path: '#target-stylesheet' + method: GET + data_selector: use-normal-stylesheet +- name: text-align + endpoint: + path: '#text-align' + method: GET + data_selector: start +- name: text-align-last + endpoint: + path: '#text-align-last' + method: GET + data_selector: relative +- name: text-altitude + endpoint: + path: '#text-altitude' + method: GET + data_selector: use-font-metrics +- name: text-decoration + endpoint: + path: '#text-decoration' + method: GET + data_selector: none +- name: text-depth + endpoint: + path: '#text-depth' + method: GET + data_selector: use-font-metrics +- name: text-indent + endpoint: + path: '#text-indent' + method: GET + data_selector: +- name: text-shadow + endpoint: + path: '#text-shadow' + method: GET + data_selector: none +- name: text-transform + endpoint: + path: '#text-transform' + method: GET + data_selector: capitalize +- name: top + endpoint: + path: '#top' + method: GET + data_selector: +- name: treat-as-word-space + endpoint: + path: '#treat-as-word-space' + method: GET + data_selector: auto +- name: unicode-bidi + endpoint: + path: '#unicode-bidi' + method: GET + data_selector: normal +- name: vertical-align + endpoint: + path: '#vertical-align' + method: GET + data_selector: baseline +- name: visibility + endpoint: + path: '#visibility' + method: GET + data_selector: visible +- name: voice-family + endpoint: + path: '#voice-family' + method: GET + data_selector: +- name: volume + endpoint: + path: '#volume' + method: GET + data_selector: +- name: white-space + endpoint: + path: '#white-space' + method: GET + data_selector: normal +- name: white-space-collapse + endpoint: + path: '#white-space-collapse' + method: GET + data_selector: 'false' +- name: white-space-treatment + endpoint: + path: '#white-space-treatment' + method: GET + data_selector: ignore +- name: widows + endpoint: + path: '#widows' + method: GET + data_selector: +- name: width + endpoint: + path: '#width' + method: GET + data_selector: +- name: word-spacing + endpoint: + path: '#word-spacing' + method: GET + data_selector: normal +- name: wrap-option + endpoint: + path: '#wrap-option' + method: GET + data_selector: no-wrap +- name: writing-mode + endpoint: + path: '#writing-mode' + method: GET + data_selector: lr-tb +- name: xml:lang + endpoint: + path: '#xml.lang' + method: GET + data_selector: +- name: z-index + endpoint: + path: '#z-index' + method: GET + data_selector: auto +- name: captions + endpoint: + path: /captions + method: GET + data_selector: captions + params: {} +- name: auditory_descriptions + endpoint: + path: /auditory_descriptions + method: GET + data_selector: auditory_descriptions + params: {} +- name: basic_graphic_shapes + endpoint: + path: /basic_graphic_shapes + method: GET + data_selector: shapes +- name: reusing_alternative_text + endpoint: + path: /reusing_alternative_text + method: GET + data_selector: text_elements +- name: reusing_graphic_components + endpoint: + path: /reusing_graphic_components + method: GET + data_selector: components +- name: reusing_components_from_other_documents + endpoint: + path: /reusing_components + method: GET + data_selector: external_components +- name: controlling_presentation + endpoint: + path: /controlling_presentation + method: GET + data_selector: presentation +- name: simple_style_definitions + endpoint: + path: /simple_style_definitions + method: GET + data_selector: style_definitions +- name: style_definitions_with_classes + endpoint: + path: /style_definitions_with_classes + method: GET + data_selector: class_styles +- name: XHTML Document + endpoint: + path: /TR/xhtml1 + method: GET + data_selector: document + params: {} +- name: XSL Transformations (XSLT) Version 2.0 (Second Edition) + endpoint: + path: /TR/xslt20/ + method: GET + data_selector: specification + params: {} +- name: XSL Transformations (XSLT) Version 3.0 + endpoint: + path: /TR/xslt-30/ + method: GET + data_selector: specification + params: {} +- name: XSL Transformations (XSLT) Version 1.0 + endpoint: + path: /TR/xslt-10/ + method: GET + data_selector: specification + params: {} +- name: border-start-style + endpoint: + path: /border-start-style + method: GET +- name: border-start-width + endpoint: + path: /border-start-width + method: GET +- name: border-top-color + endpoint: + path: /border-top-color + method: GET +- name: border-top-style + endpoint: + path: /border-top-style + method: GET +- name: border-top-width + endpoint: + path: /border-top-width + method: GET +- name: bottom + endpoint: + path: /bottom + method: GET +- name: break-after + endpoint: + path: /break-after + method: GET +- name: break-before + endpoint: + path: /break-before + method: GET +- name: caption-side + endpoint: + path: /caption-side + method: GET +- name: case-name + endpoint: + path: /case-name + method: GET +- name: case-title + endpoint: + path: /case-title + method: GET +- name: change-bar-class + endpoint: + path: /change-bar-class + method: GET +- name: change-bar-color + endpoint: + path: /change-bar-color + method: GET +- name: change-bar-offset + endpoint: + path: /change-bar-offset + method: GET +- name: change-bar-placement + endpoint: + path: /change-bar-placement + method: GET +- name: change-bar-style + endpoint: + path: /change-bar-style + method: GET +- name: change-bar-width + endpoint: + path: /change-bar-width + method: GET +- name: character + endpoint: + path: /character + method: GET +- name: clear + endpoint: + path: /clear + method: GET +- name: clip + endpoint: + path: /clip + method: GET +- name: color + endpoint: + path: /color + method: GET +- name: color-profile-name + endpoint: + path: /color-profile-name + method: GET +- name: column-count + endpoint: + path: /column-count + method: GET +- name: column-gap + endpoint: + path: /column-gap + method: GET +- name: column-number + endpoint: + path: /column-number + method: GET +- name: column-width + endpoint: + path: /column-width + method: GET +- name: content-height + endpoint: + path: /content-height + method: GET +- name: content-type + endpoint: + path: /content-type + method: GET +- name: content-width + endpoint: + path: /content-width + method: GET +- name: country + endpoint: + path: /country + method: GET +- name: cue-after + endpoint: + path: /cue-after + method: GET +- name: cue-before + endpoint: + path: /cue-before + method: GET +- name: destination-placement-offset + endpoint: + path: /destination-placement-offset + method: GET +- name: direction + endpoint: + path: /direction + method: GET +- name: display-align + endpoint: + path: /display-align + method: GET +- name: dominant-baseline + endpoint: + path: /dominant-baseline + method: GET +- name: elevation + endpoint: + path: /elevation + method: GET +- name: empty-cells + endpoint: + path: /empty-cells + method: GET +- name: end-indent + endpoint: + path: /end-indent + method: GET +- name: ends-row + endpoint: + path: /ends-row + method: GET +- name: extent + endpoint: + path: /extent + method: GET +- name: external-destination + endpoint: + path: /external-destination + method: GET +- name: float + endpoint: + path: /float + method: GET +- name: flow-map-name + endpoint: + path: /flow-map-name + method: GET +- name: flow-map-reference + endpoint: + path: /flow-map-reference + method: GET +- name: flow-name + endpoint: + path: /flow-name + method: GET +- name: flow-name-reference + endpoint: + path: /flow-name-reference + method: GET +- name: font-family + endpoint: + path: /font-family + method: GET +- name: font-selection-strategy + endpoint: + path: /font-selection-strategy + method: GET +- name: font-size + endpoint: + path: /font-size + method: GET +- name: font-size-adjust + endpoint: + path: /font-size-adjust + method: GET +- name: font-stretch + endpoint: + path: /font-stretch + method: GET +- name: font-style + endpoint: + path: /font-style + method: GET +- name: font-variant + endpoint: + path: /font-variant + method: GET +- name: font-weight + endpoint: + path: /font-weight + method: GET +- name: force-page-count + endpoint: + path: /force-page-count + method: GET +- name: format + endpoint: + path: /format + method: GET +- name: glyph-orientation-horizontal + endpoint: + path: /glyph-orientation-horizontal + method: GET +- name: glyph-orientation-vertical + endpoint: + path: /glyph-orientation-vertical + method: GET +- name: grouping-separator + endpoint: + path: /grouping-separator + method: GET +- name: grouping-size + endpoint: + path: /grouping-size + method: GET +- name: height + endpoint: + path: /height + method: GET +- name: hyphenate + endpoint: + path: /hyphenate + method: GET +- name: hyphenation-character + endpoint: + path: /hyphenation-character + method: GET +- name: hyphenation-keep + endpoint: + path: /hyphenation-keep + method: GET +- name: hyphenation-ladder-count + endpoint: + path: /hyphenation-ladder-count + method: GET +- name: hyphenation-push-character-count + endpoint: + path: /hyphenation-push-character-count + method: GET +- name: hyphenation-remain-character-count + endpoint: + path: /hyphenation-remain-character-count + method: GET +- name: id + endpoint: + path: /id + method: GET +- name: index-class + endpoint: + path: /index-class + method: GET +- name: index-key + endpoint: + path: /index-key + method: GET +- name: indicate-destination + endpoint: + path: /indicate-destination + method: GET +- name: initial-page-number + endpoint: + path: /initial-page-number + method: GET +- name: inline-progression-dimension + endpoint: + path: /inline-progression-dimension + method: GET +- name: internal-destination + endpoint: + path: /internal-destination + method: GET +- name: intrinsic-scale-value + endpoint: + path: /intrinsic-scale-value + method: GET +- name: intrusion-displace + endpoint: + path: /intrusion-displace + method: GET +- name: keep-together + endpoint: + path: /keep-together + method: GET +- name: keep-with-next + endpoint: + path: /keep-with-next + method: GET +- name: keep-with-previous + endpoint: + path: /keep-with-previous + method: GET +- name: language + endpoint: + path: /language + method: GET +- name: last-line-end-indent + endpoint: + path: /last-line-end-indent + method: GET +- name: leader-alignment + endpoint: + path: /leader-alignment + method: GET +- name: leader-length + endpoint: + path: /leader-length + method: GET +- name: leader-pattern + endpoint: + path: /leader-pattern + method: GET +- name: leader-pattern-width + endpoint: + path: /leader-pattern-width + method: GET +- name: left + endpoint: + path: /left + method: GET +- name: letter-spacing + endpoint: + path: /letter-spacing + method: GET +- name: letter-value + endpoint: + path: /letter-value + method: GET +- name: linefeed-treatment + endpoint: + path: /linefeed-treatment + method: GET +- name: line-height + endpoint: + path: /line-height + method: GET +- name: line-height-shift-adjustment + endpoint: + path: /line-height-shift-adjustment + method: GET +- name: line-stacking-strategy + endpoint: + path: /line-stacking-strategy + method: GET +- name: margin-bottom + endpoint: + path: /margin-bottom + method: GET +- name: margin-left + endpoint: + path: /margin-left + method: GET +- name: margin-right + endpoint: + path: /margin-right + method: GET +- name: margin-top + endpoint: + path: /margin-top + method: GET +- name: marker-class-name + endpoint: + path: /marker-class-name + method: GET +- name: master-name + endpoint: + path: /master-name + method: GET +- name: master-reference + endpoint: + path: /master-reference + method: GET +- name: courseload + endpoint: + path: /courseload + method: GET + data_selector: records + params: {} +- name: arc + endpoint: + path: /go + method: GET +- name: advisor + endpoint: + path: /advisor + method: GET +- name: maximum-repeats + endpoint: + path: /fo:repeatable-page-master-reference + method: GET + data_selector: property + params: {} +- name: media-usage + endpoint: + path: /fo:root + method: GET + data_selector: property + params: {} +- name: merge-pages-across-index-key-references + endpoint: + path: /fo:index-page-citation-list + method: GET + data_selector: property + params: {} +- name: number-columns-repeated + endpoint: + path: /fo:table-column + method: GET + data_selector: property + params: {} +- name: number-rows-spanned + endpoint: + path: /fo:table-cell + method: GET + data_selector: property + params: {} +- name: USAddress + endpoint: + path: /xsd/complexType/USAddress + method: GET + data_selector: elements + params: {} +- name: PurchaseOrderType + endpoint: + path: /xsd/complexType/PurchaseOrderType + method: GET + data_selector: elements + params: {} +- name: WCAG 2 + endpoint: + path: /WAI/standards-guidelines/wcag/ + method: GET + data_selector: WCAG info + params: {} +- name: ATAG + endpoint: + path: /WAI/standards-guidelines/atag/ + method: GET + data_selector: ATAG info + params: {} +- name: UAAG + endpoint: + path: /WAI/standards-guidelines/uaag/ + method: GET + data_selector: UAAG info + params: {} +- name: WCAG 3 + endpoint: + path: /WAI/standards-guidelines/wcag/wcag3-intro/ + method: GET + data_selector: WCAG 3 info + params: {} +- name: WAI-ARIA + endpoint: + path: /WAI/standards-guidelines/aria/ + method: GET + data_selector: ARIA info + params: {} +- name: Audio and Video + endpoint: + path: /WAI/standards-guidelines/multimedia/ + method: GET + data_selector: Audio and Video info + params: {} +- name: Evaluation + endpoint: + path: /WAI/test-evaluate/ + method: GET + data_selector: Evaluation info + params: {} +- name: WAI-Adapt + endpoint: + path: /WAI/adapt/ + method: GET + data_selector: WAI-Adapt info + params: {} +- name: Pronunciation + endpoint: + path: /WAI/pronunciation/ + method: GET + data_selector: Pronunciation info + params: {} +- name: myInteger + endpoint: + path: /simpleType/myInteger + method: GET + data_selector: records + params: + incremental: value +- name: SKU + endpoint: + path: /simpleType/SKU + method: GET + data_selector: records + params: {} +- name: USState + endpoint: + path: /simpleType/USState + method: GET + data_selector: records + params: {} +- name: listOfMyIntType + endpoint: + path: /simpleType/listOfMyIntType + method: GET + data_selector: records + params: {} +- name: SixUSStates + endpoint: + path: /simpleType/SixUSStates + method: GET + data_selector: records + params: {} +- name: zipUnion + endpoint: + path: /simpleType/zipUnion + method: GET + data_selector: records + params: {} +- name: Items + endpoint: + path: /po.xsd + method: GET + data_selector: Items +- name: purchaseOrder + endpoint: + path: /purchaseOrder + method: GET + data_selector: records +- name: Easy Checks + endpoint: + path: /test-evaluate/preliminary/ + method: GET +- name: Evaluation Tools + endpoint: + path: /test-evaluate/tools/ + method: GET +- name: Conformance Evaluation + endpoint: + path: /test-evaluate/conformance/ + method: GET +- name: Involving Users + endpoint: + path: /test-evaluate/involving-users/ + method: GET +- name: purchaseOrder + endpoint: + path: /schemas/ipo.xsd + method: GET + data_selector: records + params: {} +- name: address + endpoint: + path: /schemas/address.xsd + method: GET + data_selector: records + params: {} +- name: purchaseReport + endpoint: + path: /purchaseReport + method: GET + data_selector: records +- name: Making Events Accessible + endpoint: + path: /WAI/teach-advocate/accessible-presentations/ + method: GET +- name: Curricula on Web Accessibility + endpoint: + path: /WAI/curricula/ + method: GET +- name: Developing Web Accessibility Presentations and Training + endpoint: + path: /WAI/teach-advocate/accessibility-training/ + method: GET +- name: Before and After Demonstration + endpoint: + path: /WAI/demos/bad/ + method: GET +- name: Contacting Organizations about Inaccessible Websites + endpoint: + path: /WAI/teach-advocate/contact-inaccessible-websites/ + method: GET +- name: The Business Case for Digital Accessibility + endpoint: + path: /WAI/business-case/ + method: GET +- name: regular_expressions + endpoint: + path: /regex + method: GET + data_selector: expressions +- name: xml_schema_elements + endpoint: + path: /elements + method: GET + data_selector: elements +- name: xml_schema_attributes + endpoint: + path: /attributes + method: GET + data_selector: attributes +- name: Official W3C Document License + endpoint: + path: /WAI/about/using-wai-material/#official-w3c-document-license + method: GET + data_selector: content + params: {} +- name: Creative Commons Licensed Material + endpoint: + path: /WAI/about/using-wai-material/#cc + method: GET + data_selector: content + params: {} +- name: DOMFocusIn + endpoint: + path: /events/DOMFocusIn + method: GET + data_selector: event + params: {} +- name: DOMFocusOut + endpoint: + path: /events/DOMFocusOut + method: GET + data_selector: event + params: {} +- name: DOMActivate + endpoint: + path: /events/DOMActivate + method: GET + data_selector: event + params: {} +- name: wai_announcements + endpoint: + path: /news/subscribe/ + method: POST + data_selector: announcement + params: {} +- name: MouseEvent + endpoint: + path: /MouseEvent + method: GET + data_selector: attributes + params: {} +- name: MutationEvent + endpoint: + path: /MutationEvent + method: GET + data_selector: attributes + params: {} +- name: AUWG Mailing List + endpoint: + path: /mailing-list/w3c-wai-au + method: POST + data_selector: subscription + params: {} +- name: EOWG Wiki + endpoint: + path: https://www.w3.org/WAI/EO/wiki/Main_Page + method: GET + data_selector: content + params: {} +- name: EOWG Current Projects + endpoint: + path: https://www.w3.org/WAI/EO/wiki/EOWG_Current_Projects + method: GET + data_selector: projects + params: {} +- name: EOWG Meetings + endpoint: + path: https://www.w3.org/WAI/EO/wiki/EOWG_Meetings + method: GET + data_selector: meetings + params: {} +- name: load_event + endpoint: + path: /events/load + method: GET + data_selector: load + params: {} +- name: unload_event + endpoint: + path: /events/unload + method: GET + data_selector: unload + params: {} +- name: abort_event + endpoint: + path: /events/abort + method: GET + data_selector: abort + params: {} +- name: error_event + endpoint: + path: /events/error + method: GET + data_selector: error + params: {} +- name: select_event + endpoint: + path: /events/select + method: GET + data_selector: select + params: {} +- name: change_event + endpoint: + path: /events/change + method: GET + data_selector: change + params: {} +- name: submit_event + endpoint: + path: /events/submit + method: GET + data_selector: submit + params: {} +- name: reset_event + endpoint: + path: /events/reset + method: GET + data_selector: reset + params: {} +- name: focus_event + endpoint: + path: /events/focus + method: GET + data_selector: focus + params: {} +- name: blur_event + endpoint: + path: /events/blur + method: GET + data_selector: blur + params: {} +- name: resize_event + endpoint: + path: /events/resize + method: GET + data_selector: resize + params: {} +- name: scroll_event + endpoint: + path: /events/scroll + method: GET + data_selector: scroll + params: {} +- name: pointer-events + endpoint: + path: /pointer-events + method: GET + data_selector: pointer-properties +- name: WAI Interest Group mailing lists + endpoint: + path: /WAI/about/groups/waiig/ + method: GET + data_selector: mailing lists + params: {} +- name: WCAG 3 + endpoint: + path: /WAI/standards-guidelines/wcag/wcag3-intro/ + method: GET +- name: WCAG 2.2 + endpoint: + path: /WAI/standards-guidelines/wcag/ + method: GET +- name: animation_function + endpoint: + path: /animation/function + method: GET + data_selector: attributes + params: {} +- name: accessibility_guidelines + endpoint: + path: /WAI/standards-guidelines/wcag/ + method: GET + data_selector: guidelines + params: {} +- name: wai_adapt + endpoint: + path: /WAI/adapt/ + method: GET + data_selector: adapt + params: {} +- name: cognitive_accessibility + endpoint: + path: /WAI/cognitive/ + method: GET + data_selector: cognitive + params: {} +- name: mobile_accessibility + endpoint: + path: /WAI/standards-guidelines/mobile/ + method: GET + data_selector: mobile + params: {} +- name: WAI Translations + endpoint: + path: /WAI/about/translating/ + method: GET + data_selector: translations + params: {} +- name: animation_effect + endpoint: + path: /animation/effect + method: GET + data_selector: effects + params: {} +- name: repeating_animations + endpoint: + path: /animation/repeating + method: GET + data_selector: repeats + params: {} +- name: active_duration_control + endpoint: + path: /animation/active_duration + method: GET + data_selector: active_duration + params: {} +- name: ElementTimeControl + endpoint: + path: /ElementTimeControl + method: GET + data_selector: methods +- name: TimeEvent + endpoint: + path: /TimeEvent + method: GET + data_selector: properties_methods +- name: conforming_svg_viewer + endpoint: + path: /conforming/svg/viewer + method: GET + data_selector: viewer_features + params: {} +- name: space_specifier + endpoint: + path: /spaces/conditionality + method: GET + data_selector: space-specifiers + params: {} +- name: block_area + endpoint: + path: /block-areas/traits + method: GET + data_selector: traits + params: {} +- name: authoring_tool_user_interface + endpoint: + path: /implementing/authoring_tool_user_interface + method: GET + data_selector: content + params: {} +- name: success_criteria + endpoint: + path: /implementing/success_criteria + method: GET + data_selector: criteria + params: {} +- name: flow-map + endpoint: + path: /fo/flow-map + method: GET + data_selector: flow-assignment + params: {} +- name: flow-assignment + endpoint: + path: /fo/flow-assignment + method: GET + data_selector: flow-source-list + params: {} +- name: flow-source-list + endpoint: + path: /fo/flow-source-list + method: GET + data_selector: flow-name-specifier + params: {} +- name: flow-name-specifier + endpoint: + path: /fo/flow-name-specifier + method: GET + data_selector: EMPTY + params: {} +- name: flow-target-list + endpoint: + path: /fo/flow-target-list + method: GET + data_selector: region-name-specifier + params: {} +- name: region-name-specifier + endpoint: + path: /fo/region-name-specifier + method: GET + data_selector: EMPTY + params: {} +- name: block + endpoint: + path: /fo/block + method: GET + data_selector: fo:block +- name: block-container + endpoint: + path: /fo/block-container + method: GET + data_selector: fo:block-container +- name: inline-level-formatting-objects + endpoint: + path: /6.6/inline-level-formatting-objects + method: GET + data_selector: examples +- name: table_and_caption + endpoint: + path: /table-and-caption + method: GET + data_selector: elements + params: {} +- name: table + endpoint: + path: /table + method: GET + data_selector: elements + params: {} +- name: accessibility_checking + endpoint: + path: /implementing/atag + method: GET + data_selector: content +- name: list_block + endpoint: + path: /fo/list-block + method: GET + data_selector: list-items + params: {} +- name: list_item + endpoint: + path: /fo/list-item + method: GET + data_selector: items + params: {} +- name: multi-switch + endpoint: + path: /multi-switch + method: GET + data_selector: multi-case + params: {} +- name: basic-link + endpoint: + path: /basic-link + method: GET + data_selector: link + params: {} +- name: index + endpoint: + path: /index + method: GET + data_selector: records + params: {} +- name: bookmark-tree + endpoint: + path: /fo/bookmark-tree + method: GET + data_selector: areas +- name: bookmark + endpoint: + path: /fo/bookmark + method: GET + data_selector: areas +- name: bookmark-title + endpoint: + path: /fo/bookmark-title + method: GET + data_selector: areas +- name: Level A Conformance + endpoint: + path: /WAI/ATAG10A-Conformance + method: GET + data_selector: icon + params: {} +- name: Level Double-A Conformance + endpoint: + path: /WAI/ATAG10AA-Conformance + method: GET + data_selector: icon + params: {} +- name: Level Triple-A Conformance + endpoint: + path: /WAI/ATAG10AAA-Conformance + method: GET + data_selector: icon + params: {} +- name: process_document + endpoint: + path: /2015/Process-20150901/ + method: GET + data_selector: document +- name: float + endpoint: + path: /fo/float + method: GET + data_selector: areas + params: {} +- name: footnote + endpoint: + path: /fo/footnote + method: GET + data_selector: areas + params: {} +- name: footnote-body + endpoint: + path: /fo/footnote-body + method: GET + data_selector: areas + params: {} +- name: retrieve_marker + endpoint: + path: /retrieve/marker + method: GET + data_selector: children + params: {} +- name: retrieve_table_marker + endpoint: + path: /retrieve/table/marker + method: GET + data_selector: children + params: {} +- name: Appeal of a Chair's Decision + endpoint: + path: /appeal/chairs-decision + method: GET + data_selector: records +- name: Resignation from a Group + endpoint: + path: /resignation/group + method: GET + data_selector: records +- name: Dissemination Policies + endpoint: + path: /dissemination/policies + method: GET + data_selector: records +- name: Confidentiality Levels + endpoint: + path: /confidentiality/levels + method: GET + data_selector: records +- name: Working Groups and Interest Groups + endpoint: + path: /working-groups-interest-groups + method: GET + data_selector: records +- name: AUWG Mailing List + endpoint: + path: /mailing-lists/w3c-wai-au + method: GET + data_selector: mailing_list_info + params: {} +- name: AUWG Charter + endpoint: + path: /WAI/AU/2010/auwg_charter + method: GET + data_selector: charter_info + params: {} +- name: WAI Resources + endpoint: + path: /WAI/resources/ + method: GET +- name: leader-alignment + endpoint: + path: /leader/alignment + method: GET + data_selector: values +- name: leader-pattern + endpoint: + path: /leader/pattern + method: GET + data_selector: values +- name: leader-pattern-width + endpoint: + path: /leader/pattern-width + method: GET + data_selector: values +- name: leader-length + endpoint: + path: /leader/length + method: GET + data_selector: values +- name: rule-style + endpoint: + path: /rule/style + method: GET + data_selector: values +- name: rule-thickness + endpoint: + path: /rule/thickness + method: GET + data_selector: values +- name: active-state + endpoint: + path: /active/state + method: GET + data_selector: values +- name: auto-restore + endpoint: + path: /auto/restore + method: GET + data_selector: values +- name: case-name + endpoint: + path: /case/name + method: GET + data_selector: values +- name: case-title + endpoint: + path: /case/title + method: GET + data_selector: values +- name: destination-placement-offset + endpoint: + path: /destination/placement-offset + method: GET + data_selector: values +- name: external-destination + endpoint: + path: /external/destination + method: GET + data_selector: values +- name: indicate-destination + endpoint: + path: /indicate/destination + method: GET + data_selector: values +- name: internal-destination + endpoint: + path: /internal/destination + method: GET + data_selector: values +- name: show-destination + endpoint: + path: /show/destination + method: GET + data_selector: values +- name: starting-state + endpoint: + path: /starting/state + method: GET + data_selector: values +- name: switch-to + endpoint: + path: /switch/to + method: GET + data_selector: values +- name: target-presentation-context + endpoint: + path: /target/presentation/context + method: GET + data_selector: values +- name: target-processing-context + endpoint: + path: /target/processing/context + method: GET + data_selector: values +- name: target-stylesheet + endpoint: + path: /target/stylesheet + method: GET + data_selector: values +- name: index-class + endpoint: + path: /index-class + method: GET + data_selector: value + params: {} +- name: index-key + endpoint: + path: /index-key + method: GET + data_selector: value + params: {} +- name: page-number-treatment + endpoint: + path: /page-number-treatment + method: GET + data_selector: value + params: {} +- name: merge-ranges-across-index-key-references + endpoint: + path: /merge-ranges-across-index-key-references + method: GET + data_selector: value + params: {} +- name: merge-sequential-page-numbers + endpoint: + path: /merge-sequential-page-numbers + method: GET + data_selector: value + params: {} +- name: merge-pages-across-index-key-references + endpoint: + path: /merge-pages-across-index-key-references + method: GET + data_selector: value + params: {} +- name: ref-index-key + endpoint: + path: /ref-index-key + method: GET + data_selector: value + params: {} +- name: marker-class-name + endpoint: + path: /marker-class-name + method: GET + data_selector: value + params: {} +- name: retrieve-boundary-within-table + endpoint: + path: /retrieve-boundary-within-table + method: GET + data_selector: value + params: {} +- name: retrieve-class-name + endpoint: + path: /retrieve-class-name + method: GET + data_selector: value + params: {} +- name: retrieve-position + endpoint: + path: /retrieve-position + method: GET + data_selector: value + params: {} +- name: retrieve-boundary + endpoint: + path: /retrieve-boundary + method: GET + data_selector: value + params: {} +- name: retrieve-position-within-table + endpoint: + path: /retrieve-position-within-table + method: GET + data_selector: value + params: {} +- name: format + endpoint: + path: /format + method: GET + data_selector: value + params: {} +- name: grouping-separator + endpoint: + path: /grouping-separator + method: GET + data_selector: value + params: {} +- name: grouping-size + endpoint: + path: /grouping-size + method: GET + data_selector: value + params: {} +- name: letter-value + endpoint: + path: /letter-value + method: GET + data_selector: value + params: {} +- name: region-start + endpoint: + path: xsl-region-start + method: GET + data_selector: Reserved region-name for use as the default name of fo:region-start. +- name: region-end + endpoint: + path: xsl-region-end + method: GET + data_selector: Reserved region-name for use as the default name of fo:region-end. +- name: region-before + endpoint: + path: xsl-region-before + method: GET + data_selector: Reserved region-name for use as the default name of fo:region-before. +- name: region-after + endpoint: + path: xsl-region-after + method: GET + data_selector: Reserved region-name for use as the default name of fo:region-after. +- name: Web Content Accessibility Guidelines (WCAG) 2 + endpoint: + path: /WAI/standards-guidelines/wcag/ + method: GET + data_selector: guidelines + params: {} +- name: Authoring Tool Accessibility Guidelines (ATAG) + endpoint: + path: /WAI/standards-guidelines/atag/ + method: GET + data_selector: guidelines + params: {} +- name: User Agent Accessibility Guidelines (UAAG) + endpoint: + path: /WAI/standards-guidelines/uaag/ + method: GET + data_selector: guidelines + params: {} +- name: W3C Accessibility Guidelines (WCAG) 3 Working Draft + endpoint: + path: /WAI/standards-guidelines/wcag/wcag3-intro/ + method: GET + data_selector: guidelines + params: {} +- name: Accessible Rich Internet Applications (WAI-ARIA) + endpoint: + path: /WAI/standards-guidelines/aria/ + method: GET + data_selector: guidelines + params: {} +- name: Audio and Video + endpoint: + path: /WAI/standards-guidelines/multimedia/ + method: GET + data_selector: guidelines + params: {} +- name: Evaluation + endpoint: + path: /WAI/standards-guidelines/evaluation/ + method: GET + data_selector: guidelines + params: {} +- name: WAI-Adapt + endpoint: + path: /WAI/adapt/ + method: GET + data_selector: guidelines + params: {} +- name: Pronunciation + endpoint: + path: /WAI/pronunciation/ + method: GET + data_selector: guidelines + params: {} +- name: Easy Checks + endpoint: + path: /WAI/test-evaluate/preliminary/ + method: GET + data_selector: resources +- name: Evaluation Tools + endpoint: + path: /WAI/test-evaluate/tools/ + method: GET + data_selector: resources +- name: Conformance Evaluation + endpoint: + path: /WAI/test-evaluate/conformance/ + method: GET + data_selector: resources +- name: Making Events Accessible + endpoint: + path: /WAI/teach-advocate/accessible-presentations/ + method: GET + data_selector: resources +- name: Curricula on Web Accessibility + endpoint: + path: /WAI/curricula/ + method: GET + data_selector: resources +- name: Developing Web Accessibility Presentations and Training + endpoint: + path: /WAI/teach-advocate/accessibility-training/ + method: GET + data_selector: resources +- name: Before and After Demonstration (BAD) + endpoint: + path: /WAI/demos/bad/ + method: GET + data_selector: resources +- name: Contacting Organizations about Inaccessible Websites + endpoint: + path: /WAI/teach-advocate/contact-inaccessible-websites/ + method: GET + data_selector: resources +- name: The Business Case for Digital Accessibility + endpoint: + path: /WAI/business-case/ + method: GET + data_selector: resources +- name: get_involved + endpoint: + path: /WAI/about/participating/ + method: GET +- name: news + endpoint: + path: /WAI/news/ + method: GET +- name: guidelines + endpoint: + path: /WAI/standards-guidelines/ + method: GET +- name: community_groups + endpoint: + path: /community/groups/ + method: GET +- name: interest_groups + endpoint: + path: /WAI/IG + method: GET +- name: working_groups + endpoint: + path: /WAI/GL + method: GET +- name: WAI Resources + endpoint: + path: /WAI/resources/ + method: GET +- name: Accessibility Guidelines + endpoint: + path: /WAI/about/groups/agwg/ + method: GET +- name: WAI-ARIA + endpoint: + path: /WAI/standards-guidelines/aria/ + method: GET +- name: WAI Announcements + endpoint: + path: /WAI/news/subscribe/ + method: GET + data_selector: announcements + params: {} +- name: AUWG Mailing List + endpoint: + path: /w3c-wai-au + method: GET + data_selector: list + params: {} +- name: EOWG Wiki + endpoint: + path: /WAI/EO/wiki/Main_Page + method: GET + data_selector: resources + params: {} +- name: EOWG Current Projects + endpoint: + path: /WAI/EO/wiki/EOWG_Current_Projects + method: GET + data_selector: projects + params: {} +- name: EOWG Deliverables + endpoint: + path: /WAI/EO/wiki/EOWG_Deliverables + method: GET + data_selector: deliverables + params: {} +- name: WAI Curricula Task Force Work Statement + endpoint: + path: https://www.w3.org/WAI/EO/wiki/WAI_Curricula/WAI_Curricula_TF + method: GET +- name: Evaluation Resource Suite Task Force Work Statement + endpoint: + path: https://www.w3.org/WAI/EO/2005/erstf + method: GET +- name: Before/After Demo Task Force Work Statement + endpoint: + path: https://www.w3.org/WAI/EO/2005/badtf.html + method: GET +- name: User Materials Task Force Work Statement + endpoint: + path: /WAI/EO/2006/users_tf + method: GET +- name: WCAG 2.0 Materials Support Task Force Work Statement + endpoint: + path: /WAI/EO/2006/wcag2eowg_tf + method: GET +- name: Lexicon Task Force Work Statement + endpoint: + path: https://www.w3.org/WAI/EO/2004/lexicon + method: GET +- name: WAI Site Task Force Work Statement + endpoint: + path: https://www.w3.org/WAI/EO/2003/wstf + method: GET +- name: Web Accessibility and Ageing Task Force Work Statement + endpoint: + path: https://www.w3.org/WAI/EO/2008/wai-age-tf.html + method: GET +- name: UAAG 2.0 Working Group Note + endpoint: + path: /TR/2015/NOTE-UAAG20-20151215/ + method: GET + data_selector: records + params: {} +- name: UAAG 2.0 Reference + endpoint: + path: /TR/2015/NOTE-UAAG20-Reference-20151215/ + method: GET + data_selector: records + params: {} +- name: UAAG 1.0 Recommendation + endpoint: + path: /TR/2002/REC-UAAG10-20021217/ + method: GET + data_selector: records + params: {} +- name: WAI Interest Group Mailing List + endpoint: + path: /WAI/about/groups/waiig/ + method: GET + data_selector: mailing_lists + params: {} +- name: translations + endpoint: + path: /WAI/translations/ + method: GET + data_selector: resources + params: {} +- name: guideline_a3.6 + endpoint: + path: /guidelines/a3.6 + method: GET + data_selector: content +- name: guideline_a3.7 + endpoint: + path: /guidelines/a3.7 + method: GET + data_selector: content +- name: guideline_a4.1 + endpoint: + path: /guidelines/a4.1 + method: GET + data_selector: content +- name: accessibility_features + endpoint: + path: /api/accessibility_features + method: GET + data_selector: features +- name: conformance_claim + endpoint: + path: /conformance/claim + method: POST + data_selector: results + params: {} +- name: accessibility_information + endpoint: + path: /accessibility/information + method: GET + data_selector: information + params: {} +- name: part_a + endpoint: + path: /TR/ATAG20/#part_a + method: GET + data_selector: summary + params: {} +- name: part_b + endpoint: + path: /TR/ATAG20/#part_b + method: GET + data_selector: summary + params: {} +- name: auto_save + endpoint: + path: /guidelines/A.3.2.1 + method: GET + data_selector: success_criteria + params: {} +- name: timing_adjustable + endpoint: + path: /guidelines/A.3.2.2 + method: GET + data_selector: success_criteria + params: {} +- name: static_input_components + endpoint: + path: /guidelines/A.3.2.3 + method: GET + data_selector: success_criteria + params: {} +- name: content_edits_saved + endpoint: + path: /guidelines/A.3.2.4 + method: GET + data_selector: success_criteria + params: {} +- name: static_view_option + endpoint: + path: /guidelines/A.3.3.1 + method: GET + data_selector: success_criteria + params: {} +- name: navigate_by_structure + endpoint: + path: /guidelines/A.3.4.1 + method: GET + data_selector: success_criteria + params: {} +- name: navigate_by_programmatic_relationships + endpoint: + path: /guidelines/A.3.4.2 + method: GET + data_selector: success_criteria + params: {} +- name: text_search + endpoint: + path: /guidelines/A.3.5.1 + method: GET + data_selector: success_criteria + params: {} +- name: Accessibility Features Documentation + endpoint: + path: /implementing-guideline-a42 + method: GET + data_selector: features + params: {} +- name: Content Auto-Generation + endpoint: + path: /implementing-principle-b1 + method: GET + data_selector: auto_generation + params: {} +- name: Level A Conformance + endpoint: + path: /WAI/ATAG10A-Conformance + method: GET +- name: Level Double-A Conformance + endpoint: + path: /WAI/ATAG10AA-Conformance + method: GET +- name: Level Triple-A Conformance + endpoint: + path: /WAI/ATAG10AAA-Conformance + method: GET +- name: overview + endpoint: + path: /2015/Process-20150901/ + method: GET + data_selector: document +- name: current_process + endpoint: + path: /Consortium/Process/ + method: GET + data_selector: document +- name: Advisory Committee + endpoint: + path: /AdvisoryCommittee + method: GET + data_selector: members + params: {} +- name: Technical Architecture Group + endpoint: + path: /TechnicalArchitectureGroup + method: GET + data_selector: members + params: {} +- name: Advisory Board + endpoint: + path: /AdvisoryBoard + method: GET + data_selector: members + params: {} +- name: Member Submission Process + endpoint: + path: /Submission/Process + method: GET + data_selector: document + params: {} +- name: Team Rights and Obligations + endpoint: + path: /Submission/Team-Rights + method: GET + data_selector: document + params: {} +- name: Acknowledgment of a Submission Request + endpoint: + path: /Submission/Acknowledgment + method: GET + data_selector: document + params: {} +- name: Rejection of a Submission Request + endpoint: + path: /Submission/Rejection + method: GET + data_selector: document + params: {} +- name: AUWG Mailing List + endpoint: + path: w3c-wai-au@w3.org + method: POST + data_selector: subscribe + params: {} +- name: WAI Resources + endpoint: + path: /WAI/resources/ + method: GET + data_selector: resources + params: {} +notes: +- 'Modality Independence: Users interacting with a web browser may do so using one + or more input methods including keyboard, mouse, speech, touch, and gesture.' +- Users can undo text entry before submission. +- Users can reverse or confirm settings changes. +- User agent shows state of content retrieval activity by default. +- The user can have spelling assistance for editable text. +- The user can reverse navigation between web addresses. +- The user can specify confirmation for form submissions. +- The user can have information stored for auto-fill in forms. +- User agents can save local versions of web content. +- W3Cは、HTTP基本認証とウェブフォームベースのログインシステムを組み合わせて、制限されたリソースや個別化されたリソースにアクセスしています。 +- W3Cのサイトには、XMLスキーマファイル、DTD、名前空間、その他のリソースにリクエストを行うソフトウェアからの自動化されたトラフィックが大量に発生します。 +- Users have varying needs for text size and spacing. +- This document is in effect since 1 January 2023. +- This API does not require authentication. +- Every viewport has a keyboard focus. +- Users can restore preference settings to default. +- Users can manage multiple sets of preference settings. +- Supports control of time-based media and other input devices +- Users can undo text entry +- Users can avoid or undo settings changes +- User agent shows the state of content retrieval activity +- All liaisons, of any kind, must be coordinated by the W3C Team due to requirements + for public communication, IPR or confidentiality policies. +- This document is provided 'AS IS,' and copyright holders make no representations + or warranties, express or implied. +- No right to create modifications or derivatives of W3C documents is granted pursuant + to this license. +- Each mailing list has its own policies regarding who may post to the list. +- Posting of Unsolicited Bulk E-mail (UBE), or spam is strictly forbidden. +- W3C is a public-interest non-profit organization. +- W3C uses a mix of HTTP Basic Authentication and a web form based login system for + resources that are restricted or personalized. +- Advisory Committee representatives must follow the conflict of interest policy. +- Draft Standard +- The Advisory Board does not have decision-making authority within W3C; its role + is strictly advisory. +- Terms of elected Advisory Board participants are for two years. +- The terms of TAG participants last for two years. +- Each group must have a charter that is public. +- Each group must have a Chair (or co-Chairs) to facilitate discussion. +- W3C recommends the wide deployment of a Recommendation as a standard for the Web. +- Some W3C Recommendation MAY be continuously revised while others are maintained + by creating a new version. +- Formal Objections must include a summary of the issue, the decision being appealed, + and the rationale for the objection. +- A Council may form sub-groups for deliberation, but the full Council issues the + final decision. +- Members should solicit review by the Team prior to issuing press releases about + their work within W3C. +- The Team makes every effort to ensure the persistence and availability of public + information. +- 'W3C liaisons fall into two categories: simple liaisons and formal agreements for + joint work.' +- Formal agreements involve a Memorandum of Understanding (MoU), signed on paper and + reviewed by W3C legal. +- Each W3C mailing list has its own policies regarding who may post to the list. +- First-time posters to our lists with public archives will need to give us permission + to publish their message in our public archives. +- This Guidebook is intended to complement the W3C Membership Agreement and the W3C + Process. +- The DPV is an evolving vocabulary – as the DPVCG continues to work on updating it + with broader concepts as well as enriching its hierarchy of concepts. +- Founded in 1994 as a global consortium by web inventor Tim Berners-Lee. +- W3C meetings operate under the W3C Code of Conduct. +- Meetings are held in English. +- Early registration is strongly recommended. +- This document is part a series of documents that describe W3C Technical Report Publication + Policies. +- Data includes various staff members with their roles and backgrounds. +- Your sponsorship directly contributes to making the Web work — for everyone. +- W3C recognizes that giving takes many forms. +- If you are receiving `HTTP 429 Too Many Requests` responses from our site please + update your software to reduce the frequency of requests. +- SPC is designed to make strong authentication during checkout flows easier and more + secure. +- Focus on Secure Payment Confirmation +- Discussed user education and timing of user registration +- 'We aim to support a variety of flavors of relying parties: banks, companies that + provide services to banks, companies that provide payment services to merchants, + and so on.' +- Community Groups are proposed and run by the community. Although W3C hosts these + conversations, the groups do not necessarily represent the views of the W3C Membership + or staff. +- The Advisory Board is distinct from the Board of Directors and has no decision-making + authority within W3C; its role is strictly advisory. +- The terms of elected Advisory Board participants are for two years. Terms are staggered + so that each year, either five or six terms expire. +- Each group must have a charter. +- Each group must have a Chair or co-Chairs. +- 'The term Formal Objection is used to emphasize this process implication: Formal + Objections receive formal consideration and a formal response.' +- Formal Objections that do not provide substantive arguments or rationale are unlikely + to receive serious consideration. +- The Team must draft a list of potential Council members, with annotations of possible + reasons for dismissal against each one. +- The W3C technical report development process is designed to support multiple specification + development methodologies. +- Groups can publish documents as Group Notes and W3C Statements typically to document + information other than technical specifications. +- The group operates under the Community and Business Group Process. +- The group will not develop any normative specification. +- Community Groups are proposed and run by the community. +- New DPI implementation causes elements to be zoomed by zoomLevel^2 instead of zoomLevel. +- A Working Draft is suitable for gathering wide review prior to advancing to the + next stage of maturity. +- Candidate Recommendation publications signal to the wider community that it is time + to do a final review. +- The group uses the HTML5 Web Gaming Standards discussion forum as well as its public + mailing-list for discussions. +- On high-DPI displays, 1536×1536 looks like 768×768 on low-DPI displays. +- 768×768 is 1600% larger than 48×48, while we only wanted to zoom by 400%. +- The solution is to have a constant value which behaves the same way as the old DPR + – doesn’t take zoom level into account. +- Not every table in a specification is a potential registry. +- The W3C Patent Policy does not apply any licensing requirements or commitments for + Notes or Note Drafts. +- The specification will be updated periodically to reflect adoption of new specifications + in the Web platform. +- This document is governed by the 03 November 2023 W3C Process Document. +- The DPV is an evolving vocabulary. +- The list of valid conformance strings will increase as W3C releases new versions + of WCAG. +- Refer to the Guide to Optimized Publication Standards for a non-normative list of + standards. +- The group does not publish Specifications. +- The Audiobook manifest is defined as a specific 'shape' of JSON-LD 1.1. +- Audiobooks conform to the W3C Audiobooks specification. +- This document defines a general manifest format for expressing information about + a digital publication. +- This group will not publish any specifications. +- The group is not chartered to change published W3C documents. +- Additional licensing statements received by W3C for standards-track work are compiled + here, with links to the original archived submissions. +- EPUBCheck is open source, licensed under MIT. +- EPUBCheck evaluates EPUB publications against the official EPUB specifications. +- This group was originally proposed on 2021-10-27 by Matt Garrish. +- Users rightly fear the misuse of their personal data and being tracked online, including + browser fingerprinting, the spread of disinformation, and other online harms. +- UAAG 2.0 is still needed and relevant, and may be increasingly relevant in the future. +- The Web Payments Working Group held a remote meeting 25-28 October. +- The main themes of the agenda were strong authentication, user recognition and privacy, + and Payment Request reviews. +- Uses OAuth2 with refresh token — requires setup of connected app in api +- W3C’s hosting of this group does not imply endorsement of the activities. +- Includes resources in multiple languages +- No Specifications will be produced under the current charter. +- The group does not develop any normative specification. +- A constant value which behaves the same way as the old DPR – doesn’t take zoom level + into account. +- Must be accessible from CSS queries too so we won’t have to use JavaScript to resize + every element. +- W3C’s Web Accessibility Initiative (WAI) develops strategies, standards, and supporting + resources to make the web accessible to people with disabilities. +- Although W3C hosts these conversations, the groups do not necessarily represent + the views of the W3C Membership or staff. +- Uses viewport scale-independent approach. +- deviceNormalPixelRatio is accessible from CSS queries. +- Provides guidance for individual project management and for managing accessibility + throughout an organization. +- Some objects like Contact may return nulls in deeply nested fields +- Evaluation helps you ensure that your websites and applications meet accessibility + requirements. +- No tool alone can determine if a site meets accessibility standards. +- The group must now choose a chair. +- Content is mostly from 2013. The Curricula links to more recent resources. +- The specification will be suitable for use as a normative reference by the CTA WAVE + project. +- Strategies, standards, resources to make the Web accessible to people with disabilities +- The web is the universal publishing platform +- This specification specifies content conformance requirements for verifying the + accessibility of EPUB publications. +- It also specifies accessibility metadata requirements for the discoverability of + EPUB publications. +- Users need to trust that evaluations are performed in a comprehensive manner. +- Some regions designate a local authority responsible for evaluations. +- This section is non-normative. +- Although EPUB creators do not have to follow the recommendations in this section + to conform to this specification, some jurisdictions require EPUB creators to follow + similar practices. +- Additional guidance on cognitive accessibility is included in the WCAG Understanding + documents. +- Supplemental guidance provides additional ways to improve accessibility beyond what + is required by WCAG 2. +- An Audiobook is a collection of audio resources grouped together by a reading order, + metadata, and resources, all contained in a manifest. +- This specification is intended to standardize the audiobooks distribution model + on the web and between businesses. +- Users can operate all functions using just the keyboard. +- Audiobooks must contain audio resources in the reading order. +- The User Agent Accessibility Guidelines Working Group (UAWG) has closed. +- Some aspects of the formal group closing may be pending. +- Defines a general manifest format for expressing information about a digital publication +- Uses schema.org metadata augmented to include various structural properties +- This document provides informative guidance on applying WCAG 2.2 Level A and AA + success criteria to mobile applications. +- The reading progression is not inherited +- Default value for reading progression is ltr +- Work In Progress. See Key Terms section. +- Work in Progress. The document currently only includes guidance for success criteria. + The guidance for principles and guidelines will be added at a later stage. +- This applies directly as written, and as described in Intent from Understanding + Success Criterion 1.2.3 +- In some countries, captions are called subtitles +- Content does not restrict its view and operation to a single display orientation, + unless a specific display orientation is essential +- Work In Progress +- This algorithm does not describe how the manifest is discovered and obtained. +- Publication manifests have to be expressed as JSON objects, not arrays. +- This function takes a list of LinkedResource objects — from either the reading order + or resource list — and returns the set of unique URLs. +- If duplicates are encountered, warnings are issued. +- Algorithm for extracting a table of contents from a nav element. +- User agents can process and internalize the resulting structure using any language. +- This success criterion is primarily for web authors who develop or script their + own user interface components. +- This success criterion is primarily for software developers who develop or use custom + user interface components. +- For non-web documents and software where status messages are not implemented using + markup languages, there is still a user need to have status messages be programmatically + exposed. +- Strategies, standards, resources to make the Web accessible to people with disabilities. +- This document sets out a series of recommendations designed to facilitate development + and delivery of Web applications on mobile devices. +- The recommendations are offered to creators, maintainers and operators of mobile + Web sites. +- Applications should endeavor to remain functional even if cookies are unavailable. +- Use of client-side storage in Web applications is a powerful technique that brings + Web applications into parity with native applications in terms of start-up time + and responsiveness. +- Data that needs to be shared with other devices or recovered in the case of a lost + or damaged device, should be replicated back to the server as soon as possible. +- These APIs should be used with caution. +- Ensure that the user is informed if the application needs to access personal or + device information. +- If automatic sign-in is enabled, a sign-out link should also be provided. +- Compress content for efficient delivery. +- Smaller applications will download and execute more quickly and more reliably than + larger ones on constrained devices. +- Try not to use redirects. +- Establishing the necessary connections in order to complete an HTTP request can + take significantly longer on a mobile network than on a fixed network. +- A Web application typically requires a number of resources each of which requires + an HTTP request. +- Static resources do not need cookie information and so performance can be improved + by serving them from a path or sub-domain for which the application's cookies are + out of scope. +- User experience is influenced by latency, interaction method, and data consistency. +- Minimize the number of local storage queries required before the first view can + be displayed. +- The recommendations are offered to creators, maintainers and operators of Web sites. +- The document is organized into sections addressing various aspects of mobile web + best practices. +- The Best Practices have been written at a level of generality that allows them to + be applicable across a range of markup languages. +- The quality of the user's Web experience via a mobile device depends significantly + on the usability of Web sites, of browsers, and of the device itself. +- URIs should be kept short to enhance user experience on mobile devices. +- Testing should be conducted on actual devices as well as emulators. +- UAAG 2.0 is complete and provides specific guidance for browsers and other user + agents. +- Do not use frames. +- Use features of the markup language to indicate logical document structure. +- Do not use tables unless the device is known to support them. +- Provide a text equivalent for every non-text element. +- Specify the size of images in markup, if they have an intrinsic size. +- Create documents that validate to published formal grammars. +- Do not use pixel measures and do not use absolute units in markup language attribute + values and style sheet property values. +- Use style sheets to control layout and presentation, unless the device is known + not to support them. +- Use terse, efficient markup. +- Send content in a format that is known to be supported by the device. +- Ensure that content is encoded using a character encoding that is known to be supported + by the device. +- Provide informative error messages and a means of navigating away from an error + message back to useful information. +- Do not rely on cookies being available. +- Keep the number of keystrokes to a minimum. +- Avoid free text entry where possible. +- Provide pre-selected default values where possible. +- THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS + OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT + THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION + OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS + OR OTHER RIGHTS. +- Resources from the IndieUI remain available to support long-term institutional memory, + but this information is of historical value only. +- 'This version of the document does not yet elaborate requirements for IndieUI: User + Context.' +- 'Accessibility: Essential for some, useful for all.' +- W3C membership is open to all entities. +- W3C does not have a class of membership tailored to individuals. +- 'Web accessibility: essential for some, useful for all.' +- Every document published must be a public document. +- W3C strives to make archival documents indefinitely available. +- This document outlines the process for publishing W3C specifications. +- W3C does not organize conferences. +- Workshops and Symposia generally last one to three days. +- W3C standards are reviewed for accessibility support by the Accessible Platform + Architectures Working Group. +- Specifications MUST define text in terms of Unicode characters, not bytes or glyphs. +- Specifications SHOULD NOT invent a new escaping mechanism if an appropriate one + already exists. +- The number of different ways to escape a character SHOULD be minimized (ideally + to one). +- W3C is developing normative specifications and guidance on best practices for text-to-speech + (TTS) synthesis. +- The working group holds a weekly Zoom teleconference to discuss work items. +- Participation in the Working Group itself is limited to W3C members and invited + experts. +- Accessibility for people with cognitive and learning disabilities. +- If synthesized speech is produced, the user can specify speech rate, volume, and + voice. +- If synthesized speech is produced, the user can specify pitch and pitch range if + offered by the speech synthesizer. +- If synthesized speech is produced, advanced features such as user-defined add-ons, + spell-out functionality, and multiple ways of speaking numerals and punctuation + are provided. +- If synthesized speech is produced and more than one language is available, the user + can change the language. +- If synthesized speech is produced, the user can adjust all speech characteristics + provided by the synthesizer. +- Users can operate all functions using just the keyboard +- Users can search rendered content forward or backward +- Characters that are identical or 'confusable' in appearance can present spoofing + and other security risks. +- Unicode Normalization does not bring together characters that have the same intrinsic + meaning or function but which vary in appearance or usage. +- It is RECOMMENDED to do NO case folding or Unicode Normalization of content when + matching strings in identifiers and syntactic content. +- Specifications MUST allow a Unicode character encoding. +- Specifications MUST specify a default character encoding and SHOULD specify UTF-8 + as the default encoding. +- Specifications SHOULD NOT specify compatibility normalization forms (NFKC, NFKD). +- Implementations MUST NOT apply compatibility normalization forms (NFKC, NFKD) unless + specifically requested by the end user. +- Specifications that require normalization MUST NOT make the implementation of normalization + optional. +- Interoperability cannot be achieved if some implementations normalize while others + do not. +- Normalization-sensitive operations MUST NOT be performed unless the implementation + has first either confirmed through inspection that the text is in normalized form + or it has re-normalized the text itself. +- A normalizing text-processing component which modifies text and performs normalization-sensitive + operations MUST behave as if normalization took place after each modification. +- Authoring tool implementations SHOULD warn users or prevent the input or creation + of syntactic content starting with a combining mark that could interfere with processing, + display, or interchange. +- W3C does not have separate guidelines for mobile accessibility. +- Mobile accessibility is covered in existing W3C accessibility standards/guidelines. +- This document provides informative guidance with regard to the interpretation and + application of Web Content Accessibility Guidelines (WCAG) to mobile applications. +- This document does not propose changes to WCAG 2 or its supporting documents; it + does not include interpretations for implementing WCAG 2 in web technologies. +- This document has been reviewed by W3C Members and other interested parties and + has been endorsed by the Director as a W3C Recommendation. +- A newer specification exists that is recommended for new adoption in place of this + specification. +- This applies directly as written, and as described in the Intent from Understanding + Success Criterion 1.2.3 +- This specification defines the Mathematical Markup Language, or MathML. +- MathML is an XML application for describing mathematical notation and capturing + both its structure and content. +- The goal of MathML is to enable mathematics to be served, received, and processed + on the World Wide Web. +- Mobile device design has evolved away from built-in physical keyboards towards devices + that maximize touchscreen area. +- Different mobile operating systems provide work-around features that let the user + simulate complex gestures with simpler ones. +- This document has been withdrawn and is maintained solely as a historical reference. +- The Unicode Bidirectional algorithm resolves the display direction for bidirectional + text. +- Characters in table 4.1 are suitable for use with markup. +- This document is a NOTE made available by W3C for discussion only. +- For full interoperability in the Internet, migration from Shift-JIS to UTF-8/UTF-16 + is highly recommended. +- Use of Shift-JIS cannot provide interoperability in information interchange, since + any of the above-mentioned conversion tables or some other conversion tables might + be used. +- Use of Japanese EUC cannot provide interoperability in information interchange, + since any of these conversion tables or some other conversion table might be used. +- Use of ISO-2022-JP cannot provide interoperability in information interchange, since + any of these conversion tables or some other conversion tables might be used. +- Charset names are case-insensitive. +- Use the xml:lang attribute to indicate the use of the Japanese language for an XML + document in whole or in part. +- Specify a language code for Japanese (ja, for example) as the value of this attribute. + Values of this attribute are case-insensitive. +- Cookies are a common and effective means to store small amounts of state on the + client. +- Use trusted information, and protect all personally identifiable information. +- Minimize use of device memory, processor power, and network bandwidth which are + more limited on mobile devices than on the desktop. +- User experience is influenced by a number of factors, including latency, interaction + method, and data consistency. +- The viewport meta tag tells the device at what scale to render the page. +- In XML, name characters are characters which can be used as part of element and + attribute names, and name start characters are those name characters with which + names may begin. +- This chapter merely adapts XML name characters to JIS X 0208 and JIS X 0212. +- This document specifies Best Practices for delivering Web content to mobile devices. +- XML adopts ISO/IEC10646 or Unicode 3.0 as the CCS, which contains all Japanese characters. +- UTF-8 and UTF-16 are the recommended CESs, and implementations are required to support + them. +- The mapping between existing CESs and ISO/IEC10646/Unicode 3.0 is not specified. +- Mobile networks can be slow compared with fixed data connections and often have + a measurably higher latency. +- Encourages content providers to exploit device capabilities to provide an enhanced + user experience. +- Recommends testing on actual devices as well as emulators. +- Limited bandwidth and high latency can reduce the usability of Web sites on mobile + devices. +- Using caching information effectively can reduce the need to reload data such as + style sheets, images and pages, thus improving performance and reducing cost of + use. +- Do not rely on support of font related styling. +- The interfaces provided are only for HTML 4.01 and XHTML 1.0 documents. +- User agents MUST NOT initiate a request Event from a trigger element unless the + corresponding action is defined on the current element or an ancestor element. +- Users can indicate their intent to dismiss the view in multiple ways. +- The event can be triggered by physical events like pressing the ESC key or clicking + the back button. +- All elements are deprecated in HTML 4.01. +- This API provides access to various HTML element interfaces. +- bgColor attribute is deprecated in HTML 4.01. +- Some attributes may not be supported in all browsers. +- Feedback on this document is essential to success of these technologies. +- This document was produced by a group operating under the W3C Patent Policy. +- WAI-ARIA has an aria-grabbed property such that when set to false indicates that + it may be grabbed for the purposes of moving it. +- WAI-ARIA defines roles for objects such as regions +- We should provide an ARIA property for ARIA 2.0 that conveys that an object is resizeable. +- We should provide an ARIA property for ARIA 2.0 that conveys that an object is moveable. +- The interfaces provided in this document are only for HTML 4.01 and XHTML 1.0 documents. +- Collections in the HTML DOM are assumed to be live meaning that they are automatically + updated when the underlying document is changed. +- The English version of this policy is the only normative version. +- Disclosure obligation is an ongoing obligation that begins with the Call for Participation. +- Disclosure of third party patents is only required where the participant has been + made aware of essential claims. +- W3C processes promote fairness, responsiveness, and progress. +- The Process Document promotes the goals of quality and fairness in technical decisions. +- An individual may join W3C as an Affiliate Member. +- Related Members must disclose their relationships. +- Advisory Board and TAG participants have a special role within W3C. +- Advisory Board and TAG participants MUST participate regularly and fully. +- In general, the time commitment for participating in an Interest Group is less than + that for a Working Group. +- The Director must announce the publication of a Candidate Recommendation to other + W3C groups and to the public. +- This document was developed as part of the W3C Internationalization Activity by + the W3C Internationalization Core Working Group. +- Specifications, software and content MUST NOT require or depend on a one-to-one + mapping between characters and units of displayed text. +- Specifications, software and content MUST NOT require or depend on a one-to-one + relationship between characters and units of physical storage. +- All specifications that involve processing of text MUST specify the processing of + text according to the Reference Processing Model. +- Escape syntax SHOULD require either explicit end delimiters or a fixed number of + characters in each character escape. +- Whenever specifications define character escapes that allow the representation of + characters using a number, the number MUST represent the Unicode code point of the + character and SHOULD be in hexadecimal notation. +- Escaped characters SHOULD be acceptable wherever their unescaped forms are. +- The project radar lists objectives for current WG work items. +- 'This document builds on Character Model for the World Wide Web: Fundamentals.' +- The main target audience of this specification is W3C specification developers. +- This document describes string matching or searching terminology and notation. +- This control is read-only. +- Number of text rows. +- Index that represents the element's position in the tabbing order. +- The type of this form control. This the string 'textarea'. +- Represents the current contents of the corresponding form control, in an interactive + user agent. +- Removes keyboard focus from this element. +- Gives keyboard focus to this element. +- Select the contents of the TEXTAREA. +- Unicode Normalization does not guarantee that two identical-appearing strings that + are in a given Unicode Normalization Form use the same sequence of code points. +- Not all compatibility characters have a compatibility decomposition. +- Some characters that look alike or have similar semantics are actually distinct + in Unicode and don't have canonical or compatibility decompositions to link them + together. +- Unicode Normalization does not fold visually identical characters together. +- Some characters may appear identical but are distinct Unicode code points. +- Specifications MUST document or provide a health-warning if canonically equivalent + but disjoint Unicode character sequences represent a security issue. +- This technical report may be ignored if full interoperability for Japanese XML documents + is not required. +- It is generally assumed that Shift-JIS uses JIS X 0201 rather than US-ASCII. +- The initial plan was to allow Shift-JIS and Japanese EUC (Compressed) as well, but + they are not allowed at present. +- This technical report addresses existing CESs and clarifies open issues. Although + problems with the use of such CESs are not solved, the nature of these problems + has become clear. +- The interfaces provided in this document are only for HTML 4.01 and XHTML 1.0 documents + and are not guaranteed to work with any future version of XHTML. +- The `getElementById` method is inherited from the `Document` interface. +- Attributes are exposed as properties for compatibility with DOM Level 0. +- Implementations should raise other exceptions under other circumstances. For example, + implementations should raise an implementation-dependent exception if a null argument + is passed when null was not expected. +- The documentations in the Java source files contains errors and formatting issues. +- DocumentType nodes are read-only. +- This work is provided 'AS IS,' and copyright holders make no representations or + warranties. +- height attribute is deprecated in HTML 4.01. +- noWrap attribute is deprecated in HTML 4.01. +- width attribute is deprecated in HTML 4.01. +- align attribute is deprecated in HTML 4.01. +- Attributes have semantics defined in HTML 4.01 and XHTML 1.0 specifications. +- This API is primarily for accessing W3C standards and drafts. +- XML attributes may contain entity references, while HTML attributes have simple + string values. +- The Document Object Model is not a binary specification. +- The Document Object Model is not a way of persisting objects to XML or HTML. +- The Document Object Model is not a set of data structures. +- The Document Object Model does not define what information in a document is relevant + or how information in a document is structured. +- Uses DOM Level 2 API +- Document API allows manipulation and access to XML and HTML documents. +- The nodeName attribute from Node interface contains the name of the entity. +- Exceptions handling is only supported by ECMAScript implementation conformant with + the Standard ECMA-262 3rd. Edition. +- The CSS interfaces expose constructs to object model consumers. +- The CSS Object Model doesn't provide an access to the specified or actual values + of the CSS cascade. +- Some properties convert a whitespace separated list of idents to a string. +- Exceptions on setting may raise DOMException errors. +- This property is of type String and can raise a DOMException object on setting. +- This document specifies HTML 4.01, which is part of the HTML 4 line of specifications. +- W3C recommends that user agents and authors produce HTML 4.01 documents rather than + HTML 4.0 documents. +- 'An exception is missing: DOMException.HIERARCHY_REQUEST_ERR: Raised if an attempt + is made to add a node doesn''t belong in this NamedNodeMap.' +- Implementations should raise other exceptions under other circumstances. For example, + implementations should raise an implementation-dependent exception if a null argument + is passed. +- HTML-only DOM implementations do not need to implement this method. +- XHTML documents must be well-formed +- All elements must have closing tags or be written in a special form +- The documentations in the Java source files contains errors and formatting issues. + This new zip file should fix the problems. +- This work is provided 'AS IS,' and copyright holders make no representations or + warranties, express or implied. +- The name and trademarks of copyright holders may NOT be used in advertising or publicity + pertaining to the work without specific, written prior permission. +- XHTML documents are XML conforming. +- W3C does not, in general permit derivative works created from its specifications + in order to avoid interoperability problems. +- Some documents may be published under the W3C document license. +- Documents must be well-formed +- Element and attribute names must be in lower case +- For non-empty elements, end tags are required +- Attribute values must always be quoted +- XML does not support attribute minimization +- Empty elements must either have an end tag or the start tag must end with />. +- White space handling in attribute values is specified +- 'Script and style elements are treated as having #PCDATA content' +- Certain elements have prohibitions on which elements they can contain +- W3C will retain attribution of authorship. +- W3C makes no a-priori commitment to support contributions. +- 'Latest Candidate Recommendation Snapshot: 31 March 2022' +- Introduced in DOM Level 2 +- Some checkpoints may require interpretation and judgment. +- Content that limits the functionality of the user agent in some cases does not automatically + invalidate a claim about the user agent. +- HTML-only DOM implementations do not need to implement certain methods. +- 'Errors in a PNG datastream fall into two general classes: transmission errors or + damage to a computer file system, which tend to corrupt much or all of the datastream; + syntax errors, which appear as invalid values in chunks, or as missing or misplaced + chunks.' +- Uses a specified order for critical and ancillary chunks in PNG images. +- PNG allows for a number of filter methods. +- Filtering transforms the PNG image with the goal of improving compression. +- You can always round-trip from a UTF-32 offset to a UTF-16 offset and back. +- You can round-trip from a UTF-16 offset to a UTF-32 offset and back if and only + if the offset16 is not in the middle of a surrogate pair. +- This specification is a Superseded Recommendation. +- Errors in a PNG datastream will fall into two general classes, transmission errors + and syntax errors. +- Decoders should verify that all eight bytes of the PNG signature are correct. +- Decoders should handle errors gracefully, recovering if possible. +- Decoders shall treat out-of-order APNG chunks as an error. +- Decoders are required to be able to read interlaced images. +- Some passes will be empty if the reference image contains fewer than five columns + or rows. +- PNG format is designed to facilitate early detection of file transmission errors. +- The PNG format uses cyclical redundancy checks to ensure the integrity of the data. +- No Exceptions +- The character data of the node may not fit into a single DOMString. +- Attributes are properties of elements rather than having a separate identity. +- This specification is a Superseded Recommendation. A newer specification exists + that is recommended for new adoption in place of this specification. +- In some authoring scenarios, empty content (e.g., alt="") may make an appropriate + text equivalent, such as when non-text content has no other function than pure decoration. +- User agents should render nothing in this case because the author may specify an + empty text equivalent for content that has no function in the page other than as + decoration. +- The primary purpose of this checkpoint is to benefit users with serial access to + content or who navigate sequentially, allowing them to skip portions of content + that would be unusable if rendered graphically as 'garbage.' +- The DOM is not a binary specification. +- The DOM does not define how objects may be represented in XML or HTML. +- The DOM is not a set of data structures. +- The DOM does not define what information in a document is relevant. +- The DOM is not a competitor to the Component Object Model (COM). +- The Document interface represents the entire HTML or XML document. +- DocumentFragment is a lightweight object used to hold fragments of a document. +- Some formats (e.g., streaming formats), might not enable the user agent to fast + forward or rewind content. +- Allows configuration to prompt the user to confirm or cancel any form submission. +- Configuration is preferred, but is not required if forms can only ever be submitted + on explicit user request. +- Avoid rendering text in the form of a bitmap before transferring to the screen. +- Ensure that programmatic exchanges proceed in a timely manner. +- Some users rely on focus for interaction, including those with blindness or physical + disabilities. +- The DOM Level 2 does not support editing Entity nodes. +- Entity nodes and all their descendants are readonly. +- Previous versions of UAAG 1.0 included requirements related to fee links. +- User agents may provide documentation in many formats, but at least one must conform + to at least level Double-A of the Web Content Accessibility Guidelines 1.0. +- Documentation of keyboard accessibility is particularly important to users with + visual disabilities and some types of physical disabilities. +- 'The following accessibility features can be adjusted from the Accessibility Options + Control Panel: StickyKeys, FilterKeys, MouseKeys, ToggleKeys, SoundSentry, ShowSounds, + Automatic reset, High Contrast, SerialKeys.' +- Java can facilitate timely access to accessibility components. +- There are several ways to gain access to the user agent's document object model. +- Exceptions handling is only supported by ECMAScript implementation conformant with + the Standard ECMA-262 3rd Edition. +- The UAWG is part of the WAI Technical Activity. +- The current charter has a duration until 1 May 2003. +- This document includes some editorial clarifications from the Proposed Recommendation. +- Provides access to CSS constructs for formatting and rendering web documents. +- Important! Section 1.2 has been rewritten. It is no longer essentially a summary + of general design principles (though those are still there). It is now a discussion + of the scope of the document and some assumptions that affected the choice and elimination + of some requirements. +- Some software may not conform to this document but still be accessible to some users + with disabilities. Conformance is expected to be a strong indicator of accessibility, + but it is neither a necessary nor sufficient condition for ensuring the accessibility + of software. +- Some properties may raise DOMException if incorrect values are used. +- Harmonize how checkpoints use graphical user interface or graphical viewport for + applicability. +- A conformant implementation of the CSS module is not required to implement the CSS2Properties + interface. +- The guidelines were reordered. +- Whenever you send comments about a draft, please indicate which draft using the + dated URL. +- Some edits based on Judy Brewer review of similar text in Authoring Tool Guidelines. +- This document is a Working Draft and may be updated, replaced, or obsoleted by other + documents at any time. +- The W3C Voice Browser Working Group is defining markup languages for speech recognition + grammars, speech dialog, natural language semantics, multimodal dialogs, and speech + synthesis. +- This document is for public review. +- Comments should be sent to the public mailing list by 14th January 2000. +- The W3C technical report development process is designed to support multiple specification + development methodologies and maximize consensus about the content of stable technical + reports. +- Only sufficiently technically mature work should be advanced. +- W3C may end work on a technical report at any time. +- A Group Note is published to provide a stable reference for a useful document that + is not intended to be a formal standard. +- There are few formal requirements to publish a document as a Note or Note Draft, + and they have no standing as a recommendation of W3C but are simply documents preserved + for historical reference. +- The type 'aural' is now deprecated. +- This property specifies whether table headers are spoken before every cell, or only + before a cell when that cell is associated with a different header than the previous + cell. +- The URI is http://www.w3.org/2014/Process-20140801/ +- The new W3C Process takes effect on 5 August 2014. +- Groups can start to publish specifications under the new Process on 2 September + 2014. +- Calls for Exclusion will now happen at Candidate Recommendation. +- Working Groups are typically small (fewer than 15 people) and composed of experts. +- Interest Groups have no limit on the number of participants. +- This specification defines HTML 4.01, which is a subversion of HTML +- The English version of this specification is the only normative version +- Publication of a Note by W3C does not imply endorsement by W3C, including the W3C + Team or Membership. +- The acknowledgment of a Submission request does not imply that any action will be + taken by W3C. +- This document is the second edition of the XHTML 1.0 specification incorporating + the errata changes as of 1 August 2002. +- Changes between this version and the previous Recommendation are illustrated in + a diff-marked version. +- All elements must have closing tags +- All attribute values must be quoted +- Some characters that are legal in HTML documents, are illegal in XML document. +- A Coordination Group may operate as part of several W3C Activities. +- A Coordination Group should close when dependencies have been resolved. +- The Submission process is not a means by which Members ask for 'ratification' of + these documents as W3C Recommendations. +- Publication does not imply endorsement by W3C. +- XHTML documents must be well-formed. +- Element and attribute names must be in lower case. +- Attribute values must always be quoted. +- This document outlines guidelines for making web content more accessible. +- Conformance is defined only for Web pages. +- Authors are encouraged to report any progress toward meeting success criteria from + all levels beyond the achieved level of conformance. +- All Ranges in a document will remain valid after any mutation operation. +- As much as possible, all Ranges will select the same portion of the document after + any mutation operation. +- WCAG 2.2 was published on 5 October 2023. +- WCAG 2.0 and WCAG 2.1 are backwards compatible with WCAG 2.2. +- This document is meant to be stable and therefore does not provide specific information + about browser support for different technologies as that information changes rapidly. +- Implementers are strongly encouraged to use the latest version of WCAG, which is + available from the Web Content Accessibility Guidelines Overview. +- Guidelines emphasize providing equivalent alternatives to auditory and visual content. +- Use of proper markup and style sheets is essential for accessibility. +- WCAG 2.2 is the current W3C standard and will remain so until WCAG 3 replaces it. +- UAAG 1.0 does not define any (named) conformance profiles, but rather defines the + mechanism for creating them. +- Decoders may ignore all or some of the ancillary information. +- UAAG is part of a series of accessibility guidelines, including the Web Content + Accessibility Guidelines (WCAG) and the Authoring Tool Accessibility Guidelines + (ATAG). +- We recommend that you use UAAG 2.0. +- ATAG is technology agnostic. +- ATAG was published in 2015 and references WCAG 2.0. +- WCAG 2 is a stable, referenceable technical standard. +- 'A PNG decoder should handle errors as follows: Detect errors as early as possible + using the PNG signature bytes and CRCs on each chunk.' +- Recover from an error, if possible; otherwise fail gracefully. +- 'Three classes of PNG chunks are relevant to this philosophy: known chunks, unknown + critical chunks, unknown ancillary chunks.' +- A decoder that fails to check CRCs could be subject to data corruption. +- Decoders running on systems with a non-Latin-1 legacy character encoding should + remap character codes. +- Common mistakes that are considered failures of Success Criterion 1.1.1 are listed. +- Alternative for time-based media provides a complete representation of synchronized + media content. +- When displaying a PNG image with full alpha channel, it is important to be able + to composite the image against some background. +- Ignoring the alpha channel will cause PNG images that have been converted from an + associated-alpha representation to look wrong. +- Responsibility for providing captions would fall to the content providers or the + host caller. +- Text that is larger and has wider character strokes is easier to read at lower contrast. +- The contrast requirement for larger text is therefore lower. +- PNG is widely implemented in all Web browsers, image viewers, and image creation + tools +- Animated PNG (APNG) is widely implemented in all Web browsers, and is increasingly + available in image viewers, and animation and image creation tools +- Except for captions and images of text, text can be resized without assistive technology + up to 200 percent without loss of content or functionality. +- Sample implementation available at http://www.libpng.org/pub/png/libpng.html +- Test images can also be accessed from the PNG web site. +- Authors do not have control over user settings as to how text is rendered. +- Contrast ratios can range from 1 to 21. +- This Success Criterion ensures that all functionality of the content is operable + through a keyboard interface. +- No additional techniques exist for this Success Criterion. +- User agents should support direct or sequential keyboard operation for all functionalities. +- This checkpoint will also benefit users of many other alternative input devices. +- This success criterion helps ensure that users can complete tasks without unexpected + changes in content or context that are a result of a time limit. +- Timed server redirects can be found below under Common Failures. +- 'Non-timed server redirects (e.g., 3xx response codes) are not applicable because + there is no time limit: they work instantly.' +- Interruptions can be postponed or suppressed by the user, except interruptions involving + an emergency. +- If the user agent satisfies this checkpoint by pausing automatically, it may be + necessary to pause more than once when there are multiple opportunities for time-sensitive + user interaction. +- The requirement to pause at the *end* (rather than at the beginning) of a time-interval + is to allow the user to review content that may change during the elapse of this + time. +- When an authenticated session expires, the user can continue the activity without + loss of data after re-authenticating. +- All content must meet this success criterion. +- User agents should render nothing in case of empty text equivalents. +- Conformance detail for all content is required. +- The default human language of the Web page is the default text-processing language + as discussed in Internationalization Best Practices. +- This document provides guidelines for configuring user agent accessibility. +- Components that have the same functionality within a set of Web pages are identified + consistently. +- Many user agents offer form submission confirmation as a security feature. +- If a user enters a value that is too high or too low, and the coding on the page + automatically changes that value to fall within the allowed range, the user's error + would still need to be described to them as required by the success criterion. +- Providing information about input errors in text allows users who are blind or colorblind + to perceive the fact that an error occurred. +- This checkpoint applies to both W3C-developed and non-W3C specifications. +- The user agent is not required to satisfy this checkpoint for all implemented specifications. +- Conformance to W3C Recommendations is not a priority 1 requirement because user + agents can (and should!) provide access for non-W3C specifications as well. +- This document provides guidelines for user agent accessibility. +- This checkpoint involves searching through *rendered* content only. +- User agents should construct the navigation view with the goal of breaking content + into sensible pieces according to the author's design. +- The intent of this Success Criterion is to help users with disabilities avoid serious + consequences as the result of a mistake when performing an action that cannot be + reversed. +- This checkpoint refers only to cell/header relationships that the user agent can + recognize. +- A cell may be associated with more than one header. +- The intent of this Success Criterion is to help users with disabilities avoid consequences + that may result from making a mistake when submitting form data. +- The user agent is not required to allow the user to override conventional bindings + for the operating environment. +- Techniques for improving accessibility of links, lists, tables, and image maps. +- This success criterion is primarily for Web authors who develop or script their + own user interface components. +- Providing role, state, and value information on all user interface components enables + compatibility with assistive technology. +- Conformance can only be achieved at the stated levels. +- Authors are encouraged to report progress toward meeting success criteria from all + levels beyond the achieved level of conformance. +- User agents need to make dynamic content accessible to users who may be disoriented + by changes in content. +- Users should be prevented from configuring the user agent in a way that would interfere + with important functionalities. +- In Java 1.1.x, Sun's Java access utilities load an assistive by monitoring the Java + awt.properties file for the presence of assistive technologies and loads them. +- The assistive technology has the option to either communicate with a main assistive + technology of its own and process the document object model as a caching mechanism + for the main assistive technology, or act as a bridge to the document object model + for the main assistive technology. +- This document is a reference for accessibility principles and design ideas. +- Not all browsers or multimedia tools may support the features described in the guidelines. +- Some requirements depend on content roles, content relationships, timing relationships, + and other information supplied by the author. +- This document is the gateway to a series of related documents that provide techniques + for satisfying the requirements defined in 'Web Content Accessibility Guidelines + 1.0'. +- The series of documents supersedes the 5 May 1999 W3C Note 'Techniques for Web Content + Accessibility Guidelines 1.0'. +- Uses various guidelines for software accessibility — refer to the listed resources + for detailed information. +- The BLINK and MARQUEE elements are not defined in any W3C HTML specification and + should not be used. +- Although this charter is available publicly, some of the links in this document + refer to resources that require W3C Member access. +- Some software may not conform to this document but still be accessible to some users + with disabilities. +- Conformance is expected to be a strong indicator of accessibility, but it is neither + a necessary nor sufficient condition for ensuring the accessibility of software. +- Content developers should describe any navigation mechanisms. +- Multimedia presentations may not always make text easier to understand. +- This document is intended to help authors of Web content who wish to claim conformance + to 'Web Content Accessibility Guidelines 1.0'. +- The techniques in this document should help people author HTML that conforms to + 'Web Content Accessibility Guidelines 1.0'. +- Some changes to the definition of content per proposal from Eric. +- Do not use tables for layout unless the table makes sense when linearized. +- Section 1.2 has been rewritten. It is no longer essentially a summary of general + design principles. +- Titles of 1.1 and 1.2 now include 'user agent' before 'design'. +- 'Implemented resolutions of 28 September teleconf as follows: modifications to Note: + ''Note: Some software may not conform to this document but still be accessible to + some users with disabilities. Conformance is expected to be a strong indicator of + accessibility, but it is neither a necessary nor sufficient condition for ensuring + the accessibility of software.''' +- Deleted old applicability provisions 1 and 4. +- Added new section on labeled sets of checkpoints per resolution of 28 September + teleconference. +- Used the term 'subject' consistently in section on conformance. +- Elements that are deprecated in HTML 4.01 are followed by an asterisk (*) +- Elements that are obsolete in HTML 4.01 or don't exist in a W3C specification of + HTML (2.0, 3.2, 4.01) do not appear in this table. +- This document contains a number of examples that illustrate accessible solutions + in CSS but also deprecated examples that illustrate what content developers should + not do. +- Ensure that information is not conveyed through color alone. +- Content developers are encouraged to use UL for unordered lists and OL for ordered + lists. +- W3C does not guarantee the stability of any of the following references outside + of its control. +- This document is a record of changes between each revision of the working draft + for the page author techniques. +- This document is a Working Draft and may be updated or replaced. +- All markup languages defined are XML-based. +- Participants in any W3C activity must abide by the terms and spirit of the W3C Code + of Conduct. +- The CEO may take disciplinary action, including suspending or removing for cause + a participant in any group. +- This methodology does not in any way add to or change the requirements defined by + the normative WCAG 2.0 standard. +- The Advisory Board has no decision-making authority within W3C; its role is strictly + advisory. +- The terms of elected Advisory Board participants are for two years. +- Each group must have a charter that is public +- The Chair and Staff Contact of a group should not be the same individual +- A charter does not need to include schedules for review of other group’s deliverables. +- Editorial changes or substantive changes to a charter that do not affect the scope + of the group’s work or the way the group functions in any significant way are deemed + minor changes. +- Documentation does not need to be public, the level of confidentiality is usually + determined by the evaluation commissioner. +- Aggregated scores provide a numerical indicator to help communicate progress over + time, but can be misleading. +- 'WCAG 2.0 is approved as an ISO standard: ISO/IEC 40500:2012.' +- Formal Objections receive formal consideration and a formal response. +- Council decisions must not attribute any position to any individual on the Council. +- Accessibility evaluation is also called 'assessment', 'audit', and 'testing'. +- ERT WG was originally chartered in 1998 and has been rechartered two times since + then. +- This Process defines certain Recommendation Track publications as Patent Review + Drafts. +- Checks cover just a few accessibility issues and are designed to be quick and easy, + rather than definitive. +- These easy checks are not comprehensive or definitive. +- Data tables will not make sense when linearized — that's OK because screen readers + have functionality to make data tables usable (when they are marked up correctly). +- BAD provides a clear example of how the basic structure check reveals accessibility + barriers. +- Evaluating with users with disabilities usually reveals general usability problems + that impact all users, including those without disabilities. +- Evaluating the accessibility of Web content for people with disabilities requires + diverse kinds of expertise and perspectives. +- Comprehensive and effective evaluations require evaluators with an understanding + of Web technologies, evaluation tools, barriers that people with disabilities experience, + assistive technologies and approaches that people with disabilities use, and accessibility + guidelines and techniques. +- The Working Group is scheduled to last for two years, from February 25th, 1999 to + February 25th, 2001. +- Conformance can only be achieved at the stated levels +- Authors are encouraged to report any progress toward meeting success criteria from + all levels beyond the achieved level of conformance +- This document is a draft and may be updated or replaced. +- Accessibility metrics should be used and designed responsibly. +- This document is a NOTE made available by the W3 Consortium for discussion only. + This indicates no endorsement of its content, nor that the Consortium has, is, or + will be allocating any resources to the issues addressed by the NOTE. +- This document was superseded in August 2015 by a newer version. +- The Part A success criteria apply to all aspects of the authoring tool user interface + that are concerned with producing the included web content technologies. +- Some authors who have difficulty typing or operating the mouse benefit from simplified + navigation and editing via content structure. +- The Advisory Board is not a board of directors and has no decision-making authority. +- A group may form task forces composed of group participants. +- The Submission process is not a means by which Members ask for ratification of documents + as W3C Recommendations. +- Publication of a Note by W3C does not imply endorsement by W3C. +- This document is an update to a W3C Working Group Note to incorporate new guidelines, + success criteria, and definitions added in WCAG 2.1 and 2.2. +- Some were applicable without modification and some were applicable with edits and/or + notes. +- Members must treat all Member-only documents as confidential within W3C. +- This document is purely an informative Note about non-web ICT. It is not a standard + — so it does not describe how non-web ICT should conform to it. +- This document provides guidance on applying WCAG 2 to non-web information and communications + technologies. +- The Chair and the Team contact of a group should not be the same individual. +- Since any content that does not meet this success criterion can interfere with a + user's ability to use the whole page, all content on the web page (whether or not + it is used to meet other success criteria) must meet this success criterion. +- This success criterion is problematic to apply directly to non-web software because + not all platforms provide text enlargement features that increase all displayed + text to 200%. +- 'Content can be presented without loss of information or functionality, and without + requiring scrolling in two dimensions for: Vertical scrolling content at a width + equivalent to 320 CSS pixels; Horizontal scrolling content at a height equivalent + to 256 CSS pixels.' +- An example of appearance modification by the author is content that sets the visual + style of a control, such as a color or border, to differ from the default style + for the user agent or platform. +- 'A Coordination Group charter must include the following information: The group''s + mission; The scope of the group''s work, including the names of coordinated groups + and names of contacts in those groups; Any dependencies of this group on other entities; + The level of confidentiality of the group''s proceedings and, in particular, whether + the charter itself will be public. The charter should include rationale for any + level of confidentiality other than public; IPR disclosure requirements (see W3C''s + IPR policy); Meeting mechanisms and expected frequency; Communication mechanisms + to be employed within the group, between the group and the rest of W3C, and with + the general public; The expected level of involvement by the Team; An estimate of + the expected time commitment from participants.' +- This applies directly as written, and as described in Intent from Understanding + Success Criterion 1.4.13, replacing 'user agent' with 'user agent or other platform + software', 'browser tooltips' with 'tooltips', and 'the HTML title attribute' with + 'user interface object attributes'. +- A best practice is to have the text of the label at the start of the name. +- Dragging movements for operation are less common in non-web documents. An example + where a document author could add dragging functionality is an interactive prototype + document created in a software design tool. +- For inline targets the line-height should be interpreted as perpendicular to the + flow of text. For example, in a language displayed vertically, the line-height would + be horizontal. +- The concepts behind the five Notes and in Understanding Accessibility Supported + are applicable to web technologies. The same or similar factors are applicable for + non-web technologies. +- This document does not comment on hardware aspects of products, because the basic + constructs on which WCAG 2 is built do not apply to these. +- Some changes are not listed here including spelling fixes, wording changes, some + structural changes, and updates to the Appendixes. +- General changes for alignment with Patent Policy. +- Content must meet all success criteria to ensure accessibility. +- Authors can conform to WCAG 2.0 without making a claim. +- This document does not seek to determine which WCAG 2 provisions (principles, guidelines, + or success criteria) should or should not apply to non-web documents and software, + but rather — if applied — how they would apply. +- This document does not propose changes to WCAG 2 or its supporting documents. +- WCAG 2.0, 2.1, and 2.2 are designed to be backwards compatible. +- All content on the web page must meet this success criterion. +- This criterion applies to content that appears in addition to the triggering component + itself. +- This document remains available as a reference for old -- and possibly still deployed + -- implementations, but is not recommended for future implementation. +- This applies directly as written, and as described in Intent from Understanding + Success Criterion 2.5.3. +- This applies directly as written, and as described in Intent from Understanding + Success Criterion 2.5.4. +- This applies directly as written, and as described in Intent from Understanding + Success Criterion 2.5.7. +- This applies directly as written, and as described in Intent from Understanding + Success Criterion 2.5.8. +- This applies directly as written, and as described in Intent from Understanding + Success Criterion 3.3.7 +- This applies directly as written, and as described in Intent from Understanding + Success Criterion 3.3.8 +- The mission of the AG Working Group is to develop and maintain specifications for + making web content accessible to people with disabilities. +- Techniques are informative—that means they are not required. +- This document is not intended to be used as a stand-alone document. +- WAI actively encourages broad participation from industry, disability organizations, + accessibility researchers, government, and others interested in web accessibility. +- This document is a Working Group Note and is part of a series of technical and educational + documents. +- Essential components of web accessibility include content, user agents, assistive + technology, and developers. +- This document does not seek to determine which WCAG 2.0 provisions should or should + not apply to non-web ICT, but rather how they would apply, if applied. +- This document does not propose changes to WCAG 2.0 itself, nor its supporting documents. +- ATAG is relevant today, as it is technology agnostic. +- WCAG2ICT is not a standard, so it is not possible to conform to WCAG2ICT. +- Supporting documents are informative or non-normative. +- Supplemental guidance is not required to meet WCAG. +- The intent of this Success Criterion is to ensure that information and relationships + that are implied by visual or auditory formatting are preserved when the presentation + format changes. +- It is important that it be possible to programmatically determine at least one sequence + of the content that makes sense. +- Some people with cognitive disabilities require color combinations or hues that + have low contrast. +- Images of text do not scale as well as text because they tend to pixelate. +- CAPTCHAs are a controversial topic in the accessibility community. +- Providing more than two modalities of CAPTCHAs. +- Guidelines are provided for framing and understanding the success criteria under + them but are not required for conformance to WCAG. +- 'This document is part of Understanding WCAG 2.0: A guide to understanding and implementing + WCAG 2.0' +- An alternative for time-based media provides a running description of all that is + going on in the synchronized media content. +- Individuals whose vision is too poor to reliably read captions and whose hearing + is too poor to reliably hear dialogue can access the alternative for time-based + media by using a refreshable braille display. +- Responsibility for providing captions falls to the content providers or the host + caller, not the application. +- This document provides guidance on applying WCAG 2.0 to non-web information and + communications technologies. +- 'Note: The concepts behind the five Notes and in Understanding Accessibility Supported + are applicable to web technologies. The same or similar factors are applicable for + non-web technologies.' +- Text that is decorative and conveys no information is excluded. +- The minimum contrast success criterion (1.4.3) applies to text in the page, including + placeholder text and text that is shown when a pointer is hovering over an object + or when an object has keyboard focus. +- This document does not comment on hardware aspects of products, non-UI aspects of + platforms, or the application of WCAG 2.0 for user-interface components as a category, + because the basic constructs on which the WCAG 2.0 and / or its conformance are + built do not apply to these. +- Text can be resized up to 200 percent without loss of content or functionality. +- Some of the above success criteria would apply to systems with closed functionality + if they are partially closed or if they allow for the connection of some types of + devices. +- While these guidelines are not suitable for closed functionality as written, they + will inform and aid development of built-in accessible alternatives needed with + closed functionality. +- The intent of this Success Criterion is to provide enough contrast between text + and its background. +- 'This Web page is part of Understanding WCAG 2.0: A guide to understanding and implementing + WCAG 2.0' +- This policy was produced by the W3C Patents and Standards Interest Group. +- This exception relates to the underlying function, not the input technique. +- The use of MouseKeys would not satisfy this Success Criterion because it is not + a keyboard equivalent to the application. +- Disclosure is required when certain conditions are met. +- Good faith obligation to disclose is ongoing. +- Disabling time limits is better than customizing the length of time limits, which + is better than requesting more time before a time limit occurs. +- Use clear headings that summarize the purpose of a page. +- Provide breadcrumbs to help users orient themselves in a site. +- The intent of this Success Criterion is to allow users to access the full content + of a site without inducing seizures due to photosensitivity. +- Make important tasks and features on the site stand out and easy to find. +- Divide media into chunks to allow users to easily find sections. +- For multilingual sites targeting Conformance Level A, the Working Group strongly + encourages developers to follow Success Criterion 3.1.2 as well even though that + is a Level AA Success Criterion. +- Summaries should use common words, short sentences, and be written in an easy to + understand style and tense. +- Provide definitions or explanations for implied or ambiguous information. +- Consistent labeling will help users who rely on screen readers. +- Labels should use common words and easy to understand language, be visible and next + to the relevant control, and be readable by assistive technologies. +- Clear labels help people with cognitive and learning disabilities and others to + understand the controls available. +- Users with cognitive disabilities may require more time to read content or complete + functions, and need clear instructions at the start of the process. +- Changes of context are initiated only by user request or a mechanism is available + to turn off such changes. +- Avoid barriers such as navigating voice menus that involve remembering a specific + number or term +- Allow users access to content, services or help, without using processes that rely + on memory +- Content should be easy to find and use. +- Provide alternative content for complex information. +- Reminders must be set only at the user’s request and the user must be able to personalize + the reminder method. +- Always give the option to set a reminder at the end of the task so that the user + does not get interrupted. +- It is essential not to add unwanted reminders, as this makes the user’s calendar + too full. +- Too much information or instruction can be just as much of a hindrance as too little. +- If an input error is automatically detected and suggestions for correction are known, + then the suggestions are provided to the user, unless it would jeopardize the security + or purpose of the content. +- Providing information about how to correct input errors allows users who have learning + disabilities to fill in a form successfully. +- Providing safeguards to avoid serious consequences resulting from mistakes helps + users with all disabilities who may be more likely to make mistakes. +- Provides safeguards to avoid consequences resulting from mistakes helps users with + all disabilities who may be more likely to make mistakes. +- This document provides definitions and user stories related to cognitive and learning + disabilities. +- This document is obsolete, and is retained here for historical purposes only. +- The latest official sRGB specification may also be purchased from the IEC. +- We recommend using the encoding viewing environment when viewing sRGB encoded images. +- This is quite different from typical viewing environment. +- This document outlines various guidelines and success criteria for web content accessibility. +- Conformance claims are optional. +- Authors can conform to WCAG 2.1 without making a claim. +- This version has been published to correct some broken links in the previous version. +- The English version of this document is the only normative version. +- This document describes techniques for authoring accessible content that apply across + technologies. +- The English version of this specification is the only normative version. +- Heading is used in its general sense and includes titles and other ways to add a + heading to different types of content. +- This requirement applies to web content that interprets pointer actions (i.e., this + does not apply to actions that are required to operate the user agent or assistive + technology). +- Content developers should strive for clear and accurate headings and link descriptions. +- Avoid causing the screen to flicker to prevent seizures in users with photosensitive + epilepsy. +- Content must be robust enough that it can be interpreted by a wide variety of user + agents, including assistive technologies. +- If there is no important visual information, for example, an animated talking head + that describes (through prerecorded speech) how to use the site, then an auditory + description is not necessary. +- For movies, provide auditory descriptions that are synchronized with the original + audio. +- Identifying changes in language are important for users using braille and speech + synthesizers. +- Until user agents provide an overview of which key bindings are available, provide + information on the key bindings. +- This document provides guidelines for designing Extensible Markup Language (XML) + applications that lower barriers to Web accessibility for people with disabilities. +- Developers should provide a mechanism for freezing motion in applets. +- Dynamic content must be accessible or alternatives provided. +- Web content providers must able to offer alternative versions of their content if + they wish to do so. +- Increased structure in an XML application allows authors to encode their knowledge + in a manner that user agents can recognize reliably. +- Languages used only for presentation to a certain scope of users and media are called, + Final-form and they should adhere to the following provisions. +- Layout, positioning, layering, and alignment should be done through style sheets. +- This document serves as a gateway to a series of related documents providing techniques + for satisfying the requirements defined in 'Web Content Accessibility Guidelines + 1.0'. +- This version is outdated! For the latest version, please look at https://www.w3.org/TR/xag. +- I try to respond within 24 hours to all email. I manage that about half the time. +- If your query is of a general nature, I will probably try to direct you to work + being done in public rather than answer with a lot of detail. It helps me get through + my email each day. +- This page tracks the issues of the Techniques for Web Content Accessibility Guidelines + 1.0. +- Authors must provide alternative equivalent content to audio and video so that users + with visual or auditory impairments may make use of the presentation. +- Authors must synchronize media objects correctly and describe relationships among + objects. +- Authors should design documents that transform gracefully for players that do not + support a particular feature. +- Leave the User Agent Support Page as is for now. If people find relevant resources, + post to list for inclusion in references. +- Authors should use system-captions="on" with elements that specify captions and + system-captions="off" for caption-related effects such as layout changes. +- In SMIL 1.0, values for system-overdub-or-caption only refer to user preferences + for either subtitles or overdubs; there are no values for the test attribute that + refer to neither or both. +- Authors might add a temporal navigation bar in parallel with the presentation. +- Players may offer other scaling strategies such as graphical zoom. +- This methodology does not in any way add to or change the requirements defined by + the normative WCAG 2.0 standard +- SVG allows manipulation of graphic shapes through defined elements. +- Stylesheets are used to define visual presentation of SVG elements. +- Authors are encouraged to provide a variety of ready-made stylesheets to cover different + user needs. +- SVG provides means, such as the `switch` element, to control the rendering of images + containing animation for static media. +- All markup languages written in XML automatically have some accessibility benefits. +- Evaluation findings are reported at the end of the process, documenting outcomes + throughout the evaluation process. +- The Protocols and Formats Working Group has closed. +- Resources from the PFWG remain available to support long-term institutional memory, + but this information is of historical value only. +- WCAG 2.2 was published on 5 October 2023 +- 'WCAG 2.0 is approved as an ISO standard: ISO/IEC 40500:2012' +- This document is a reformulation of HTML 4 as an XML 1.0 application. +- The XHTML family is designed with general user agent interoperability in mind. +- When user agents process attributes, they do so according to Section 3.3.3 of XML +- 'In XHTML, the script and style elements are declared as having #PCDATA content.' +- SGML gives the writer of a DTD the ability to exclude specific elements from being + contained within an element. +- This document is a W3C Recommendation. +- The group will document significant changes from this initial schedule on the group + home page. +- This page shows how web accessibility depends on several components working together. +- An extended link may associate fewer than two resources. +- The arc-type element may have any content. +- Checks are designed for anyone who can use the web. +- More robust assessment is needed to evaluate accessibility comprehensively. +- Some people need to enlarge web content in order to read it. +- Most browsers allow users to change text size through text size settings. +- When pages are not designed properly, they can be unusable when the text size is + changed. +- 'Web accessibility: essential for some, useful for all' +- Web accessibility evaluation tools can help you quickly identify potential accessibility + issues. +- Tools cannot check all accessibility aspects automatically. Human judgement is required. +- The primer does not provide a definitive specification of the XML Schema language. +- Evaluating the accessibility of Web content requires diverse expertise and perspectives. +- Collaborative evaluation processes can involve a group of colleagues, in-house teams, + or disability advocates. +- Authors are encouraged to report any progress toward meeting success criteria from + all levels. +- New simple types can be defined by deriving from existing simple types. +- Enumeration facet limits values to a set of distinct values. +- The Working Group encourages more discussion of the topic of accessibility support. +- Schemas can be constructed by defining sets of named types. +- Anonymous types can be defined to save overhead. +- The term 'Web Page' includes much more than static HTML pages. +- A text alternative is text that is used in place of non-text content for those who + cannot view the non-text content. +- Schema supports unqualified and qualified local elements. +- Nillable elements can be represented using the xsi:nil attribute. +- This document is intended to be published and maintained as a W3C Working Group + Note after review and refinement. +- The Research and Development Working Group (RDWG) invites discussion and feedback + on this draft document by research and practitioners interested in metrics for web + accessibility. +- International Purchase order schema for Example.com +- Addresses for International Purchase order schema +- Report schema for Example.com +- Uses key and keyref elements to enforce constraints on XML elements +- Mechanisms for importing types from multiple namespaces are supported +- Event capture and bubbling processes allow for flexible event handling. +- Events can be cancelable, allowing listeners to prevent default actions. +- The DOM Level 2 Event Model allows for multiple modules of events. +- The Mouse event module is specifically designed for use with mouse input devices. +- The mutation event module is designed to allow notification of any changes to the + structure of a document. +- Some authors may require access to alternative content in order to interact with + the web content that they are editing. +- Uses the feature string 'HTMLEvents' for creating an Event instance. +- The load, unload, abort, error, select, change, submit, reset, focus, blur, resize, + and scroll events are defined. +- SVG content can be interactive with user-initiated actions. +- Event attributes are not animatable. +- The contents of event attributes are always interpreted as ECMAScript, as if processed + with the media type 'application/ecmascript'. +- This document is a stable reference material for animation functionality in XML. +- Automated and semi-automated checking is possible and encouraged for many types + of web content accessibility problems (WCAG). However, manual checking is the minimum + requirement to meet this success criterion. +- Automated and semi-automated repair is possible and encouraged for many types of + web content accessibility problems (WCAG). However, manual repair is the minimum + requirement to meet this success criterion. +- The values must all be in the range 0 to 1. +- This attribute is ignored unless the `calcMode` is set to 'spline'. +- If there are any errors in the `keySplines` specification (bad values, too many + or too few values), the animation will have no effect. +- If `calcMode` is set to 'discrete', 'linear' or 'spline', but the `keyTimes` attribute + is not specified, the values in the `values` attribute are assumed to be equally + spaced through the animation duration, according to the `calcMode`. +- At most one of repeatCount or repeatDur should be specified. +- Cumulative animation is not defined for 'to animation'. +- If a cell is empty, it indicates that the associated attribute is omitted in the + syntax. +- Where the entry is a star ('*'), the value does not matter and can be any of the + possibilities. +- The default begin value is an offset-value of 0. +- The special value 'indefinite' does not yield an instance time in the begin list. +- All content in the non-web document or software must meet the success criteria. +- This criterion applies to content that appears in addition to the triggering component + itself. Since hidden components that are made visible on keyboard focus (such as + links used to skip to another part of a page) do not present additional content + they are not covered by this criterion. +- This requirement applies to non-web software that interprets pointer actions. +- This applies directly as written, and as described in Intent from Understanding + Success Criterion 3.3.8, replacing 'the website' with 'a website, non-web document, + or software'. +- The animate element cannot have child elements. +- The set element does not permanently set the value of the attribute. +- All values must represent sRGB color values. +- Legal value syntax for attribute values is defined by the host language. +- Values are corrected by clamping to the correct range. +- SVG is defined in terms of a document object model (DOM), rather than a particular + file format or document type. +- It is outside of the scope of this document to define WCAG techniques for non-web + ICT. These examples are simply illustrations of how WCAG 2 success criteria can + be applied to this class of non-web software applications. +- The 2013 version of WCAG2ICT has been relied upon in regulations and legislation. +- XSL provides a comprehensive model and a vocabulary for writing stylesheets using + XML syntax. +- XSL builds on the prior work on Cascading Style Sheets and the Document Style Semantics + and Specification Language. +- All content must meet success criteria to avoid user interference. +- Examples of additional content controlled by the user agent include tooltips created + through use of user interface object attributes. +- The computed value must be the same for all possible corresponding properties. +- The treatment of the .conditionality component is for CSS2 compatibility. +- In most cases, a delimited text range is the maximal sequence of characters that + would be formatted into a sequence of one or more line-areas. +- This applies directly as written, and as described in the guidelines. +- The expression language supports operations on a limited set of datatypes. These + do not include ,